@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":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/core/workflows/agent-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIjG,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,UAAU,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,qBAAqB,CAAC;IACrC,gDAAgD;IAChD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACjD,sDAAsD;IACtD,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,GAAG,MAAM,CAUT;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQpD;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAa7D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC,GAAG,MAAM,EAAE,CAWX;AAED,qBAAa,WAAW;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAgB;IAEtC,YAAY,OAAO,EAAE,kBAAkB,EAQtC;IAEK,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CA4BlF;YAEa,OAAO;CAyJrB;AAUD,yCAAyC;AACzC,YAAY,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["/**\n * AgentRunner — subagente del Ada Intelligence Engine.\n *\n * Un subagente es una sesión del SDK (AgentSessionRuntime via createAgentSession)\n * con: modelo resuelto (spec/tier/fallback), tools configuradas, cwd (base o\n * worktree), instructions opcionales y límites (timeout, retries). El runner\n * captura la respuesta final, el structured output (schema typebox con fallback\n * a extracción de prosa) y el usage real (tokens/coste).\n *\n * La creación de la sesión es inyectable (createSession) para tests con fakes.\n */\n\nimport { createHash } from \"node:crypto\";\nimport type { TextContent } from \"@earendil-works/pi-ai\";\nimport type { TSchema } from \"typebox\";\nimport type { AgentSession, AgentSessionEvent } from \"../agent-session.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport { validarConReintentos } from \"./contrato/validador.ts\";\nimport { BufferDeHallazgos, crearHerramientaYield, ensamblarResultadoIncremental } from \"./contrato/yield.ts\";\nimport type { AgentRunOptions, AgentRunResult, AgentUsage, WorkflowErrorCode } from \"./types.ts\";\nimport { WorkflowError } from \"./types.ts\";\nimport { createWorktree, finalizeWorktree, type Worktree } from \"./worktree.ts\";\n\nexport interface SubagentSession {\n\tsession: AgentSession;\n\tdispose(): void;\n\tgetUsage(): AgentUsage;\n}\n\nexport type CreateSubagentSession = (options: {\n\tcwd: string;\n\tagentDir: string;\n\tmodelSpec?: string;\n\ttools?: string[];\n\tcustomTools?: ToolDefinition[];\n\tsessionName?: string;\n\tinstructions?: string;\n}) => Promise<SubagentSession>;\n\nexport interface AgentRunnerOptions {\n\tagentDir: string;\n\tcreateSession: CreateSubagentSession;\n\t/** Limiter compartido del run (concurrency). */\n\tlimiter: <T>(fn: () => Promise<T>) => Promise<T>;\n\t/** Contador global de agentes del run (maxAgents). */\n\tagentCounter: { count: number };\n\t/** Techo de agentes por run (`workflows.maxAgentsPerRun`). */\n\tmaxAgents: number;\n\tretries?: number;\n\tagentTimeoutMs?: number | null;\n}\n\n/** Hash de identidad del agente para el journal (prompt+model+phase+schema+stableKey). */\nexport function agentIdentityHash(options: {\n\tprompt: string;\n\tmodel?: string;\n\ttier?: string;\n\tphase?: string;\n\tstableKey?: string;\n\tschema?: TSchema | undefined;\n}): string {\n\tconst canonical = JSON.stringify({\n\t\tprompt: options.prompt,\n\t\tmodel: options.model ?? null,\n\t\ttier: options.tier ?? null,\n\t\tphase: options.phase ?? null,\n\t\tstableKey: options.stableKey ?? null,\n\t\tschema: options.schema ? JSON.stringify(options.schema) : null,\n\t});\n\treturn createHash(\"sha256\").update(canonical).digest(\"hex\");\n}\n\n/** Extraer el texto de una respuesta (string o content array). */\nexport function messageText(content: unknown): string {\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.filter((b): b is TextContent => typeof b === \"object\" && b !== null && (b as { type?: string }).type === \"text\")\n\t\t.map((b) => b.text ?? \"\")\n\t\t.join(\"\\n\")\n\t\t.trim();\n}\n\n/** Extraer JSON del texto (para structured output fallback). */\nexport function extractJson(text: string): unknown | undefined {\n\tconst cleaned = text\n\t\t.replace(/```json\\s*/g, \"\")\n\t\t.replace(/```/g, \"\")\n\t\t.trim();\n\tconst start = cleaned.indexOf(\"{\");\n\tconst end = cleaned.lastIndexOf(\"}\");\n\tif (start === -1 || end === -1) return undefined;\n\ttry {\n\t\treturn JSON.parse(cleaned.slice(start, end + 1));\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Tools por defecto de un subagente (espejo de sdk.ts:263), MÁS `yield`\n * siempre — es la tool de entrega incremental (ver contrato/yield.ts) y no es\n * un permiso adicional: reportar un hallazgo no lee ni escribe nada que las\n * tools base ya no autoricen. Un subagente que nunca la llama se comporta\n * exactamente como antes.\n */\nconst SUBAGENT_DEFAULT_TOOLS = [\"read\", \"bash\", \"edit\", \"write\", \"yield\"];\n/**\n * Mínimo privilegio: leer y buscar, nada de escribir ni ejecutar. `yield`\n * también aquí — un agente de solo lectura cuyo trabajo ES encontrar cosas\n * necesita poder reportarlas.\n */\nconst SUBAGENT_READONLY_TOOLS = [\"read\", \"grep\", \"find\", \"ls\", \"yield\"];\n/** Red: nunca implícitas, ni siquiera bajo `readOnly`. Ver resolveAllowedTools. */\nconst WEB_TOOL_NAMES = [\"web_search\", \"web_fetch\"];\n/** Navegador: opt-in aparte de `web`. Conducir un navegador no es leer una URL. */\nconst BROWSER_TOOL_NAMES = [\n\t\"browser_open\",\n\t\"browser_navigate\",\n\t\"browser_read\",\n\t\"browser_click\",\n\t\"browser_type\",\n\t\"browser_screenshot\",\n\t\"browser_viewport\",\n\t\"browser_close\",\n];\n\n/**\n * Allowlist de tools del subagente.\n *\n * Desenreda un bug latente: `options.tools` son tools EXTRA (web_search…) y se\n * pasaban a la vez como `customTools` y como allowlist, de modo que pedir una\n * tool extra ESTRECHABA el permiso en silencio a solo esa — un agente que pedía\n * `web_search` perdía `read`/`bash`/`edit`/`write` sin que nadie lo notara.\n * Ahora las extra se SUMAN a la base, que es lo que el nombre siempre prometió.\n */\nexport function resolveAllowedTools(options: {\n\treadOnly?: boolean;\n\tweb?: boolean;\n\tbrowser?: boolean;\n\ttools?: Array<{ name: string }>;\n}): string[] {\n\tconst base = options.readOnly ? SUBAGENT_READONLY_TOOLS : SUBAGENT_DEFAULT_TOOLS;\n\tconst extras = (options.tools ?? []).map((t) => t.name);\n\t// El acceso a red es opt-in aunque `web_fetch` sea \"de lectura\": leer la web\n\t// no es leer el disco. Un subagente con red es una vía de salida para lo que\n\t// haya leído, así que el script tiene que pedirlo por su nombre.\n\tconst web = options.web ? WEB_TOOL_NAMES : [];\n\t// `browser` no se hereda de `web`: descargar una URL y conducir un navegador\n\t// con sesión, formularios y capturas no son el mismo permiso.\n\tconst navegador = options.browser ? BROWSER_TOOL_NAMES : [];\n\treturn [...new Set([...base, ...web, ...navegador, ...extras])];\n}\n\nexport class AgentRunner {\n\tprivate agentDir: string;\n\tprivate createSession: CreateSubagentSession;\n\tprivate limiter: AgentRunnerOptions[\"limiter\"];\n\tprivate agentCounter: AgentRunnerOptions[\"agentCounter\"];\n\tprivate maxAgents: number;\n\tprivate retries: number;\n\tprivate agentTimeoutMs: number | null;\n\n\tconstructor(options: AgentRunnerOptions) {\n\t\tthis.agentDir = options.agentDir;\n\t\tthis.createSession = options.createSession;\n\t\tthis.limiter = options.limiter;\n\t\tthis.agentCounter = options.agentCounter;\n\t\tthis.maxAgents = options.maxAgents;\n\t\tthis.retries = options.retries ?? 3;\n\t\tthis.agentTimeoutMs = options.agentTimeoutMs ?? null;\n\t}\n\n\tasync run<T = unknown>(options: AgentRunOptions): Promise<AgentRunResult<T> | null> {\n\t\treturn this.limiter(async () => {\n\t\t\tif (this.agentCounter.count >= this.maxAgents) {\n\t\t\t\tthrow new WorkflowError(\n\t\t\t\t\t\"WORKFLOW_MAX_AGENTS\",\n\t\t\t\t\t`Límite de agentes del run alcanzado (${this.maxAgents}). Súbelo con el ajuste workflows.maxAgentsPerRun.`,\n\t\t\t\t\t{ recoverable: false },\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.agentCounter.count++;\n\n\t\t\tlet attempt = 0;\n\t\t\tlet lastError: Error | undefined;\n\t\t\tfor (; attempt <= this.retries; attempt++) {\n\t\t\t\tconst signal = options.signal;\n\t\t\t\tif (signal?.aborted) return null;\n\t\t\t\ttry {\n\t\t\t\t\treturn await this.runOnce<T>(options, signal);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (signal?.aborted) return null;\n\t\t\t\t\tif (isAbortError(error) || isTimeoutError(error)) throw error;\n\t\t\t\t\tlastError = error instanceof Error ? error : new Error(String(error));\n\t\t\t\t\tif (attempt >= this.retries) break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (lastError) throw lastError;\n\t\t\treturn null;\n\t\t});\n\t}\n\n\tprivate async runOnce<T>(options: AgentRunOptions, signal?: AbortSignal): Promise<AgentRunResult<T> | null> {\n\t\t// Timeout combinado: el del agente + el del run.\n\t\tconst timeoutMs = options.timeoutMs ?? this.agentTimeoutMs;\n\t\tlet timeoutTimer: ReturnType<typeof setTimeout> | undefined;\n\t\tconst timeout = new Promise<never>((_resolve, reject) => {\n\t\t\tif (timeoutMs === null) return;\n\t\t\ttimeoutTimer = setTimeout(() => {\n\t\t\t\treject(\n\t\t\t\t\tnew WorkflowError(\"WORKFLOW_AGENT_TIMEOUT\", `Agent timed out after ${timeoutMs}ms`, {\n\t\t\t\t\t\trecoverable: false,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}, timeoutMs);\n\t\t});\n\n\t\tconst baseCwd = options.cwd ?? process.cwd();\n\t\t// Aislamiento git: los agentes con escritura que corren en paralelo\n\t\t// editaban el MISMO checkout y se pisaban en silencio. El nombre es\n\t\t// determinista (isolationKey = runId:callIndex) para que un resume\n\t\t// reencuentre el mismo worktree. Fuera de un repo git hace no-op.\n\t\tlet worktree: Worktree | null = null;\n\t\tlet finalized: { branch?: string; kept: boolean } | undefined;\n\t\tconst worktreeMessage = `ada: ${options.label ?? options.isolationKey ?? \"agent\"}`;\n\t\tif (options.isolation === \"worktree\") {\n\t\t\tworktree = await createWorktree(baseCwd, options.isolationKey ?? options.label ?? \"agent\");\n\t\t}\n\n\t\tlet subagent: SubagentSession | null = null;\n\t\t// Hallazgos entregados por `yield` durante ESTE intento. Sobreviven aunque\n\t\t// el subagente se descarrile más abajo — ese es el motivo de que exista.\n\t\tconst buffer = new BufferDeHallazgos();\n\t\ttry {\n\t\t\tsubagent = await this.createSession({\n\t\t\t\tcwd: worktree?.cwd ?? baseCwd,\n\t\t\t\tagentDir: this.agentDir,\n\t\t\t\tmodelSpec: options.model ?? (options.tier ? `tier:${options.tier}` : undefined),\n\t\t\t\ttools: resolveAllowedTools(options),\n\t\t\t\tcustomTools: [...(options.tools ?? []), crearHerramientaYield({ buffer, onEntrega: options.onYield })],\n\t\t\t\tsessionName: options.label ? `workflow:${options.label}` : undefined,\n\t\t\t\tinstructions: options.instructions,\n\t\t\t});\n\t\t\tconst session = subagent.session;\n\n\t\t\tconst lastAssistantText: string[] = [];\n\t\t\tconst unsubscribe = session.subscribe((event: AgentSessionEvent) => {\n\t\t\t\tif (event.type === \"message_end\" && event.message.role === \"assistant\") {\n\t\t\t\t\tconst text = messageText(event.message.content);\n\t\t\t\t\tif (text) lastAssistantText.push(text);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst sessionId = () =>\n\t\t\t\t(session as { sessionManager?: { getSessionId?: () => string } }).sessionManager?.getSessionId?.();\n\t\t\tlet textoFinal = \"\";\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tawait Promise.race([session.sendUserMessage(options.prompt), timeout]);\n\t\t\t\t\tawait Promise.race([session.waitForIdle(), timeout]);\n\t\t\t\t\tif (signal?.aborted) return null;\n\n\t\t\t\t\ttextoFinal = lastAssistantText.length > 0 ? lastAssistantText[lastAssistantText.length - 1] : \"\";\n\t\t\t\t\tlet result: T | null = null;\n\t\t\t\t\tlet validacion: AgentRunResult<T>[\"validacion\"];\n\n\t\t\t\t\tif (options.schema) {\n\t\t\t\t\t\tconst resultado = await validarConReintentos<T>({\n\t\t\t\t\t\t\tesquema: options.schema,\n\t\t\t\t\t\t\ttextoInicial: textoFinal,\n\t\t\t\t\t\t\tmaxReintentos: options.maxReintentosValidacion ?? 2,\n\t\t\t\t\t\t\textraer: extractJson,\n\t\t\t\t\t\t\tpedirCorreccion: async (mensaje) => {\n\t\t\t\t\t\t\t\tawait Promise.race([session.sendUserMessage(mensaje), timeout]);\n\t\t\t\t\t\t\t\tawait Promise.race([session.waitForIdle(), timeout]);\n\t\t\t\t\t\t\t\tif (lastAssistantText.length > 0) textoFinal = lastAssistantText[lastAssistantText.length - 1];\n\t\t\t\t\t\t\t\treturn textoFinal;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t\tresult = resultado.datos;\n\t\t\t\t\t\tvalidacion = {\n\t\t\t\t\t\t\tvalido: resultado.valido,\n\t\t\t\t\t\t\tintentos: resultado.intentos,\n\t\t\t\t\t\t\treparado: resultado.reparado,\n\t\t\t\t\t\t\terrores: resultado.errores,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = (textoFinal.length > 0 ? textoFinal : null) as unknown as T;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Consolidar el worktree ANTES de devolver: si solo lo retirásemos, los\n\t\t\t\t\t// cambios sin commitear del agente se perderían y el aislamiento no\n\t\t\t\t\t// habría servido de nada. La rama sobrevive para que un humano la\n\t\t\t\t\t// mergee; no hay auto-merge a propósito.\n\t\t\t\t\tif (worktree && !finalized) {\n\t\t\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\ttext: textoFinal,\n\t\t\t\t\t\tusage: subagent.getUsage(),\n\t\t\t\t\t\tsessionId: sessionId(),\n\t\t\t\t\t\tworktreeBranch: finalized?.branch,\n\t\t\t\t\t\t...(validacion ? { validacion } : {}),\n\t\t\t\t\t\t...(buffer.longitud > 0 ? { hallazgos: buffer.todos() } : {}),\n\t\t\t\t\t} as AgentRunResult<T>;\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// YIELD FINAL FORZADO. El subagente se descarriló (timeout, error del\n\t\t\t\t\t// SDK, lo que sea) EN CUALQUIER PUNTO del intercambio — incluida la\n\t\t\t\t\t// ronda de corrección de esquema. Si ya había entregado hallazgos con\n\t\t\t\t\t// `yield`, eso NO se pierde: es justo lo que este contrato existe para\n\t\t\t\t\t// evitar (\"lo más importante\", según la tarea).\n\t\t\t\t\t//\n\t\t\t\t\t// Sin hallazgos que salvar esto es un fallo real (\"no pude\", no \"no\n\t\t\t\t\t// hay\") y se propaga tal cual — mismo comportamiento que antes de este\n\t\t\t\t\t// cambio, para no enmascarar errores genuinos con un resultado vacío.\n\t\t\t\t\t//\n\t\t\t\t\t// Un abort (`signal.aborted`) NUNCA entra en el yield final forzado,\n\t\t\t\t\t// aunque haya hallazgos: cancelar significa \"para del todo\", igual que\n\t\t\t\t\t// ya hacía el camino de éxito (línea de arriba, `if (signal?.aborted)\n\t\t\t\t\t// return null`) con un resultado completo y válido. Si esto cambiara,\n\t\t\t\t\t// el workflow trataría una cancelación como un resultado parcial\n\t\t\t\t\t// utilizable y seguiría a la siguiente fase con datos a medias.\n\t\t\t\t\tif (signal?.aborted || buffer.longitud === 0) throw error;\n\t\t\t\t\tconst motivo = error instanceof Error ? error.message : String(error);\n\t\t\t\t\tif (worktree && !finalized) {\n\t\t\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresult: ensamblarResultadoIncremental(buffer) as unknown as T,\n\t\t\t\t\t\ttext: textoFinal,\n\t\t\t\t\t\tusage: subagent.getUsage(),\n\t\t\t\t\t\tsessionId: sessionId(),\n\t\t\t\t\t\tworktreeBranch: finalized?.branch,\n\t\t\t\t\t\tdescarrilado: true,\n\t\t\t\t\t\tmotivoDescarrile: motivo,\n\t\t\t\t\t\thallazgos: buffer.todos(),\n\t\t\t\t\t} as AgentRunResult<T>;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tunsubscribe();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (timeoutTimer) clearTimeout(timeoutTimer);\n\t\t\tsubagent?.dispose();\n\t\t\t// Camino de error/abort sin hallazgos que salvar: el return no llegó a\n\t\t\t// consolidar, pero el trabajo parcial del agente también merece\n\t\t\t// sobrevivir para poder inspeccionarlo — y hay que soltar el worktree\n\t\t\t// igualmente.\n\t\t\tif (worktree && !finalized) {\n\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && error.name === \"AbortError\";\n}\n\nfunction isTimeoutError(error: unknown): boolean {\n\treturn error instanceof WorkflowError && error.code === \"WORKFLOW_AGENT_TIMEOUT\";\n}\n\n/** Tipos re-exportados para el index. */\nexport type { WorkflowErrorCode };\n"]}
|
|
1
|
+
{"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/core/workflows/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/core/workflows/agent-runner.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentRunner — subagente del Ada Intelligence Engine.\n *\n * Un subagente es una sesión del SDK (AgentSessionRuntime via createAgentSession)\n * con: modelo resuelto (spec/tier/fallback), tools configuradas, cwd (base o\n * worktree), instructions opcionales y límites (timeout, retries). El runner\n * captura la respuesta final, el structured output (schema typebox con fallback\n * a extracción de prosa) y el usage real (tokens/coste).\n *\n * La creación de la sesión es inyectable (createSession) para tests con fakes.\n */\n\nimport { createHash } from \"node:crypto\";\nimport type { TextContent } from \"@earendil-works/pi-ai\";\nimport type { TSchema } from \"typebox\";\nimport type { AgentSession, AgentSessionEvent } from \"../agent-session.ts\";\nimport type { ToolDefinition } from \"../extensions/types.ts\";\nimport { validarConReintentos } from \"./contrato/validador.ts\";\nimport { BufferDeHallazgos, crearHerramientaYield, ensamblarResultadoIncremental } from \"./contrato/yield.ts\";\nimport type { AgentRunOptions, AgentRunResult, AgentUsage, WorkflowErrorCode } from \"./types.ts\";\nimport { WorkflowError } from \"./types.ts\";\nimport { createWorktree, finalizeWorktree, type Worktree } from \"./worktree.ts\";\n\nexport interface SubagentSession {\n\tsession: AgentSession;\n\tdispose(): void;\n\tgetUsage(): AgentUsage;\n}\n\nexport type CreateSubagentSession = (options: {\n\tcwd: string;\n\tagentDir: string;\n\tmodelSpec?: string;\n\ttools?: string[];\n\tcustomTools?: ToolDefinition[];\n\tsessionName?: string;\n\tinstructions?: string;\n}) => Promise<SubagentSession>;\n\nexport interface AgentRunnerOptions {\n\tagentDir: string;\n\tcreateSession: CreateSubagentSession;\n\t/** Limiter compartido del run (concurrency). */\n\tlimiter: <T>(fn: () => Promise<T>) => Promise<T>;\n\t/** Contador global de agentes del run (maxAgents). */\n\tagentCounter: { count: number };\n\t/** Techo de agentes por run (`workflows.maxAgentsPerRun`). */\n\tmaxAgents: number;\n\tretries?: number;\n\tagentTimeoutMs?: number | null;\n}\n\n/** Hash de identidad del agente para el journal (prompt+model+phase+schema+stableKey). */\nexport function agentIdentityHash(options: {\n\tprompt: string;\n\tmodel?: string;\n\ttier?: string;\n\tphase?: string;\n\tstableKey?: string;\n\tschema?: TSchema | undefined;\n}): string {\n\tconst canonical = JSON.stringify({\n\t\tprompt: options.prompt,\n\t\tmodel: options.model ?? null,\n\t\ttier: options.tier ?? null,\n\t\tphase: options.phase ?? null,\n\t\tstableKey: options.stableKey ?? null,\n\t\tschema: options.schema ? JSON.stringify(options.schema) : null,\n\t});\n\treturn createHash(\"sha256\").update(canonical).digest(\"hex\");\n}\n\n/** Extraer el texto de una respuesta (string o content array). */\nexport function messageText(content: unknown): string {\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.filter((b): b is TextContent => typeof b === \"object\" && b !== null && (b as { type?: string }).type === \"text\")\n\t\t.map((b) => b.text ?? \"\")\n\t\t.join(\"\\n\")\n\t\t.trim();\n}\n\n/** Extraer JSON del texto (para structured output fallback). */\nexport function extractJson(text: string): unknown | undefined {\n\tconst cleaned = text\n\t\t.replace(/```json\\s*/g, \"\")\n\t\t.replace(/```/g, \"\")\n\t\t.trim();\n\tconst start = cleaned.indexOf(\"{\");\n\tconst end = cleaned.lastIndexOf(\"}\");\n\tif (start === -1 || end === -1) return undefined;\n\ttry {\n\t\treturn JSON.parse(cleaned.slice(start, end + 1));\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Tools por defecto de un subagente (espejo de sdk.ts:263), MÁS `yield`\n * siempre — es la tool de entrega incremental (ver contrato/yield.ts) y no es\n * un permiso adicional: reportar un hallazgo no lee ni escribe nada que las\n * tools base ya no autoricen. Un subagente que nunca la llama se comporta\n * exactamente como antes.\n */\nconst SUBAGENT_DEFAULT_TOOLS = [\"read\", \"bash\", \"edit\", \"write\", \"yield\"];\n/**\n * Mínimo privilegio: leer y buscar, nada de escribir ni ejecutar. `yield`\n * también aquí — un agente de solo lectura cuyo trabajo ES encontrar cosas\n * necesita poder reportarlas.\n */\nconst SUBAGENT_READONLY_TOOLS = [\"read\", \"grep\", \"find\", \"ls\", \"yield\"];\n/** Red: nunca implícitas, ni siquiera bajo `readOnly`. Ver resolveAllowedTools. */\nconst WEB_TOOL_NAMES = [\"web_search\", \"web_fetch\"];\n/** Navegador: opt-in aparte de `web`. Conducir un navegador no es leer una URL. */\nconst BROWSER_TOOL_NAMES = [\n\t\"browser_open\",\n\t\"browser_navigate\",\n\t\"browser_read\",\n\t\"browser_click\",\n\t\"browser_type\",\n\t\"browser_screenshot\",\n\t\"browser_viewport\",\n\t\"browser_close\",\n];\n\n/**\n * Allowlist de tools del subagente.\n *\n * Desenreda un bug latente: `options.tools` son tools EXTRA (web_search…) y se\n * pasaban a la vez como `customTools` y como allowlist, de modo que pedir una\n * tool extra ESTRECHABA el permiso en silencio a solo esa — un agente que pedía\n * `web_search` perdía `read`/`bash`/`edit`/`write` sin que nadie lo notara.\n * Ahora las extra se SUMAN a la base, que es lo que el nombre siempre prometió.\n */\nexport function resolveAllowedTools(options: {\n\treadOnly?: boolean;\n\tweb?: boolean;\n\tbrowser?: boolean;\n\ttools?: Array<{ name: string }>;\n}): string[] {\n\tconst base = options.readOnly ? SUBAGENT_READONLY_TOOLS : SUBAGENT_DEFAULT_TOOLS;\n\tconst extras = (options.tools ?? []).map((t) => t.name);\n\t// El acceso a red es opt-in aunque `web_fetch` sea \"de lectura\": leer la web\n\t// no es leer el disco. Un subagente con red es una vía de salida para lo que\n\t// haya leído, así que el script tiene que pedirlo por su nombre.\n\tconst web = options.web ? WEB_TOOL_NAMES : [];\n\t// `browser` no se hereda de `web`: descargar una URL y conducir un navegador\n\t// con sesión, formularios y capturas no son el mismo permiso.\n\tconst navegador = options.browser ? BROWSER_TOOL_NAMES : [];\n\treturn [...new Set([...base, ...web, ...navegador, ...extras])];\n}\n\nexport class AgentRunner {\n\tprivate agentDir: string;\n\tprivate createSession: CreateSubagentSession;\n\tprivate limiter: AgentRunnerOptions[\"limiter\"];\n\tprivate agentCounter: AgentRunnerOptions[\"agentCounter\"];\n\tprivate maxAgents: number;\n\tprivate retries: number;\n\tprivate agentTimeoutMs: number | null;\n\n\tconstructor(options: AgentRunnerOptions) {\n\t\tthis.agentDir = options.agentDir;\n\t\tthis.createSession = options.createSession;\n\t\tthis.limiter = options.limiter;\n\t\tthis.agentCounter = options.agentCounter;\n\t\tthis.maxAgents = options.maxAgents;\n\t\tthis.retries = options.retries ?? 3;\n\t\tthis.agentTimeoutMs = options.agentTimeoutMs ?? null;\n\t}\n\n\tasync run<T = unknown>(options: AgentRunOptions): Promise<AgentRunResult<T> | null> {\n\t\treturn this.limiter(async () => {\n\t\t\tif (this.agentCounter.count >= this.maxAgents) {\n\t\t\t\tthrow new WorkflowError(\n\t\t\t\t\t\"WORKFLOW_MAX_AGENTS\",\n\t\t\t\t\t`Límite de agentes del run alcanzado (${this.maxAgents}). Súbelo con el ajuste workflows.maxAgentsPerRun.`,\n\t\t\t\t\t{ recoverable: false },\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.agentCounter.count++;\n\n\t\t\tlet attempt = 0;\n\t\t\tlet lastError: Error | undefined;\n\t\t\tfor (; attempt <= this.retries; attempt++) {\n\t\t\t\tconst signal = options.signal;\n\t\t\t\tif (signal?.aborted) return null;\n\t\t\t\ttry {\n\t\t\t\t\treturn await this.runOnce<T>(options, signal);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (signal?.aborted) return null;\n\t\t\t\t\tif (isAbortError(error) || isTimeoutError(error)) throw error;\n\t\t\t\t\tlastError = error instanceof Error ? error : new Error(String(error));\n\t\t\t\t\tif (attempt >= this.retries) break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (lastError) throw lastError;\n\t\t\treturn null;\n\t\t});\n\t}\n\n\tprivate async runOnce<T>(options: AgentRunOptions, signal?: AbortSignal): Promise<AgentRunResult<T> | null> {\n\t\t// Timeout combinado: el del agente + el del run.\n\t\tconst timeoutMs = options.timeoutMs ?? this.agentTimeoutMs;\n\t\tlet timeoutTimer: ReturnType<typeof setTimeout> | undefined;\n\t\tconst timeout = new Promise<never>((_resolve, reject) => {\n\t\t\tif (timeoutMs === null) return;\n\t\t\ttimeoutTimer = setTimeout(() => {\n\t\t\t\treject(\n\t\t\t\t\tnew WorkflowError(\"WORKFLOW_AGENT_TIMEOUT\", `Agent timed out after ${timeoutMs}ms`, {\n\t\t\t\t\t\trecoverable: false,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}, timeoutMs);\n\t\t});\n\n\t\tconst baseCwd = options.cwd ?? process.cwd();\n\t\t// Aislamiento git: los agentes con escritura que corren en paralelo\n\t\t// editaban el MISMO checkout y se pisaban en silencio. El nombre es\n\t\t// determinista (isolationKey = runId:callIndex) para que un resume\n\t\t// reencuentre el mismo worktree. Fuera de un repo git hace no-op.\n\t\tlet worktree: Worktree | null = null;\n\t\tlet finalized: { branch?: string; kept: boolean } | undefined;\n\t\tconst worktreeMessage = `ada: ${options.label ?? options.isolationKey ?? \"agent\"}`;\n\t\tif (options.isolation === \"worktree\") {\n\t\t\tworktree = await createWorktree(baseCwd, options.isolationKey ?? options.label ?? \"agent\");\n\t\t}\n\n\t\tlet subagent: SubagentSession | null = null;\n\t\t// Hallazgos entregados por `yield` durante ESTE intento. Sobreviven aunque\n\t\t// el subagente se descarrile más abajo — ese es el motivo de que exista.\n\t\tconst buffer = new BufferDeHallazgos();\n\t\ttry {\n\t\t\tsubagent = await this.createSession({\n\t\t\t\tcwd: worktree?.cwd ?? baseCwd,\n\t\t\t\tagentDir: this.agentDir,\n\t\t\t\tmodelSpec: options.model ?? (options.tier ? `tier:${options.tier}` : undefined),\n\t\t\t\ttools: resolveAllowedTools(options),\n\t\t\t\tcustomTools: [...(options.tools ?? []), crearHerramientaYield({ buffer, onEntrega: options.onYield })],\n\t\t\t\tsessionName: options.label ? `workflow:${options.label}` : undefined,\n\t\t\t\tinstructions: options.instructions,\n\t\t\t});\n\t\t\tconst session = subagent.session;\n\n\t\t\tconst lastAssistantText: string[] = [];\n\t\t\tconst unsubscribe = session.subscribe((event: AgentSessionEvent) => {\n\t\t\t\tif (event.type === \"message_end\" && event.message.role === \"assistant\") {\n\t\t\t\t\tconst text = messageText(event.message.content);\n\t\t\t\t\tif (text) lastAssistantText.push(text);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst sessionId = () =>\n\t\t\t\t(session as { sessionManager?: { getSessionId?: () => string } }).sessionManager?.getSessionId?.();\n\t\t\tlet textoFinal = \"\";\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tawait Promise.race([session.sendUserMessage(options.prompt), timeout]);\n\t\t\t\t\tawait Promise.race([session.waitForIdle(), timeout]);\n\t\t\t\t\tif (signal?.aborted) return null;\n\n\t\t\t\t\ttextoFinal = lastAssistantText.length > 0 ? lastAssistantText[lastAssistantText.length - 1] : \"\";\n\t\t\t\t\tlet result: T | null = null;\n\t\t\t\t\tlet validacion: AgentRunResult<T>[\"validacion\"];\n\n\t\t\t\t\tif (options.schema) {\n\t\t\t\t\t\tconst resultado = await validarConReintentos<T>({\n\t\t\t\t\t\t\tesquema: options.schema,\n\t\t\t\t\t\t\ttextoInicial: textoFinal,\n\t\t\t\t\t\t\tmaxReintentos: options.maxReintentosValidacion ?? 2,\n\t\t\t\t\t\t\textraer: extractJson,\n\t\t\t\t\t\t\tpedirCorreccion: async (mensaje) => {\n\t\t\t\t\t\t\t\tawait Promise.race([session.sendUserMessage(mensaje), timeout]);\n\t\t\t\t\t\t\t\tawait Promise.race([session.waitForIdle(), timeout]);\n\t\t\t\t\t\t\t\tif (lastAssistantText.length > 0) textoFinal = lastAssistantText[lastAssistantText.length - 1];\n\t\t\t\t\t\t\t\treturn textoFinal;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t\tresult = resultado.datos;\n\t\t\t\t\t\tvalidacion = {\n\t\t\t\t\t\t\tvalido: resultado.valido,\n\t\t\t\t\t\t\tintentos: resultado.intentos,\n\t\t\t\t\t\t\treparado: resultado.reparado,\n\t\t\t\t\t\t\terrores: resultado.errores,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = (textoFinal.length > 0 ? textoFinal : null) as unknown as T;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Consolidar el worktree ANTES de devolver: si solo lo retirásemos, los\n\t\t\t\t\t// cambios sin commitear del agente se perderían y el aislamiento no\n\t\t\t\t\t// habría servido de nada. La rama sobrevive para que un humano la\n\t\t\t\t\t// mergee; no hay auto-merge a propósito.\n\t\t\t\t\tif (worktree && !finalized) {\n\t\t\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\ttext: textoFinal,\n\t\t\t\t\t\tusage: subagent.getUsage(),\n\t\t\t\t\t\tsessionId: sessionId(),\n\t\t\t\t\t\tworktreeBranch: finalized?.branch,\n\t\t\t\t\t\t...(validacion ? { validacion } : {}),\n\t\t\t\t\t\t...(buffer.longitud > 0 ? { hallazgos: buffer.todos() } : {}),\n\t\t\t\t\t} as AgentRunResult<T>;\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// YIELD FINAL FORZADO. El subagente se descarriló (timeout, error del\n\t\t\t\t\t// SDK, lo que sea) EN CUALQUIER PUNTO del intercambio — incluida la\n\t\t\t\t\t// ronda de corrección de esquema. Si ya había entregado hallazgos con\n\t\t\t\t\t// `yield`, eso NO se pierde: es justo lo que este contrato existe para\n\t\t\t\t\t// evitar (\"lo más importante\", según la tarea).\n\t\t\t\t\t//\n\t\t\t\t\t// Sin hallazgos que salvar esto es un fallo real (\"no pude\", no \"no\n\t\t\t\t\t// hay\") y se propaga tal cual — mismo comportamiento que antes de este\n\t\t\t\t\t// cambio, para no enmascarar errores genuinos con un resultado vacío.\n\t\t\t\t\t//\n\t\t\t\t\t// Un abort (`signal.aborted`) NUNCA entra en el yield final forzado,\n\t\t\t\t\t// aunque haya hallazgos: cancelar significa \"para del todo\", igual que\n\t\t\t\t\t// ya hacía el camino de éxito (línea de arriba, `if (signal?.aborted)\n\t\t\t\t\t// return null`) con un resultado completo y válido. Si esto cambiara,\n\t\t\t\t\t// el workflow trataría una cancelación como un resultado parcial\n\t\t\t\t\t// utilizable y seguiría a la siguiente fase con datos a medias.\n\t\t\t\t\tif (signal?.aborted || buffer.longitud === 0) throw error;\n\t\t\t\t\tconst motivo = error instanceof Error ? error.message : String(error);\n\t\t\t\t\tif (worktree && !finalized) {\n\t\t\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresult: ensamblarResultadoIncremental(buffer) as unknown as T,\n\t\t\t\t\t\ttext: textoFinal,\n\t\t\t\t\t\tusage: subagent.getUsage(),\n\t\t\t\t\t\tsessionId: sessionId(),\n\t\t\t\t\t\tworktreeBranch: finalized?.branch,\n\t\t\t\t\t\tdescarrilado: true,\n\t\t\t\t\t\tmotivoDescarrile: motivo,\n\t\t\t\t\t\thallazgos: buffer.todos(),\n\t\t\t\t\t} as AgentRunResult<T>;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tunsubscribe();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (timeoutTimer) clearTimeout(timeoutTimer);\n\t\t\tsubagent?.dispose();\n\t\t\t// Camino de error/abort sin hallazgos que salvar: el return no llegó a\n\t\t\t// consolidar, pero el trabajo parcial del agente también merece\n\t\t\t// sobrevivir para poder inspeccionarlo — y hay que soltar el worktree\n\t\t\t// igualmente.\n\t\t\tif (worktree && !finalized) {\n\t\t\t\tfinalized = await finalizeWorktree(worktree, worktreeMessage);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction isAbortError(error: unknown): boolean {\n\treturn error instanceof Error && error.name === \"AbortError\";\n}\n\nfunction isTimeoutError(error: unknown): boolean {\n\treturn error instanceof WorkflowError && error.code === \"WORKFLOW_AGENT_TIMEOUT\";\n}\n\n/** Tipos re-exportados para el index. */\nexport type { WorkflowErrorCode };\n"]}
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/core/workflows/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/core/workflows/builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,sFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAuDzG;AAED,yFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CA8CrF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CA2DnD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAiDtG;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAuC9F","sourcesContent":["/**\n * Builtins — generadores de scripts de workflow (deep-research, code-review,\n * product-build, codebase-audit, multi-perspective).\n *\n * Los builtins son versionados con el SDK y TESTEADOS — no scripts sueltos\n * del usuario. Devuelven el script que ejecuta el runtime.\n *\n * Regla de oro: TODO fragmento estático de prompt se emite con q()\n * (JSON.stringify) — el escapado queda garantizado por construcción y el\n * script generado SIEMPRE es JS válido (verificado por tests vm-parse).\n */\n\n/** Emite un literal string JS correctamente escapado. */\nfunction q(s: string): string {\n\treturn JSON.stringify(s);\n}\n\n/** Deep-research: plan → gather (parallel, con web tools) → verify → report. */\nexport function generateDeepResearchScript(options: { angles?: number; minSupport?: number } = {}): string {\n\tconst angles = Math.min(Math.max(options.angles ?? 4, 1), 12);\n\tconst minSupport = options.minSupport ?? 2;\n\treturn `export const meta = {\n \"name\": \"deep_research\",\n \"description\": \"Deep research con búsqueda web y verificación cruzada\",\n \"phases\": [\n { \"title\": \"Queries\" },\n { \"title\": \"Gather\" },\n { \"title\": \"Verify\" },\n { \"title\": \"Report\" }\n ]\n}\n\nphase(\"Queries\")\nconst plan = await agent({\n prompt: ${q(\"Planifica la investigación web para esta pregunta: \")} + (args.question ?? \"\") +\n ${q(`\\n\\nProduce ${angles} consultas diversas y específicas. Devuelve JSON {\"queries\": [\"...\"]}.`)},\n label: \"planificar consultas\",\n schema: { type: \"object\", properties: { queries: { type: \"array\", items: { type: \"string\" } } }, required: [\"queries\"] }\n})\nconst planned = plan && Array.isArray(plan.queries) ? plan.queries.filter((q) => typeof q === \"string\" && q.trim().length > 0) : []\nconst queries = (planned.length > 0 ? planned : [args.question ?? \"\"]).slice(0, ${angles})\n\nphase(\"Gather\")\nconst gathered = await parallel(queries.map((q, i) => () =>\n agent({\n prompt: ${q(\"Investiga esta consulta usando las tools web_search y web_fetch.\\nConsulta: \")} + q +\n ${q('\\n\\nPasos: (1) web_search; (2) web_fetch de las 2 URLs más relevantes; (3) extrae claims verificables, cada uno con su URL exacta. NO inventes fuentes. Devuelve JSON {\"sources\": [{\"url\": string, \"claims\": [string]}]}.')},\n label: \"investigar: \" + String(q).slice(0, 60),\n readOnly: true,\n web: true,\n schema: { type: \"object\", properties: { sources: { type: \"array\", items: { type: \"object\", properties: { url: { type: \"string\" }, claims: { type: \"array\", items: { type: \"string\" } } }, required: [\"url\", \"claims\"] } } }, required: [\"sources\"] }\n })\n))\nconst allSources = gathered.filter(Boolean).flatMap((g) => (g && g.sources) || [])\n\nphase(\"Verify\")\nconst verified = await agent({\n prompt: ${q(`Verifica los claims recopilados. Para cada claim, comprueba que tenga al menos ${minSupport} fuentes independientes que lo respalden. Devuelve JSON {\"verifiedClaims\": [{ \"claim\": string, \"sources\": [string] }], \"uncertain\": [string]}.`)},\n label: \"verificar claims (\" + allSources.length + \" fuentes)\",\n readOnly: true,\n schema: { type: \"object\", properties: { verifiedClaims: { type: \"array\", items: { type: \"object\", properties: { claim: { type: \"string\" }, sources: { type: \"array\", items: { type: \"string\" } } }, required: [\"claim\", \"sources\"] } }, uncertain: { type: \"array\", items: { type: \"string\" } } }, required: [\"verifiedClaims\", \"uncertain\"] }\n})\n\nphase(\"Report\")\nconst report = await agent({\n prompt: ${q(\"Escribe un informe en Markdown sobre: \")} + (args.question ?? \"\") +\n ${q('\\n\\nUsa SOLO los claims verificados, citando las fuentes como [1], [2]... con la lista de fuentes al final. Marca explícitamente lo incierto. Devuelve el informe en JSON {\"report\": string}.')},\n label: \"redactar informe\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn report ? report.report : null\n`;\n}\n\n/** Code-review: diff por módulo → reviewers paralelos → síntesis con severidad. */\nexport function generateCodeReviewScript(options: { reviewers?: number } = {}): string {\n\tconst reviewers = Math.min(Math.max(options.reviewers ?? 3, 1), 6);\n\tconst perspectives = [\n\t\t\"bugs y errores lógicos\",\n\t\t\"seguridad y límites de confianza\",\n\t\t\"mantenibilidad y deuda técnica\",\n\t].slice(0, reviewers);\n\treturn `export const meta = {\n \"name\": \"code_review\",\n \"description\": \"Revisión de código con reviewers paralelos y síntesis por severidad\",\n \"phases\": [\n { \"title\": \"Diff\" },\n { \"title\": \"Review\" },\n { \"title\": \"Synthesize\" }\n ]\n}\n\nphase(\"Diff\")\nconst diff = await agent({\n prompt: ${q('Obtén el diff del cambio (git diff HEAD~1 o el rango indicado en args.diff). Devuelve JSON {\"diff\": string} con el diff completo (máx 10000 chars).')},\n label: \"obtener diff\",\n schema: { type: \"object\", properties: { diff: { type: \"string\" } }, required: [\"diff\"] }\n})\n\nphase(\"Review\")\nconst perspectives = ${JSON.stringify(perspectives)}\nconst reviews = await parallel(perspectives.map((p, i) => () =>\n agent({\n prompt: ${q(\"Revisa el siguiente diff desde la perspectiva: \")} + p +\n ${q(\"\\n\\nDIFF:\\n\")} + (diff ? diff.diff : \"(sin diff)\") +\n ${q('\\n\\nPara cada hallazgo cita archivo:línea. NO inventes. Devuelve JSON {\"findings\": [{\"severity\": \"critical|major|minor\", \"file\": string, \"line\": number, \"issue\": string, \"suggestion\": string}]}.')},\n label: \"revisar: \" + p,\n readOnly: true,\n schema: { type: \"object\", properties: { findings: { type: \"array\", items: { type: \"object\", properties: { severity: { type: \"string\" }, file: { type: \"string\" }, line: { type: \"number\" }, issue: { type: \"string\" }, suggestion: { type: \"string\" } }, required: [\"severity\", \"file\", \"issue\"] } } }, required: [\"findings\"] }\n })\n))\n\nphase(\"Synthesize\")\nconst synthesis = await agent({\n prompt: ${q('Sintetiza estos hallazgos de revisión en un informe final Markdown ordenado por severidad (crítico primero), sin duplicados y con las citas archivo:línea. Devuelve JSON {\"report\": string}.')},\n label: \"sintetizar hallazgos\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn synthesis ? synthesis.report : null\n`;\n}\n\n/**\n * Product-build (Ada Intelligence, §4): acceptance criteria → fases TDD →\n * verify ejecuta los tests → done con verified_by y evidencia.\n */\nexport function generateProductBuildScript(): string {\n\treturn `export const meta = {\n \"name\": \"product_build\",\n \"description\": \"Construcción de producto con acceptance criteria y verify con evidencia\",\n \"phases\": [\n { \"title\": \"Frame\" },\n { \"title\": \"Plan\" },\n { \"title\": \"Build\" },\n { \"title\": \"Verify\" },\n { \"title\": \"Done\" }\n ]\n}\n\nphase(\"Frame\")\nconst framed = await agent({\n prompt: ${q(\"Enmarca el producto para este brief: \")} + ((args.brief ?? args.acceptanceCriteria) ?? \"\") +\n ${q('\\n\\nDefine acceptance criteria observables y medibles. Devuelve JSON {\"criteria\": [{\"id\": string, \"description\": string}]} (máx 6).')},\n label: \"definir criterios\",\n schema: { type: \"object\", properties: { criteria: { type: \"array\", items: { type: \"object\", properties: { id: { type: \"string\" }, description: { type: \"string\" } }, required: [\"id\", \"description\"] } } }, required: [\"criteria\"] }\n})\nconst criteria = (framed && framed.criteria) || []\n\nphase(\"Plan\")\nconst planned = await agent({\n prompt: ${q('Planifica las tareas para cumplir estos criterios. Por cada criterio indica el test que lo verifica. Devuelve JSON {\"tasks\": [{\"title\": string, \"criterion\": string, \"test\": string}]}.\\n\\nCriterios:\\n')} +\n JSON.stringify(criteria),\n label: \"planificar tareas\",\n schema: { type: \"object\", properties: { tasks: { type: \"array\", items: { type: \"object\", properties: { title: { type: \"string\" }, criterion: { type: \"string\" }, test: { type: \"string\" } }, required: [\"title\", \"criterion\"] } } }, required: [\"tasks\"] }\n})\n\nphase(\"Build\")\nconst built = await parallel((planned && planned.tasks || []).map((t, i) => () =>\n agent({\n prompt: ${q(\"Tarea: \")} + t.title + ${q(\"\\nCriterio que resuelve: \")} + t.criterion +\n ${q(\"\\nImplementa el mínimo y escribe el test: \")} + (t.test ?? \"\") +\n ${q('\\nEjecuta el test y confirma. Devuelve el archivo que cambiaste en {\"file\": string, \"verified\": boolean}.')},\n label: \"construir: \" + t.title,\n isolation: \"worktree\",\n schema: { type: \"object\", properties: { file: { type: \"string\" }, verified: { type: \"boolean\" } }, required: [\"file\", \"verified\"] }\n })\n))\nconst artifacts = built.filter(Boolean).filter((b) => b && b.verified)\n\nphase(\"Verify\")\nconst verification = await agent({\n prompt: ${q('Ejecuta el/los comando(s) de verificación del proyecto (args.verifyCommand o el test runner default). Para cada criterio, confirma con evidencia archivo:línea o salida de test. Devuelve JSON {\"results\": [{\"criterion\": string, \"verified_by\": string, \"evidence\": string}]}.')},\n label: \"verificar criterios (\" + criteria.length + \")\",\n schema: { type: \"object\", properties: { results: { type: \"array\", items: { type: \"object\", properties: { criterion: { type: \"string\" }, verified_by: { type: \"string\" }, evidence: { type: \"string\" } }, required: [\"criterion\", \"verified_by\", \"evidence\"] } } }, required: [\"results\"] }\n})\n\nphase(\"Done\")\nconst done = await agent({\n prompt: ${q('Redacta el informe final de build. Solo declara done si CADA criterio tiene verified_by y evidencia. Devuelve JSON {\"report\": string, \"done\": boolean, \"gaps\": [string]}.')},\n label: \"informe final\",\n schema: { type: \"object\", properties: { report: { type: \"string\" }, done: { type: \"boolean\" }, gaps: { type: \"array\", items: { type: \"string\" } } }, required: [\"report\", \"done\"] }\n})\n\nreturn done ? done.report || JSON.stringify(done) : null\n`;\n}\n\n/**\n * Codebase-audit (§4): módulos → auditoría paralela (seguridad, deuda, bugs,\n * compliance) → informe + (opcional) nodos QA_FINDING/RISK del grafo.\n */\nexport function generateCodebaseAuditScript(options: { angles?: number; graph?: boolean } = {}): string {\n\tconst angles = Math.min(Math.max(options.angles ?? 4, 1), 8);\n\tconst perspectives = [\n\t\t\"seguridad (injection, secrets, límites de confianza)\",\n\t\t\"deuda técnica y arquitectura\",\n\t\t\"bugs y correctitud\",\n\t\t\"cumplimiento / RGPD / datos personales\",\n\t].slice(0, angles);\n\tconst graphHooks = options.graph\n\t\t? \"\\n\\nTras el informe, usa la tool graph_add_nodes para registrar QA_FINDING y RISK con sus citas.\"\n\t\t: \"\";\n\treturn `export const meta = {\n \"name\": \"codebase_audit\",\n \"description\": \"Auditoría del codebase con ángulos paralelos y síntesis\",\n \"phases\": [\n { \"title\": \"Walk\" },\n { \"title\": \"Audit\" },\n { \"title\": \"Report\" }\n ]\n}\n\nphase(\"Walk\")\nconst modules = await agent({\n prompt: ${q(`Audita este repo: (args.path ?? \".\"). En qué módulos se dividiría la auditoría. Devuelve JSON {\"modules\": [string]} (máx ${angles}).`)},\n label: \"identificar módulos\",\n schema: { type: \"object\", properties: { modules: { type: \"array\", items: { type: \"string\" } } }, required: [\"modules\"] }\n})\n\nphase(\"Audit\")\nconst perspectives = ${JSON.stringify(perspectives)}\nconst audits = await parallel(perspectives.map((p, i) => () =>\n agent({\n prompt: ${q(\"Audita el módulo(s) desde la perspectiva: \")} + p +\n ${q(\"\\nMódulos: \")} + JSON.stringify((modules && modules.modules) || []) +\n ${q(`\\nPara cada hallazgo cita archivo:línea. Devuelve JSON {\"findings\": [{\"type\": \"RISK|QA_FINDING\", \"severity\": string, \"file\": string, \"line\": number, \"issue\": string}]}.${graphHooks}`)},\n label: \"auditar: \" + p,\n schema: { type: \"object\", properties: { findings: { type: \"array\", items: { type: \"object\", properties: { type: { type: \"string\" }, severity: { type: \"string\" }, file: { type: \"string\" }, issue: { type: \"string\" } }, required: [\"type\", \"severity\", \"file\", \"issue\"] } } }, required: [\"findings\"] }\n })\n))\n\nphase(\"Report\")\nconst report = await agent({\n prompt: ${q('Sintetiza los hallazgos de auditoría en un informe Markdown ordenado por severidad, agrupado por perspectiva, con citas archivo:línea y recomendaciones priorizadas. Devuelve JSON {\"report\": string}.')},\n label: \"sintetizar auditoría\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn report ? report.report : null\n`;\n}\n\n/**\n * Multi-perspective (§4): el mismo problema desde N ángulos → síntesis con\n * desacuerdos explícitos (no consenso falso).\n */\nexport function generateMultiPerspectiveScript(options: { perspectives?: number } = {}): string {\n\tconst n = Math.min(Math.max(options.perspectives ?? 4, 2), 8);\n\tconst list = [\n\t\t\"correctitud e invariantes\",\n\t\t\"rendimiento y escalabilidad\",\n\t\t\"seguridad y confianza\",\n\t\t\"mantenibilidad y claridad\",\n\t\t\"producto y UX\",\n\t\t\"coste de operación\",\n\t].slice(0, n);\n\treturn `export const meta = {\n \"name\": \"multi_perspective\",\n \"description\": \"Análisis del mismo problema desde N perspectivas con desacuerdos explícitos\",\n \"phases\": [\n { \"title\": \"Perspectives\" },\n { \"title\": \"Synthesize\" }\n ]\n}\n\nphase(\"Perspectives\")\nconst views = await parallel(${JSON.stringify(list)}.map((p, i) => () =>\n agent({\n prompt: ${q(\"Analiza este problema: \")} + (args.problem ?? \"\") +\n ${q(\"\\nDesde la perspectiva: \")} + p +\n ${q('\\nDa tu análisis, recomendación y riesgos. Devuelve JSON {\"perspective\": string, \"recommendation\": string, \"risks\": [string]}.')},\n label: \"perspectiva: \" + p,\n schema: { type: \"object\", properties: { perspective: { type: \"string\" }, recommendation: { type: \"string\" }, risks: { type: \"array\", items: { type: \"string\" } } }, required: [\"perspective\", \"recommendation\"] }\n })\n))\n\nphase(\"Synthesize\")\nconst synthesis = await agent({\n prompt: ${q('Sintetiza los análisis. SEÑALA EXPLÍCITAMENTE los desacuerdos entre perspectivas (no creas consenso falso). Devuelve JSON {\"summary\": string, \"disagreements\": [string], \"recommended\": string}.')},\n label: \"sintetizar análisis\",\n schema: { type: \"object\", properties: { summary: { type: \"string\" }, disagreements: { type: \"array\", items: { type: \"string\" } }, recommended: { type: \"string\" } }, required: [\"summary\", \"recommended\"] }\n})\n\nreturn synthesis ? synthesis.summary || JSON.stringify(synthesis) : null\n`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../../src/core/workflows/builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAuDzG;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CA8CrF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CA2DnD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAiDtG;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAuC9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/core/workflows/builtins.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Builtins — generadores de scripts de workflow (deep-research, code-review,\n * product-build, codebase-audit, multi-perspective).\n *\n * Los builtins son versionados con el SDK y TESTEADOS — no scripts sueltos\n * del usuario. Devuelven el script que ejecuta el runtime.\n *\n * Regla de oro: TODO fragmento estático de prompt se emite con q()\n * (JSON.stringify) — el escapado queda garantizado por construcción y el\n * script generado SIEMPRE es JS válido (verificado por tests vm-parse).\n */\n\n/** Emite un literal string JS correctamente escapado. */\nfunction q(s: string): string {\n\treturn JSON.stringify(s);\n}\n\n/** Deep-research: plan → gather (parallel, con web tools) → verify → report. */\nexport function generateDeepResearchScript(options: { angles?: number; minSupport?: number } = {}): string {\n\tconst angles = Math.min(Math.max(options.angles ?? 4, 1), 12);\n\tconst minSupport = options.minSupport ?? 2;\n\treturn `export const meta = {\n \"name\": \"deep_research\",\n \"description\": \"Deep research con búsqueda web y verificación cruzada\",\n \"phases\": [\n { \"title\": \"Queries\" },\n { \"title\": \"Gather\" },\n { \"title\": \"Verify\" },\n { \"title\": \"Report\" }\n ]\n}\n\nphase(\"Queries\")\nconst plan = await agent({\n prompt: ${q(\"Planifica la investigación web para esta pregunta: \")} + (args.question ?? \"\") +\n ${q(`\\n\\nProduce ${angles} consultas diversas y específicas. Devuelve JSON {\"queries\": [\"...\"]}.`)},\n label: \"planificar consultas\",\n schema: { type: \"object\", properties: { queries: { type: \"array\", items: { type: \"string\" } } }, required: [\"queries\"] }\n})\nconst planned = plan && Array.isArray(plan.queries) ? plan.queries.filter((q) => typeof q === \"string\" && q.trim().length > 0) : []\nconst queries = (planned.length > 0 ? planned : [args.question ?? \"\"]).slice(0, ${angles})\n\nphase(\"Gather\")\nconst gathered = await parallel(queries.map((q, i) => () =>\n agent({\n prompt: ${q(\"Investiga esta consulta usando las tools web_search y web_fetch.\\nConsulta: \")} + q +\n ${q('\\n\\nPasos: (1) web_search; (2) web_fetch de las 2 URLs más relevantes; (3) extrae claims verificables, cada uno con su URL exacta. NO inventes fuentes. Devuelve JSON {\"sources\": [{\"url\": string, \"claims\": [string]}]}.')},\n label: \"investigar: \" + String(q).slice(0, 60),\n readOnly: true,\n web: true,\n schema: { type: \"object\", properties: { sources: { type: \"array\", items: { type: \"object\", properties: { url: { type: \"string\" }, claims: { type: \"array\", items: { type: \"string\" } } }, required: [\"url\", \"claims\"] } } }, required: [\"sources\"] }\n })\n))\nconst allSources = gathered.filter(Boolean).flatMap((g) => (g && g.sources) || [])\n\nphase(\"Verify\")\nconst verified = await agent({\n prompt: ${q(`Verifica los claims recopilados. Para cada claim, comprueba que tenga al menos ${minSupport} fuentes independientes que lo respalden. Devuelve JSON {\"verifiedClaims\": [{ \"claim\": string, \"sources\": [string] }], \"uncertain\": [string]}.`)},\n label: \"verificar claims (\" + allSources.length + \" fuentes)\",\n readOnly: true,\n schema: { type: \"object\", properties: { verifiedClaims: { type: \"array\", items: { type: \"object\", properties: { claim: { type: \"string\" }, sources: { type: \"array\", items: { type: \"string\" } } }, required: [\"claim\", \"sources\"] } }, uncertain: { type: \"array\", items: { type: \"string\" } } }, required: [\"verifiedClaims\", \"uncertain\"] }\n})\n\nphase(\"Report\")\nconst report = await agent({\n prompt: ${q(\"Escribe un informe en Markdown sobre: \")} + (args.question ?? \"\") +\n ${q('\\n\\nUsa SOLO los claims verificados, citando las fuentes como [1], [2]... con la lista de fuentes al final. Marca explícitamente lo incierto. Devuelve el informe en JSON {\"report\": string}.')},\n label: \"redactar informe\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn report ? report.report : null\n`;\n}\n\n/** Code-review: diff por módulo → reviewers paralelos → síntesis con severidad. */\nexport function generateCodeReviewScript(options: { reviewers?: number } = {}): string {\n\tconst reviewers = Math.min(Math.max(options.reviewers ?? 3, 1), 6);\n\tconst perspectives = [\n\t\t\"bugs y errores lógicos\",\n\t\t\"seguridad y límites de confianza\",\n\t\t\"mantenibilidad y deuda técnica\",\n\t].slice(0, reviewers);\n\treturn `export const meta = {\n \"name\": \"code_review\",\n \"description\": \"Revisión de código con reviewers paralelos y síntesis por severidad\",\n \"phases\": [\n { \"title\": \"Diff\" },\n { \"title\": \"Review\" },\n { \"title\": \"Synthesize\" }\n ]\n}\n\nphase(\"Diff\")\nconst diff = await agent({\n prompt: ${q('Obtén el diff del cambio (git diff HEAD~1 o el rango indicado en args.diff). Devuelve JSON {\"diff\": string} con el diff completo (máx 10000 chars).')},\n label: \"obtener diff\",\n schema: { type: \"object\", properties: { diff: { type: \"string\" } }, required: [\"diff\"] }\n})\n\nphase(\"Review\")\nconst perspectives = ${JSON.stringify(perspectives)}\nconst reviews = await parallel(perspectives.map((p, i) => () =>\n agent({\n prompt: ${q(\"Revisa el siguiente diff desde la perspectiva: \")} + p +\n ${q(\"\\n\\nDIFF:\\n\")} + (diff ? diff.diff : \"(sin diff)\") +\n ${q('\\n\\nPara cada hallazgo cita archivo:línea. NO inventes. Devuelve JSON {\"findings\": [{\"severity\": \"critical|major|minor\", \"file\": string, \"line\": number, \"issue\": string, \"suggestion\": string}]}.')},\n label: \"revisar: \" + p,\n readOnly: true,\n schema: { type: \"object\", properties: { findings: { type: \"array\", items: { type: \"object\", properties: { severity: { type: \"string\" }, file: { type: \"string\" }, line: { type: \"number\" }, issue: { type: \"string\" }, suggestion: { type: \"string\" } }, required: [\"severity\", \"file\", \"issue\"] } } }, required: [\"findings\"] }\n })\n))\n\nphase(\"Synthesize\")\nconst synthesis = await agent({\n prompt: ${q('Sintetiza estos hallazgos de revisión en un informe final Markdown ordenado por severidad (crítico primero), sin duplicados y con las citas archivo:línea. Devuelve JSON {\"report\": string}.')},\n label: \"sintetizar hallazgos\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn synthesis ? synthesis.report : null\n`;\n}\n\n/**\n * Product-build (Ada Intelligence, §4): acceptance criteria → fases TDD →\n * verify ejecuta los tests → done con verified_by y evidencia.\n */\nexport function generateProductBuildScript(): string {\n\treturn `export const meta = {\n \"name\": \"product_build\",\n \"description\": \"Construcción de producto con acceptance criteria y verify con evidencia\",\n \"phases\": [\n { \"title\": \"Frame\" },\n { \"title\": \"Plan\" },\n { \"title\": \"Build\" },\n { \"title\": \"Verify\" },\n { \"title\": \"Done\" }\n ]\n}\n\nphase(\"Frame\")\nconst framed = await agent({\n prompt: ${q(\"Enmarca el producto para este brief: \")} + ((args.brief ?? args.acceptanceCriteria) ?? \"\") +\n ${q('\\n\\nDefine acceptance criteria observables y medibles. Devuelve JSON {\"criteria\": [{\"id\": string, \"description\": string}]} (máx 6).')},\n label: \"definir criterios\",\n schema: { type: \"object\", properties: { criteria: { type: \"array\", items: { type: \"object\", properties: { id: { type: \"string\" }, description: { type: \"string\" } }, required: [\"id\", \"description\"] } } }, required: [\"criteria\"] }\n})\nconst criteria = (framed && framed.criteria) || []\n\nphase(\"Plan\")\nconst planned = await agent({\n prompt: ${q('Planifica las tareas para cumplir estos criterios. Por cada criterio indica el test que lo verifica. Devuelve JSON {\"tasks\": [{\"title\": string, \"criterion\": string, \"test\": string}]}.\\n\\nCriterios:\\n')} +\n JSON.stringify(criteria),\n label: \"planificar tareas\",\n schema: { type: \"object\", properties: { tasks: { type: \"array\", items: { type: \"object\", properties: { title: { type: \"string\" }, criterion: { type: \"string\" }, test: { type: \"string\" } }, required: [\"title\", \"criterion\"] } } }, required: [\"tasks\"] }\n})\n\nphase(\"Build\")\nconst built = await parallel((planned && planned.tasks || []).map((t, i) => () =>\n agent({\n prompt: ${q(\"Tarea: \")} + t.title + ${q(\"\\nCriterio que resuelve: \")} + t.criterion +\n ${q(\"\\nImplementa el mínimo y escribe el test: \")} + (t.test ?? \"\") +\n ${q('\\nEjecuta el test y confirma. Devuelve el archivo que cambiaste en {\"file\": string, \"verified\": boolean}.')},\n label: \"construir: \" + t.title,\n isolation: \"worktree\",\n schema: { type: \"object\", properties: { file: { type: \"string\" }, verified: { type: \"boolean\" } }, required: [\"file\", \"verified\"] }\n })\n))\nconst artifacts = built.filter(Boolean).filter((b) => b && b.verified)\n\nphase(\"Verify\")\nconst verification = await agent({\n prompt: ${q('Ejecuta el/los comando(s) de verificación del proyecto (args.verifyCommand o el test runner default). Para cada criterio, confirma con evidencia archivo:línea o salida de test. Devuelve JSON {\"results\": [{\"criterion\": string, \"verified_by\": string, \"evidence\": string}]}.')},\n label: \"verificar criterios (\" + criteria.length + \")\",\n schema: { type: \"object\", properties: { results: { type: \"array\", items: { type: \"object\", properties: { criterion: { type: \"string\" }, verified_by: { type: \"string\" }, evidence: { type: \"string\" } }, required: [\"criterion\", \"verified_by\", \"evidence\"] } } }, required: [\"results\"] }\n})\n\nphase(\"Done\")\nconst done = await agent({\n prompt: ${q('Redacta el informe final de build. Solo declara done si CADA criterio tiene verified_by y evidencia. Devuelve JSON {\"report\": string, \"done\": boolean, \"gaps\": [string]}.')},\n label: \"informe final\",\n schema: { type: \"object\", properties: { report: { type: \"string\" }, done: { type: \"boolean\" }, gaps: { type: \"array\", items: { type: \"string\" } } }, required: [\"report\", \"done\"] }\n})\n\nreturn done ? done.report || JSON.stringify(done) : null\n`;\n}\n\n/**\n * Codebase-audit (§4): módulos → auditoría paralela (seguridad, deuda, bugs,\n * compliance) → informe + (opcional) nodos QA_FINDING/RISK del grafo.\n */\nexport function generateCodebaseAuditScript(options: { angles?: number; graph?: boolean } = {}): string {\n\tconst angles = Math.min(Math.max(options.angles ?? 4, 1), 8);\n\tconst perspectives = [\n\t\t\"seguridad (injection, secrets, límites de confianza)\",\n\t\t\"deuda técnica y arquitectura\",\n\t\t\"bugs y correctitud\",\n\t\t\"cumplimiento / RGPD / datos personales\",\n\t].slice(0, angles);\n\tconst graphHooks = options.graph\n\t\t? \"\\n\\nTras el informe, usa la tool graph_add_nodes para registrar QA_FINDING y RISK con sus citas.\"\n\t\t: \"\";\n\treturn `export const meta = {\n \"name\": \"codebase_audit\",\n \"description\": \"Auditoría del codebase con ángulos paralelos y síntesis\",\n \"phases\": [\n { \"title\": \"Walk\" },\n { \"title\": \"Audit\" },\n { \"title\": \"Report\" }\n ]\n}\n\nphase(\"Walk\")\nconst modules = await agent({\n prompt: ${q(`Audita este repo: (args.path ?? \".\"). En qué módulos se dividiría la auditoría. Devuelve JSON {\"modules\": [string]} (máx ${angles}).`)},\n label: \"identificar módulos\",\n schema: { type: \"object\", properties: { modules: { type: \"array\", items: { type: \"string\" } } }, required: [\"modules\"] }\n})\n\nphase(\"Audit\")\nconst perspectives = ${JSON.stringify(perspectives)}\nconst audits = await parallel(perspectives.map((p, i) => () =>\n agent({\n prompt: ${q(\"Audita el módulo(s) desde la perspectiva: \")} + p +\n ${q(\"\\nMódulos: \")} + JSON.stringify((modules && modules.modules) || []) +\n ${q(`\\nPara cada hallazgo cita archivo:línea. Devuelve JSON {\"findings\": [{\"type\": \"RISK|QA_FINDING\", \"severity\": string, \"file\": string, \"line\": number, \"issue\": string}]}.${graphHooks}`)},\n label: \"auditar: \" + p,\n schema: { type: \"object\", properties: { findings: { type: \"array\", items: { type: \"object\", properties: { type: { type: \"string\" }, severity: { type: \"string\" }, file: { type: \"string\" }, issue: { type: \"string\" } }, required: [\"type\", \"severity\", \"file\", \"issue\"] } } }, required: [\"findings\"] }\n })\n))\n\nphase(\"Report\")\nconst report = await agent({\n prompt: ${q('Sintetiza los hallazgos de auditoría en un informe Markdown ordenado por severidad, agrupado por perspectiva, con citas archivo:línea y recomendaciones priorizadas. Devuelve JSON {\"report\": string}.')},\n label: \"sintetizar auditoría\",\n schema: { type: \"object\", properties: { report: { type: \"string\" } }, required: [\"report\"] }\n})\n\nreturn report ? report.report : null\n`;\n}\n\n/**\n * Multi-perspective (§4): el mismo problema desde N ángulos → síntesis con\n * desacuerdos explícitos (no consenso falso).\n */\nexport function generateMultiPerspectiveScript(options: { perspectives?: number } = {}): string {\n\tconst n = Math.min(Math.max(options.perspectives ?? 4, 2), 8);\n\tconst list = [\n\t\t\"correctitud e invariantes\",\n\t\t\"rendimiento y escalabilidad\",\n\t\t\"seguridad y confianza\",\n\t\t\"mantenibilidad y claridad\",\n\t\t\"producto y UX\",\n\t\t\"coste de operación\",\n\t].slice(0, n);\n\treturn `export const meta = {\n \"name\": \"multi_perspective\",\n \"description\": \"Análisis del mismo problema desde N perspectivas con desacuerdos explícitos\",\n \"phases\": [\n { \"title\": \"Perspectives\" },\n { \"title\": \"Synthesize\" }\n ]\n}\n\nphase(\"Perspectives\")\nconst views = await parallel(${JSON.stringify(list)}.map((p, i) => () =>\n agent({\n prompt: ${q(\"Analiza este problema: \")} + (args.problem ?? \"\") +\n ${q(\"\\nDesde la perspectiva: \")} + p +\n ${q('\\nDa tu análisis, recomendación y riesgos. Devuelve JSON {\"perspective\": string, \"recommendation\": string, \"risks\": [string]}.')},\n label: \"perspectiva: \" + p,\n schema: { type: \"object\", properties: { perspective: { type: \"string\" }, recommendation: { type: \"string\" }, risks: { type: \"array\", items: { type: \"string\" } } }, required: [\"perspective\", \"recommendation\"] }\n })\n))\n\nphase(\"Synthesize\")\nconst synthesis = await agent({\n prompt: ${q('Sintetiza los análisis. SEÑALA EXPLÍCITAMENTE los desacuerdos entre perspectivas (no creas consenso falso). Devuelve JSON {\"summary\": string, \"disagreements\": [string], \"recommended\": string}.')},\n label: \"sintetizar análisis\",\n schema: { type: \"object\", properties: { summary: { type: \"string\" }, disagreements: { type: \"array\", items: { type: \"string\" } }, recommended: { type: \"string\" } }, required: [\"summary\", \"recommended\"] }\n})\n\nreturn synthesis ? synthesis.summary || JSON.stringify(synthesis) : null\n`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../../src/core/workflows/builtins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esquema.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/esquema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"esquema.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/esquema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAIhE;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAIjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esquema.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/esquema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAE5G;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc
|
|
1
|
+
{"version":3,"file":"esquema.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/esquema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAE5G;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,KAAc;IACzD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reparar-argumentos.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/reparar-argumentos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"reparar-argumentos.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/reparar-argumentos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOvC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAanE;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;CAClB;AAoBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAuCjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAiBjH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reparar-argumentos.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/reparar-argumentos.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Reparación de argumentos de tool mal formados, ANTES de gastar un turno en\n * un error de validación.\n *\n * Dos capas, deliberadamente separadas porque arreglan cosas distintas:\n *\n * 1. `repararJSON` — un campo de texto que debería ser un objeto/array llega\n * con una coma colgante o doblemente serializado (fallos típicos de LLM).\n * Parseo tolerante con UN solo intento de arreglo; nunca reescribe\n * comillas simples ni añade comillas a claves sueltas — eso puede corromper\n * contenido legítimo (código, texto con comillas), y aquí perder el atajo\n * es barato, pero corromper datos no lo es.\n *\n * 2. `repararConEsquema` — campo de más (`additionalProperties: false`) y\n * número/booleano-como-cadena, en las propiedades del NIVEL SUPERIOR del\n * objeto. Lee `type`/`properties`/`additionalProperties` directamente del\n * esquema en vez de delegar en `Value.Clean`/`Value.Convert` de\n * `typebox/value`: esas dos SOLO reconocen esquemas construidos con\n * `Type.Object(...)` (llevan una marca interna de \"tipo de nodo\" que\n * `JSON.stringify` no serializa); un esquema declarado a mano en YAML\n * (`outputSchema:` del frontmatter de un agente, parseado a un objeto\n * plano) NO la lleva, y Clean/Convert se quedan calladas sin tocar nada —\n * un \"no pude\" disfrazado de éxito, descubierto ejecutándolo de verdad, no\n * leyendo la documentación. Leer la forma JSON a pelo funciona igual para\n * los dos orígenes, porque ambos SON JSON Schema plano una vez\n * serializados.\n *\n * Nunca inventa un valor para un campo que no se puede convertir de\n * verdad (una cadena \"abc\" en un campo number se queda \"abc\", no se\n * convierte en `0`) — un valor inventado en silencio es peor que el error\n * que reemplaza, exactamente el defecto que la regla del proyecto prohíbe\n * (que \"no pude\" se lea como éxito).\n */\nimport type { TSchema } from \"typebox\";\n\n/** Quita una coma colgante antes de `}`/`]` — el error de JSON más común de un LLM. */\nfunction quitarComaColgante(texto: string): string {\n\treturn texto.replace(/,(\\s*[}\\]])/g, \"$1\");\n}\n\nexport interface JSONReparado {\n\tvalor: unknown;\n\t/** true si hizo falta el arreglo de coma colgante (el parseo directo falló). */\n\treparado: boolean;\n}\n\n/**\n * Parseo tolerante de JSON: intento directo y, si falla, un único intento\n * tras quitar comas colgantes. `undefined` si ninguno de los dos vale —\n * \"no pude repararlo\", no \"el valor es nulo\".\n */\nexport function repararJSON(texto: string): JSONReparado | undefined {\n\ttry {\n\t\treturn { valor: JSON.parse(texto), reparado: false };\n\t} catch {\n\t\t// sigue con el intento de arreglo\n\t}\n\tconst sinComa = quitarComaColgante(texto);\n\tif (sinComa === texto) return undefined;\n\ttry {\n\t\treturn { valor: JSON.parse(sinComa), reparado: true };\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nexport interface ValorReparado {\n\tvalor: unknown;\n\t/** true si se quitó algún campo de más o se convirtió algún tipo. */\n\treparado: boolean;\n}\n\ninterface FormaObjeto {\n\ttype?: unknown;\n\tproperties?: Record<string, { type?: unknown }>;\n\tadditionalProperties?: unknown;\n}\n\nfunction comoNumero(texto: string): number | undefined {\n\tif (texto.trim() === \"\") return undefined;\n\tconst n = Number(texto);\n\treturn Number.isFinite(n) ? n : undefined;\n}\n\nfunction comoBooleano(texto: string): boolean | undefined {\n\tif (texto === \"true\") return true;\n\tif (texto === \"false\") return false;\n\treturn undefined;\n}\n\n/**\n * Repara `valor` contra `esquema`: quita campos de más del nivel superior\n * cuando el esquema es cerrado (`additionalProperties: false`) y convierte\n * número-como-cadena / booleano-como-cadena en las propiedades declaradas,\n * SOLO cuando la conversión es real. Sin recursión: opera en el objeto de\n * argumentos de una tool, que es plano por construcción.\n */\nexport function repararConEsquema(esquema: TSchema, valor: unknown): ValorReparado {\n\tif (valor === null || typeof valor !== \"object\" || Array.isArray(valor)) return { valor, reparado: false };\n\tconst forma = esquema as FormaObjeto;\n\tif (forma.type !== \"object\" || forma.properties === null || typeof forma.properties !== \"object\") {\n\t\treturn { valor, reparado: false };\n\t}\n\tconst propiedades = forma.properties;\n\tconst cerrado = forma.additionalProperties === false;\n\tlet reparado = false;\n\tconst salida: Record<string, unknown> = {};\n\tfor (const [clave, actual] of Object.entries(valor as Record<string, unknown>)) {\n\t\tconst propEsquema = propiedades[clave];\n\t\tif (!propEsquema) {\n\t\t\tif (cerrado) {\n\t\t\t\treparado = true; // campo de más: se quita\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsalida[clave] = actual;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof actual === \"string\" && propEsquema.type === \"number\") {\n\t\t\tconst convertido = comoNumero(actual);\n\t\t\tif (convertido !== undefined) {\n\t\t\t\tsalida[clave] = convertido;\n\t\t\t\treparado = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (typeof actual === \"string\" && propEsquema.type === \"boolean\") {\n\t\t\tconst convertido = comoBooleano(actual);\n\t\t\tif (convertido !== undefined) {\n\t\t\t\tsalida[clave] = convertido;\n\t\t\t\treparado = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tsalida[clave] = actual;\n\t}\n\treturn { valor: salida, reparado };\n}\n\n/**\n * `prepareArguments` genérico para un `ToolDefinition`: aplica `repararJSON`\n * a los campos de texto indicados (los que un modelo puede mandar doblemente\n * serializados) y luego `repararConEsquema` al objeto entero. Solo sustituye\n * un campo de texto cuando el JSON reparado es un objeto o array — un valor\n * de texto que por casualidad parsea como número o booleano (\"42\", \"true\") se\n * deja tal cual: ahí el texto original es casi siempre lo que el modelo quiso\n * decir, no un valor doblemente serializado.\n */\nexport function repararArgumentos<T = unknown>(esquema: TSchema, camposTexto: string[] = []): (args: unknown) => T {\n\treturn (args: unknown): T => {\n\t\tif (args === null || typeof args !== \"object\") return args as T;\n\t\tlet objeto = args as Record<string, unknown>;\n\t\tlet huboReparoDeTexto = false;\n\t\tfor (const campo of camposTexto) {\n\t\t\tconst bruto = objeto[campo];\n\t\t\tif (typeof bruto !== \"string\") continue;\n\t\t\tconst parseado = repararJSON(bruto);\n\t\t\tif (parseado && parseado.valor !== null && typeof parseado.valor === \"object\") {\n\t\t\t\tobjeto = { ...objeto, [campo]: parseado.valor };\n\t\t\t\thuboReparoDeTexto = true;\n\t\t\t}\n\t\t}\n\t\tconst { valor, reparado } = repararConEsquema(esquema, objeto);\n\t\treturn (huboReparoDeTexto || reparado ? valor : args) as T;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reparar-argumentos.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/reparar-argumentos.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validador.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/validador.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"validador.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/validador.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;IAChD,qGAAqG;IACrG,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AA2BD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CA4B3G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validador.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/validador.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA0B5D,SAAS,cAAc,CAAC,OAAiB
|
|
1
|
+
{"version":3,"file":"validador.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/validador.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA0B5D,SAAS,cAAc,CAAC,OAAiB;IACxC,OAAO;QACN,wCAAwC;QACxC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,mFAAmF;KACnF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAQD,SAAS,QAAQ,CAAI,OAAgB,EAAE,KAAa,EAAE,OAA+C;IACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,2DAA2D,CAAC,EAAE,CAAC;IACjH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,SAAS,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,QAA4B;IACzE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,oEAAoE;QACpE,uEAAuE;QACvE,yDAAyD;QACzD,OAAO;YACN,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,kDAAkD,CAAC;SAC7D,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,IAAI,OAAO,GAAG,QAAQ,CAAI,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QACxE,QAAQ,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,OAAO,GAAG,QAAQ,CAAI,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,OAAO;QACN,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC/B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC/B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2FAA2F;AAC3F,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,eAAe;IAMlF,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,KAAK,IAAI,eAAe,EAAE;CAG1B;AAED,eAAO,MAAM,gBAAgB;;;;EAS5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE;IAC/C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAyB1C;AAED,MAAM,WAAW,oBAAoB;IACpC,kGAAkG;IAClG,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,GAAG,oBAAoB,CAE7F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yield.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAY5D,2FAA2F;AAC3F,MAAM,OAAO,iBAAiB;IACrB,SAAS,GAAsB,EAAE,CAAC;IAE1C,OAAO,CAAC,OAAwD
|
|
1
|
+
{"version":3,"file":"yield.js","sourceRoot":"","sources":["../../../../src/core/workflows/contrato/yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAY5D,2FAA2F;AAC3F,MAAM,OAAO,iBAAiB;IACrB,SAAS,GAAsB,EAAE,CAAC;IAE1C,OAAO,CAAC,OAAwD;QAC/D,MAAM,QAAQ,GAAoB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACzG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAC1C;IACC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC;IACpG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,2EAA2E,EAAE,CAAC;IAC7G,SAAS,EAAE,IAAI,CAAC,QAAQ,CACvB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC,CACnG;CACD,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAC/B,CAAC;AAIF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAGrC;IACA,OAAO;QACN,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACV,6SAA6S;QAC9S,aAAa,EAAE,kFAAkF;QACjG,gBAAgB,EAAE;YACjB,0GAA0G;SAC1G;QACD,UAAU,EAAE,gBAAgB;QAC5B,gBAAgB,EAAE,iBAAiB,CAAkB,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;QACjF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAuB;YACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC3B,CAAC,CAAC;YACH,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO;gBACN,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,QAAQ,eAAe,EAAE,CAAC;aACrG,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAQD,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAAC,MAAyB;IACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -113,6 +113,11 @@ export declare class GoalEngine {
|
|
|
113
113
|
* y arranca la iteración N+1. Sin replanFn → error suave (GoalError).
|
|
114
114
|
*/
|
|
115
115
|
replan(goalId: string): Promise<GoalState>;
|
|
116
|
+
/**
|
|
117
|
+
* P1: re-planificación automática tras veredicto continue del juez.
|
|
118
|
+
* Respeta el freno maxReplans; si se agota o no hay replanFn, hace el
|
|
119
|
+
* reintento simple (comportamiento actual).
|
|
120
|
+
*/
|
|
116
121
|
private autoReplanAfterContinue;
|
|
117
122
|
pause(goalId: string, reason?: string): Promise<GoalState>;
|
|
118
123
|
resume(goalId: string): Promise<GoalState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/goal-engine/engine.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Ada Intelligence Engine — GoalEngine (modelo contenedor, estilo Claude Code).\n *\n * El goal es un CONTENEDOR de alto nivel: objetivo + doneCriteria + estado +\n * frenos. NO tiene pasos propios — los pasos viven en los workflows dinámicos\n * que desencadena. Cada sub-tarea del goal (tasks) lanza un workflow\n * (`launchWorkflow` inyectable → WorkflowManager). Cuando todas las sub-tareas\n * terminan, el juez verifica los doneCriteria y decide done/continue.\n *\n * Diseño: agnóstico del LLM — `launchWorkflow` (lanza el flujo dinámico de una\n * sub-tarea) y `judge` (juez) son inyectables. Frenos integrados: maxTurns,\n * repeat detector, stop-file (~/.ada-stop), budget, pausa ante decisiones\n * irreversibles.\n */\n\nimport { GoalError } from \"./errors.ts\";\nimport { createGoalState, reduceGoal } from \"./state.ts\";\nimport type {\n\tAskUserQuestion,\n\tEvidenceItem,\n\tGoalAction,\n\tGoalEventListener,\n\tGoalFrenos,\n\tGoalJudgeFn,\n\tGoalPersistence,\n\tGoalReplanFn,\n\tGoalState,\n\tTask,\n\tTaskStatus,\n} from \"./types.ts\";\nimport { DEFAULT_GOAL_FRENOS } from \"./types.ts\";\nimport { workspaceFingerprint } from \"./worktree-fingerprint.ts\";\n\nexport interface GoalEngineOptions {\n\tpersistence: GoalPersistence;\n\t/** Lanza el workflow dinámico de una sub-tarea → runId (goal-contenedor). */\n\tlaunchWorkflow: (input: {\n\t\tgoalId: string;\n\t\tgoal: string;\n\t\ttaskId: string;\n\t\ttaskTitle: string;\n\t\tdoneCriteria: string[];\n\t\tverifyCommand: string;\n\t\tsessionId?: string;\n\t}) => Promise<{ runId: string }>;\n\tjudge: GoalJudgeFn;\n\t/** P1: re-planificación completa tras veredicto continue (opcional). */\n\treplanFn?: GoalReplanFn;\n\tfrenos?: Partial<GoalFrenos>;\n\tonEvent?: GoalEventListener;\n\t/** Comprobador del stop-file (inyectable para tests). */\n\tstopFileExists?: (path: string) => boolean;\n\t/** P5: modo plan-only — no lanzar workflows hasta approve del plan. */\n\tplanOnly?: boolean;\n\t/** Raíz del proyecto para la huella anti-cheat. Default: process.cwd(). */\n\tcwd?: string;\n\t/** Huella del árbol de trabajo (inyectable para tests). */\n\tfingerprint?: (cwd: string) => Promise<string | undefined>;\n\tnow?: () => string;\n}\n\nexport class GoalEngine {\n\tprivate persistence: GoalPersistence;\n\t/** Lock por-goal: nunca dos ticks concurrentes del mismo goal. */\n\tprivate _tickInFlight = new Set<string>();\n\t/** Auto-continuación en vuelo tras `onWorkflowFinished` (ver `settle`). */\n\tprivate _autoTick: Promise<unknown> = Promise.resolve();\n\t/** Temporizadores de `goal_wait(resumeAfterMs)`, uno por goal. */\n\tprivate _waitTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\tprivate launchWorkflow: GoalEngineOptions[\"launchWorkflow\"];\n\tprivate judge: GoalJudgeFn;\n\tprivate replanFn?: GoalReplanFn;\n\tprivate frenos: GoalFrenos;\n\tprivate onEvent?: GoalEventListener;\n\tprivate stopFileExists: (path: string) => boolean;\n\tprivate planOnly: boolean;\n\tprivate cwd: string;\n\tprivate fingerprint: (cwd: string) => Promise<string | undefined>;\n\tprivate now: () => string;\n\t/** cache en memoria: id → estado (el disco es la fuente de verdad). */\n\tprivate cache = new Map<string, GoalState>();\n\n\tconstructor(options: GoalEngineOptions) {\n\t\tthis.persistence = options.persistence;\n\t\tthis.launchWorkflow = options.launchWorkflow;\n\t\tthis.judge = options.judge;\n\t\tthis.replanFn = options.replanFn;\n\t\tthis.frenos = { ...DEFAULT_GOAL_FRENOS, ...options.frenos };\n\t\tthis.onEvent = options.onEvent;\n\t\tthis.stopFileExists = options.stopFileExists ?? ((p) => p !== null && p.length > 0 && fsExists(p));\n\t\tthis.planOnly = options.planOnly ?? false;\n\t\tthis.cwd = options.cwd ?? process.cwd();\n\t\tthis.fingerprint = options.fingerprint ?? workspaceFingerprint;\n\t\tthis.now = options.now ?? (() => new Date().toISOString());\n\t}\n\n\t// ─── Contrato primero ───\n\n\t/** Crea un goal en estado setup (contrato). Devuelve el id para aprobar. */\n\tasync createGoal(input: {\n\t\tgoal: string;\n\t\tdoneCriteria: string[];\n\t\tverifyCommand: string;\n\t\tsessionId?: string;\n\t}): Promise<GoalState> {\n\t\tconst state = createGoalState({ ...input, id: `goal-${Date.now().toString(36)}-${randId()}`, now: this.now() });\n\t\tthis.cache.set(state.id, state);\n\t\tawait this.persistence.save(state);\n\t\tthis.emit(\"goal_update\", { goal: state });\n\t\treturn state;\n\t}\n\n\t/** Añade una tarea al TODO del goal sin reemplazar el plan. */\n\tasync addTask(goalId: string, title: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_task_add\", title }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\t/** Aprueba el contrato → el bucle puede arrancar. */\n\tasync approve(goalId: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_approve\" }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\t// ─── Bucle ───\n\n\t/**\n\t * Un tick del bucle: se llama cuando el agente principal se ha settleado.\n\t * Solo avanza si: status active, sin waiting, sin stop-file, bajo los\n\t * límites (maxTurns, budget, repeat tolerance).\n\t */\n\tasync tick(goalId: string): Promise<{ advanced: boolean; state: GoalState; reason?: string }> {\n\t\t// Reentrancia: nunca dos ticks concurrentes del mismo goal (el\n\t\t// subagent que ejecuta el turno comparte agentDir y NO re-dispara).\n\t\tif (this._tickInFlight.has(goalId)) {\n\t\t\tconst state = await this.mustLoad(goalId);\n\t\t\treturn { advanced: false, state, reason: \"tick ya en curso\" };\n\t\t}\n\t\tthis._tickInFlight.add(goalId);\n\t\ttry {\n\t\t\treturn await this._tickInner(goalId);\n\t\t} finally {\n\t\t\tthis._tickInFlight.delete(goalId);\n\t\t}\n\t}\n\n\tprivate async _tickInner(goalId: string): Promise<{ advanced: boolean; state: GoalState; reason?: string }> {\n\t\tlet state = await this.mustLoad(goalId);\n\n\t\t// Frenos que detienen el bucle ANTES de gastar un turno.\n\t\tconst brake = this.checkBrakes(state);\n\t\tif (brake) {\n\t\t\tconst { state: next } = reduceGoal(state, brake.action, this.frenos);\n\t\t\tawait this.commit(state, next);\n\t\t\treturn { advanced: false, state: next, reason: brake.reason };\n\t\t}\n\n\t\t// Continuación solo si el bucle está activo.\n\t\tif (state.status !== \"active\") return { advanced: false, state, reason: `status=${state.status}` };\n\n\t\t// ── Modelo contenedor: el goal lanza workflows por sub-tarea ──\n\t\t// 0. ¿Hay sub-tareas con workflow EN MARCHA? → esperar (uno a la vez).\n\t\t// El evento workflow_run_finished marcará la sub-tarea vía onWorkflowFinished.\n\t\tconst runningNow = state.tasks.filter((t) => t.status === \"running\");\n\t\tif (runningNow.length > 0) {\n\t\t\treturn { advanced: false, state, reason: `${runningNow.length} workflow(s) en curso` };\n\t\t}\n\n\t\t// 1. ¿Hay sub-tareas fallidas? → reintento (relanzar el workflow) hasta\n\t\t// la tolerancia; al alcanzarla, el repeat detector ya pausó.\n\t\tconst failedNow = state.tasks.filter((t) => t.status === \"failed\");\n\t\tif (failedNow.length > 0) {\n\t\t\tif (state.repeatedTurns >= this.frenos.repeatTolerance) {\n\t\t\t\treturn { advanced: false, state, reason: \"repeat detector pausado\" };\n\t\t\t}\n\t\t\t// Resetear la primera fallida a pending y CONTINUAR al lanzamiento.\n\t\t\tconst first = failedNow[0];\n\t\t\tconst { state: retry } = reduceGoal(\n\t\t\t\tstate,\n\t\t\t\t{ type: \"goal_task_result\", taskId: first.id, status: \"pending\" as TaskStatus },\n\t\t\t\tthis.frenos,\n\t\t\t);\n\t\t\tstate = retry;\n\t\t\tawait this.commit(state, state);\n\t\t}\n\n\t\t// P5: modo plan-only — no se lanzan workflows automáticamente; el goal\n\t\t// espera aprobación explícita del plan (approve) para cada iteración.\n\t\tif (this.planOnly) {\n\t\t\treturn { advanced: false, state, reason: \"plan-only: esperando approve del plan\" };\n\t\t}\n\n\t\t// 2. ¿Hay sub-tareas sin workflow lanzado? → lanza la siguiente.\n\t\tconst pending = state.tasks.find((t) => t.status === \"pending\" || t.status === \"active\");\n\t\tif (pending) {\n\t\t\tthis.emit(\"goal_agent\", {\n\t\t\t\tgoalId,\n\t\t\t\tagent: { id: `${goalId}:task:${pending.id}`, label: pending.title, detail: \"workflow dinámico\" },\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst { runId } = await this.launchWorkflow({\n\t\t\t\t\tgoalId: state.id,\n\t\t\t\t\tgoal: state.goal,\n\t\t\t\t\ttaskId: pending.id,\n\t\t\t\t\ttaskTitle: pending.title,\n\t\t\t\t\tdoneCriteria: state.doneCriteria,\n\t\t\t\t\tverifyCommand: state.verifyCommand,\n\t\t\t\t\tsessionId: state.sessionId,\n\t\t\t\t});\n\t\t\t\t// Marcar la sub-tarea running con su runId.\n\t\t\t\tconst { state: launched } = reduceGoal(\n\t\t\t\t\tstate,\n\t\t\t\t\t{ type: \"goal_task_launched\", taskId: pending.id, workflowRunId: runId },\n\t\t\t\t\tthis.frenos,\n\t\t\t\t);\n\t\t\t\tawait this.commit(state, launched);\n\t\t\t\tthis.emit(\"goal_phase\", { goalId, phase: \"working\" });\n\t\t\t\treturn { advanced: true, state: launched, reason: `workflow ${runId} lanzado para ${pending.title}` };\n\t\t\t} catch (e) {\n\t\t\t\t// El workflow no se pudo lanzar → task failed, el juez decide.\n\t\t\t\tconst { state: failed } = reduceGoal(\n\t\t\t\t\tstate,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"goal_task_result\",\n\t\t\t\t\t\ttaskId: pending.id,\n\t\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\t\tsummary: e instanceof Error ? e.message : String(e),\n\t\t\t\t\t},\n\t\t\t\t\tthis.frenos,\n\t\t\t\t);\n\t\t\t\tawait this.commit(state, failed);\n\t\t\t\treturn { advanced: true, state: failed, reason: \"workflow launch failed\" };\n\t\t\t}\n\t\t}\n\n\t\t// 3. Sin sub-tareas pendientes/running → todas done (o plan vacío) → juez.\n\t\tif (state.tasks.length === 0 || state.tasks.every((t) => t.status === \"done\")) {\n\t\t\tconst judged = await this.runJudge(state);\n\t\t\t// P1: veredicto continue → re-planificación completa automática\n\t\t\t// (nueva iteración con plan regenerado) si el freno maxReplans\n\t\t\t// lo permite y hay replanFn. Si no, reintento simple (behavior atual).\n\t\t\tif (judged.status === \"active\" && judged.judge.lastVerdict === \"continue\") {\n\t\t\t\tconst re = await this.autoReplanAfterContinue(judged);\n\t\t\t\tif (re.iteration > judged.iteration) {\n\t\t\t\t\treturn { advanced: true, state: re, reason: `juez continue → iteración ${re.iteration} (replan)` };\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { advanced: true, state: judged, reason: \"todas las sub-tareas done → juez\" };\n\t\t}\n\n\t\t// 4. Plan incompleto (sub-tareas en otros estados) → esperar.\n\t\treturn { advanced: false, state, reason: \"plan en curso\" };\n\t}\n\n\t/**\n\t * Evento del WorkflowManager: una sub-tarea terminó su workflow.\n\t * Marca la task done/failed, acumula tokens/coste del run en el presupuesto\n\t * del goal (freno budgetTokens/costBudget), y aplica el repeat detector\n\t * (sub-tareas fallidas consecutivas → pause). El siguiente tick decide.\n\t */\n\tasync onWorkflowFinished(\n\t\tworkflowRunId: string,\n\t\tok: boolean,\n\t\tsummary?: string,\n\t\tusage?: { tokens?: number; cost?: number },\n\t): Promise<GoalState | null> {\n\t\t// Buscar el goal cuya sub-tarea corre ese workflow (en memoria).\n\t\tfor (const state of this.cache.values()) {\n\t\t\tconst task = state.tasks.find((t) => t.workflowRunId === workflowRunId);\n\t\t\tif (!task) continue;\n\t\t\tlet next = state;\n\t\t\t// Resultado de la sub-tarea.\n\t\t\tconst { state: afterResult } = reduceGoal(\n\t\t\t\tnext,\n\t\t\t\t{ type: \"goal_task_result\", taskId: task.id, status: ok ? \"done\" : \"failed\", summary },\n\t\t\t\tthis.frenos,\n\t\t\t);\n\t\t\tnext = afterResult;\n\t\t\t// Presupuesto: acumular tokens/coste reales del workflow.\n\t\t\tif (usage && (usage.tokens || usage.cost)) {\n\t\t\t\tnext = {\n\t\t\t\t\t...next,\n\t\t\t\t\ttokensUsed: next.tokensUsed + (usage.tokens ?? 0),\n\t\t\t\t\tcostUsed: next.costUsed + (usage.cost ?? 0),\n\t\t\t\t\tupdatedAt: this.now(),\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Repeat detector: sub-tareas fallidas consecutivas → pause.\n\t\t\tif (!ok) {\n\t\t\t\t// Anti-cheat: ¿cambió algo el agente? Un fallo con el árbol de\n\t\t\t\t// trabajo idéntico al del fallo anterior no es un intento nuevo, es\n\t\t\t\t// el mismo intento. Reintentarlo gasta presupuesto sin información.\n\t\t\t\tconst fingerprint = await this.fingerprint(this.cwd);\n\t\t\t\tconst stalled = fingerprint !== undefined && fingerprint === next.lastFailureFingerprint;\n\t\t\t\tnext = {\n\t\t\t\t\t...next,\n\t\t\t\t\trepeatedTurns: next.repeatedTurns + 1,\n\t\t\t\t\tlastAgentSummary: summary ?? \"workflow fallido\",\n\t\t\t\t\tlastFailureFingerprint: fingerprint ?? next.lastFailureFingerprint,\n\t\t\t\t\tupdatedAt: this.now(),\n\t\t\t\t};\n\t\t\t\tif (stalled) {\n\t\t\t\t\t// El plan es el problema, no el intento: parar y que el replan lo\n\t\t\t\t\t// vea, en vez de agotar la tolerancia repitiendo lo mismo.\n\t\t\t\t\tconst { state: paused } = reduceGoal(\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"goal_pause\",\n\t\t\t\t\t\t\treason:\n\t\t\t\t\t\t\t\t\"workspace sin cambios desde el fallo anterior — el agente no modificó nada, hace falta replantear\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis.frenos,\n\t\t\t\t\t);\n\t\t\t\t\tnext = paused;\n\t\t\t\t} else if (next.repeatedTurns >= this.frenos.repeatTolerance) {\n\t\t\t\t\tconst { state: paused } = reduceGoal(\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\t{ type: \"goal_pause\", reason: `${this.frenos.repeatTolerance} sub-tareas fallidas seguidas` },\n\t\t\t\t\t\tthis.frenos,\n\t\t\t\t\t);\n\t\t\t\t\tnext = paused;\n\t\t\t\t}\n\t\t\t} else if (next.repeatedTurns > 0 || next.lastFailureFingerprint) {\n\t\t\t\t// Éxito resetea el contador de fallos y la huella.\n\t\t\t\tnext = { ...next, repeatedTurns: 0, lastFailureFingerprint: undefined, updatedAt: this.now() };\n\t\t\t}\n\t\t\tawait this.commit(state, next);\n\t\t\tthis.emit(\"goal_update\", { goal: next });\n\t\t\t// Auto-continuación. Sin esto el goal solo avanza cuando el humano\n\t\t\t// escribe: el único disparador de `tick` es el `agent_settled` de la\n\t\t\t// sesión principal, y el workflow de la sub-tarea corre en una sesión\n\t\t\t// de subagente que está excluida de ese camino. Es decir, un goal de\n\t\t\t// N sub-tareas exigía N mensajes del usuario.\n\t\t\t//\n\t\t\t// Se dispara desde dentro del engine a propósito: el engine solo\n\t\t\t// existe en la sesión principal, así que la propiedad anti-recursión\n\t\t\t// se conserva sin depender de agent-session.\n\t\t\t//\n\t\t\t// El bucle está acotado: `goal_task_launched` incrementa `turnsUsed`\n\t\t\t// (state.ts:133) contra `maxTurns`, los fallos consecutivos cuentan\n\t\t\t// contra `repeatTolerance` (y al alcanzarla el estado ya no es\n\t\t\t// `active`, así que no se re-tickea), y `checkBrakes` evalúa\n\t\t\t// stop-file y presupuestos antes de gastar nada.\n\t\t\tif (next.status === \"active\") {\n\t\t\t\tthis._autoTick = this.tick(next.id).catch(() => {\n\t\t\t\t\t// El tick persiste su propio estado; que falle no debe tumbar\n\t\t\t\t\t// al manejador del evento del workflow.\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn next;\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Espera a la auto-continuación en vuelo. Pensado para tests, que necesitan\n\t * un punto determinista tras `onWorkflowFinished`; en producción el tick es\n\t * fire-and-forget y nadie lo espera.\n\t */\n\tasync settle(): Promise<void> {\n\t\tawait this._autoTick;\n\t}\n\n\t/** Juez obligatorio: revisa SOLO goal + criteria + evidencia citada. */\n\tasync runJudge(state: GoalState): Promise<GoalState> {\n\t\tthis.emit(\"goal_judge\", { goalId: state.id, verdict: \"continue\", reason: \"juez iniciado\" });\n\t\tconst verdict = await this.judge({\n\t\t\tgoal: state.goal,\n\t\t\tdoneCriteria: state.doneCriteria,\n\t\t\tverifyCommand: state.verifyCommand,\n\t\t\tevidence: state.evidence,\n\t\t\tphase: state.phase,\n\t\t});\n\t\tconst { state: next } = reduceGoal(\n\t\t\tstate,\n\t\t\t{ type: \"goal_judge\", verdict: verdict.verdict, reason: verdict.reason, crossModel: verdict.crossModel },\n\t\t\tthis.frenos,\n\t\t);\n\t\tawait this.commit(state, next);\n\t\tthis.emit(\"goal_judge\", { goalId: state.id, verdict: verdict.verdict, reason: verdict.reason });\n\t\treturn next;\n\t}\n\n\t/** Completa el goal con evidencia — exige juez done y evidencia citada. */\n\tasync complete(goalId: string, summary: string, evidence: EvidenceItem[]): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\t// Añadir la evidencia nueva al estado (sin duplicar).\n\t\tlet current = state;\n\t\tif (evidence.length) {\n\t\t\tconst { state: withEv } = reduceGoal(current, { type: \"goal_agent_turn\", summary: \"\", evidence }, this.frenos);\n\t\t\tcurrent = withEv;\n\t\t}\n\t\tconst { state: next, stopLoop } = reduceGoal(current, { type: \"goal_complete\", summary, evidence }, this.frenos);\n\t\tawait this.commit(current, next);\n\t\tif (stopLoop && next.status === \"complete\") {\n\t\t\tthis.emit(\"goal_finished\", { goalId, status: \"complete\", verdict: next.judge.lastVerdict });\n\t\t}\n\t\treturn next;\n\t}\n\n\t// ─── Pausa / bloqueo / preguntas ───\n\n\t/** Reemplaza la checklist completa (tool `todo`). */\n\tasync replaceTasks(goalId: string, tasks: Task[]): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_tasks\", tasks }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\t/**\n\t * P1: re-planificación completa. Genera un nuevo plan con el LLM\n\t * (replanFn) aprendiendo de la evidencia y del último veredicto del juez,\n\t * y arranca la iteración N+1. Sin replanFn → error suave (GoalError).\n\t */\n\tasync replan(goalId: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tif (!this.replanFn) throw new GoalError(\"replanFn no está configurado\", \"REPLAN_UNAVAILABLE\");\n\t\t// El motivo de una pausa por anti-cheat (\"el agente no cambió nada\") es\n\t\t// más accionable para replantear que el último veredicto del juez: dice\n\t\t// que el problema es el plan, no la ejecución. Si existe, manda.\n\t\tconst stalledReason = state.waiting?.reason?.includes(\"workspace sin cambios\") ? state.waiting.reason : undefined;\n\t\tconst replanned = await this.replanFn({\n\t\t\tgoal: state.goal,\n\t\t\tdoneCriteria: state.doneCriteria,\n\t\t\tverifyCommand: state.verifyCommand,\n\t\t\tevidence: state.evidence,\n\t\t\tcurrentTasks: state.tasks,\n\t\t\tlastVerdict: state.judge.lastVerdict,\n\t\t\tlastReason: stalledReason ?? state.judge.lastReason,\n\t\t});\n\t\tconst { state: next } = reduceGoal(\n\t\t\tstate,\n\t\t\t{ type: \"goal_replan\", tasks: replanned.tasks, rationale: replanned.rationale },\n\t\t\tthis.frenos,\n\t\t);\n\t\tawait this.commit(state, next);\n\t\tthis.emit(\"goal_update\", { goal: next });\n\t\treturn next;\n\t}\n\n\t/**\n\t * P1: re-planificación automática tras veredicto continue del juez.\n\t * Respeta el freno maxReplans; si se agota o no hay replanFn, hace el\n\t * reintento simple (comportamiento actual).\n\t */\n\tprivate async autoReplanAfterContinue(state: GoalState): Promise<GoalState> {\n\t\tconst maxReplans = this.frenos.maxReplans ?? 3;\n\t\t// El historial cuenta cuántas re-planificaciones ya se hicieron.\n\t\tconst replansDone = state.iterations.filter((it) => it.replanRationale).length;\n\t\tif (replansDone >= maxReplans || !this.replanFn) return state; // reintento simple\n\t\ttry {\n\t\t\treturn await this.replan(state.id);\n\t\t} catch {\n\t\t\treturn state; // fail-open: reintento simple\n\t\t}\n\t}\n\n\tasync pause(goalId: string, reason?: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_pause\", reason }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\tasync resume(goalId: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_resume\" }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\tasync blocked(goalId: string, reason: string): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_blocked\", reason }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\tasync askUser(goalId: string, reason: string, questions: AskUserQuestion[]): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_questions\", questions, reason }, this.frenos);\n\t\tawait this.commit(state, next);\n\t\tthis.emit(\"goal_question\", { goalId, questions });\n\t\treturn next;\n\t}\n\n\tasync answerQuestions(goalId: string, answers: Record<string, string[]>): Promise<GoalState> {\n\t\tconst state = await this.mustLoad(goalId);\n\t\tconst { state: next } = reduceGoal(state, { type: \"goal_answers\", answers }, this.frenos);\n\t\treturn this.commit(state, next);\n\t}\n\n\t// ─── Consultas ───\n\n\tasync get(goalId: string): Promise<GoalState | null> {\n\t\tconst cached = this.cache.get(goalId);\n\t\tif (cached) return cached;\n\t\tconst loaded = await this.persistence.load(goalId);\n\t\tif (loaded) this.cache.set(goalId, loaded);\n\t\treturn loaded;\n\t}\n\n\tasync list(): Promise<\n\t\tArray<{ id: string; goal: string; status: GoalState[\"status\"]; phase: GoalState[\"phase\"]; updatedAt: string }>\n\t> {\n\t\treturn this.persistence.list();\n\t}\n\n\t// ─── Frenos ───\n\n\tprivate checkBrakes(state: GoalState): { action: GoalAction; reason: string } | null {\n\t\t// ~/.ada-stop: freno de emergencia.\n\t\tif (this.frenos.stopFile && this.stopFileExists(this.frenos.stopFile)) {\n\t\t\treturn {\n\t\t\t\taction: { type: \"goal_pause\", reason: `stop-file presente: ${this.frenos.stopFile}` },\n\t\t\t\treason: \"stop-file\",\n\t\t\t};\n\t\t}\n\t\t// maxTurns.\n\t\tif (state.turnsUsed >= this.frenos.maxTurns) {\n\t\t\treturn {\n\t\t\t\taction: { type: \"goal_blocked\", reason: `máximo de ${this.frenos.maxTurns} turnos alcanzado` },\n\t\t\t\treason: \"maxTurns\",\n\t\t\t};\n\t\t}\n\t\t// Tokens.\n\t\tif (this.frenos.tokenBudget !== null && state.tokensUsed > this.frenos.tokenBudget) {\n\t\t\treturn { action: { type: \"goal_usage_limited\" }, reason: \"token budget\" };\n\t\t}\n\t\t// Coste.\n\t\tif (this.frenos.costBudget !== null && state.costUsed > this.frenos.costBudget) {\n\t\t\treturn { action: { type: \"goal_budget_limited\" }, reason: \"cost budget\" };\n\t\t}\n\t\t// waiting activo (resumeAfterMs: reanudar automáticamente si pasó).\n\t\tif (state.waiting) {\n\t\t\tif (\n\t\t\t\tstate.waiting.resumeAfterMs !== undefined &&\n\t\t\t\tDate.now() >= Date.parse(state.updatedAt) + state.waiting.resumeAfterMs\n\t\t\t) {\n\t\t\t\treturn null; // el tick puede continuar (el resume ocurre en commit)\n\t\t\t}\n\t\t\treturn { action: { type: \"goal_blocked\", reason: state.waiting.reason }, reason: \"waiting\" };\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async mustLoad(goalId: string): Promise<GoalState> {\n\t\tconst state = await this.get(goalId);\n\t\tif (!state) throw new GoalError(`Goal no encontrado: ${goalId}`, \"GOAL_NOT_FOUND\");\n\t\treturn state;\n\t}\n\n\tprivate async commit(_before: GoalState, after: GoalState): Promise<GoalState> {\n\t\tthis.cache.set(after.id, after);\n\t\tawait this.persistence.save(after);\n\t\tthis.emit(\"goal_update\", { goal: after });\n\t\tthis.armWaitTimer(after);\n\t\treturn after;\n\t}\n\n\t/**\n\t * Temporizador de `goal_wait(resumeAfterMs)`.\n\t *\n\t * Las dos mitades ya existían: la tool guarda `resumeAfterMs` en\n\t * `state.waiting`, y `checkBrakes` libera el freno cuando el plazo vence.\n\t * Pero nadie re-evaluaba, así que \"espera 30 minutos\" significaba en la\n\t * práctica \"espera a que el humano vuelva a escribir\". Sondear un deploy o\n\t * esperar a CI no funcionaba.\n\t *\n\t * Un despertar espurio es inofensivo: `tick` tiene su lock y `checkBrakes`\n\t * vuelve a decidir.\n\t */\n\tprivate armWaitTimer(state: GoalState): void {\n\t\tconst previous = this._waitTimers.get(state.id);\n\t\tif (previous) {\n\t\t\tclearTimeout(previous);\n\t\t\tthis._waitTimers.delete(state.id);\n\t\t}\n\t\tif (state.status !== \"active\" && state.status !== \"blocked\") return;\n\t\tconst ms = state.waiting?.resumeAfterMs;\n\t\tif (ms === undefined) return;\n\t\tconst remaining = Date.parse(state.updatedAt) + ms - Date.now();\n\t\tconst timer = setTimeout(\n\t\t\t() => {\n\t\t\t\tthis._waitTimers.delete(state.id);\n\t\t\t\tvoid this.tick(state.id).catch(() => {});\n\t\t\t},\n\t\t\tMath.max(0, remaining),\n\t\t);\n\t\t// No mantener vivo el proceso solo por un goal dormido.\n\t\t(timer as unknown as { unref?: () => void }).unref?.();\n\t\tthis._waitTimers.set(state.id, timer);\n\t}\n\n\t/** Cancela los temporizadores pendientes (cierre de sesión, tests). */\n\tdispose(): void {\n\t\tfor (const timer of this._waitTimers.values()) clearTimeout(timer);\n\t\tthis._waitTimers.clear();\n\t}\n\n\tprivate emit<K extends keyof import(\"./types.ts\").GoalEventMap>(\n\t\ttype: K,\n\t\tpayload: import(\"./types.ts\").GoalEventMap[K],\n\t): void {\n\t\tthis.onEvent?.(type, payload);\n\t}\n}\n\n// ─── helpers ───\n\nimport { existsSync } from \"node:fs\";\n\nfunction fsExists(p: string): boolean {\n\ttry {\n\t\treturn existsSync(p);\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction randId(): string {\n\treturn Math.random().toString(36).slice(2, 7);\n}\n\nexport function isBrakeRelevant(reason: string): boolean {\n\treturn [\"stop-file\", \"maxTurns\", \"token budget\", \"cost budget\", \"repeat detector\", \"waiting\"].includes(reason);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/core/workflows/goal-engine/engine.ts"],"names":[],"mappings":"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"}
|