@hoilab/ada-cli 0.85.0 → 0.85.1
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/dist/ada-publico.d.ts.map +1 -1
- package/dist/ada-publico.js.map +1 -1
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit-command.d.ts.map +1 -1
- package/dist/cli/audit-command.js.map +1 -1
- package/dist/cli/auth-check.d.ts.map +1 -1
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/auth-command.d.ts.map +1 -1
- package/dist/cli/auth-command.js.map +1 -1
- package/dist/cli/banco-command.d.ts.map +1 -1
- package/dist/cli/banco-command.js.map +1 -1
- package/dist/cli/cleanse-command.d.ts.map +1 -1
- package/dist/cli/cleanse-command.js +5 -2
- package/dist/cli/cleanse-command.js.map +1 -1
- package/dist/cli/commit-command.d.ts +8 -6
- package/dist/cli/commit-command.d.ts.map +1 -1
- package/dist/cli/commit-command.js +124 -92
- package/dist/cli/commit-command.js.map +1 -1
- package/dist/cli/completion.d.ts +20 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +75 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/computer-command.d.ts.map +1 -1
- package/dist/cli/computer-command.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/discover-command.d.ts.map +1 -1
- package/dist/cli/discover-command.js +5 -1
- package/dist/cli/discover-command.js.map +1 -1
- package/dist/cli/experimental/auth.d.ts.map +1 -1
- package/dist/cli/experimental/auth.js.map +1 -1
- package/dist/cli/experimental/cli.d.ts +1 -1
- package/dist/cli/experimental/cli.d.ts.map +1 -1
- package/dist/cli/experimental/cli.js.map +1 -1
- package/dist/cli/experimental/command-options.d.ts.map +1 -1
- package/dist/cli/experimental/command-options.js.map +1 -1
- package/dist/cli/experimental/command.d.ts.map +1 -1
- package/dist/cli/experimental/command.js.map +1 -1
- package/dist/cli/experimental/commands/client.d.ts.map +1 -1
- package/dist/cli/experimental/commands/client.js.map +1 -1
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
- package/dist/cli/experimental/commands/pi.js.map +1 -1
- package/dist/cli/experimental/commands/server.d.ts.map +1 -1
- package/dist/cli/experimental/commands/server.js.map +1 -1
- package/dist/cli/experimental/transport-address.d.ts.map +1 -1
- package/dist/cli/experimental/transport-address.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/guardrails.d.ts +14 -0
- package/dist/cli/guardrails.d.ts.map +1 -0
- package/dist/cli/guardrails.js +47 -0
- package/dist/cli/guardrails.js.map +1 -0
- package/dist/cli/hashline-command.d.ts.map +1 -1
- package/dist/cli/hashline-command.js.map +1 -1
- package/dist/cli/home-screen.d.ts.map +1 -1
- package/dist/cli/home-screen.js +1 -0
- package/dist/cli/home-screen.js.map +1 -1
- package/dist/cli/import-command.d.ts.map +1 -1
- package/dist/cli/import-command.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/politica-command.d.ts.map +1 -1
- package/dist/cli/politica-command.js.map +1 -1
- package/dist/cli/project-trust.d.ts.map +1 -1
- package/dist/cli/project-trust.js.map +1 -1
- package/dist/cli/refine-command.d.ts.map +1 -1
- package/dist/cli/refine-command.js.map +1 -1
- package/dist/cli/review-command.d.ts.map +1 -1
- package/dist/cli/review-command.js +77 -13
- package/dist/cli/review-command.js.map +1 -1
- package/dist/cli/schedule-command.d.ts.map +1 -1
- package/dist/cli/schedule-command.js.map +1 -1
- package/dist/cli/serve-command.d.ts +0 -1
- package/dist/cli/serve-command.d.ts.map +1 -1
- package/dist/cli/serve-command.js +12 -6
- package/dist/cli/serve-command.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli/telegram-command.d.ts.map +1 -1
- package/dist/cli/telegram-command.js.map +1 -1
- package/dist/cli/telemetria-command.d.ts.map +1 -1
- package/dist/cli/telemetria-command.js.map +1 -1
- package/dist/cli/undo-command.d.ts.map +1 -1
- package/dist/cli/undo-command.js.map +1 -1
- package/dist/cli/update-cli.d.ts +82 -0
- package/dist/cli/update-cli.d.ts.map +1 -0
- package/dist/cli/update-cli.js +372 -0
- package/dist/cli/update-cli.js.map +1 -0
- package/dist/cli/usage-command.d.ts.map +1 -1
- package/dist/cli/usage-command.js +75 -6
- package/dist/cli/usage-command.js.map +1 -1
- package/dist/cli/wiki-command.d.ts.map +1 -1
- package/dist/cli/wiki-command.js.map +1 -1
- package/dist/cli.d.ts +0 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/remote-session.d.ts.map +1 -1
- package/dist/client/remote-session.js.map +1 -1
- package/dist/client/transcript.d.ts.map +1 -1
- package/dist/client/transcript.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core/ada.d.ts +5 -0
- package/dist/core/ada.d.ts.map +1 -1
- package/dist/core/ada.js +5 -0
- package/dist/core/ada.js.map +1 -1
- package/dist/core/advisor/guarda.d.ts.map +1 -1
- package/dist/core/advisor/guarda.js.map +1 -1
- package/dist/core/advisor/runtime.d.ts.map +1 -1
- package/dist/core/advisor/runtime.js.map +1 -1
- package/dist/core/advisor/sesion.d.ts.map +1 -1
- package/dist/core/advisor/sesion.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +67 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +43 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents/loader.d.ts.map +1 -1
- package/dist/core/agents/loader.js.map +1 -1
- package/dist/core/appendonly/append-only-context.d.ts +118 -0
- package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
- package/dist/core/appendonly/append-only-context.js +256 -0
- package/dist/core/appendonly/append-only-context.js.map +1 -0
- package/dist/core/appendonly/auto.d.ts +30 -0
- package/dist/core/appendonly/auto.d.ts.map +1 -0
- package/dist/core/appendonly/auto.js +68 -0
- package/dist/core/appendonly/auto.js.map +1 -0
- package/dist/core/appendonly/extension.d.ts +29 -0
- package/dist/core/appendonly/extension.d.ts.map +1 -0
- package/dist/core/appendonly/extension.js +51 -0
- package/dist/core/appendonly/extension.js.map +1 -0
- package/dist/core/appendonly/index.d.ts +41 -0
- package/dist/core/appendonly/index.d.ts.map +1 -0
- package/dist/core/appendonly/index.js +42 -0
- package/dist/core/appendonly/index.js.map +1 -0
- package/dist/core/aprobacion/generados.d.ts.map +1 -1
- package/dist/core/aprobacion/generados.js.map +1 -1
- package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
- package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
- package/dist/core/aprobacion/politica.d.ts +1 -1
- package/dist/core/aprobacion/politica.d.ts.map +1 -1
- package/dist/core/aprobacion/politica.js.map +1 -1
- package/dist/core/arranque/atajos.d.ts.map +1 -1
- package/dist/core/arranque/atajos.js +20 -0
- package/dist/core/arranque/atajos.js.map +1 -1
- package/dist/core/audit/exportacion.d.ts.map +1 -1
- package/dist/core/audit/exportacion.js +5 -3
- package/dist/core/audit/exportacion.js.map +1 -1
- package/dist/core/audit/libro.d.ts +7 -0
- package/dist/core/audit/libro.d.ts.map +1 -1
- package/dist/core/audit/libro.js.map +1 -1
- package/dist/core/audit/registro-sesion.d.ts.map +1 -1
- package/dist/core/audit/registro-sesion.js.map +1 -1
- package/dist/core/audit/retencion.d.ts.map +1 -1
- package/dist/core/audit/retencion.js.map +1 -1
- package/dist/core/audit/rutas.d.ts.map +1 -1
- package/dist/core/audit/rutas.js.map +1 -1
- package/dist/core/auth-guidance.d.ts.map +1 -1
- package/dist/core/auth-guidance.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/banco/almacenamiento.d.ts.map +1 -1
- package/dist/core/banco/almacenamiento.js.map +1 -1
- package/dist/core/banco/analisis.d.ts.map +1 -1
- package/dist/core/banco/analisis.js.map +1 -1
- package/dist/core/banco/asides.d.ts +64 -0
- package/dist/core/banco/asides.d.ts.map +1 -0
- package/dist/core/banco/asides.js +113 -0
- package/dist/core/banco/asides.js.map +1 -0
- package/dist/core/banco/bloques.d.ts.map +1 -1
- package/dist/core/banco/bloques.js.map +1 -1
- package/dist/core/banco/cargas.d.ts.map +1 -1
- package/dist/core/banco/cargas.js.map +1 -1
- package/dist/core/banco/comparar.d.ts.map +1 -1
- package/dist/core/banco/comparar.js.map +1 -1
- package/dist/core/banco/cow-isolation.d.ts +74 -0
- package/dist/core/banco/cow-isolation.d.ts.map +1 -0
- package/dist/core/banco/cow-isolation.js +259 -0
- package/dist/core/banco/cow-isolation.js.map +1 -0
- package/dist/core/banco/ejecutar.d.ts.map +1 -1
- package/dist/core/banco/ejecutar.js.map +1 -1
- package/dist/core/banco/generar.d.ts.map +1 -1
- package/dist/core/banco/generar.js.map +1 -1
- package/dist/core/banco/mutaciones.d.ts.map +1 -1
- package/dist/core/banco/mutaciones.js.map +1 -1
- package/dist/core/banco/park-revive.d.ts +67 -0
- package/dist/core/banco/park-revive.d.ts.map +1 -0
- package/dist/core/banco/park-revive.js +130 -0
- package/dist/core/banco/park-revive.js.map +1 -0
- package/dist/core/banco/pruning.d.ts +48 -0
- package/dist/core/banco/pruning.d.ts.map +1 -0
- package/dist/core/banco/pruning.js +146 -0
- package/dist/core/banco/pruning.js.map +1 -0
- package/dist/core/banco/steering.d.ts +81 -0
- package/dist/core/banco/steering.d.ts.map +1 -0
- package/dist/core/banco/steering.js +96 -0
- package/dist/core/banco/steering.js.map +1 -0
- package/dist/core/banco/tipos.d.ts.map +1 -1
- package/dist/core/banco/tipos.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/blobs/almacen.d.ts.map +1 -1
- package/dist/core/blobs/almacen.js.map +1 -1
- package/dist/core/blobs/broker.d.ts +1 -0
- package/dist/core/blobs/broker.d.ts.map +1 -1
- package/dist/core/blobs/broker.js +1 -1
- package/dist/core/blobs/broker.js.map +1 -1
- package/dist/core/blobs/index.d.ts +1 -0
- package/dist/core/blobs/index.d.ts.map +1 -1
- package/dist/core/blobs/index.js +1 -0
- package/dist/core/blobs/index.js.map +1 -1
- package/dist/core/blobs/payload.d.ts.map +1 -1
- package/dist/core/blobs/payload.js.map +1 -1
- package/dist/core/blobs/proveedor.d.ts.map +1 -1
- package/dist/core/blobs/proveedor.js.map +1 -1
- package/dist/core/blobs/uploaders.d.ts +105 -0
- package/dist/core/blobs/uploaders.d.ts.map +1 -0
- package/dist/core/blobs/uploaders.js +224 -0
- package/dist/core/blobs/uploaders.js.map +1 -0
- package/dist/core/broker/broker.d.ts +54 -0
- package/dist/core/broker/broker.d.ts.map +1 -0
- package/dist/core/broker/broker.js +216 -0
- package/dist/core/broker/broker.js.map +1 -0
- package/dist/core/broker/index.d.ts +21 -0
- package/dist/core/broker/index.d.ts.map +1 -0
- package/dist/core/broker/index.js +33 -0
- package/dist/core/broker/index.js.map +1 -0
- package/dist/core/broker/ps.d.ts +20 -0
- package/dist/core/broker/ps.d.ts.map +1 -0
- package/dist/core/broker/ps.js +55 -0
- package/dist/core/broker/ps.js.map +1 -0
- package/dist/core/broker/types.d.ts +45 -0
- package/dist/core/broker/types.d.ts.map +1 -0
- package/dist/core/broker/types.js +19 -0
- package/dist/core/broker/types.js.map +1 -0
- package/dist/core/browser/cdp.d.ts.map +1 -1
- package/dist/core/browser/cdp.js.map +1 -1
- package/dist/core/browser/politica.d.ts.map +1 -1
- package/dist/core/browser/politica.js.map +1 -1
- package/dist/core/browser/sesion.d.ts.map +1 -1
- package/dist/core/browser/sesion.js.map +1 -1
- package/dist/core/browser/tools.d.ts.map +1 -1
- package/dist/core/browser/tools.js.map +1 -1
- package/dist/core/cache-stats.d.ts.map +1 -1
- package/dist/core/cache-stats.js.map +1 -1
- package/dist/core/capability/capability.test.d.ts +12 -0
- package/dist/core/capability/capability.test.d.ts.map +1 -0
- package/dist/core/capability/capability.test.js +258 -0
- package/dist/core/capability/capability.test.js.map +1 -0
- package/dist/core/capability/fs.d.ts +32 -0
- package/dist/core/capability/fs.d.ts.map +1 -0
- package/dist/core/capability/fs.js +106 -0
- package/dist/core/capability/fs.js.map +1 -0
- package/dist/core/capability/index.d.ts +68 -0
- package/dist/core/capability/index.d.ts.map +1 -0
- package/dist/core/capability/index.js +258 -0
- package/dist/core/capability/index.js.map +1 -0
- package/dist/core/capability/types.d.ts +168 -0
- package/dist/core/capability/types.d.ts.map +1 -0
- package/dist/core/capability/types.js +16 -0
- package/dist/core/capability/types.js.map +1 -0
- package/dist/core/carga-plugins/index.d.ts +49 -0
- package/dist/core/carga-plugins/index.d.ts.map +1 -0
- package/dist/core/carga-plugins/index.js +85 -0
- package/dist/core/carga-plugins/index.js.map +1 -0
- package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
- package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
- package/dist/core/carga-plugins/invalidacion.js +94 -0
- package/dist/core/carga-plugins/invalidacion.js.map +1 -0
- package/dist/core/carga-plugins/paralelo.d.ts +48 -0
- package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
- package/dist/core/carga-plugins/paralelo.js +47 -0
- package/dist/core/carga-plugins/paralelo.js.map +1 -0
- package/dist/core/colaboracion/autoresearch.d.ts +56 -0
- package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
- package/dist/core/colaboracion/autoresearch.js +95 -0
- package/dist/core/colaboracion/autoresearch.js.map +1 -0
- package/dist/core/colaboracion/index.d.ts +10 -0
- package/dist/core/colaboracion/index.d.ts.map +1 -0
- package/dist/core/colaboracion/index.js +7 -0
- package/dist/core/colaboracion/index.js.map +1 -0
- package/dist/core/colaboracion/kernels.d.ts +63 -0
- package/dist/core/colaboracion/kernels.d.ts.map +1 -0
- package/dist/core/colaboracion/kernels.js +99 -0
- package/dist/core/colaboracion/kernels.js.map +1 -0
- package/dist/core/colaboracion/rele/index.d.ts +8 -0
- package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
- package/dist/core/colaboracion/rele/index.js +6 -0
- package/dist/core/colaboracion/rele/index.js.map +1 -0
- package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
- package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
- package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
- package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
- package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
- package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
- package/dist/core/colaboracion/rele/suscriptor.js +173 -0
- package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
- package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
- package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
- package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
- package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
- package/dist/core/commits/agentic.d.ts +101 -0
- package/dist/core/commits/agentic.d.ts.map +1 -0
- package/dist/core/commits/agentic.js +268 -0
- package/dist/core/commits/agentic.js.map +1 -0
- package/dist/core/commits/changelog.d.ts +37 -0
- package/dist/core/commits/changelog.d.ts.map +1 -0
- package/dist/core/commits/changelog.js +155 -0
- package/dist/core/commits/changelog.js.map +1 -0
- package/dist/core/commits/diff.d.ts.map +1 -0
- package/dist/core/commits/diff.js.map +1 -0
- package/dist/core/commits/git.d.ts +43 -0
- package/dist/core/commits/git.d.ts.map +1 -0
- package/dist/core/commits/git.js +61 -0
- package/dist/core/commits/git.js.map +1 -0
- package/dist/core/commits/split.d.ts +45 -0
- package/dist/core/commits/split.d.ts.map +1 -0
- package/dist/core/commits/split.js +128 -0
- package/dist/core/commits/split.js.map +1 -0
- package/dist/core/compactacion/comandos.d.ts +53 -0
- package/dist/core/compactacion/comandos.d.ts.map +1 -0
- package/dist/core/compactacion/comandos.js +155 -0
- package/dist/core/compactacion/comandos.js.map +1 -0
- package/dist/core/compactacion/extension.d.ts +28 -0
- package/dist/core/compactacion/extension.d.ts.map +1 -0
- package/dist/core/compactacion/extension.js +159 -0
- package/dist/core/compactacion/extension.js.map +1 -0
- package/dist/core/compactacion/handoff.d.ts +61 -0
- package/dist/core/compactacion/handoff.d.ts.map +1 -0
- package/dist/core/compactacion/handoff.js +139 -0
- package/dist/core/compactacion/handoff.js.map +1 -0
- package/dist/core/compactacion/index.d.ts +15 -0
- package/dist/core/compactacion/index.d.ts.map +1 -0
- package/dist/core/compactacion/index.js +15 -0
- package/dist/core/compactacion/index.js.map +1 -0
- package/dist/core/compactacion/prune.d.ts +38 -0
- package/dist/core/compactacion/prune.d.ts.map +1 -0
- package/dist/core/compactacion/prune.js +81 -0
- package/dist/core/compactacion/prune.js.map +1 -0
- package/dist/core/compactacion/shake.d.ts +40 -0
- package/dist/core/compactacion/shake.d.ts.map +1 -0
- package/dist/core/compactacion/shake.js +106 -0
- package/dist/core/compactacion/shake.js.map +1 -0
- package/dist/core/compactacion/tipos.d.ts +54 -0
- package/dist/core/compactacion/tipos.d.ts.map +1 -0
- package/dist/core/compactacion/tipos.js +44 -0
- package/dist/core/compactacion/tipos.js.map +1 -0
- package/dist/core/compactar/index.d.ts.map +1 -1
- package/dist/core/compactar/index.js.map +1 -1
- package/dist/core/compactar/registro-denso.d.ts.map +1 -1
- package/dist/core/compactar/registro-denso.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/index.js.map +1 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/computer/captura.d.ts.map +1 -1
- package/dist/core/computer/captura.js.map +1 -1
- package/dist/core/computer/driver.d.ts.map +1 -1
- package/dist/core/computer/driver.js.map +1 -1
- package/dist/core/computer/motor/actions.d.ts.map +1 -1
- package/dist/core/computer/motor/actions.js.map +1 -1
- package/dist/core/computer/motor/bridge.d.ts +2 -2
- package/dist/core/computer/motor/bridge.d.ts.map +1 -1
- package/dist/core/computer/motor/bridge.js.map +1 -1
- package/dist/core/computer/motor/cdp.d.ts.map +1 -1
- package/dist/core/computer/motor/cdp.js.map +1 -1
- package/dist/core/computer/motor/config.d.ts.map +1 -1
- package/dist/core/computer/motor/config.js.map +1 -1
- package/dist/core/computer/motor/contract.d.ts.map +1 -1
- package/dist/core/computer/motor/contract.js.map +1 -1
- package/dist/core/computer/motor/note.d.ts.map +1 -1
- package/dist/core/computer/motor/note.js.map +1 -1
- package/dist/core/computer/motor/outline.d.ts.map +1 -1
- package/dist/core/computer/motor/outline.js.map +1 -1
- package/dist/core/computer/motor/output.d.ts.map +1 -1
- package/dist/core/computer/motor/output.js.map +1 -1
- package/dist/core/computer/motor/permissions.d.ts.map +1 -1
- package/dist/core/computer/motor/permissions.js.map +1 -1
- package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/architecture.js.map +1 -1
- package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/coerce.js.map +1 -1
- package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/index.js.map +1 -1
- package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
- package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
- package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
- package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
- package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
- package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
- package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/types.js.map +1 -1
- package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
- package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
- package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
- package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
- package/dist/core/computer/motor/root-selection.js.map +1 -1
- package/dist/core/computer/motor/runtime.d.ts.map +1 -1
- package/dist/core/computer/motor/runtime.js.map +1 -1
- package/dist/core/computer/motor/state.d.ts.map +1 -1
- package/dist/core/computer/motor/state.js.map +1 -1
- package/dist/core/computer/motor/view.d.ts.map +1 -1
- package/dist/core/computer/motor/view.js.map +1 -1
- package/dist/core/computer/motor-ada.d.ts.map +1 -1
- package/dist/core/computer/motor-ada.js.map +1 -1
- package/dist/core/computer/politica.d.ts.map +1 -1
- package/dist/core/computer/politica.js.map +1 -1
- package/dist/core/computer/tools.d.ts.map +1 -1
- package/dist/core/computer/tools.js.map +1 -1
- package/dist/core/config/quarantine.d.ts +57 -0
- package/dist/core/config/quarantine.d.ts.map +1 -0
- package/dist/core/config/quarantine.js +161 -0
- package/dist/core/config/quarantine.js.map +1 -0
- package/dist/core/config-viva/ambito.d.ts +46 -0
- package/dist/core/config-viva/ambito.d.ts.map +1 -0
- package/dist/core/config-viva/ambito.js +62 -0
- package/dist/core/config-viva/ambito.js.map +1 -0
- package/dist/core/config-viva/cache-negativa.d.ts +50 -0
- package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
- package/dist/core/config-viva/cache-negativa.js +78 -0
- package/dist/core/config-viva/cache-negativa.js.map +1 -0
- package/dist/core/config-viva/headers-vivos.d.ts +41 -0
- package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
- package/dist/core/config-viva/headers-vivos.js +43 -0
- package/dist/core/config-viva/headers-vivos.js.map +1 -0
- package/dist/core/config-viva/index.d.ts +16 -0
- package/dist/core/config-viva/index.d.ts.map +1 -0
- package/dist/core/config-viva/index.js +16 -0
- package/dist/core/config-viva/index.js.map +1 -0
- package/dist/core/config-viva/proveedor.d.ts +48 -0
- package/dist/core/config-viva/proveedor.d.ts.map +1 -0
- package/dist/core/config-viva/proveedor.js +78 -0
- package/dist/core/config-viva/proveedor.js.map +1 -0
- package/dist/core/context-breakdown.d.ts.map +1 -1
- package/dist/core/context-breakdown.js.map +1 -1
- package/dist/core/credenciales/cliente.d.ts.map +1 -1
- package/dist/core/credenciales/cliente.js.map +1 -1
- package/dist/core/credenciales/pool.d.ts +36 -1
- package/dist/core/credenciales/pool.d.ts.map +1 -1
- package/dist/core/credenciales/pool.js +56 -7
- package/dist/core/credenciales/pool.js.map +1 -1
- package/dist/core/credenciales/ranking.d.ts +56 -0
- package/dist/core/credenciales/ranking.d.ts.map +1 -0
- package/dist/core/credenciales/ranking.js +94 -0
- package/dist/core/credenciales/ranking.js.map +1 -0
- package/dist/core/credenciales/ratelimit.d.ts +54 -0
- package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
- package/dist/core/credenciales/ratelimit.js +116 -0
- package/dist/core/credenciales/ratelimit.js.map +1 -0
- package/dist/core/credenciales/reposo.d.ts.map +1 -1
- package/dist/core/credenciales/reposo.js.map +1 -1
- package/dist/core/credenciales/servidor.d.ts +8 -0
- package/dist/core/credenciales/servidor.d.ts.map +1 -1
- package/dist/core/credenciales/servidor.js +9 -1
- package/dist/core/credenciales/servidor.js.map +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
- package/dist/core/descubrimiento/comandos.js.map +1 -1
- package/dist/core/descubrimiento/mcp.d.ts +12 -0
- package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
- package/dist/core/descubrimiento/mcp.js +32 -0
- package/dist/core/descubrimiento/mcp.js.map +1 -1
- package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
- package/dist/core/descubrimiento/reglas.js.map +1 -1
- package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
- package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
- package/dist/core/descubrimiento/runtimes/index.js +109 -0
- package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
- package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
- package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
- package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
- package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
- package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
- package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
- package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
- package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
- package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
- package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
- package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
- package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
- package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
- package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
- package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
- package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
- package/dist/core/descubrimiento/skills.d.ts.map +1 -1
- package/dist/core/descubrimiento/skills.js.map +1 -1
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/diagnostics.js.map +1 -1
- package/dist/core/dificultad/clasificador.d.ts.map +1 -1
- package/dist/core/dificultad/clasificador.js.map +1 -1
- package/dist/core/edicion/diario.d.ts.map +1 -1
- package/dist/core/edicion/diario.js.map +1 -1
- package/dist/core/edicion/hashline.d.ts.map +1 -1
- package/dist/core/edicion/hashline.js.map +1 -1
- package/dist/core/edicion/hueco.d.ts.map +1 -1
- package/dist/core/edicion/hueco.js.map +1 -1
- package/dist/core/edicion/ipynb.d.ts +51 -0
- package/dist/core/edicion/ipynb.d.ts.map +1 -0
- package/dist/core/edicion/ipynb.js +110 -0
- package/dist/core/edicion/ipynb.js.map +1 -0
- package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
- package/dist/core/edicion/limpiar-carga.js.map +1 -1
- package/dist/core/edicion/observador.d.ts.map +1 -1
- package/dist/core/edicion/observador.js.map +1 -1
- package/dist/core/edicion/parecido.d.ts.map +1 -1
- package/dist/core/edicion/parecido.js.map +1 -1
- package/dist/core/edicion/parseo.d.ts.map +1 -1
- package/dist/core/edicion/parseo.js.map +1 -1
- package/dist/core/edicion/portapapeles.d.ts +28 -0
- package/dist/core/edicion/portapapeles.d.ts.map +1 -0
- package/dist/core/edicion/portapapeles.js +49 -0
- package/dist/core/edicion/portapapeles.js.map +1 -0
- package/dist/core/edicion/reparacion.d.ts.map +1 -1
- package/dist/core/edicion/reparacion.js.map +1 -1
- package/dist/core/edicion/rutas-difusas.d.ts +44 -0
- package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
- package/dist/core/edicion/rutas-difusas.js +93 -0
- package/dist/core/edicion/rutas-difusas.js.map +1 -0
- package/dist/core/edicion/sangria.d.ts.map +1 -1
- package/dist/core/edicion/sangria.js.map +1 -1
- package/dist/core/edicion/tipos.d.ts.map +1 -1
- package/dist/core/edicion/tipos.js.map +1 -1
- package/dist/core/engine-personality.d.ts.map +1 -1
- package/dist/core/engine-personality.js.map +1 -1
- package/dist/core/errores/proveedor.d.ts.map +1 -1
- package/dist/core/errores/proveedor.js.map +1 -1
- package/dist/core/estructural/buscar.d.ts.map +1 -1
- package/dist/core/estructural/buscar.js.map +1 -1
- package/dist/core/estructural/editar.d.ts.map +1 -1
- package/dist/core/estructural/editar.js.map +1 -1
- package/dist/core/estructural/tools.d.ts.map +1 -1
- package/dist/core/estructural/tools.js.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +183 -13
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
- package/dist/core/extensiones/suplantacion.js.map +1 -1
- package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
- package/dist/core/extensiones/vigilancia.js.map +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.map +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/gc/archivo-frio.d.ts +33 -0
- package/dist/core/gc/archivo-frio.d.ts.map +1 -0
- package/dist/core/gc/archivo-frio.js +152 -0
- package/dist/core/gc/archivo-frio.js.map +1 -0
- package/dist/core/gc/blobs-gc.d.ts +25 -0
- package/dist/core/gc/blobs-gc.d.ts.map +1 -0
- package/dist/core/gc/blobs-gc.js +143 -0
- package/dist/core/gc/blobs-gc.js.map +1 -0
- package/dist/core/gc/index.d.ts +42 -0
- package/dist/core/gc/index.d.ts.map +1 -0
- package/dist/core/gc/index.js +50 -0
- package/dist/core/gc/index.js.map +1 -0
- package/dist/core/gc/lock.d.ts +19 -0
- package/dist/core/gc/lock.d.ts.map +1 -0
- package/dist/core/gc/lock.js +48 -0
- package/dist/core/gc/lock.js.map +1 -0
- package/dist/core/gc/reconciliacion.d.ts +19 -0
- package/dist/core/gc/reconciliacion.d.ts.map +1 -0
- package/dist/core/gc/reconciliacion.js +102 -0
- package/dist/core/gc/reconciliacion.js.map +1 -0
- package/dist/core/gc/wal.d.ts +15 -0
- package/dist/core/gc/wal.d.ts.map +1 -0
- package/dist/core/gc/wal.js +44 -0
- package/dist/core/gc/wal.js.map +1 -0
- package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
- package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
- package/dist/core/harness/refine.d.ts.map +1 -1
- package/dist/core/harness/refine.js.map +1 -1
- package/dist/core/harness/store.d.ts.map +1 -1
- package/dist/core/harness/store.js.map +1 -1
- package/dist/core/higiene/index.d.ts +8 -0
- package/dist/core/higiene/index.d.ts.map +1 -0
- package/dist/core/higiene/index.js +8 -0
- package/dist/core/higiene/index.js.map +1 -0
- package/dist/core/higiene/managed-timers.d.ts +19 -0
- package/dist/core/higiene/managed-timers.d.ts.map +1 -0
- package/dist/core/higiene/managed-timers.js +68 -0
- package/dist/core/higiene/managed-timers.js.map +1 -0
- package/dist/core/higiene/race-handler.d.ts +7 -0
- package/dist/core/higiene/race-handler.d.ts.map +1 -0
- package/dist/core/higiene/race-handler.js +32 -0
- package/dist/core/higiene/race-handler.js.map +1 -0
- package/dist/core/higiene/withHostGuard.d.ts +27 -0
- package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
- package/dist/core/higiene/withHostGuard.js +79 -0
- package/dist/core/higiene/withHostGuard.js.map +1 -0
- package/dist/core/hooks/contract.d.ts.map +1 -1
- package/dist/core/hooks/contract.js.map +1 -1
- package/dist/core/hooks/runner.d.ts.map +1 -1
- package/dist/core/hooks/runner.js.map +1 -1
- package/dist/core/hooks/session-hooks.d.ts.map +1 -1
- package/dist/core/hooks/session-hooks.js.map +1 -1
- package/dist/core/hooks-ts/cargador.d.ts +29 -0
- package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
- package/dist/core/hooks-ts/cargador.js +51 -0
- package/dist/core/hooks-ts/cargador.js.map +1 -0
- package/dist/core/hooks-ts/index.d.ts +25 -0
- package/dist/core/hooks-ts/index.d.ts.map +1 -0
- package/dist/core/hooks-ts/index.js +25 -0
- package/dist/core/hooks-ts/index.js.map +1 -0
- package/dist/core/hooks-ts/runner.d.ts +40 -0
- package/dist/core/hooks-ts/runner.d.ts.map +1 -0
- package/dist/core/hooks-ts/runner.js +95 -0
- package/dist/core/hooks-ts/runner.js.map +1 -0
- package/dist/core/hooks-ts/tipos.d.ts +69 -0
- package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
- package/dist/core/hooks-ts/tipos.js +90 -0
- package/dist/core/hooks-ts/tipos.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/importar/formatos.d.ts.map +1 -1
- package/dist/core/importar/formatos.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/interactivo/deteccion.d.ts.map +1 -1
- package/dist/core/interactivo/deteccion.js.map +1 -1
- package/dist/core/interactivo/sesion.d.ts.map +1 -1
- package/dist/core/interactivo/sesion.js.map +1 -1
- package/dist/core/interactivo/tools.d.ts.map +1 -1
- package/dist/core/interactivo/tools.js.map +1 -1
- package/dist/core/keybindings.d.ts +170 -170
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lectura/mapa.d.ts.map +1 -1
- package/dist/core/lectura/mapa.js.map +1 -1
- package/dist/core/lectura/pdf.d.ts.map +1 -1
- package/dist/core/lectura/pdf.js.map +1 -1
- package/dist/core/lectura/sniffer.d.ts +54 -0
- package/dist/core/lectura/sniffer.d.ts.map +1 -0
- package/dist/core/lectura/sniffer.js +106 -0
- package/dist/core/lectura/sniffer.js.map +1 -0
- package/dist/core/limpieza/comprobadores.d.ts +16 -2
- package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
- package/dist/core/limpieza/comprobadores.js +200 -6
- package/dist/core/limpieza/comprobadores.js.map +1 -1
- package/dist/core/limpieza/flujo.d.ts +36 -0
- package/dist/core/limpieza/flujo.d.ts.map +1 -0
- package/dist/core/limpieza/flujo.js +89 -0
- package/dist/core/limpieza/flujo.js.map +1 -0
- package/dist/core/limpieza/parseo.d.ts.map +1 -1
- package/dist/core/limpieza/parseo.js.map +1 -1
- package/dist/core/limpieza/peso.d.ts +17 -0
- package/dist/core/limpieza/peso.d.ts.map +1 -0
- package/dist/core/limpieza/peso.js +52 -0
- package/dist/core/limpieza/peso.js.map +1 -0
- package/dist/core/limpieza/pool.d.ts +44 -0
- package/dist/core/limpieza/pool.d.ts.map +1 -0
- package/dist/core/limpieza/pool.js +123 -0
- package/dist/core/limpieza/pool.js.map +1 -0
- package/dist/core/limpieza/reparacion.d.ts +19 -2
- package/dist/core/limpieza/reparacion.d.ts.map +1 -1
- package/dist/core/limpieza/reparacion.js +95 -8
- package/dist/core/limpieza/reparacion.js.map +1 -1
- package/dist/core/limpieza/tablero.d.ts +47 -0
- package/dist/core/limpieza/tablero.d.ts.map +1 -0
- package/dist/core/limpieza/tablero.js +78 -0
- package/dist/core/limpieza/tablero.js.map +1 -0
- package/dist/core/limpieza/tipos.d.ts +25 -0
- package/dist/core/limpieza/tipos.d.ts.map +1 -1
- package/dist/core/limpieza/tipos.js.map +1 -1
- package/dist/core/lsp/cliente.d.ts +7 -0
- package/dist/core/lsp/cliente.d.ts.map +1 -1
- package/dist/core/lsp/cliente.js +4 -2
- package/dist/core/lsp/cliente.js.map +1 -1
- package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
- package/dist/core/lsp/descubrimiento.js.map +1 -1
- package/dist/core/lsp/ediciones.d.ts.map +1 -1
- package/dist/core/lsp/ediciones.js.map +1 -1
- package/dist/core/lsp/extension.d.ts +9 -0
- package/dist/core/lsp/extension.d.ts.map +1 -1
- package/dist/core/lsp/extension.js +60 -4
- package/dist/core/lsp/extension.js.map +1 -1
- package/dist/core/lsp/formato.d.ts +72 -0
- package/dist/core/lsp/formato.d.ts.map +1 -0
- package/dist/core/lsp/formato.js +117 -0
- package/dist/core/lsp/formato.js.map +1 -0
- package/dist/core/lsp/tools.d.ts +3 -3
- package/dist/core/lsp/tools.d.ts.map +1 -1
- package/dist/core/lsp/tools.js.map +1 -1
- package/dist/core/lsp/writethrough.d.ts +165 -0
- package/dist/core/lsp/writethrough.d.ts.map +1 -0
- package/dist/core/lsp/writethrough.js +282 -0
- package/dist/core/lsp/writethrough.js.map +1 -0
- package/dist/core/marketplace/catalogo.d.ts +32 -0
- package/dist/core/marketplace/catalogo.d.ts.map +1 -0
- package/dist/core/marketplace/catalogo.js +122 -0
- package/dist/core/marketplace/catalogo.js.map +1 -0
- package/dist/core/marketplace/doctor.d.ts +47 -0
- package/dist/core/marketplace/doctor.d.ts.map +1 -0
- package/dist/core/marketplace/doctor.js +155 -0
- package/dist/core/marketplace/doctor.js.map +1 -0
- package/dist/core/marketplace/features.d.ts +22 -0
- package/dist/core/marketplace/features.d.ts.map +1 -0
- package/dist/core/marketplace/features.js +70 -0
- package/dist/core/marketplace/features.js.map +1 -0
- package/dist/core/marketplace/index.d.ts +33 -0
- package/dist/core/marketplace/index.d.ts.map +1 -0
- package/dist/core/marketplace/index.js +33 -0
- package/dist/core/marketplace/index.js.map +1 -0
- package/dist/core/marketplace/instalar.d.ts +27 -0
- package/dist/core/marketplace/instalar.d.ts.map +1 -0
- package/dist/core/marketplace/instalar.js +50 -0
- package/dist/core/marketplace/instalar.js.map +1 -0
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/manager.d.ts.map +1 -1
- package/dist/core/mcp/manager.js.map +1 -1
- package/dist/core/mcp/oauth.d.ts +138 -0
- package/dist/core/mcp/oauth.d.ts.map +1 -0
- package/dist/core/mcp/oauth.js +348 -0
- package/dist/core/mcp/oauth.js.map +1 -0
- package/dist/core/mcp/tools.d.ts.map +1 -1
- package/dist/core/mcp/tools.js.map +1 -1
- package/dist/core/memoria/almacen.d.ts +56 -0
- package/dist/core/memoria/almacen.d.ts.map +1 -0
- package/dist/core/memoria/almacen.js +214 -0
- package/dist/core/memoria/almacen.js.map +1 -0
- package/dist/core/memoria/dr/respaldo.d.ts +34 -0
- package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
- package/dist/core/memoria/dr/respaldo.js +133 -0
- package/dist/core/memoria/dr/respaldo.js.map +1 -0
- package/dist/core/memoria/embeddings.d.ts +21 -0
- package/dist/core/memoria/embeddings.d.ts.map +1 -0
- package/dist/core/memoria/embeddings.js +87 -0
- package/dist/core/memoria/embeddings.js.map +1 -0
- package/dist/core/memoria/grafo.d.ts +56 -0
- package/dist/core/memoria/grafo.d.ts.map +1 -0
- package/dist/core/memoria/grafo.js +143 -0
- package/dist/core/memoria/grafo.js.map +1 -0
- package/dist/core/memoria/redaccion.d.ts +32 -0
- package/dist/core/memoria/redaccion.d.ts.map +1 -0
- package/dist/core/memoria/redaccion.js +76 -0
- package/dist/core/memoria/redaccion.js.map +1 -0
- package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
- package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
- package/dist/core/memoria/servidor/almacen-json.js +90 -0
- package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
- package/dist/core/memoria/servidor/servidor.d.ts +43 -0
- package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
- package/dist/core/memoria/servidor/servidor.js +195 -0
- package/dist/core/memoria/servidor/servidor.js.map +1 -0
- package/dist/core/memoria/servidor/tipos.d.ts +44 -0
- package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
- package/dist/core/memoria/servidor/tipos.js +12 -0
- package/dist/core/memoria/servidor/tipos.js.map +1 -0
- package/dist/core/memoria/tipos.d.ts +63 -0
- package/dist/core/memoria/tipos.d.ts.map +1 -0
- package/dist/core/memoria/tipos.js +14 -0
- package/dist/core/memoria/tipos.js.map +1 -0
- package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
- package/dist/core/memory-engine/audit-export.js.map +1 -1
- package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
- package/dist/core/memory-engine/audit-indice.js.map +1 -1
- package/dist/core/memory-engine/audit.d.ts.map +1 -1
- package/dist/core/memory-engine/audit.js.map +1 -1
- package/dist/core/memory-engine/engine.d.ts +7 -0
- package/dist/core/memory-engine/engine.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/memory-engine/keychain.d.ts.map +1 -1
- package/dist/core/memory-engine/keychain.js.map +1 -1
- package/dist/core/memory-engine/observation-store.d.ts +1 -0
- package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
- package/dist/core/memory-engine/observation-store.js.map +1 -1
- package/dist/core/memory-engine/refinements.d.ts.map +1 -1
- package/dist/core/memory-engine/refinements.js.map +1 -1
- package/dist/core/memory-engine/scanner.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
- package/dist/core/memory-engine/session-indexer.js.map +1 -1
- package/dist/core/memory-engine/tools.d.ts.map +1 -1
- package/dist/core/memory-engine/tools.js.map +1 -1
- 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.map +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/metaharness/cli.d.ts +19 -0
- package/dist/core/metaharness/cli.d.ts.map +1 -0
- package/dist/core/metaharness/cli.js +171 -0
- package/dist/core/metaharness/cli.js.map +1 -0
- package/dist/core/metaharness/comparar.d.ts +21 -0
- package/dist/core/metaharness/comparar.d.ts.map +1 -0
- package/dist/core/metaharness/comparar.js +64 -0
- package/dist/core/metaharness/comparar.js.map +1 -0
- package/dist/core/metaharness/ejecutar.d.ts +70 -0
- package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
- package/dist/core/metaharness/ejecutar.js +249 -0
- package/dist/core/metaharness/ejecutar.js.map +1 -0
- package/dist/core/metaharness/tipos.d.ts +142 -0
- package/dist/core/metaharness/tipos.d.ts.map +1 -0
- package/dist/core/metaharness/tipos.js +17 -0
- package/dist/core/metaharness/tipos.js.map +1 -0
- package/dist/core/model-config.d.ts +8 -8
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/muestreo-restringido.d.ts.map +1 -1
- package/dist/core/muestreo-restringido.js.map +1 -1
- package/dist/core/orphan-process-journal.d.ts.map +1 -1
- package/dist/core/orphan-process-journal.js.map +1 -1
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/parche/aplicar.d.ts +19 -0
- package/dist/core/parche/aplicar.d.ts.map +1 -0
- package/dist/core/parche/aplicar.js +243 -0
- package/dist/core/parche/aplicar.js.map +1 -0
- package/dist/core/parche/parser.d.ts +38 -0
- package/dist/core/parche/parser.d.ts.map +1 -0
- package/dist/core/parche/parser.js +217 -0
- package/dist/core/parche/parser.js.map +1 -0
- package/dist/core/parche/registro.d.ts +12 -0
- package/dist/core/parche/registro.d.ts.map +1 -0
- package/dist/core/parche/registro.js +58 -0
- package/dist/core/parche/registro.js.map +1 -0
- package/dist/core/perfiles/index.d.ts +22 -0
- package/dist/core/perfiles/index.d.ts.map +1 -0
- package/dist/core/perfiles/index.js +21 -0
- package/dist/core/perfiles/index.js.map +1 -0
- package/dist/core/perfiles/resolver.d.ts +51 -0
- package/dist/core/perfiles/resolver.d.ts.map +1 -0
- package/dist/core/perfiles/resolver.js +329 -0
- package/dist/core/perfiles/resolver.js.map +1 -0
- package/dist/core/perfiles/tipos.d.ts +69 -0
- package/dist/core/perfiles/tipos.d.ts.map +1 -0
- package/dist/core/perfiles/tipos.js +98 -0
- package/dist/core/perfiles/tipos.js.map +1 -0
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
- package/dist/core/privacidad/categorias-especiales.js +4 -0
- package/dist/core/privacidad/categorias-especiales.js.map +1 -1
- package/dist/core/privacidad/tapar.d.ts.map +1 -1
- package/dist/core/privacidad/tapar.js.map +1 -1
- package/dist/core/project-memory.d.ts.map +1 -1
- package/dist/core/project-memory.js.map +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
- package/dist/core/prompt-cache/diagnostics.js.map +1 -1
- package/dist/core/prompt-cache/index.d.ts.map +1 -1
- package/dist/core/prompt-cache/index.js.map +1 -1
- package/dist/core/prompt-cache/payload.d.ts.map +1 -1
- package/dist/core/prompt-cache/payload.js.map +1 -1
- package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
- package/dist/core/prompt-cache/stabilize.js.map +1 -1
- package/dist/core/prompt-cache/stats.d.ts.map +1 -1
- package/dist/core/prompt-cache/stats.js.map +1 -1
- package/dist/core/prompt-eleccion.d.ts.map +1 -1
- package/dist/core/prompt-eleccion.js.map +1 -1
- package/dist/core/prompt-optimizer.d.ts.map +1 -1
- package/dist/core/prompt-optimizer.js.map +1 -1
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/prompts/montar.d.ts.map +1 -1
- package/dist/core/prompts/montar.js.map +1 -1
- package/dist/core/prompts/plantilla.d.ts.map +1 -1
- package/dist/core/prompts/plantilla.js.map +1 -1
- package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
- package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
- package/dist/core/proveedores-registry/definiciones.js +22 -0
- package/dist/core/proveedores-registry/definiciones.js.map +1 -0
- package/dist/core/proveedores-registry/index.d.ts +14 -0
- package/dist/core/proveedores-registry/index.d.ts.map +1 -0
- package/dist/core/proveedores-registry/index.js +13 -0
- package/dist/core/proveedores-registry/index.js.map +1 -0
- package/dist/core/proveedores-registry/resolver.d.ts +25 -0
- package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
- package/dist/core/proveedores-registry/resolver.js +69 -0
- package/dist/core/proveedores-registry/resolver.js.map +1 -0
- package/dist/core/proveedores-registry/tipos.d.ts +47 -0
- package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
- package/dist/core/proveedores-registry/tipos.js +15 -0
- package/dist/core/proveedores-registry/tipos.js.map +1 -0
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/radius.d.ts.map +1 -1
- package/dist/core/radius.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/remoto/destino.d.ts.map +1 -1
- package/dist/core/remoto/destino.js.map +1 -1
- package/dist/core/remoto/ejecutor.d.ts.map +1 -1
- package/dist/core/remoto/ejecutor.js.map +1 -1
- package/dist/core/remoto/ficheros.d.ts.map +1 -1
- package/dist/core/remoto/ficheros.js.map +1 -1
- package/dist/core/remoto/registro-extension.d.ts.map +1 -1
- package/dist/core/remoto/registro-extension.js.map +1 -1
- package/dist/core/remoto/tools.d.ts.map +1 -1
- package/dist/core/remoto/tools.js.map +1 -1
- package/dist/core/reparacion/index.d.ts +2 -0
- package/dist/core/reparacion/index.d.ts.map +1 -0
- package/dist/core/reparacion/index.js +2 -0
- package/dist/core/reparacion/index.js.map +1 -0
- package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
- package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
- package/dist/core/reparacion/reparar-hunk.js +139 -0
- package/dist/core/reparacion/reparar-hunk.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +13 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +7 -4
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/revision/dispositions.d.ts +86 -0
- package/dist/core/revision/dispositions.d.ts.map +1 -0
- package/dist/core/revision/dispositions.js +137 -0
- package/dist/core/revision/dispositions.js.map +1 -0
- package/dist/core/revision/hallazgo.d.ts.map +1 -1
- package/dist/core/revision/hallazgo.js.map +1 -1
- package/dist/core/revision/procedencia.d.ts +63 -0
- package/dist/core/revision/procedencia.d.ts.map +1 -0
- package/dist/core/revision/procedencia.js +72 -0
- package/dist/core/revision/procedencia.js.map +1 -0
- package/dist/core/revision/publicar.d.ts +26 -0
- package/dist/core/revision/publicar.d.ts.map +1 -0
- package/dist/core/revision/publicar.js +34 -0
- package/dist/core/revision/publicar.js.map +1 -0
- package/dist/core/revision/revisor.d.ts.map +1 -1
- package/dist/core/revision/revisor.js.map +1 -1
- package/dist/core/revision/sarif.d.ts.map +1 -1
- package/dist/core/revision/sarif.js.map +1 -1
- package/dist/core/router-uris/index.d.ts +12 -0
- package/dist/core/router-uris/index.d.ts.map +1 -0
- package/dist/core/router-uris/index.js +12 -0
- package/dist/core/router-uris/index.js.map +1 -0
- package/dist/core/router-uris/router.d.ts +2 -0
- package/dist/core/router-uris/router.d.ts.map +1 -0
- package/dist/core/router-uris/router.js +2 -0
- package/dist/core/router-uris/router.js.map +1 -0
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/rutas/envoltorio.d.ts +20 -0
- package/dist/core/rutas/envoltorio.d.ts.map +1 -0
- package/dist/core/rutas/envoltorio.js +48 -0
- package/dist/core/rutas/envoltorio.js.map +1 -0
- package/dist/core/rutas/index.d.ts +11 -0
- package/dist/core/rutas/index.d.ts.map +1 -0
- package/dist/core/rutas/index.js +11 -0
- package/dist/core/rutas/index.js.map +1 -0
- package/dist/core/rutas/router.d.ts +82 -0
- package/dist/core/rutas/router.d.ts.map +1 -0
- package/dist/core/rutas/router.js +161 -0
- package/dist/core/rutas/router.js.map +1 -0
- package/dist/core/scheduler/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler/scheduler.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/secretos/extension.d.ts +31 -0
- package/dist/core/secretos/extension.d.ts.map +1 -0
- package/dist/core/secretos/extension.js +64 -0
- package/dist/core/secretos/extension.js.map +1 -0
- package/dist/core/secretos/index.d.ts +75 -0
- package/dist/core/secretos/index.d.ts.map +1 -0
- package/dist/core/secretos/index.js +385 -0
- package/dist/core/secretos/index.js.map +1 -0
- package/dist/core/secretos/message-transform.d.ts +44 -0
- package/dist/core/secretos/message-transform.d.ts.map +1 -0
- package/dist/core/secretos/message-transform.js +246 -0
- package/dist/core/secretos/message-transform.js.map +1 -0
- package/dist/core/secretos/obfuscator.d.ts +30 -0
- package/dist/core/secretos/obfuscator.d.ts.map +1 -0
- package/dist/core/secretos/obfuscator.js +1182 -0
- package/dist/core/secretos/obfuscator.js.map +1 -0
- package/dist/core/secretos/placeholder-scan.d.ts +96 -0
- package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
- package/dist/core/secretos/placeholder-scan.js +433 -0
- package/dist/core/secretos/placeholder-scan.js.map +1 -0
- package/dist/core/secretos/placeholder.d.ts +95 -0
- package/dist/core/secretos/placeholder.d.ts.map +1 -0
- package/dist/core/secretos/placeholder.js +283 -0
- package/dist/core/secretos/placeholder.js.map +1 -0
- package/dist/core/secretos/regex.d.ts +3 -0
- package/dist/core/secretos/regex.d.ts.map +1 -0
- package/dist/core/secretos/regex.js +19 -0
- package/dist/core/secretos/regex.js.map +1 -0
- package/dist/core/secretos/replacement.d.ts +83 -0
- package/dist/core/secretos/replacement.d.ts.map +1 -0
- package/dist/core/secretos/replacement.js +211 -0
- package/dist/core/secretos/replacement.js.map +1 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
- package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
- package/dist/core/sesion/journal-tree.d.ts +73 -0
- package/dist/core/sesion/journal-tree.d.ts.map +1 -0
- package/dist/core/sesion/journal-tree.js +241 -0
- package/dist/core/sesion/journal-tree.js.map +1 -0
- package/dist/core/sesion/turn-recovery.d.ts +48 -0
- package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
- package/dist/core/sesion/turn-recovery.js +182 -0
- package/dist/core/sesion/turn-recovery.js.map +1 -0
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts.map +1 -1
- package/dist/core/settings-diagnostics.js.map +1 -1
- package/dist/core/settings-manager.d.ts +2 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/share/cifrado.d.ts +39 -0
- package/dist/core/share/cifrado.d.ts.map +1 -0
- package/dist/core/share/cifrado.js +81 -0
- package/dist/core/share/cifrado.js.map +1 -0
- package/dist/core/share/exportar.d.ts +69 -0
- package/dist/core/share/exportar.d.ts.map +1 -0
- package/dist/core/share/exportar.js +247 -0
- package/dist/core/share/exportar.js.map +1 -0
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/stream-guard/guardia.d.ts +45 -0
- package/dist/core/stream-guard/guardia.d.ts.map +1 -0
- package/dist/core/stream-guard/guardia.js +100 -0
- package/dist/core/stream-guard/guardia.js.map +1 -0
- package/dist/core/stream-guard/index.d.ts +9 -0
- package/dist/core/stream-guard/index.d.ts.map +1 -0
- package/dist/core/stream-guard/index.js +7 -0
- package/dist/core/stream-guard/index.js.map +1 -0
- package/dist/core/stream-guard/replay.d.ts +39 -0
- package/dist/core/stream-guard/replay.d.ts.map +1 -0
- package/dist/core/stream-guard/replay.js +68 -0
- package/dist/core/stream-guard/replay.js.map +1 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetria/otlp.d.ts.map +1 -1
- package/dist/core/telemetria/otlp.js.map +1 -1
- package/dist/core/telemetry/otel-genai.d.ts +44 -0
- package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
- package/dist/core/telemetry/otel-genai.js +124 -0
- package/dist/core/telemetry/otel-genai.js.map +1 -0
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/terminal/backlog-guard.d.ts +53 -0
- package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
- package/dist/core/terminal/backlog-guard.js +122 -0
- package/dist/core/terminal/backlog-guard.js.map +1 -0
- package/dist/core/terminal/conpty.d.ts +29 -0
- package/dist/core/terminal/conpty.d.ts.map +1 -0
- package/dist/core/terminal/conpty.js +67 -0
- package/dist/core/terminal/conpty.js.map +1 -0
- package/dist/core/terminal/conptyChunking.d.ts +2 -0
- package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
- package/dist/core/terminal/conptyChunking.js +2 -0
- package/dist/core/terminal/conptyChunking.js.map +1 -0
- package/dist/core/terminal/index.d.ts +5 -0
- package/dist/core/terminal/index.d.ts.map +1 -0
- package/dist/core/terminal/index.js +5 -0
- package/dist/core/terminal/index.js.map +1 -0
- package/dist/core/terminal/loop-watchdog.d.ts +43 -0
- package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
- package/dist/core/terminal/loop-watchdog.js +117 -0
- package/dist/core/terminal/loop-watchdog.js.map +1 -0
- package/dist/core/terminal/runner.d.ts +55 -0
- package/dist/core/terminal/runner.d.ts.map +1 -0
- package/dist/core/terminal/runner.js +102 -0
- package/dist/core/terminal/runner.js.map +1 -0
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/apply_patch.d.ts +29 -0
- package/dist/core/tools/apply_patch.d.ts.map +1 -0
- package/dist/core/tools/apply_patch.js +54 -0
- package/dist/core/tools/apply_patch.js.map +1 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
- package/dist/core/tools/coercion-argumentos.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- 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 +43 -1
- 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.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/json-tolerante.d.ts.map +1 -1
- package/dist/core/tools/json-tolerante.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/noop-loop-guard.d.ts +46 -0
- package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
- package/dist/core/tools/noop-loop-guard.js +57 -0
- package/dist/core/tools/noop-loop-guard.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/project-memory-tool.d.ts.map +1 -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.map +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/truncate.d.ts.map +1 -1
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/ttsr/captura.d.ts +72 -0
- package/dist/core/ttsr/captura.d.ts.map +1 -0
- package/dist/core/ttsr/captura.js +183 -0
- package/dist/core/ttsr/captura.js.map +1 -0
- package/dist/core/ttsr/index.d.ts +24 -0
- package/dist/core/ttsr/index.d.ts.map +1 -0
- package/dist/core/ttsr/index.js +57 -0
- package/dist/core/ttsr/index.js.map +1 -0
- package/dist/core/ttsr/preview.d.ts +48 -0
- package/dist/core/ttsr/preview.d.ts.map +1 -0
- package/dist/core/ttsr/preview.js +83 -0
- package/dist/core/ttsr/preview.js.map +1 -0
- package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
- package/dist/core/turno-vacio/detectar.js.map +1 -1
- package/dist/core/undo/journal.d.ts.map +1 -1
- package/dist/core/undo/journal.js.map +1 -1
- package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
- package/dist/core/urls-internas/auditoria.js.map +1 -1
- package/dist/core/urls-internas/boveda.d.ts.map +1 -1
- package/dist/core/urls-internas/boveda.js.map +1 -1
- package/dist/core/urls-internas/lector.d.ts +14 -10
- package/dist/core/urls-internas/lector.d.ts.map +1 -1
- package/dist/core/urls-internas/lector.js +50 -36
- package/dist/core/urls-internas/lector.js.map +1 -1
- package/dist/core/urls-internas/memoria.d.ts.map +1 -1
- package/dist/core/urls-internas/memoria.js.map +1 -1
- package/dist/core/urls-internas/parse.d.ts +6 -13
- package/dist/core/urls-internas/parse.d.ts.map +1 -1
- package/dist/core/urls-internas/parse.js +6 -17
- package/dist/core/urls-internas/parse.js.map +1 -1
- package/dist/core/urls-internas/reglas.d.ts.map +1 -1
- package/dist/core/urls-internas/reglas.js.map +1 -1
- package/dist/core/usage/aggregate.d.ts +1 -0
- package/dist/core/usage/aggregate.d.ts.map +1 -1
- package/dist/core/usage/aggregate.js +1 -1
- package/dist/core/usage/aggregate.js.map +1 -1
- package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
- package/dist/core/usage/cuota/anthropic.js.map +1 -1
- package/dist/core/usage/cuota/cache.d.ts.map +1 -1
- package/dist/core/usage/cuota/cache.js.map +1 -1
- package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
- package/dist/core/usage/cuota/github-copilot.js.map +1 -1
- package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
- package/dist/core/usage/cuota/google-gemini.js.map +1 -1
- package/dist/core/usage/cuota/index.d.ts.map +1 -1
- package/dist/core/usage/cuota/index.js.map +1 -1
- package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
- package/dist/core/usage/cuota/openai-codex.js.map +1 -1
- package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
- package/dist/core/usage/cuota/openrouter.js.map +1 -1
- package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
- package/dist/core/usage/cuota/tipos.js.map +1 -1
- package/dist/core/usage/index.d.ts +11 -0
- package/dist/core/usage/index.d.ts.map +1 -0
- package/dist/core/usage/index.js +11 -0
- package/dist/core/usage/index.js.map +1 -0
- package/dist/core/usage/multi.d.ts +62 -0
- package/dist/core/usage/multi.d.ts.map +1 -0
- package/dist/core/usage/multi.js +122 -0
- package/dist/core/usage/multi.js.map +1 -0
- package/dist/core/usage/redaccion.d.ts +48 -0
- package/dist/core/usage/redaccion.d.ts.map +1 -0
- package/dist/core/usage/redaccion.js +72 -0
- package/dist/core/usage/redaccion.js.map +1 -0
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/core/utils/atomic-write.d.ts +55 -0
- package/dist/core/utils/atomic-write.d.ts.map +1 -0
- package/dist/core/utils/atomic-write.js +293 -0
- package/dist/core/utils/atomic-write.js.map +1 -0
- package/dist/core/utils/git.d.ts +24 -0
- package/dist/core/utils/git.d.ts.map +1 -0
- package/dist/core/utils/git.js +107 -0
- package/dist/core/utils/git.js.map +1 -0
- package/dist/core/utils/logger.d.ts +26 -0
- package/dist/core/utils/logger.d.ts.map +1 -0
- package/dist/core/utils/logger.js +104 -0
- package/dist/core/utils/logger.js.map +1 -0
- package/dist/core/utils/shell-snapshot.d.ts +21 -0
- package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
- package/dist/core/utils/shell-snapshot.js +32 -0
- package/dist/core/utils/shell-snapshot.js.map +1 -0
- package/dist/core/utils/startup-watchdog.d.ts +11 -0
- package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
- package/dist/core/utils/startup-watchdog.js +34 -0
- package/dist/core/utils/startup-watchdog.js.map +1 -0
- package/dist/core/utils/tls-ca-shim.d.ts +17 -0
- package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
- package/dist/core/utils/tls-ca-shim.js +33 -0
- package/dist/core/utils/tls-ca-shim.js.map +1 -0
- package/dist/core/web/agregador.d.ts +67 -0
- package/dist/core/web/agregador.d.ts.map +1 -0
- package/dist/core/web/agregador.js +182 -0
- package/dist/core/web/agregador.js.map +1 -0
- package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
- package/dist/core/web/busqueda-nativa.js.map +1 -1
- package/dist/core/web/consulta.d.ts +53 -0
- package/dist/core/web/consulta.d.ts.map +1 -0
- package/dist/core/web/consulta.js +213 -0
- package/dist/core/web/consulta.js.map +1 -0
- package/dist/core/web/destino.d.ts +11 -0
- package/dist/core/web/destino.d.ts.map +1 -1
- package/dist/core/web/destino.js +35 -0
- package/dist/core/web/destino.js.map +1 -1
- package/dist/core/web/load-page.d.ts +52 -0
- package/dist/core/web/load-page.d.ts.map +1 -0
- package/dist/core/web/load-page.js +221 -0
- package/dist/core/web/load-page.js.map +1 -0
- package/dist/core/web/proveedores/brave.d.ts.map +1 -1
- package/dist/core/web/proveedores/brave.js.map +1 -1
- package/dist/core/web/proveedores/claves.d.ts.map +1 -1
- package/dist/core/web/proveedores/claves.js.map +1 -1
- package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
- package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
- package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
- package/dist/core/web/proveedores/ecosia.js.map +1 -1
- package/dist/core/web/proveedores/exa.d.ts.map +1 -1
- package/dist/core/web/proveedores/exa.js.map +1 -1
- package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
- package/dist/core/web/proveedores/mojeek.js.map +1 -1
- package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
- package/dist/core/web/proveedores/navegador.js.map +1 -1
- package/dist/core/web/proveedores/registro.d.ts.map +1 -1
- package/dist/core/web/proveedores/registro.js.map +1 -1
- package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
- package/dist/core/web/proveedores/searxng.js.map +1 -1
- package/dist/core/web/proveedores/serper.d.ts.map +1 -1
- package/dist/core/web/proveedores/serper.js.map +1 -1
- package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
- package/dist/core/web/proveedores/tavily.js.map +1 -1
- package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
- package/dist/core/web/proveedores/tipos.js.map +1 -1
- package/dist/core/web/registro-red.d.ts.map +1 -1
- package/dist/core/web/registro-red.js.map +1 -1
- package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
- package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
- package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
- package/dist/core/web/scrapers/crates-io.js.map +1 -1
- package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
- package/dist/core/web/scrapers/docs-rs.js.map +1 -1
- package/dist/core/web/scrapers/github.d.ts.map +1 -1
- package/dist/core/web/scrapers/github.js.map +1 -1
- package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
- package/dist/core/web/scrapers/go-pkg.js.map +1 -1
- package/dist/core/web/scrapers/hex.d.ts.map +1 -1
- package/dist/core/web/scrapers/hex.js.map +1 -1
- package/dist/core/web/scrapers/maven.d.ts.map +1 -1
- package/dist/core/web/scrapers/maven.js.map +1 -1
- package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
- package/dist/core/web/scrapers/mdn.js.map +1 -1
- package/dist/core/web/scrapers/npm.d.ts.map +1 -1
- package/dist/core/web/scrapers/npm.js.map +1 -1
- package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
- package/dist/core/web/scrapers/nuget.js.map +1 -1
- package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
- package/dist/core/web/scrapers/nvd.js.map +1 -1
- package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
- package/dist/core/web/scrapers/pypi.js.map +1 -1
- package/dist/core/web/scrapers/registro.d.ts.map +1 -1
- package/dist/core/web/scrapers/registro.js.map +1 -1
- package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
- package/dist/core/web/scrapers/rubygems.js.map +1 -1
- package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
- package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
- package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
- package/dist/core/web/scrapers/tipos.js.map +1 -1
- package/dist/core/web/texto.d.ts.map +1 -1
- package/dist/core/web/texto.js.map +1 -1
- package/dist/core/web/tools.d.ts +1 -8
- package/dist/core/web/tools.d.ts.map +1 -1
- package/dist/core/web/tools.js +2 -33
- package/dist/core/web/tools.js.map +1 -1
- package/dist/core/wiki/almacen.d.ts.map +1 -1
- package/dist/core/wiki/almacen.js.map +1 -1
- package/dist/core/wiki/citas.d.ts.map +1 -1
- package/dist/core/wiki/citas.js.map +1 -1
- package/dist/core/workflows/agent-runner.d.ts.map +1 -1
- package/dist/core/workflows/agent-runner.js.map +1 -1
- package/dist/core/workflows/builtins.d.ts.map +1 -1
- package/dist/core/workflows/builtins.js.map +1 -1
- package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
- package/dist/core/workflows/contrato/esquema.js.map +1 -1
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
- package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
- package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
- package/dist/core/workflows/contrato/validador.js.map +1 -1
- package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
- package/dist/core/workflows/contrato/yield.js.map +1 -1
- package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
- package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/engine.js.map +1 -1
- package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/errors.js.map +1 -1
- package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/index.js.map +1 -1
- package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
- package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
- package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/state.js.map +1 -1
- package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/tools.js.map +1 -1
- package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/types.js.map +1 -1
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
- package/dist/core/workflows/graph-sync.d.ts.map +1 -1
- package/dist/core/workflows/graph-sync.js.map +1 -1
- package/dist/core/workflows/graph.d.ts.map +1 -1
- package/dist/core/workflows/graph.js.map +1 -1
- package/dist/core/workflows/index.d.ts +6 -0
- package/dist/core/workflows/index.d.ts.map +1 -1
- package/dist/core/workflows/index.js +3 -0
- package/dist/core/workflows/index.js.map +1 -1
- package/dist/core/workflows/journal.d.ts.map +1 -1
- package/dist/core/workflows/journal.js.map +1 -1
- package/dist/core/workflows/manager.d.ts.map +1 -1
- package/dist/core/workflows/manager.js.map +1 -1
- package/dist/core/workflows/provider-caps.d.ts +103 -0
- package/dist/core/workflows/provider-caps.d.ts.map +1 -0
- package/dist/core/workflows/provider-caps.js +235 -0
- package/dist/core/workflows/provider-caps.js.map +1 -0
- package/dist/core/workflows/resolve-script.d.ts.map +1 -1
- package/dist/core/workflows/resolve-script.js.map +1 -1
- package/dist/core/workflows/runtime.d.ts.map +1 -1
- package/dist/core/workflows/runtime.js.map +1 -1
- package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
- package/dist/core/workflows/save-as-skill.js.map +1 -1
- package/dist/core/workflows/shared-store.d.ts.map +1 -1
- package/dist/core/workflows/shared-store.js.map +1 -1
- package/dist/core/workflows/soft-budget.d.ts +27 -0
- package/dist/core/workflows/soft-budget.d.ts.map +1 -0
- package/dist/core/workflows/soft-budget.js +47 -0
- package/dist/core/workflows/soft-budget.js.map +1 -0
- package/dist/core/workflows/subagent-host.d.ts.map +1 -1
- package/dist/core/workflows/subagent-host.js.map +1 -1
- package/dist/core/workflows/tool-scheduling.d.ts +47 -0
- package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
- package/dist/core/workflows/tool-scheduling.js +102 -0
- package/dist/core/workflows/tool-scheduling.js.map +1 -0
- package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
- package/dist/core/workflows/tool-workflow.js.map +1 -1
- package/dist/core/workflows/types.d.ts.map +1 -1
- package/dist/core/workflows/types.js.map +1 -1
- package/dist/core/workflows/worktree.d.ts.map +1 -1
- package/dist/core/workflows/worktree.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/huggingface.d.ts.map +1 -1
- package/dist/extensions/llama/huggingface.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/extensions/llama/ui.d.ts.map +1 -1
- package/dist/extensions/llama/ui.js.map +1 -1
- package/dist/extensions/remoto/index.d.ts.map +1 -1
- package/dist/extensions/remoto/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +71 -3
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts.map +1 -1
- package/dist/modes/acp/acp-mode.js.map +1 -1
- package/dist/modes/acp/events.d.ts.map +1 -1
- package/dist/modes/acp/events.js.map +1 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/home-screen.d.ts +2 -0
- package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
- package/dist/modes/interactive/components/home-screen.js +5 -6
- package/dist/modes/interactive/components/home-screen.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
- package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +19 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
- package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
- package/dist/modes/interactive/model-search.d.ts.map +1 -1
- package/dist/modes/interactive/model-search.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- 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.map +1 -1
- package/dist/rpc-entry.d.ts.map +1 -1
- package/dist/rpc-entry.js +0 -0
- package/dist/rpc-entry.js.map +1 -1
- package/dist/server/attach.d.ts.map +1 -1
- package/dist/server/attach.js.map +1 -1
- package/dist/server/create-harness.d.ts.map +1 -1
- package/dist/server/create-harness.js.map +1 -1
- package/dist/server/extension-ops.d.ts.map +1 -1
- package/dist/server/extension-ops.js.map +1 -1
- package/dist/server/pi-server-service.d.ts.map +1 -1
- package/dist/server/pi-server-service.js.map +1 -1
- package/dist/server/scheduler-tick.d.ts.map +1 -1
- package/dist/server/scheduler-tick.js.map +1 -1
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/serve.js.map +1 -1
- package/dist/server/transcript.d.ts.map +1 -1
- package/dist/server/transcript.js.map +1 -1
- package/dist/telegram/api.d.ts +6 -0
- package/dist/telegram/api.d.ts.map +1 -1
- package/dist/telegram/api.js.map +1 -1
- package/dist/telegram/bridge.d.ts.map +1 -1
- package/dist/telegram/bridge.js.map +1 -1
- package/dist/telegram/journal.d.ts.map +1 -1
- package/dist/telegram/journal.js.map +1 -1
- package/dist/telegram/servidor.d.ts.map +1 -1
- package/dist/telegram/servidor.js.map +1 -1
- package/dist/utils/abort.d.ts.map +1 -1
- package/dist/utils/abort.js.map +1 -1
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/deprecation.d.ts.map +1 -1
- package/dist/utils/deprecation.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/html.d.ts.map +1 -1
- package/dist/utils/html.js.map +1 -1
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts.map +1 -1
- package/dist/utils/image-process.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.d.ts.map +1 -1
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/dist/utils/pi-user-agent.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/text.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts.map +1 -1
- package/dist/utils/tool-result-images.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/development-fork.md +170 -0
- package/docs/docs.json +25 -0
- package/docs/modules-infraestructura.md +115 -0
- package/docs/modules-motor.md +160 -0
- package/docs/modules-producto.md +179 -0
- package/docs/modules-seguridad.md +158 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +113 -113
- package/dist/core/commit/diff.d.ts.map +0 -1
- package/dist/core/commit/diff.js.map +0 -1
- package/dist/core/commit/mensaje.d.ts +0 -80
- package/dist/core/commit/mensaje.d.ts.map +0 -1
- package/dist/core/commit/mensaje.js +0 -207
- package/dist/core/commit/mensaje.js.map +0 -1
- package/dist/core/computer/motor/platform/macos/helper-path.mjs +0 -34
- package/dist/core/export-html/template.css +0 -1066
- package/dist/core/export-html/template.html +0 -55
- package/dist/core/export-html/template.js +0 -1864
- package/dist/core/export-html/vendor/highlight.min.js +0 -1213
- package/dist/core/export-html/vendor/marked.min.js +0 -78
- package/dist/core/prompts/sistema.md +0 -134
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/theme/dark.json +0 -90
- package/dist/modes/interactive/theme/light.json +0 -89
- package/dist/modes/interactive/theme/theme-schema.json +0 -352
- package/dist/skills/ada-engine/SKILL.md +0 -153
- package/dist/skills/skill-creator/SKILL.md +0 -90
- /package/dist/core/{commit → commits}/diff.d.ts +0 -0
- /package/dist/core/{commit → commits}/diff.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/computer/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkD9E,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,4KAUzB,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAuWzG","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"]}
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/computer/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkD9E,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,4KAUzB,CAAC;AAEX,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAuWzG"}
|
|
@@ -1 +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"]}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/computer/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cuarentena de config corrupta (A05).
|
|
3
|
+
*
|
|
4
|
+
* Si un JSON es corrupto, se mueve a `.broken-<timestamp>-<pid>-<uuid>` bajo
|
|
5
|
+
* file-lock y nunca se sobreescribe la única copia. Espejo de
|
|
6
|
+
* `config/settings.ts:1305-1323` y `config/config-file.ts:29` de omp, adaptado
|
|
7
|
+
* a JSON (nuestro formato de settings) y a proper-lockfile / lock en memoria.
|
|
8
|
+
*
|
|
9
|
+
* Garantías:
|
|
10
|
+
* - Bajo lock: re-valida antes de mover; si otro proceso ya lo movió, falla
|
|
11
|
+
* con "invalid before locking and is now missing".
|
|
12
|
+
* - Si el rename falla, no se trunca el original: se propaga "could not be
|
|
13
|
+
* moved aside; refusing to overwrite".
|
|
14
|
+
* - Cuarentena es atómica (rename), no copia+borrado.
|
|
15
|
+
*/
|
|
16
|
+
declare function isEnoent(err: unknown): boolean;
|
|
17
|
+
export declare function withQuarantineLock<T>(filePath: string, fn: () => Promise<T>): Promise<T>;
|
|
18
|
+
export interface QuarantineResult {
|
|
19
|
+
backupPath: string;
|
|
20
|
+
originalError: Error;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Mueve un fichero inválido a `.broken-…` bajo lock.
|
|
24
|
+
* Debe llamarse solo cuando ya se ha detectado que el contenido es inválido.
|
|
25
|
+
* Re-valida que el fichero sigue existiendo bajo el lock; si no, significa
|
|
26
|
+
* que otro proceso ya lo cuarentenó.
|
|
27
|
+
*/
|
|
28
|
+
export declare function quarantineInvalidJsonLocked(filePath: string, originalError: unknown): Promise<QuarantineResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Variante síncrona para callers con lock ya adquirido o contextos sync.
|
|
31
|
+
*/
|
|
32
|
+
export declare function quarantineInvalidJsonLockedSync(filePath: string, originalError: unknown): QuarantineResult;
|
|
33
|
+
export interface ReadJsonWithQuarantineResult<T> {
|
|
34
|
+
data: T;
|
|
35
|
+
quarantinedPath?: string;
|
|
36
|
+
wasQuarantined: boolean;
|
|
37
|
+
error?: Error;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Lee un JSON. Si el fichero no existe, devuelve fallback sin cuarentena.
|
|
41
|
+
* Si el JSON es inválido, lo mueve a `.broken-…` bajo lock y devuelve fallback.
|
|
42
|
+
* Si el JSON es válido pero no es objeto/array esperado, también lo considera inválido.
|
|
43
|
+
*
|
|
44
|
+
* Nunca sobreescribe la única copia: el rename es atómico y si falla se propaga
|
|
45
|
+
* sin truncar el original.
|
|
46
|
+
*/
|
|
47
|
+
export declare function readJsonWithQuarantine<T>(filePath: string, fallback: T): Promise<ReadJsonWithQuarantineResult<T>>;
|
|
48
|
+
/**
|
|
49
|
+
* Variante síncrona.
|
|
50
|
+
*/
|
|
51
|
+
export declare function readJsonWithQuarantineSync<T>(filePath: string, fallback: T): ReadJsonWithQuarantineResult<T>;
|
|
52
|
+
export declare const __internalsForTesting: {
|
|
53
|
+
quarantineLocks: Map<string, Promise<void>>;
|
|
54
|
+
isEnoent: typeof isEnoent;
|
|
55
|
+
};
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=quarantine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quarantine.d.ts","sourceRoot":"","sources":["../../../src/core/config/quarantine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,iBAAS,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEvC;AAKD,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiB9F;AAED,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyBrH;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,gBAAgB,CAqB1G;AAED,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC7C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,GACT,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAyB1C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAqB5G;AAED,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cuarentena de config corrupta (A05).
|
|
3
|
+
*
|
|
4
|
+
* Si un JSON es corrupto, se mueve a `.broken-<timestamp>-<pid>-<uuid>` bajo
|
|
5
|
+
* file-lock y nunca se sobreescribe la única copia. Espejo de
|
|
6
|
+
* `config/settings.ts:1305-1323` y `config/config-file.ts:29` de omp, adaptado
|
|
7
|
+
* a JSON (nuestro formato de settings) y a proper-lockfile / lock en memoria.
|
|
8
|
+
*
|
|
9
|
+
* Garantías:
|
|
10
|
+
* - Bajo lock: re-valida antes de mover; si otro proceso ya lo movió, falla
|
|
11
|
+
* con "invalid before locking and is now missing".
|
|
12
|
+
* - Si el rename falla, no se trunca el original: se propaga "could not be
|
|
13
|
+
* moved aside; refusing to overwrite".
|
|
14
|
+
* - Cuarentena es atómica (rename), no copia+borrado.
|
|
15
|
+
*/
|
|
16
|
+
import { randomUUID } from "node:crypto";
|
|
17
|
+
import * as fs from "node:fs";
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
function toError(err) {
|
|
20
|
+
if (err instanceof Error)
|
|
21
|
+
return err;
|
|
22
|
+
return new Error(String(err));
|
|
23
|
+
}
|
|
24
|
+
function isEnoent(err) {
|
|
25
|
+
return !!err && typeof err === "object" && "code" in err && err.code === "ENOENT";
|
|
26
|
+
}
|
|
27
|
+
// Lock por fichero (intra-proceso) — equivalente a withRepoLock por repo pero por path
|
|
28
|
+
const quarantineLocks = new Map();
|
|
29
|
+
export async function withQuarantineLock(filePath, fn) {
|
|
30
|
+
const key = path.resolve(filePath);
|
|
31
|
+
const prev = quarantineLocks.get(key) ?? Promise.resolve();
|
|
32
|
+
let release;
|
|
33
|
+
const next = new Promise((r) => {
|
|
34
|
+
release = r;
|
|
35
|
+
});
|
|
36
|
+
quarantineLocks.set(key, prev.then(() => next));
|
|
37
|
+
await prev;
|
|
38
|
+
try {
|
|
39
|
+
return await fn();
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
release();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Mueve un fichero inválido a `.broken-…` bajo lock.
|
|
47
|
+
* Debe llamarse solo cuando ya se ha detectado que el contenido es inválido.
|
|
48
|
+
* Re-valida que el fichero sigue existiendo bajo el lock; si no, significa
|
|
49
|
+
* que otro proceso ya lo cuarentenó.
|
|
50
|
+
*/
|
|
51
|
+
export async function quarantineInvalidJsonLocked(filePath, originalError) {
|
|
52
|
+
const resolved = path.resolve(filePath);
|
|
53
|
+
return withQuarantineLock(resolved, async () => {
|
|
54
|
+
// Re-validar existencia bajo lock
|
|
55
|
+
try {
|
|
56
|
+
await fs.promises.access(resolved);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
if (isEnoent(err)) {
|
|
60
|
+
throw new Error(`Config file was invalid before locking and is now missing: ${filePath}; another process may have moved it aside`);
|
|
61
|
+
}
|
|
62
|
+
throw toError(err);
|
|
63
|
+
}
|
|
64
|
+
const backupPath = `${resolved}.broken-${Date.now()}-${process.pid}-${randomUUID()}`;
|
|
65
|
+
try {
|
|
66
|
+
await fs.promises.rename(resolved, backupPath);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
throw new Error(`Config file is invalid and could not be moved aside: ${filePath}; refusing to overwrite it: ${String(err)}`);
|
|
70
|
+
}
|
|
71
|
+
return { backupPath, originalError: toError(originalError) };
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Variante síncrona para callers con lock ya adquirido o contextos sync.
|
|
76
|
+
*/
|
|
77
|
+
export function quarantineInvalidJsonLockedSync(filePath, originalError) {
|
|
78
|
+
const resolved = path.resolve(filePath);
|
|
79
|
+
try {
|
|
80
|
+
fs.accessSync(resolved);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
if (isEnoent(err)) {
|
|
84
|
+
throw new Error(`Config file was invalid before locking and is now missing: ${filePath}; another process may have moved it aside`);
|
|
85
|
+
}
|
|
86
|
+
throw toError(err);
|
|
87
|
+
}
|
|
88
|
+
const backupPath = `${resolved}.broken-${Date.now()}-${process.pid}-${randomUUID()}`;
|
|
89
|
+
try {
|
|
90
|
+
fs.renameSync(resolved, backupPath);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
throw new Error(`Config file is invalid and could not be moved aside: ${filePath}; refusing to overwrite it: ${String(err)}`);
|
|
94
|
+
}
|
|
95
|
+
return { backupPath, originalError: toError(originalError) };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Lee un JSON. Si el fichero no existe, devuelve fallback sin cuarentena.
|
|
99
|
+
* Si el JSON es inválido, lo mueve a `.broken-…` bajo lock y devuelve fallback.
|
|
100
|
+
* Si el JSON es válido pero no es objeto/array esperado, también lo considera inválido.
|
|
101
|
+
*
|
|
102
|
+
* Nunca sobreescribe la única copia: el rename es atómico y si falla se propaga
|
|
103
|
+
* sin truncar el original.
|
|
104
|
+
*/
|
|
105
|
+
export async function readJsonWithQuarantine(filePath, fallback) {
|
|
106
|
+
let raw;
|
|
107
|
+
try {
|
|
108
|
+
raw = await fs.promises.readFile(filePath, "utf-8");
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (isEnoent(err)) {
|
|
112
|
+
return { data: fallback, wasQuarantined: false };
|
|
113
|
+
}
|
|
114
|
+
throw toError(err);
|
|
115
|
+
}
|
|
116
|
+
// Fichero vacío → tratar como missing (no cuarentenar)
|
|
117
|
+
if (raw.trim() === "") {
|
|
118
|
+
return { data: fallback, wasQuarantined: false };
|
|
119
|
+
}
|
|
120
|
+
let parsed;
|
|
121
|
+
try {
|
|
122
|
+
parsed = JSON.parse(raw);
|
|
123
|
+
}
|
|
124
|
+
catch (parseErr) {
|
|
125
|
+
const result = await quarantineInvalidJsonLocked(filePath, parseErr);
|
|
126
|
+
return { data: fallback, quarantinedPath: result.backupPath, wasQuarantined: true, error: result.originalError };
|
|
127
|
+
}
|
|
128
|
+
return { data: parsed, wasQuarantined: false };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Variante síncrona.
|
|
132
|
+
*/
|
|
133
|
+
export function readJsonWithQuarantineSync(filePath, fallback) {
|
|
134
|
+
let raw;
|
|
135
|
+
try {
|
|
136
|
+
raw = fs.readFileSync(filePath, "utf-8");
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
if (isEnoent(err)) {
|
|
140
|
+
return { data: fallback, wasQuarantined: false };
|
|
141
|
+
}
|
|
142
|
+
throw toError(err);
|
|
143
|
+
}
|
|
144
|
+
if (raw.trim() === "") {
|
|
145
|
+
return { data: fallback, wasQuarantined: false };
|
|
146
|
+
}
|
|
147
|
+
let parsed;
|
|
148
|
+
try {
|
|
149
|
+
parsed = JSON.parse(raw);
|
|
150
|
+
}
|
|
151
|
+
catch (parseErr) {
|
|
152
|
+
const result = quarantineInvalidJsonLockedSync(filePath, parseErr);
|
|
153
|
+
return { data: fallback, quarantinedPath: result.backupPath, wasQuarantined: true, error: result.originalError };
|
|
154
|
+
}
|
|
155
|
+
return { data: parsed, wasQuarantined: false };
|
|
156
|
+
}
|
|
157
|
+
export const __internalsForTesting = {
|
|
158
|
+
quarantineLocks,
|
|
159
|
+
isEnoent,
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=quarantine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quarantine.js","sourceRoot":"","sources":["../../../src/core/config/quarantine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C05 — Settings con ámbito de ruta (AUDITORIA-OMP.md C05).
|
|
3
|
+
*
|
|
4
|
+
* Hoy `enabledModels` es `string[]` plano (settings-manager.ts) y vale igual
|
|
5
|
+
* en cualquier directorio. En monorepos eso obliga a elegir un único juego de
|
|
6
|
+
* modelos para todo el árbol. Aquí la misma clave acepta además entradas
|
|
7
|
+
* acotadas por prefijo de ruta:
|
|
8
|
+
*
|
|
9
|
+
* "enabledModels": [ { "pathPrefix": "/repo/servicios", "values": [...] },
|
|
10
|
+
* { "pathPrefix": "/repo/web", "values": [...] } ]
|
|
11
|
+
*
|
|
12
|
+
* Reglas de resolución (`resolverValorPorAmbito`):
|
|
13
|
+
* 1. Las capas van ordenadas de MÁS a MENOS prioritaria (proyecto antes que
|
|
14
|
+
* global, como deepMergeSettings). La primera capa que responda gana.
|
|
15
|
+
* 2. Dentro de una capa: un valor plano siempre gana sobre entradas con
|
|
16
|
+
* ámbito de esa misma capa (el formato acotado es opt-in por clave).
|
|
17
|
+
* 3. Entre entradas con ámbito que coinciden con el cwd, gana el prefijo
|
|
18
|
+
* LARGO (el más específico).
|
|
19
|
+
* 4. Si ninguna entrada con ámbito coincide con el cwd, se cae a la capa
|
|
20
|
+
* siguiente (fallback global).
|
|
21
|
+
*
|
|
22
|
+
* API pura: sin I/O, sin estado, inyectando las capas ya leídas.
|
|
23
|
+
*/
|
|
24
|
+
/** Una entrada de settings acotada a un prefijo de ruta. */
|
|
25
|
+
export interface ValorConAmbito<T> {
|
|
26
|
+
/** Prefijo de ruta (se normaliza a absoluto); el cwd debe empezar por él. */
|
|
27
|
+
pathPrefix: string;
|
|
28
|
+
values: T;
|
|
29
|
+
}
|
|
30
|
+
/** Valor de una clave: plano o lista acotada por prefijos de ruta. */
|
|
31
|
+
export type ValorAmbito<T> = T | Array<ValorConAmbito<T>>;
|
|
32
|
+
/**
|
|
33
|
+
* Una capa de settings ya leída. `capas[0]` es la MÁS prioritaria
|
|
34
|
+
* (p.ej. proyecto); la última suele ser la global.
|
|
35
|
+
*/
|
|
36
|
+
export interface CapaAmbito {
|
|
37
|
+
/** Identificador opcional para diagnóstico (/status). */
|
|
38
|
+
id?: string;
|
|
39
|
+
settings: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resuelve `clave` para `cwd` sobre capas ordenadas de más a menos
|
|
43
|
+
* prioritaria. Devuelve `undefined` si ninguna capa responde.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolverValorPorAmbito<T>(clave: string, cwd: string, capas: ReadonlyArray<CapaAmbito>): T | undefined;
|
|
46
|
+
//# sourceMappingURL=ambito.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambito.d.ts","sourceRoot":"","sources":["../../../src/core/config-viva/ambito.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,4DAA4D;AAC5D,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC;CACV;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAaD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAsBrH"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C05 — Settings con ámbito de ruta (AUDITORIA-OMP.md C05).
|
|
3
|
+
*
|
|
4
|
+
* Hoy `enabledModels` es `string[]` plano (settings-manager.ts) y vale igual
|
|
5
|
+
* en cualquier directorio. En monorepos eso obliga a elegir un único juego de
|
|
6
|
+
* modelos para todo el árbol. Aquí la misma clave acepta además entradas
|
|
7
|
+
* acotadas por prefijo de ruta:
|
|
8
|
+
*
|
|
9
|
+
* "enabledModels": [ { "pathPrefix": "/repo/servicios", "values": [...] },
|
|
10
|
+
* { "pathPrefix": "/repo/web", "values": [...] } ]
|
|
11
|
+
*
|
|
12
|
+
* Reglas de resolución (`resolverValorPorAmbito`):
|
|
13
|
+
* 1. Las capas van ordenadas de MÁS a MENOS prioritaria (proyecto antes que
|
|
14
|
+
* global, como deepMergeSettings). La primera capa que responda gana.
|
|
15
|
+
* 2. Dentro de una capa: un valor plano siempre gana sobre entradas con
|
|
16
|
+
* ámbito de esa misma capa (el formato acotado es opt-in por clave).
|
|
17
|
+
* 3. Entre entradas con ámbito que coinciden con el cwd, gana el prefijo
|
|
18
|
+
* LARGO (el más específico).
|
|
19
|
+
* 4. Si ninguna entrada con ámbito coincide con el cwd, se cae a la capa
|
|
20
|
+
* siguiente (fallback global).
|
|
21
|
+
*
|
|
22
|
+
* API pura: sin I/O, sin estado, inyectando las capas ya leídas.
|
|
23
|
+
*/
|
|
24
|
+
import { resolve as resolverRuta } from "node:path";
|
|
25
|
+
function esEntradaConAmbito(valor) {
|
|
26
|
+
if (typeof valor !== "object" || valor === null || !("pathPrefix" in valor))
|
|
27
|
+
return false;
|
|
28
|
+
const prefijo = valor.pathPrefix;
|
|
29
|
+
return typeof prefijo === "string";
|
|
30
|
+
}
|
|
31
|
+
function normalizarPrefijo(prefijo) {
|
|
32
|
+
const resuelto = resolverRuta(prefijo);
|
|
33
|
+
return resuelto.endsWith("/") && resuelto !== "/" ? resuelto.slice(0, -1) : resuelto;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Resuelve `clave` para `cwd` sobre capas ordenadas de más a menos
|
|
37
|
+
* prioritaria. Devuelve `undefined` si ninguna capa responde.
|
|
38
|
+
*/
|
|
39
|
+
export function resolverValorPorAmbito(clave, cwd, capas) {
|
|
40
|
+
const cwdNormalizado = normalizarPrefijo(cwd);
|
|
41
|
+
for (const capa of capas) {
|
|
42
|
+
const bruto = capa.settings?.[clave];
|
|
43
|
+
if (bruto === undefined || bruto === null)
|
|
44
|
+
continue;
|
|
45
|
+
if (!Array.isArray(bruto) || !bruto.every(esEntradaConAmbito)) {
|
|
46
|
+
// Valor plano: gana dentro de su capa sin mirar ámbitos.
|
|
47
|
+
return bruto;
|
|
48
|
+
}
|
|
49
|
+
let mejor;
|
|
50
|
+
for (const entrada of bruto) {
|
|
51
|
+
if (!cwdNormalizado.startsWith(normalizarPrefijo(entrada.pathPrefix)))
|
|
52
|
+
continue;
|
|
53
|
+
if (!mejor || entrada.pathPrefix.length > mejor.pathPrefix.length)
|
|
54
|
+
mejor = entrada;
|
|
55
|
+
}
|
|
56
|
+
if (mejor)
|
|
57
|
+
return mejor.values;
|
|
58
|
+
// Sin coincidencia en esta capa: fallback a la siguiente (global).
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=ambito.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambito.js","sourceRoot":"","sources":["../../../src/core/config-viva/ambito.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AAsBpD,SAAS,kBAAkB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1F,MAAM,OAAO,GAAY,KAAK,CAAC,UAAU,CAAC;IAC1C,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAI,KAAa,EAAE,GAAW,EAAE,KAAgC;IACrG,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAEpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/D,yDAAyD;YACzD,OAAO,KAAU,CAAC;QACnB,CAAC;QAED,IAAI,KAAoC,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,KAAiC,EAAE,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAAE,SAAS;YAChF,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM;gBAAE,KAAK,GAAG,OAAO,CAAC;QACpF,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC;QAE/B,mEAAmE;IACpE,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C07 — Negative-cache con TTL para valores de config que son comandos
|
|
3
|
+
* (`!cmd`) (AUDITORIA-OMP.md C07).
|
|
4
|
+
*
|
|
5
|
+
* Problema en resolve-config-value.ts: `commandResultCache` guarda el
|
|
6
|
+
* resultado AUNQUE sea undefined y para SIEMPRE (vida del proceso). Un
|
|
7
|
+
* password manager bloqueado o una red caída en el momento de la primera
|
|
8
|
+
* lectura desactiva la clave para siempre, además sin límite de re-ejecuciones
|
|
9
|
+
* cuando se decide no cachear.
|
|
10
|
+
*
|
|
11
|
+
* Este envoltorio corrige la dirección que falta:
|
|
12
|
+
* - éxito → caché positiva permanente (misma semántica que upstream);
|
|
13
|
+
* - fallo (undefined O throw) → caché NEGATIVA con TTL configurable
|
|
14
|
+
* (30s por defecto): dentro del TTL no se re-ejecuta el comando; expirado,
|
|
15
|
+
* la siguiente lectura vuelve a intentarlo.
|
|
16
|
+
*
|
|
17
|
+
* Pensado sobre `resolveConfigValueUncached` (que nunca cachea) para no
|
|
18
|
+
* depender del Map interno de upstream.
|
|
19
|
+
*/
|
|
20
|
+
/** TTL por defecto de los fallos: 30 s (C07). */
|
|
21
|
+
export declare const TTL_CACHE_NEGATIVA_DEFECTO_MS = 30000;
|
|
22
|
+
export interface OpcionesCacheNegativa {
|
|
23
|
+
/** TTL de los fallos cacheados, en ms. Default 30_000. */
|
|
24
|
+
ttlMs?: number;
|
|
25
|
+
/** Reloj inyectable (tests). Default Date.now. */
|
|
26
|
+
ahora?: () => number;
|
|
27
|
+
}
|
|
28
|
+
export interface EstadisticasCacheNegativa {
|
|
29
|
+
/** Veces que se ejecutó el resolver de verdad. */
|
|
30
|
+
ejecuciones: number;
|
|
31
|
+
/** Lecturas servidas por un éxito previo cacheado. */
|
|
32
|
+
aciertosPositivos: number;
|
|
33
|
+
/** Lecturas servidas por un fallo aún fresco en caché negativa. */
|
|
34
|
+
fallosServidosDeCache: number;
|
|
35
|
+
/** Fallos nuevos registrados en caché negativa. */
|
|
36
|
+
fallosCacheados: number;
|
|
37
|
+
}
|
|
38
|
+
export type ResolverConCacheNegativa = ((clave: string) => string | undefined) & {
|
|
39
|
+
/** Vacía ambas cachés (positiva y negativa). */
|
|
40
|
+
limpiar(): void;
|
|
41
|
+
/** Contadores desde la creación (o el último limpiar() no los toca). */
|
|
42
|
+
estadisticas(): EstadisticasCacheNegativa;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Envuelve `resolver` con caché positiva permanente + negativa con TTL.
|
|
46
|
+
* Un throw del resolver se trata como fallo cacheable (C07: "exit != 0 o
|
|
47
|
+
* throw"), no se propaga.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolverConCacheNegativa(resolver: (clave: string) => string | undefined, opciones?: OpcionesCacheNegativa): ResolverConCacheNegativa;
|
|
50
|
+
//# sourceMappingURL=cache-negativa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-negativa.d.ts","sourceRoot":"","sources":["../../../src/core/config-viva/cache-negativa.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iDAAiD;AACjD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACrC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACzC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;IAChF,gDAAgD;IAChD,OAAO,IAAI,IAAI,CAAC;IAChB,wEAAwE;IACxE,YAAY,IAAI,yBAAyB,CAAC;CAC1C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC/C,QAAQ,GAAE,qBAA0B,GAClC,wBAAwB,CAsD1B"}
|