@hoilab/ada-cli 0.84.21 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -2
- package/README.es.md +174 -0
- package/README.md +203 -658
- package/dist/ada-publico.d.ts +35 -0
- package/dist/ada-publico.d.ts.map +1 -0
- package/dist/ada-publico.js +40 -0
- package/dist/ada-publico.js.map +1 -0
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit-command.d.ts +15 -0
- package/dist/cli/audit-command.d.ts.map +1 -0
- package/dist/cli/audit-command.js +280 -0
- package/dist/cli/audit-command.js.map +1 -0
- package/dist/cli/banco-command.d.ts +15 -0
- package/dist/cli/banco-command.d.ts.map +1 -0
- package/dist/cli/banco-command.js +213 -0
- package/dist/cli/banco-command.js.map +1 -0
- package/dist/cli/cleanse-command.d.ts +11 -0
- package/dist/cli/cleanse-command.d.ts.map +1 -0
- package/dist/cli/cleanse-command.js +101 -0
- package/dist/cli/cleanse-command.js.map +1 -0
- package/dist/cli/commit-command.d.ts +31 -0
- package/dist/cli/commit-command.d.ts.map +1 -0
- package/dist/cli/commit-command.js +158 -0
- package/dist/cli/commit-command.js.map +1 -0
- package/dist/cli/computer-command.d.ts +12 -0
- package/dist/cli/computer-command.d.ts.map +1 -0
- package/dist/cli/computer-command.js +141 -0
- package/dist/cli/computer-command.js.map +1 -0
- package/dist/cli/discover-command.d.ts +18 -0
- package/dist/cli/discover-command.d.ts.map +1 -0
- package/dist/cli/discover-command.js +108 -0
- package/dist/cli/discover-command.js.map +1 -0
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/hashline-command.d.ts +11 -0
- package/dist/cli/hashline-command.d.ts.map +1 -0
- package/dist/cli/hashline-command.js +106 -0
- package/dist/cli/hashline-command.js.map +1 -0
- package/dist/cli/home-screen.d.ts.map +1 -1
- package/dist/cli/home-screen.js +2 -2
- package/dist/cli/home-screen.js.map +1 -1
- package/dist/cli/import-command.d.ts +35 -0
- package/dist/cli/import-command.d.ts.map +1 -0
- package/dist/cli/import-command.js +164 -0
- package/dist/cli/import-command.js.map +1 -0
- package/dist/cli/politica-command.d.ts +20 -0
- package/dist/cli/politica-command.d.ts.map +1 -0
- package/dist/cli/politica-command.js +93 -0
- package/dist/cli/politica-command.js.map +1 -0
- package/dist/cli/refine-command.d.ts +18 -0
- package/dist/cli/refine-command.d.ts.map +1 -0
- package/dist/cli/refine-command.js +101 -0
- package/dist/cli/refine-command.js.map +1 -0
- package/dist/cli/review-command.d.ts +24 -0
- package/dist/cli/review-command.d.ts.map +1 -0
- package/dist/cli/review-command.js +168 -0
- package/dist/cli/review-command.js.map +1 -0
- package/dist/cli/schedule-command.d.ts +17 -0
- package/dist/cli/schedule-command.d.ts.map +1 -0
- package/dist/cli/schedule-command.js +117 -0
- package/dist/cli/schedule-command.js.map +1 -0
- package/dist/cli/serve-command.d.ts +72 -0
- package/dist/cli/serve-command.d.ts.map +1 -0
- package/dist/cli/serve-command.js +568 -0
- package/dist/cli/serve-command.js.map +1 -0
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +9 -3
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli/telegram-command.d.ts +18 -0
- package/dist/cli/telegram-command.d.ts.map +1 -0
- package/dist/cli/telegram-command.js +137 -0
- package/dist/cli/telegram-command.js.map +1 -0
- package/dist/cli/telemetria-command.d.ts +22 -0
- package/dist/cli/telemetria-command.d.ts.map +1 -0
- package/dist/cli/telemetria-command.js +127 -0
- package/dist/cli/telemetria-command.js.map +1 -0
- package/dist/cli/undo-command.d.ts +9 -0
- package/dist/cli/undo-command.d.ts.map +1 -0
- package/dist/cli/undo-command.js +56 -0
- package/dist/cli/undo-command.js.map +1 -0
- package/dist/cli/usage-command.d.ts +10 -0
- package/dist/cli/usage-command.d.ts.map +1 -0
- package/dist/cli/usage-command.js +209 -0
- package/dist/cli/usage-command.js.map +1 -0
- package/dist/cli/wiki-command.d.ts +9 -0
- package/dist/cli/wiki-command.d.ts.map +1 -0
- package/dist/cli/wiki-command.js +76 -0
- package/dist/cli/wiki-command.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -11
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -2
- package/dist/config.js.map +1 -1
- package/dist/core/ada.d.ts +58 -0
- package/dist/core/ada.d.ts.map +1 -0
- package/dist/core/ada.js +61 -0
- package/dist/core/ada.js.map +1 -0
- package/dist/core/advisor/guarda.d.ts +66 -0
- package/dist/core/advisor/guarda.d.ts.map +1 -0
- package/dist/core/advisor/guarda.js +191 -0
- package/dist/core/advisor/guarda.js.map +1 -0
- package/dist/core/advisor/runtime.d.ts +66 -0
- package/dist/core/advisor/runtime.d.ts.map +1 -0
- package/dist/core/advisor/runtime.js +121 -0
- package/dist/core/advisor/runtime.js.map +1 -0
- package/dist/core/advisor/sesion.d.ts +109 -0
- package/dist/core/advisor/sesion.d.ts.map +1 -0
- package/dist/core/advisor/sesion.js +139 -0
- package/dist/core/advisor/sesion.js.map +1 -0
- package/dist/core/agent-session.d.ts +85 -7
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +862 -78
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents/loader.d.ts +77 -0
- package/dist/core/agents/loader.d.ts.map +1 -0
- package/dist/core/agents/loader.js +154 -0
- package/dist/core/agents/loader.js.map +1 -0
- package/dist/core/aprobacion/generados.d.ts +37 -0
- package/dist/core/aprobacion/generados.d.ts.map +1 -0
- package/dist/core/aprobacion/generados.js +85 -0
- package/dist/core/aprobacion/generados.js.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts +90 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.js +212 -0
- package/dist/core/aprobacion/politica-de-maquina.js.map +1 -0
- package/dist/core/aprobacion/politica.d.ts +90 -0
- package/dist/core/aprobacion/politica.d.ts.map +1 -0
- package/dist/core/aprobacion/politica.js +375 -0
- package/dist/core/aprobacion/politica.js.map +1 -0
- package/dist/core/arranque/atajos.d.ts +46 -0
- package/dist/core/arranque/atajos.d.ts.map +1 -0
- package/dist/core/arranque/atajos.js +113 -0
- package/dist/core/arranque/atajos.js.map +1 -0
- package/dist/core/audit/exportacion.d.ts +54 -0
- package/dist/core/audit/exportacion.d.ts.map +1 -0
- package/dist/core/audit/exportacion.js +265 -0
- package/dist/core/audit/exportacion.js.map +1 -0
- package/dist/core/audit/libro.d.ts +318 -0
- package/dist/core/audit/libro.d.ts.map +1 -0
- package/dist/core/audit/libro.js +508 -0
- package/dist/core/audit/libro.js.map +1 -0
- package/dist/core/audit/registro-sesion.d.ts +78 -0
- package/dist/core/audit/registro-sesion.d.ts.map +1 -0
- package/dist/core/audit/registro-sesion.js +202 -0
- package/dist/core/audit/registro-sesion.js.map +1 -0
- package/dist/core/audit/retencion.d.ts +82 -0
- package/dist/core/audit/retencion.d.ts.map +1 -0
- package/dist/core/audit/retencion.js +152 -0
- package/dist/core/audit/retencion.js.map +1 -0
- package/dist/core/audit/rutas.d.ts +23 -0
- package/dist/core/audit/rutas.d.ts.map +1 -0
- package/dist/core/audit/rutas.js +23 -0
- package/dist/core/audit/rutas.js.map +1 -0
- package/dist/core/auth-storage.d.ts +0 -3
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +21 -8
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/banco/almacenamiento.d.ts +18 -0
- package/dist/core/banco/almacenamiento.d.ts.map +1 -0
- package/dist/core/banco/almacenamiento.js +50 -0
- package/dist/core/banco/almacenamiento.js.map +1 -0
- package/dist/core/banco/analisis.d.ts +37 -0
- package/dist/core/banco/analisis.d.ts.map +1 -0
- package/dist/core/banco/analisis.js +164 -0
- package/dist/core/banco/analisis.js.map +1 -0
- package/dist/core/banco/bloques.d.ts +39 -0
- package/dist/core/banco/bloques.d.ts.map +1 -0
- package/dist/core/banco/bloques.js +84 -0
- package/dist/core/banco/bloques.js.map +1 -0
- package/dist/core/banco/cargas.d.ts +84 -0
- package/dist/core/banco/cargas.d.ts.map +1 -0
- package/dist/core/banco/cargas.js +520 -0
- package/dist/core/banco/cargas.js.map +1 -0
- package/dist/core/banco/comparar.d.ts +29 -0
- package/dist/core/banco/comparar.d.ts.map +1 -0
- package/dist/core/banco/comparar.js +28 -0
- package/dist/core/banco/comparar.js.map +1 -0
- package/dist/core/banco/ejecutar.d.ts +44 -0
- package/dist/core/banco/ejecutar.d.ts.map +1 -0
- package/dist/core/banco/ejecutar.js +183 -0
- package/dist/core/banco/ejecutar.js.map +1 -0
- package/dist/core/banco/generar.d.ts +24 -0
- package/dist/core/banco/generar.d.ts.map +1 -0
- package/dist/core/banco/generar.js +159 -0
- package/dist/core/banco/generar.js.map +1 -0
- package/dist/core/banco/mutaciones.d.ts +25 -0
- package/dist/core/banco/mutaciones.d.ts.map +1 -0
- package/dist/core/banco/mutaciones.js +215 -0
- package/dist/core/banco/mutaciones.js.map +1 -0
- package/dist/core/banco/tipos.d.ts +121 -0
- package/dist/core/banco/tipos.d.ts.map +1 -0
- package/dist/core/banco/tipos.js +16 -0
- package/dist/core/banco/tipos.js.map +1 -0
- package/dist/core/blobs/almacen.d.ts +81 -0
- package/dist/core/blobs/almacen.d.ts.map +1 -0
- package/dist/core/blobs/almacen.js +198 -0
- package/dist/core/blobs/almacen.js.map +1 -0
- package/dist/core/blobs/broker.d.ts +103 -0
- package/dist/core/blobs/broker.d.ts.map +1 -0
- package/dist/core/blobs/broker.js +204 -0
- package/dist/core/blobs/broker.js.map +1 -0
- package/dist/core/blobs/index.d.ts +70 -0
- package/dist/core/blobs/index.d.ts.map +1 -0
- package/dist/core/blobs/index.js +232 -0
- package/dist/core/blobs/index.js.map +1 -0
- package/dist/core/blobs/payload.d.ts +55 -0
- package/dist/core/blobs/payload.d.ts.map +1 -0
- package/dist/core/blobs/payload.js +255 -0
- package/dist/core/blobs/payload.js.map +1 -0
- package/dist/core/blobs/proveedor.d.ts +85 -0
- package/dist/core/blobs/proveedor.d.ts.map +1 -0
- package/dist/core/blobs/proveedor.js +196 -0
- package/dist/core/blobs/proveedor.js.map +1 -0
- package/dist/core/browser/cdp.d.ts +41 -0
- package/dist/core/browser/cdp.d.ts.map +1 -0
- package/dist/core/browser/cdp.js +119 -0
- package/dist/core/browser/cdp.js.map +1 -0
- package/dist/core/browser/politica.d.ts +51 -0
- package/dist/core/browser/politica.d.ts.map +1 -0
- package/dist/core/browser/politica.js +123 -0
- package/dist/core/browser/politica.js.map +1 -0
- package/dist/core/browser/sesion.d.ts +52 -0
- package/dist/core/browser/sesion.d.ts.map +1 -0
- package/dist/core/browser/sesion.js +176 -0
- package/dist/core/browser/sesion.js.map +1 -0
- package/dist/core/browser/tools.d.ts +16 -0
- package/dist/core/browser/tools.d.ts.map +1 -0
- package/dist/core/browser/tools.js +279 -0
- package/dist/core/browser/tools.js.map +1 -0
- package/dist/core/commit/diff.d.ts +56 -0
- package/dist/core/commit/diff.d.ts.map +1 -0
- package/dist/core/commit/diff.js +145 -0
- package/dist/core/commit/diff.js.map +1 -0
- package/dist/core/commit/mensaje.d.ts +80 -0
- package/dist/core/commit/mensaje.d.ts.map +1 -0
- package/dist/core/commit/mensaje.js +207 -0
- package/dist/core/commit/mensaje.js.map +1 -0
- package/dist/core/compactar/index.d.ts +52 -0
- package/dist/core/compactar/index.d.ts.map +1 -0
- package/dist/core/compactar/index.js +91 -0
- package/dist/core/compactar/index.js.map +1 -0
- package/dist/core/compactar/registro-denso.d.ts +160 -0
- package/dist/core/compactar/registro-denso.d.ts.map +1 -0
- package/dist/core/compactar/registro-denso.js +620 -0
- package/dist/core/compactar/registro-denso.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +4 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +41 -32
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/computer/captura.d.ts +35 -0
- package/dist/core/computer/captura.d.ts.map +1 -0
- package/dist/core/computer/captura.js +140 -0
- package/dist/core/computer/captura.js.map +1 -0
- package/dist/core/computer/driver.d.ts +130 -0
- package/dist/core/computer/driver.d.ts.map +1 -0
- package/dist/core/computer/driver.js +206 -0
- package/dist/core/computer/driver.js.map +1 -0
- package/dist/core/computer/motor/actions.d.ts +109 -0
- package/dist/core/computer/motor/actions.d.ts.map +1 -0
- package/dist/core/computer/motor/actions.js +157 -0
- package/dist/core/computer/motor/actions.js.map +1 -0
- package/dist/core/computer/motor/bridge.d.ts +232 -0
- package/dist/core/computer/motor/bridge.d.ts.map +1 -0
- package/dist/core/computer/motor/bridge.js +2335 -0
- package/dist/core/computer/motor/bridge.js.map +1 -0
- package/dist/core/computer/motor/cdp.d.ts +107 -0
- package/dist/core/computer/motor/cdp.d.ts.map +1 -0
- package/dist/core/computer/motor/cdp.js +659 -0
- package/dist/core/computer/motor/cdp.js.map +1 -0
- package/dist/core/computer/motor/config.d.ts +23 -0
- package/dist/core/computer/motor/config.d.ts.map +1 -0
- package/dist/core/computer/motor/config.js +100 -0
- package/dist/core/computer/motor/config.js.map +1 -0
- package/dist/core/computer/motor/contract.d.ts +81 -0
- package/dist/core/computer/motor/contract.d.ts.map +1 -0
- package/dist/core/computer/motor/contract.js +14 -0
- package/dist/core/computer/motor/contract.js.map +1 -0
- package/dist/core/computer/motor/note.d.ts +37 -0
- package/dist/core/computer/motor/note.d.ts.map +1 -0
- package/dist/core/computer/motor/note.js +162 -0
- package/dist/core/computer/motor/note.js.map +1 -0
- package/dist/core/computer/motor/outline.d.ts +155 -0
- package/dist/core/computer/motor/outline.d.ts.map +1 -0
- package/dist/core/computer/motor/outline.js +590 -0
- package/dist/core/computer/motor/outline.js.map +1 -0
- package/dist/core/computer/motor/output.d.ts +18 -0
- package/dist/core/computer/motor/output.d.ts.map +1 -0
- package/dist/core/computer/motor/output.js +148 -0
- package/dist/core/computer/motor/output.js.map +1 -0
- package/dist/core/computer/motor/permissions.d.ts +41 -0
- package/dist/core/computer/motor/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/permissions.js +51 -0
- package/dist/core/computer/motor/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/architecture.d.ts +5 -0
- package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/architecture.js +21 -0
- package/dist/core/computer/motor/platform/architecture.js.map +1 -0
- package/dist/core/computer/motor/platform/coerce.d.ts +4 -0
- package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/coerce.js +17 -0
- package/dist/core/computer/motor/platform/coerce.js.map +1 -0
- package/dist/core/computer/motor/platform/index.d.ts +4 -0
- package/dist/core/computer/motor/platform/index.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/index.js +79 -0
- package/dist/core/computer/motor/platform/index.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.js +173 -0
- package/dist/core/computer/motor/platform/linux/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts +29 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.js +261 -0
- package/dist/core/computer/motor/platform/linux/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.js +124 -0
- package/dist/core/computer/motor/platform/macos/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts +7 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.js +101 -0
- package/dist/core/computer/motor/platform/macos/browser.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper-path.mjs +34 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts +32 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper.js +277 -0
- package/dist/core/computer/motor/platform/macos/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts +4 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.js +118 -0
- package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/types.d.ts +263 -0
- package/dist/core/computer/motor/platform/types.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/types.js +2 -0
- package/dist/core/computer/motor/platform/types.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.js +163 -0
- package/dist/core/computer/motor/platform/windows/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts +18 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.js +174 -0
- package/dist/core/computer/motor/platform/windows/helper.js.map +1 -0
- package/dist/core/computer/motor/root-selection.d.ts +6 -0
- package/dist/core/computer/motor/root-selection.d.ts.map +1 -0
- package/dist/core/computer/motor/root-selection.js +28 -0
- package/dist/core/computer/motor/root-selection.js.map +1 -0
- package/dist/core/computer/motor/runtime.d.ts +50 -0
- package/dist/core/computer/motor/runtime.d.ts.map +1 -0
- package/dist/core/computer/motor/runtime.js +119 -0
- package/dist/core/computer/motor/runtime.js.map +1 -0
- package/dist/core/computer/motor/state.d.ts +68 -0
- package/dist/core/computer/motor/state.d.ts.map +1 -0
- package/dist/core/computer/motor/state.js +100 -0
- package/dist/core/computer/motor/state.js.map +1 -0
- package/dist/core/computer/motor/view.d.ts +6 -0
- package/dist/core/computer/motor/view.d.ts.map +1 -0
- package/dist/core/computer/motor/view.js +185 -0
- package/dist/core/computer/motor/view.js.map +1 -0
- package/dist/core/computer/motor-ada.d.ts +159 -0
- package/dist/core/computer/motor-ada.d.ts.map +1 -0
- package/dist/core/computer/motor-ada.js +412 -0
- package/dist/core/computer/motor-ada.js.map +1 -0
- package/dist/core/computer/politica.d.ts +56 -0
- package/dist/core/computer/politica.d.ts.map +1 -0
- package/dist/core/computer/politica.js +163 -0
- package/dist/core/computer/politica.js.map +1 -0
- package/dist/core/computer/tools.d.ts +26 -0
- package/dist/core/computer/tools.d.ts.map +1 -0
- package/dist/core/computer/tools.js +399 -0
- package/dist/core/computer/tools.js.map +1 -0
- package/dist/core/context-breakdown.d.ts +80 -0
- package/dist/core/context-breakdown.d.ts.map +1 -0
- package/dist/core/context-breakdown.js +87 -0
- package/dist/core/context-breakdown.js.map +1 -0
- package/dist/core/credenciales/cliente.d.ts +60 -0
- package/dist/core/credenciales/cliente.d.ts.map +1 -0
- package/dist/core/credenciales/cliente.js +81 -0
- package/dist/core/credenciales/cliente.js.map +1 -0
- package/dist/core/credenciales/pool.d.ts +96 -0
- package/dist/core/credenciales/pool.d.ts.map +1 -0
- package/dist/core/credenciales/pool.js +128 -0
- package/dist/core/credenciales/pool.js.map +1 -0
- package/dist/core/credenciales/reposo.d.ts +93 -0
- package/dist/core/credenciales/reposo.d.ts.map +1 -0
- package/dist/core/credenciales/reposo.js +489 -0
- package/dist/core/credenciales/reposo.js.map +1 -0
- package/dist/core/credenciales/servidor.d.ts +55 -0
- package/dist/core/credenciales/servidor.d.ts.map +1 -0
- package/dist/core/credenciales/servidor.js +205 -0
- package/dist/core/credenciales/servidor.js.map +1 -0
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/descubrimiento/comandos.d.ts +30 -0
- package/dist/core/descubrimiento/comandos.d.ts.map +1 -0
- package/dist/core/descubrimiento/comandos.js +76 -0
- package/dist/core/descubrimiento/comandos.js.map +1 -0
- package/dist/core/descubrimiento/mcp.d.ts +42 -0
- package/dist/core/descubrimiento/mcp.d.ts.map +1 -0
- package/dist/core/descubrimiento/mcp.js +130 -0
- package/dist/core/descubrimiento/mcp.js.map +1 -0
- package/dist/core/descubrimiento/reglas.d.ts +61 -0
- package/dist/core/descubrimiento/reglas.d.ts.map +1 -0
- package/dist/core/descubrimiento/reglas.js +134 -0
- package/dist/core/descubrimiento/reglas.js.map +1 -0
- package/dist/core/descubrimiento/skills.d.ts +57 -0
- package/dist/core/descubrimiento/skills.d.ts.map +1 -0
- package/dist/core/descubrimiento/skills.js +113 -0
- package/dist/core/descubrimiento/skills.js.map +1 -0
- package/dist/core/dificultad/clasificador.d.ts +133 -0
- package/dist/core/dificultad/clasificador.d.ts.map +1 -0
- package/dist/core/dificultad/clasificador.js +288 -0
- package/dist/core/dificultad/clasificador.js.map +1 -0
- package/dist/core/edicion/diario.d.ts +37 -0
- package/dist/core/edicion/diario.d.ts.map +1 -0
- package/dist/core/edicion/diario.js +51 -0
- package/dist/core/edicion/diario.js.map +1 -0
- package/dist/core/edicion/hashline.d.ts +71 -0
- package/dist/core/edicion/hashline.d.ts.map +1 -0
- package/dist/core/edicion/hashline.js +111 -0
- package/dist/core/edicion/hashline.js.map +1 -0
- package/dist/core/edicion/hueco.d.ts +64 -0
- package/dist/core/edicion/hueco.d.ts.map +1 -0
- package/dist/core/edicion/hueco.js +162 -0
- package/dist/core/edicion/hueco.js.map +1 -0
- package/dist/core/edicion/limpiar-carga.d.ts +39 -0
- package/dist/core/edicion/limpiar-carga.d.ts.map +1 -0
- package/dist/core/edicion/limpiar-carga.js +121 -0
- package/dist/core/edicion/limpiar-carga.js.map +1 -0
- package/dist/core/edicion/observador.d.ts +80 -0
- package/dist/core/edicion/observador.d.ts.map +1 -0
- package/dist/core/edicion/observador.js +183 -0
- package/dist/core/edicion/observador.js.map +1 -0
- package/dist/core/edicion/parecido.d.ts +53 -0
- package/dist/core/edicion/parecido.d.ts.map +1 -0
- package/dist/core/edicion/parecido.js +145 -0
- package/dist/core/edicion/parecido.js.map +1 -0
- package/dist/core/edicion/parseo.d.ts +58 -0
- package/dist/core/edicion/parseo.d.ts.map +1 -0
- package/dist/core/edicion/parseo.js +124 -0
- package/dist/core/edicion/parseo.js.map +1 -0
- package/dist/core/edicion/reparacion.d.ts +67 -0
- package/dist/core/edicion/reparacion.d.ts.map +1 -0
- package/dist/core/edicion/reparacion.js +202 -0
- package/dist/core/edicion/reparacion.js.map +1 -0
- package/dist/core/edicion/sangria.d.ts +121 -0
- package/dist/core/edicion/sangria.d.ts.map +1 -0
- package/dist/core/edicion/sangria.js +341 -0
- package/dist/core/edicion/sangria.js.map +1 -0
- package/dist/core/edicion/tipos.d.ts +58 -0
- package/dist/core/edicion/tipos.d.ts.map +1 -0
- package/dist/core/edicion/tipos.js +160 -0
- package/dist/core/edicion/tipos.js.map +1 -0
- package/dist/core/engine-personality.d.ts +12 -0
- package/dist/core/engine-personality.d.ts.map +1 -0
- package/dist/core/engine-personality.js +53 -0
- package/dist/core/engine-personality.js.map +1 -0
- package/dist/core/errores/proveedor.d.ts +53 -0
- package/dist/core/errores/proveedor.d.ts.map +1 -0
- package/dist/core/errores/proveedor.js +191 -0
- package/dist/core/errores/proveedor.js.map +1 -0
- package/dist/core/estructural/buscar.d.ts +61 -0
- package/dist/core/estructural/buscar.d.ts.map +1 -0
- package/dist/core/estructural/buscar.js +261 -0
- package/dist/core/estructural/buscar.js.map +1 -0
- package/dist/core/estructural/editar.d.ts +36 -0
- package/dist/core/estructural/editar.d.ts.map +1 -0
- package/dist/core/estructural/editar.js +123 -0
- package/dist/core/estructural/editar.js.map +1 -0
- package/dist/core/estructural/tools.d.ts +11 -0
- package/dist/core/estructural/tools.d.ts.map +1 -0
- package/dist/core/estructural/tools.js +100 -0
- package/dist/core/estructural/tools.js.map +1 -0
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +10 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/extensiones/suplantacion.d.ts +49 -0
- package/dist/core/extensiones/suplantacion.d.ts.map +1 -0
- package/dist/core/extensiones/suplantacion.js +61 -0
- package/dist/core/extensiones/suplantacion.js.map +1 -0
- package/dist/core/extensiones/vigilancia.d.ts +54 -0
- package/dist/core/extensiones/vigilancia.d.ts.map +1 -0
- package/dist/core/extensiones/vigilancia.js +217 -0
- package/dist/core/extensiones/vigilancia.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +21 -6
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +23 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/harness/fuentes-de-contexto.d.ts +29 -0
- package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -0
- package/dist/core/harness/fuentes-de-contexto.js +44 -0
- package/dist/core/harness/fuentes-de-contexto.js.map +1 -0
- package/dist/core/harness/refine.d.ts +40 -0
- package/dist/core/harness/refine.d.ts.map +1 -0
- package/dist/core/harness/refine.js +109 -0
- package/dist/core/harness/refine.js.map +1 -0
- package/dist/core/harness/store.d.ts +75 -0
- package/dist/core/harness/store.d.ts.map +1 -0
- package/dist/core/harness/store.js +149 -0
- package/dist/core/harness/store.js.map +1 -0
- package/dist/core/hooks/contract.d.ts +85 -0
- package/dist/core/hooks/contract.d.ts.map +1 -0
- package/dist/core/hooks/contract.js +140 -0
- package/dist/core/hooks/contract.js.map +1 -0
- package/dist/core/hooks/runner.d.ts +42 -0
- package/dist/core/hooks/runner.d.ts.map +1 -0
- package/dist/core/hooks/runner.js +85 -0
- package/dist/core/hooks/runner.js.map +1 -0
- package/dist/core/hooks/session-hooks.d.ts +62 -0
- package/dist/core/hooks/session-hooks.d.ts.map +1 -0
- package/dist/core/hooks/session-hooks.js +84 -0
- package/dist/core/hooks/session-hooks.js.map +1 -0
- package/dist/core/importar/formatos.d.ts +69 -0
- package/dist/core/importar/formatos.d.ts.map +1 -0
- package/dist/core/importar/formatos.js +235 -0
- package/dist/core/importar/formatos.js.map +1 -0
- package/dist/core/interactivo/deteccion.d.ts +44 -0
- package/dist/core/interactivo/deteccion.d.ts.map +1 -0
- package/dist/core/interactivo/deteccion.js +82 -0
- package/dist/core/interactivo/deteccion.js.map +1 -0
- package/dist/core/interactivo/sesion.d.ts +50 -0
- package/dist/core/interactivo/sesion.d.ts.map +1 -0
- package/dist/core/interactivo/sesion.js +156 -0
- package/dist/core/interactivo/sesion.js.map +1 -0
- package/dist/core/interactivo/tools.d.ts +21 -0
- package/dist/core/interactivo/tools.d.ts.map +1 -0
- package/dist/core/interactivo/tools.js +122 -0
- package/dist/core/interactivo/tools.js.map +1 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lectura/mapa.d.ts +70 -0
- package/dist/core/lectura/mapa.d.ts.map +1 -0
- package/dist/core/lectura/mapa.js +177 -0
- package/dist/core/lectura/mapa.js.map +1 -0
- package/dist/core/lectura/pdf.d.ts +49 -0
- package/dist/core/lectura/pdf.d.ts.map +1 -0
- package/dist/core/lectura/pdf.js +337 -0
- package/dist/core/lectura/pdf.js.map +1 -0
- package/dist/core/limpieza/comprobadores.d.ts +28 -0
- package/dist/core/limpieza/comprobadores.d.ts.map +1 -0
- package/dist/core/limpieza/comprobadores.js +311 -0
- package/dist/core/limpieza/comprobadores.js.map +1 -0
- package/dist/core/limpieza/parseo.d.ts +19 -0
- package/dist/core/limpieza/parseo.d.ts.map +1 -0
- package/dist/core/limpieza/parseo.js +124 -0
- package/dist/core/limpieza/parseo.js.map +1 -0
- package/dist/core/limpieza/reparacion.d.ts +77 -0
- package/dist/core/limpieza/reparacion.d.ts.map +1 -0
- package/dist/core/limpieza/reparacion.js +254 -0
- package/dist/core/limpieza/reparacion.js.map +1 -0
- package/dist/core/limpieza/tipos.d.ts +56 -0
- package/dist/core/limpieza/tipos.d.ts.map +1 -0
- package/dist/core/limpieza/tipos.js +9 -0
- package/dist/core/limpieza/tipos.js.map +1 -0
- package/dist/core/lsp/cliente.d.ts +52 -0
- package/dist/core/lsp/cliente.d.ts.map +1 -0
- package/dist/core/lsp/cliente.js +232 -0
- package/dist/core/lsp/cliente.js.map +1 -0
- package/dist/core/lsp/descubrimiento.d.ts +62 -0
- package/dist/core/lsp/descubrimiento.d.ts.map +1 -0
- package/dist/core/lsp/descubrimiento.js +152 -0
- package/dist/core/lsp/descubrimiento.js.map +1 -0
- package/dist/core/lsp/ediciones.d.ts +59 -0
- package/dist/core/lsp/ediciones.d.ts.map +1 -0
- package/dist/core/lsp/ediciones.js +89 -0
- package/dist/core/lsp/ediciones.js.map +1 -0
- package/dist/core/lsp/extension.d.ts +28 -0
- package/dist/core/lsp/extension.d.ts.map +1 -0
- package/dist/core/lsp/extension.js +34 -0
- package/dist/core/lsp/extension.js.map +1 -0
- package/dist/core/lsp/tools.d.ts +45 -0
- package/dist/core/lsp/tools.d.ts.map +1 -0
- package/dist/core/lsp/tools.js +265 -0
- package/dist/core/lsp/tools.js.map +1 -0
- package/dist/core/mcp/client.d.ts +60 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +139 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/manager.d.ts +86 -0
- package/dist/core/mcp/manager.d.ts.map +1 -0
- package/dist/core/mcp/manager.js +124 -0
- package/dist/core/mcp/manager.js.map +1 -0
- package/dist/core/mcp/tools.d.ts +15 -0
- package/dist/core/mcp/tools.d.ts.map +1 -0
- package/dist/core/mcp/tools.js +84 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/memory-engine/audit-export.d.ts +56 -0
- package/dist/core/memory-engine/audit-export.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-export.js +100 -0
- package/dist/core/memory-engine/audit-export.js.map +1 -0
- package/dist/core/memory-engine/audit-indice.d.ts +153 -0
- package/dist/core/memory-engine/audit-indice.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-indice.js +271 -0
- package/dist/core/memory-engine/audit-indice.js.map +1 -0
- package/dist/core/memory-engine/audit.d.ts +18 -6
- package/dist/core/memory-engine/audit.d.ts.map +1 -1
- package/dist/core/memory-engine/audit.js +32 -50
- package/dist/core/memory-engine/audit.js.map +1 -1
- package/dist/core/memory-engine/engine.d.ts +21 -4
- package/dist/core/memory-engine/engine.d.ts.map +1 -1
- package/dist/core/memory-engine/engine.js +219 -55
- package/dist/core/memory-engine/engine.js.map +1 -1
- package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
- package/dist/core/memory-engine/inverted-index.js +67 -10
- package/dist/core/memory-engine/inverted-index.js.map +1 -1
- package/dist/core/memory-engine/keychain.d.ts.map +1 -1
- package/dist/core/memory-engine/keychain.js +1 -6
- package/dist/core/memory-engine/keychain.js.map +1 -1
- package/dist/core/memory-engine/observation-store.d.ts +0 -1
- package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
- package/dist/core/memory-engine/observation-store.js +40 -12
- package/dist/core/memory-engine/observation-store.js.map +1 -1
- package/dist/core/memory-engine/refinements.d.ts +51 -0
- package/dist/core/memory-engine/refinements.d.ts.map +1 -0
- package/dist/core/memory-engine/refinements.js +99 -0
- package/dist/core/memory-engine/refinements.js.map +1 -0
- package/dist/core/memory-engine/scanner.d.ts.map +1 -1
- package/dist/core/memory-engine/scanner.js +25 -5
- package/dist/core/memory-engine/scanner.js.map +1 -1
- package/dist/core/memory-engine/security.d.ts.map +1 -1
- package/dist/core/memory-engine/security.js +131 -23
- package/dist/core/memory-engine/security.js.map +1 -1
- package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
- package/dist/core/memory-engine/session-indexer.js +8 -2
- package/dist/core/memory-engine/session-indexer.js.map +1 -1
- package/dist/core/memory-engine/tools.d.ts +2 -2
- package/dist/core/memory-engine/tools.d.ts.map +1 -1
- package/dist/core/memory-engine/tools.js +41 -8
- package/dist/core/memory-engine/tools.js.map +1 -1
- package/dist/core/memory-engine/types.d.ts +2 -0
- package/dist/core/memory-engine/types.d.ts.map +1 -1
- package/dist/core/memory-engine/types.js.map +1 -1
- package/dist/core/memory-engine/vault.d.ts.map +1 -1
- package/dist/core/memory-engine/vault.js +2 -2
- package/dist/core/memory-engine/vault.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +2 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +19 -7
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/muestreo-restringido.d.ts +49 -0
- package/dist/core/muestreo-restringido.d.ts.map +1 -0
- package/dist/core/muestreo-restringido.js +65 -0
- package/dist/core/muestreo-restringido.js.map +1 -0
- package/dist/core/orphan-process-journal.d.ts +48 -0
- package/dist/core/orphan-process-journal.d.ts.map +1 -0
- package/dist/core/orphan-process-journal.js +116 -0
- package/dist/core/orphan-process-journal.js.map +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +11 -6
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/privacidad/categorias-especiales.d.ts +186 -0
- package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -0
- package/dist/core/privacidad/categorias-especiales.js +745 -0
- package/dist/core/privacidad/categorias-especiales.js.map +1 -0
- package/dist/core/privacidad/tapar.d.ts +48 -0
- package/dist/core/privacidad/tapar.d.ts.map +1 -0
- package/dist/core/privacidad/tapar.js +66 -0
- package/dist/core/privacidad/tapar.js.map +1 -0
- package/dist/core/prompt-cache/diagnostics.d.ts +33 -0
- package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -0
- package/dist/core/prompt-cache/diagnostics.js +100 -0
- package/dist/core/prompt-cache/diagnostics.js.map +1 -0
- package/dist/core/prompt-cache/index.d.ts +33 -0
- package/dist/core/prompt-cache/index.d.ts.map +1 -0
- package/dist/core/prompt-cache/index.js +189 -0
- package/dist/core/prompt-cache/index.js.map +1 -0
- package/dist/core/prompt-cache/payload.d.ts +58 -0
- package/dist/core/prompt-cache/payload.d.ts.map +1 -0
- package/dist/core/prompt-cache/payload.js +122 -0
- package/dist/core/prompt-cache/payload.js.map +1 -0
- package/dist/core/prompt-cache/stabilize.d.ts +65 -0
- package/dist/core/prompt-cache/stabilize.d.ts.map +1 -0
- package/dist/core/prompt-cache/stabilize.js +137 -0
- package/dist/core/prompt-cache/stabilize.js.map +1 -0
- package/dist/core/prompt-cache/stats.d.ts +55 -0
- package/dist/core/prompt-cache/stats.d.ts.map +1 -0
- package/dist/core/prompt-cache/stats.js +158 -0
- package/dist/core/prompt-cache/stats.js.map +1 -0
- package/dist/core/prompt-eleccion.d.ts +38 -0
- package/dist/core/prompt-eleccion.d.ts.map +1 -0
- package/dist/core/prompt-eleccion.js +46 -0
- package/dist/core/prompt-eleccion.js.map +1 -0
- package/dist/core/prompt-optimizer.d.ts +53 -0
- package/dist/core/prompt-optimizer.d.ts.map +1 -0
- package/dist/core/prompt-optimizer.js +138 -0
- package/dist/core/prompt-optimizer.js.map +1 -0
- package/dist/core/prompts/montar.d.ts +75 -0
- package/dist/core/prompts/montar.d.ts.map +1 -0
- package/dist/core/prompts/montar.js +146 -0
- package/dist/core/prompts/montar.js.map +1 -0
- package/dist/core/prompts/plantilla.d.ts +54 -0
- package/dist/core/prompts/plantilla.d.ts.map +1 -0
- package/dist/core/prompts/plantilla.js +153 -0
- package/dist/core/prompts/plantilla.js.map +1 -0
- package/dist/core/prompts/sistema.md +134 -0
- package/dist/core/provider-attribution.d.ts +24 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js +24 -42
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/remoto/destino.d.ts +38 -0
- package/dist/core/remoto/destino.d.ts.map +1 -0
- package/dist/core/remoto/destino.js +105 -0
- package/dist/core/remoto/destino.js.map +1 -0
- package/dist/core/remoto/ejecutor.d.ts +59 -0
- package/dist/core/remoto/ejecutor.d.ts.map +1 -0
- package/dist/core/remoto/ejecutor.js +225 -0
- package/dist/core/remoto/ejecutor.js.map +1 -0
- package/dist/core/remoto/ficheros.d.ts +29 -0
- package/dist/core/remoto/ficheros.d.ts.map +1 -0
- package/dist/core/remoto/ficheros.js +90 -0
- package/dist/core/remoto/ficheros.js.map +1 -0
- package/dist/core/remoto/registro-extension.d.ts +15 -0
- package/dist/core/remoto/registro-extension.d.ts.map +1 -0
- package/dist/core/remoto/registro-extension.js +17 -0
- package/dist/core/remoto/registro-extension.js.map +1 -0
- package/dist/core/remoto/tools.d.ts +28 -0
- package/dist/core/remoto/tools.d.ts.map +1 -0
- package/dist/core/remoto/tools.js +31 -0
- package/dist/core/remoto/tools.js.map +1 -0
- package/dist/core/resource-loader.d.ts +58 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +326 -8
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/revision/hallazgo.d.ts +51 -0
- package/dist/core/revision/hallazgo.d.ts.map +1 -0
- package/dist/core/revision/hallazgo.js +73 -0
- package/dist/core/revision/hallazgo.js.map +1 -0
- package/dist/core/revision/revisor.d.ts +81 -0
- package/dist/core/revision/revisor.d.ts.map +1 -0
- package/dist/core/revision/revisor.js +132 -0
- package/dist/core/revision/revisor.js.map +1 -0
- package/dist/core/revision/sarif.d.ts +30 -0
- package/dist/core/revision/sarif.d.ts.map +1 -0
- package/dist/core/revision/sarif.js +83 -0
- package/dist/core/revision/sarif.js.map +1 -0
- package/dist/core/scheduler/scheduler.d.ts +87 -0
- package/dist/core/scheduler/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler/scheduler.js +178 -0
- package/dist/core/scheduler/scheduler.js.map +1 -0
- package/dist/core/sdk.d.ts +8 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +11 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts +49 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js +77 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +156 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +255 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts +17 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +13 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetria/otlp.d.ts +122 -0
- package/dist/core/telemetria/otlp.d.ts.map +1 -0
- package/dist/core/telemetria/otlp.js +373 -0
- package/dist/core/telemetria/otlp.js.map +1 -0
- package/dist/core/tools/coercion-argumentos.d.ts +48 -0
- package/dist/core/tools/coercion-argumentos.d.ts.map +1 -0
- package/dist/core/tools/coercion-argumentos.js +99 -0
- package/dist/core/tools/coercion-argumentos.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +0 -12
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +234 -12
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +28 -5
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js +5 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +2 -2
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/json-tolerante.d.ts +30 -0
- package/dist/core/tools/json-tolerante.d.ts.map +1 -0
- package/dist/core/tools/json-tolerante.js +70 -0
- package/dist/core/tools/json-tolerante.js.map +1 -0
- package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
- package/dist/core/tools/project-memory-tool.js +4 -1
- package/dist/core/tools/project-memory-tool.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +17 -0
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +17 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/turno-vacio/detectar.d.ts +38 -0
- package/dist/core/turno-vacio/detectar.d.ts.map +1 -0
- package/dist/core/turno-vacio/detectar.js +66 -0
- package/dist/core/turno-vacio/detectar.js.map +1 -0
- package/dist/core/undo/journal.d.ts +57 -0
- package/dist/core/undo/journal.d.ts.map +1 -0
- package/dist/core/undo/journal.js +178 -0
- package/dist/core/undo/journal.js.map +1 -0
- package/dist/core/urls-internas/auditoria.d.ts +10 -0
- package/dist/core/urls-internas/auditoria.d.ts.map +1 -0
- package/dist/core/urls-internas/auditoria.js +42 -0
- package/dist/core/urls-internas/auditoria.js.map +1 -0
- package/dist/core/urls-internas/boveda.d.ts +13 -0
- package/dist/core/urls-internas/boveda.d.ts.map +1 -0
- package/dist/core/urls-internas/boveda.js +40 -0
- package/dist/core/urls-internas/boveda.js.map +1 -0
- package/dist/core/urls-internas/lector.d.ts +30 -0
- package/dist/core/urls-internas/lector.d.ts.map +1 -0
- package/dist/core/urls-internas/lector.js +56 -0
- package/dist/core/urls-internas/lector.js.map +1 -0
- package/dist/core/urls-internas/memoria.d.ts +11 -0
- package/dist/core/urls-internas/memoria.d.ts.map +1 -0
- package/dist/core/urls-internas/memoria.js +25 -0
- package/dist/core/urls-internas/memoria.js.map +1 -0
- package/dist/core/urls-internas/parse.d.ts +28 -0
- package/dist/core/urls-internas/parse.d.ts.map +1 -0
- package/dist/core/urls-internas/parse.js +32 -0
- package/dist/core/urls-internas/parse.js.map +1 -0
- package/dist/core/urls-internas/reglas.d.ts +10 -0
- package/dist/core/urls-internas/reglas.d.ts.map +1 -0
- package/dist/core/urls-internas/reglas.js +31 -0
- package/dist/core/urls-internas/reglas.js.map +1 -0
- package/dist/core/usage/aggregate.d.ts +68 -0
- package/dist/core/usage/aggregate.d.ts.map +1 -0
- package/dist/core/usage/aggregate.js +93 -0
- package/dist/core/usage/aggregate.js.map +1 -0
- package/dist/core/usage/cuota/anthropic.d.ts +10 -0
- package/dist/core/usage/cuota/anthropic.d.ts.map +1 -0
- package/dist/core/usage/cuota/anthropic.js +63 -0
- package/dist/core/usage/cuota/anthropic.js.map +1 -0
- package/dist/core/usage/cuota/cache.d.ts +20 -0
- package/dist/core/usage/cuota/cache.d.ts.map +1 -0
- package/dist/core/usage/cuota/cache.js +36 -0
- package/dist/core/usage/cuota/cache.js.map +1 -0
- package/dist/core/usage/cuota/github-copilot.d.ts +9 -0
- package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -0
- package/dist/core/usage/cuota/github-copilot.js +67 -0
- package/dist/core/usage/cuota/github-copilot.js.map +1 -0
- package/dist/core/usage/cuota/google-gemini.d.ts +9 -0
- package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -0
- package/dist/core/usage/cuota/google-gemini.js +72 -0
- package/dist/core/usage/cuota/google-gemini.js.map +1 -0
- package/dist/core/usage/cuota/index.d.ts +25 -0
- package/dist/core/usage/cuota/index.d.ts.map +1 -0
- package/dist/core/usage/cuota/index.js +50 -0
- package/dist/core/usage/cuota/index.js.map +1 -0
- package/dist/core/usage/cuota/openai-codex.d.ts +9 -0
- package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -0
- package/dist/core/usage/cuota/openai-codex.js +59 -0
- package/dist/core/usage/cuota/openai-codex.js.map +1 -0
- package/dist/core/usage/cuota/openrouter.d.ts +10 -0
- package/dist/core/usage/cuota/openrouter.d.ts.map +1 -0
- package/dist/core/usage/cuota/openrouter.js +47 -0
- package/dist/core/usage/cuota/openrouter.js.map +1 -0
- package/dist/core/usage/cuota/tipos.d.ts +50 -0
- package/dist/core/usage/cuota/tipos.d.ts.map +1 -0
- package/dist/core/usage/cuota/tipos.js +25 -0
- package/dist/core/usage/cuota/tipos.js.map +1 -0
- package/dist/core/web/busqueda-nativa.d.ts +82 -0
- package/dist/core/web/busqueda-nativa.d.ts.map +1 -0
- package/dist/core/web/busqueda-nativa.js +163 -0
- package/dist/core/web/busqueda-nativa.js.map +1 -0
- package/dist/core/web/destino.d.ts +58 -0
- package/dist/core/web/destino.d.ts.map +1 -0
- package/dist/core/web/destino.js +127 -0
- package/dist/core/web/destino.js.map +1 -0
- package/dist/core/web/proveedores/brave.d.ts +6 -0
- package/dist/core/web/proveedores/brave.d.ts.map +1 -0
- package/dist/core/web/proveedores/brave.js +20 -0
- package/dist/core/web/proveedores/brave.js.map +1 -0
- package/dist/core/web/proveedores/claves.d.ts +19 -0
- package/dist/core/web/proveedores/claves.d.ts.map +1 -0
- package/dist/core/web/proveedores/claves.js +36 -0
- package/dist/core/web/proveedores/claves.js.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts +3 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.js +109 -0
- package/dist/core/web/proveedores/duckduckgo.js.map +1 -0
- package/dist/core/web/proveedores/ecosia.d.ts +3 -0
- package/dist/core/web/proveedores/ecosia.d.ts.map +1 -0
- package/dist/core/web/proveedores/ecosia.js +72 -0
- package/dist/core/web/proveedores/ecosia.js.map +1 -0
- package/dist/core/web/proveedores/exa.d.ts +6 -0
- package/dist/core/web/proveedores/exa.d.ts.map +1 -0
- package/dist/core/web/proveedores/exa.js +24 -0
- package/dist/core/web/proveedores/exa.js.map +1 -0
- package/dist/core/web/proveedores/mojeek.d.ts +3 -0
- package/dist/core/web/proveedores/mojeek.d.ts.map +1 -0
- package/dist/core/web/proveedores/mojeek.js +65 -0
- package/dist/core/web/proveedores/mojeek.js.map +1 -0
- package/dist/core/web/proveedores/navegador.d.ts +10 -0
- package/dist/core/web/proveedores/navegador.d.ts.map +1 -0
- package/dist/core/web/proveedores/navegador.js +13 -0
- package/dist/core/web/proveedores/navegador.js.map +1 -0
- package/dist/core/web/proveedores/registro.d.ts +43 -0
- package/dist/core/web/proveedores/registro.d.ts.map +1 -0
- package/dist/core/web/proveedores/registro.js +49 -0
- package/dist/core/web/proveedores/registro.js.map +1 -0
- package/dist/core/web/proveedores/searxng.d.ts +9 -0
- package/dist/core/web/proveedores/searxng.d.ts.map +1 -0
- package/dist/core/web/proveedores/searxng.js +17 -0
- package/dist/core/web/proveedores/searxng.js.map +1 -0
- package/dist/core/web/proveedores/serper.d.ts +9 -0
- package/dist/core/web/proveedores/serper.d.ts.map +1 -0
- package/dist/core/web/proveedores/serper.js +19 -0
- package/dist/core/web/proveedores/serper.js.map +1 -0
- package/dist/core/web/proveedores/tavily.d.ts +6 -0
- package/dist/core/web/proveedores/tavily.d.ts.map +1 -0
- package/dist/core/web/proveedores/tavily.js +19 -0
- package/dist/core/web/proveedores/tavily.js.map +1 -0
- package/dist/core/web/proveedores/tipos.d.ts +36 -0
- package/dist/core/web/proveedores/tipos.d.ts.map +1 -0
- package/dist/core/web/proveedores/tipos.js +10 -0
- package/dist/core/web/proveedores/tipos.js.map +1 -0
- package/dist/core/web/registro-red.d.ts +43 -0
- package/dist/core/web/registro-red.d.ts.map +1 -0
- package/dist/core/web/registro-red.js +86 -0
- package/dist/core/web/registro-red.js.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts +10 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.js +38 -0
- package/dist/core/web/scrapers/cisa-kev.js.map +1 -0
- package/dist/core/web/scrapers/crates-io.d.ts +11 -0
- package/dist/core/web/scrapers/crates-io.d.ts.map +1 -0
- package/dist/core/web/scrapers/crates-io.js +29 -0
- package/dist/core/web/scrapers/crates-io.js.map +1 -0
- package/dist/core/web/scrapers/docs-rs.d.ts +10 -0
- package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -0
- package/dist/core/web/scrapers/docs-rs.js +35 -0
- package/dist/core/web/scrapers/docs-rs.js.map +1 -0
- package/dist/core/web/scrapers/github.d.ts +3 -0
- package/dist/core/web/scrapers/github.d.ts.map +1 -0
- package/dist/core/web/scrapers/github.js +72 -0
- package/dist/core/web/scrapers/github.js.map +1 -0
- package/dist/core/web/scrapers/go-pkg.d.ts +7 -0
- package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -0
- package/dist/core/web/scrapers/go-pkg.js +30 -0
- package/dist/core/web/scrapers/go-pkg.js.map +1 -0
- package/dist/core/web/scrapers/hex.d.ts +6 -0
- package/dist/core/web/scrapers/hex.d.ts.map +1 -0
- package/dist/core/web/scrapers/hex.js +27 -0
- package/dist/core/web/scrapers/hex.js.map +1 -0
- package/dist/core/web/scrapers/maven.d.ts +8 -0
- package/dist/core/web/scrapers/maven.d.ts.map +1 -0
- package/dist/core/web/scrapers/maven.js +41 -0
- package/dist/core/web/scrapers/maven.js.map +1 -0
- package/dist/core/web/scrapers/mdn.d.ts +6 -0
- package/dist/core/web/scrapers/mdn.d.ts.map +1 -0
- package/dist/core/web/scrapers/mdn.js +28 -0
- package/dist/core/web/scrapers/mdn.js.map +1 -0
- package/dist/core/web/scrapers/npm.d.ts +11 -0
- package/dist/core/web/scrapers/npm.d.ts.map +1 -0
- package/dist/core/web/scrapers/npm.js +57 -0
- package/dist/core/web/scrapers/npm.js.map +1 -0
- package/dist/core/web/scrapers/nuget.d.ts +8 -0
- package/dist/core/web/scrapers/nuget.d.ts.map +1 -0
- package/dist/core/web/scrapers/nuget.js +22 -0
- package/dist/core/web/scrapers/nuget.js.map +1 -0
- package/dist/core/web/scrapers/nvd.d.ts +7 -0
- package/dist/core/web/scrapers/nvd.d.ts.map +1 -0
- package/dist/core/web/scrapers/nvd.js +37 -0
- package/dist/core/web/scrapers/nvd.js.map +1 -0
- package/dist/core/web/scrapers/pypi.d.ts +6 -0
- package/dist/core/web/scrapers/pypi.d.ts.map +1 -0
- package/dist/core/web/scrapers/pypi.js +31 -0
- package/dist/core/web/scrapers/pypi.js.map +1 -0
- package/dist/core/web/scrapers/registro.d.ts +13 -0
- package/dist/core/web/scrapers/registro.d.ts.map +1 -0
- package/dist/core/web/scrapers/registro.js +65 -0
- package/dist/core/web/scrapers/registro.js.map +1 -0
- package/dist/core/web/scrapers/rubygems.d.ts +6 -0
- package/dist/core/web/scrapers/rubygems.d.ts.map +1 -0
- package/dist/core/web/scrapers/rubygems.js +23 -0
- package/dist/core/web/scrapers/rubygems.js.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts +3 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.js +46 -0
- package/dist/core/web/scrapers/stackoverflow.js.map +1 -0
- package/dist/core/web/scrapers/tipos.d.ts +42 -0
- package/dist/core/web/scrapers/tipos.d.ts.map +1 -0
- package/dist/core/web/scrapers/tipos.js +23 -0
- package/dist/core/web/scrapers/tipos.js.map +1 -0
- package/dist/core/web/texto.d.ts +10 -0
- package/dist/core/web/texto.d.ts.map +1 -0
- package/dist/core/web/texto.js +26 -0
- package/dist/core/web/texto.js.map +1 -0
- package/dist/core/web/tools.d.ts +91 -0
- package/dist/core/web/tools.d.ts.map +1 -0
- package/dist/core/web/tools.js +304 -0
- package/dist/core/web/tools.js.map +1 -0
- package/dist/core/wiki/almacen.d.ts +33 -0
- package/dist/core/wiki/almacen.d.ts.map +1 -0
- package/dist/core/wiki/almacen.js +93 -0
- package/dist/core/wiki/almacen.js.map +1 -0
- package/dist/core/wiki/citas.d.ts +111 -0
- package/dist/core/wiki/citas.d.ts.map +1 -0
- package/dist/core/wiki/citas.js +146 -0
- package/dist/core/wiki/citas.js.map +1 -0
- package/dist/core/workflows/agent-runner.d.ts +88 -0
- package/dist/core/workflows/agent-runner.d.ts.map +1 -0
- package/dist/core/workflows/agent-runner.js +312 -0
- package/dist/core/workflows/agent-runner.js.map +1 -0
- package/dist/core/workflows/builtins.d.ts +41 -0
- package/dist/core/workflows/builtins.d.ts.map +1 -0
- package/dist/core/workflows/builtins.js +283 -0
- package/dist/core/workflows/builtins.js.map +1 -0
- package/dist/core/workflows/contrato/esquema.d.ts +32 -0
- package/dist/core/workflows/contrato/esquema.d.ts.map +1 -0
- package/dist/core/workflows/contrato/esquema.js +25 -0
- package/dist/core/workflows/contrato/esquema.js.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts +69 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js +117 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -0
- package/dist/core/workflows/contrato/validador.d.ts +30 -0
- package/dist/core/workflows/contrato/validador.d.ts.map +1 -0
- package/dist/core/workflows/contrato/validador.js +56 -0
- package/dist/core/workflows/contrato/validador.js.map +1 -0
- package/dist/core/workflows/contrato/yield.d.ts +65 -0
- package/dist/core/workflows/contrato/yield.d.ts.map +1 -0
- package/dist/core/workflows/contrato/yield.js +80 -0
- package/dist/core/workflows/contrato/yield.js.map +1 -0
- package/dist/core/workflows/goal-engine/engine.d.ts +151 -0
- package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/engine.js +503 -0
- package/dist/core/workflows/goal-engine/engine.js.map +1 -0
- package/dist/core/workflows/goal-engine/errors.d.ts +7 -0
- package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/errors.js +9 -0
- package/dist/core/workflows/goal-engine/errors.js.map +1 -0
- package/dist/core/workflows/goal-engine/index.d.ts +13 -0
- package/dist/core/workflows/goal-engine/index.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/index.js +8 -0
- package/dist/core/workflows/goal-engine/index.js.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts +31 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.js +145 -0
- package/dist/core/workflows/goal-engine/persistence.js.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts +37 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.js +131 -0
- package/dist/core/workflows/goal-engine/prompts.js.map +1 -0
- package/dist/core/workflows/goal-engine/state.d.ts +41 -0
- package/dist/core/workflows/goal-engine/state.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/state.js +397 -0
- package/dist/core/workflows/goal-engine/state.js.map +1 -0
- package/dist/core/workflows/goal-engine/tools.d.ts +31 -0
- package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/tools.js +211 -0
- package/dist/core/workflows/goal-engine/tools.js.map +1 -0
- package/dist/core/workflows/goal-engine/types.d.ts +286 -0
- package/dist/core/workflows/goal-engine/types.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/types.js +17 -0
- package/dist/core/workflows/goal-engine/types.js.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts +23 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js +72 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -0
- package/dist/core/workflows/graph-sync.d.ts +67 -0
- package/dist/core/workflows/graph-sync.d.ts.map +1 -0
- package/dist/core/workflows/graph-sync.js +188 -0
- package/dist/core/workflows/graph-sync.js.map +1 -0
- package/dist/core/workflows/graph.d.ts +143 -0
- package/dist/core/workflows/graph.d.ts.map +1 -0
- package/dist/core/workflows/graph.js +319 -0
- package/dist/core/workflows/graph.js.map +1 -0
- package/dist/core/workflows/index.d.ts +26 -0
- package/dist/core/workflows/index.d.ts.map +1 -0
- package/dist/core/workflows/index.js +18 -0
- package/dist/core/workflows/index.js.map +1 -0
- package/dist/core/workflows/journal.d.ts +68 -0
- package/dist/core/workflows/journal.d.ts.map +1 -0
- package/dist/core/workflows/journal.js +83 -0
- package/dist/core/workflows/journal.js.map +1 -0
- package/dist/core/workflows/manager.d.ts +122 -0
- package/dist/core/workflows/manager.d.ts.map +1 -0
- package/dist/core/workflows/manager.js +351 -0
- package/dist/core/workflows/manager.js.map +1 -0
- package/dist/core/workflows/resolve-script.d.ts +35 -0
- package/dist/core/workflows/resolve-script.d.ts.map +1 -0
- package/dist/core/workflows/resolve-script.js +66 -0
- package/dist/core/workflows/resolve-script.js.map +1 -0
- package/dist/core/workflows/runtime.d.ts +62 -0
- package/dist/core/workflows/runtime.d.ts.map +1 -0
- package/dist/core/workflows/runtime.js +380 -0
- package/dist/core/workflows/runtime.js.map +1 -0
- package/dist/core/workflows/save-as-skill.d.ts +27 -0
- package/dist/core/workflows/save-as-skill.d.ts.map +1 -0
- package/dist/core/workflows/save-as-skill.js +54 -0
- package/dist/core/workflows/save-as-skill.js.map +1 -0
- package/dist/core/workflows/shared-store.d.ts +31 -0
- package/dist/core/workflows/shared-store.d.ts.map +1 -0
- package/dist/core/workflows/shared-store.js +80 -0
- package/dist/core/workflows/shared-store.js.map +1 -0
- package/dist/core/workflows/subagent-host.d.ts +50 -0
- package/dist/core/workflows/subagent-host.d.ts.map +1 -0
- package/dist/core/workflows/subagent-host.js +225 -0
- package/dist/core/workflows/subagent-host.js.map +1 -0
- package/dist/core/workflows/tool-workflow.d.ts +22 -0
- package/dist/core/workflows/tool-workflow.d.ts.map +1 -0
- package/dist/core/workflows/tool-workflow.js +120 -0
- package/dist/core/workflows/tool-workflow.js.map +1 -0
- package/dist/core/workflows/types.d.ts +191 -0
- package/dist/core/workflows/types.d.ts.map +1 -0
- package/dist/core/workflows/types.js +26 -0
- package/dist/core/workflows/types.js.map +1 -0
- package/dist/core/workflows/worktree.d.ts +42 -0
- package/dist/core/workflows/worktree.d.ts.map +1 -0
- package/dist/core/workflows/worktree.js +107 -0
- package/dist/core/workflows/worktree.js.map +1 -0
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -2
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/remoto/index.d.ts +22 -0
- package/dist/extensions/remoto/index.d.ts.map +1 -0
- package/dist/extensions/remoto/index.js +54 -0
- package/dist/extensions/remoto/index.js.map +1 -0
- package/dist/index.d.ts +1 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -13
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -15
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts +42 -0
- package/dist/modes/acp/acp-mode.d.ts.map +1 -0
- package/dist/modes/acp/acp-mode.js +190 -0
- package/dist/modes/acp/acp-mode.js.map +1 -0
- package/dist/modes/acp/events.d.ts +74 -0
- package/dist/modes/acp/events.d.ts.map +1 -0
- package/dist/modes/acp/events.js +116 -0
- package/dist/modes/acp/events.js.map +1 -0
- package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
- package/dist/modes/interactive/components/home-screen.js +2 -2
- package/dist/modes/interactive/components/home-screen.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +9 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +56 -12
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/prompt-optimization.d.ts +16 -0
- package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -0
- package/dist/modes/interactive/components/prompt-optimization.js +46 -0
- package/dist/modes/interactive/components/prompt-optimization.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +19 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +180 -56
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +74 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +21 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +709 -75
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +4 -3
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +11 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +173 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +29 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +27 -5
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/server/attach.d.ts +56 -0
- package/dist/server/attach.d.ts.map +1 -0
- package/dist/server/attach.js +130 -0
- package/dist/server/attach.js.map +1 -0
- package/dist/server/extension-ops.d.ts +40 -0
- package/dist/server/extension-ops.d.ts.map +1 -0
- package/dist/server/extension-ops.js +146 -0
- package/dist/server/extension-ops.js.map +1 -0
- package/dist/server/pi-server-service.d.ts +85 -0
- package/dist/server/pi-server-service.d.ts.map +1 -0
- package/dist/server/pi-server-service.js +213 -0
- package/dist/server/pi-server-service.js.map +1 -0
- package/dist/server/scheduler-tick.d.ts +32 -0
- package/dist/server/scheduler-tick.d.ts.map +1 -0
- package/dist/server/scheduler-tick.js +47 -0
- package/dist/server/scheduler-tick.js.map +1 -0
- package/dist/server/serve.d.ts +25 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/server/serve.js +83 -0
- package/dist/server/serve.js.map +1 -0
- package/dist/server/transcript.d.ts +38 -0
- package/dist/server/transcript.d.ts.map +1 -0
- package/dist/server/transcript.js +176 -0
- package/dist/server/transcript.js.map +1 -0
- package/dist/skills/ada-engine/SKILL.md +153 -0
- package/dist/skills/skill-creator/SKILL.md +90 -0
- package/dist/telegram/api.d.ts +75 -0
- package/dist/telegram/api.d.ts.map +1 -0
- package/dist/telegram/api.js +104 -0
- package/dist/telegram/api.js.map +1 -0
- package/dist/telegram/bridge.d.ts +85 -0
- package/dist/telegram/bridge.d.ts.map +1 -0
- package/dist/telegram/bridge.js +182 -0
- package/dist/telegram/bridge.js.map +1 -0
- package/dist/telegram/journal.d.ts +67 -0
- package/dist/telegram/journal.d.ts.map +1 -0
- package/dist/telegram/journal.js +119 -0
- package/dist/telegram/journal.js.map +1 -0
- package/dist/telegram/servidor.d.ts +15 -0
- package/dist/telegram/servidor.d.ts.map +1 -0
- package/dist/telegram/servidor.js +74 -0
- package/dist/telegram/servidor.js.map +1 -0
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +11 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +11 -0
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +29 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +25 -10
- package/docs/compliance.md +241 -0
- package/docs/containerization.md +24 -24
- package/docs/custom-provider.md +15 -12
- package/docs/development.md +47 -10
- package/docs/docs.json +14 -2
- package/docs/environment-variables.md +20 -17
- package/docs/extensions.md +62 -51
- package/docs/index.md +15 -21
- package/docs/json.md +10 -5
- package/docs/keybindings.md +5 -5
- package/docs/llama-cpp.md +9 -7
- package/docs/models.md +18 -12
- package/docs/packages.md +45 -45
- package/docs/prompt-templates.md +5 -5
- package/docs/providers.md +12 -12
- package/docs/quickstart.md +39 -39
- package/docs/rpc.md +21 -15
- package/docs/sdk.md +38 -38
- package/docs/security.md +26 -21
- package/docs/session-format.md +7 -7
- package/docs/sessions.md +14 -14
- package/docs/settings.md +47 -22
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +14 -13
- package/docs/terminal-setup.md +14 -14
- package/docs/termux.md +7 -7
- package/docs/themes.md +11 -11
- package/docs/tmux.md +4 -4
- package/docs/tui.md +3 -3
- package/docs/usage.md +54 -54
- package/docs/windows.md +2 -2
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/subagent/README.md +1 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/12-full-control.ts +9 -0
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +35 -261
- package/package.json +9 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetria-command.js","sourceRoot":"","sources":["../../src/cli/telemetria-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE9F,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;gEAkB+C,CAAC;AAE9D,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAW;IAC5D,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;AAAA,CAC3D;AAED,SAAS,QAAQ,CAAC,IAAc,EAAU;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAAA,CAC5C;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc,EAAE,QAAgB,EAAoB;IAC9F,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,sEAAqE;YACrE,uDAAmD;YACnD,OAAO,CAAC,GAAG,CAAC,2DAAwD,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,yEAAyE;YACzE,6CAA6C;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,iBAAiB,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACtF,OAAO,CAAC,KAAK,CACZ,KAAK,QAAQ,CAAC,MAAM,iCAAiC,iBAAiB,MAAM,WAAW,UAAU;gBAChG,0EAAyE,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,mDAAkD,CAAC,CAAC;YAClE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAC7F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,EAAE;gBACzE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC5B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACnC,CAAC,CAAC;YACH,uEAAsE;YACtE,0EAAuE;YACvE,qBAAoB;YACpB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,yBAAwB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;gBACnE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,iBAAiB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,iEAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,qEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,+CAA6C,CAAC,CAAC;IAE3D,2EAA0E;IAC1E,wDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,oCAAmC,QAAQ,2CAA2C,CAAC,CAAC;IACpG,OAAO,IAAI,CAAC;AAAA,CACZ","sourcesContent":["/**\n * `ada-cli telemetria` — enseñar y ejercitar la exportación OTLP.\n *\n * Existe porque un exportador que nadie puede mirar es un exportador en el que\n * nadie confía. Un equipo de plataforma que apunta Ada a su colector necesita\n * contestar tres cosas sin leer código:\n *\n * · ¿está configurada, y a dónde va cada señal?\n * · ¿qué sale exactamente de esta máquina? ← la que de verdad importa\n * · ¿llega al colector?\n *\n * La segunda es la que justifica el subcomando. La propiedad que vendemos —que\n * exportamos FORMA y nunca CONTENIDO— no se demuestra con una frase en el\n * README: se demuestra enseñando el cuerpo JSON que se enviaría, tomado del\n * libro real de esta instalación, para que quien audite lo lea entero.\n *\n * El competidor exporta OTLP con una variable para capturar el contenido de los\n * mensajes. Nosotros no tenemos esa variable, y aquí se puede comprobar.\n */\n\nimport { LibroDeSesion } from \"../core/audit/libro.ts\";\nimport { CLAVE_DESCARTADOS, configuracionOtlp, cuerpoOtlp } from \"../core/telemetria/otlp.ts\";\n\nconst AYUDA = `Uso:\n ada-cli telemetria Estado de la exportación OTLP\n ada-cli telemetria --cuerpo [--limite N]\n Enseña el JSON que se enviaría (por defecto 20 entradas)\n ada-cli telemetria --enviar [--limite N]\n Envía de verdad al colector configurado\n\nVariables (contrato estándar de OpenTelemetry):\n OTEL_EXPORTER_OTLP_ENDPOINT Base para todas las señales\n OTEL_EXPORTER_OTLP_PROTOCOL http/json | http/protobuf\n OTEL_EXPORTER_OTLP_TRACES_ENDPOINT y _LOGS_ / _METRICS_, con sus _PROTOCOL\n\nLo que sale son ATRIBUTOS DE FORMA de una lista blanca explícita: tipo de\nsuceso, herramienta, código de salida, duración, bytes, hashes, dominio de\ndestino, proveedor, modelo y número de tokens.\n\nNunca sale contenido: ni el texto de un comando, ni un fichero, ni un prompt,\nni una respuesta del modelo. No hay variable de entorno que lo active, a\npropósito. \\`--cuerpo\\` está para que puedas comprobarlo tú.`;\n\nexport function esComandoTelemetria(args: string[]): boolean {\n\treturn args[0] === \"telemetria\" || args[0] === \"telemetry\";\n}\n\nfunction limiteDe(args: string[]): number {\n\tconst i = args.indexOf(\"--limite\");\n\tconst n = i >= 0 ? Number(args[i + 1]) : 20;\n\treturn Number.isFinite(n) && n > 0 ? n : 20;\n}\n\nexport async function runTelemetriaCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (!esComandoTelemetria(args)) return false;\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst config = configuracionOtlp();\n\tconst libro = new LibroDeSesion(agentDir, \"cli\");\n\n\tif (args.includes(\"--cuerpo\") || args.includes(\"--enviar\")) {\n\t\tconst entradas = [...(await libro.leer(limiteDe(args)))].reverse();\n\t\tif (entradas.length === 0) {\n\t\t\t// Ni bien ni mal: no hay nada que exportar. Decirlo así evita que un\n\t\t\t// cuerpo vacío se lea como «no sale nada de aquí».\n\t\t\tconsole.log(\"El libro está vacío: no hay nada que exportar todavía.\");\n\t\t\treturn true;\n\t\t}\n\t\tconst cuerpo = cuerpoOtlp(entradas);\n\n\t\tif (args.includes(\"--cuerpo\")) {\n\t\t\tconsole.log(JSON.stringify(cuerpo, null, 2));\n\t\t\t// El recuento va a stderr para que `--cuerpo` siga siendo JSON puro y se\n\t\t\t// pueda encauzar a `jq` sin filtrar la nota.\n\t\t\tconst descartados = JSON.stringify(cuerpo).split(`\"${CLAVE_DESCARTADOS}\"`).length - 1;\n\t\t\tconsole.error(\n\t\t\t\t`\\n${entradas.length} entrada(s). Cada span lleva \"${CLAVE_DESCARTADOS}\" (${descartados} spans) ` +\n\t\t\t\t\t\"con cuántos atributos se dejaron fuera por no estar en la lista blanca.\",\n\t\t\t);\n\t\t\treturn true;\n\t\t}\n\n\t\tif (config.estado !== \"configurada\") {\n\t\t\tconsole.error(`No se puede enviar: ${config.motivo}.`);\n\t\t\tconsole.error(\"Ejecuta `ada-cli telemetria` para ver qué falta.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tconst destino = config.porSenal.trazas;\n\t\tif (!destino) {\n\t\t\tconsole.error(\"No hay endpoint de trazas configurado (OTEL_EXPORTER_OTLP_TRACES_ENDPOINT).\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\ttry {\n\t\t\tconst r = await fetch(`${destino.endpoint.replace(/\\/$/, \"\")}/v1/traces`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\tbody: JSON.stringify(cuerpo),\n\t\t\t\tsignal: AbortSignal.timeout(15_000),\n\t\t\t});\n\t\t\t// Un 2xx del colector es lo único que cuenta como enviado. Un 4xx con\n\t\t\t// cuerpo de error se ha leído más de una vez como éxito por mirar solo\n\t\t\t// si `fetch` lanzó.\n\t\t\tif (!r.ok) {\n\t\t\t\tconsole.error(`El colector contestó ${r.status} ${r.statusText}.`);\n\t\t\t\tprocess.exitCode = 1;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconsole.log(`Enviadas ${entradas.length} entrada(s) a ${destino.endpoint} (${destino.protocolo}).`);\n\t\t} catch (error) {\n\t\t\tconsole.error(`No se ha podido enviar a ${destino.endpoint}: ${(error as Error).message}`);\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tconsole.log(`Estado: ${config.estado}`);\n\tif (config.motivo) console.log(` ${config.motivo}`);\n\tfor (const [senal, destino] of Object.entries(config.porSenal)) {\n\t\tconsole.log(` ${senal.padEnd(9)} -> ${destino.endpoint} (${destino.protocolo})`);\n\t}\n\tif (config.estado === \"invalida\") process.exitCode = 1;\n\n\tconsole.log(\"\\nQué sale: atributos de FORMA de una lista blanca explícita.\");\n\tconsole.log(\"Qué NO sale: comandos, ficheros, prompts ni respuestas del modelo.\");\n\tconsole.log(\"Compruébalo tú: ada-cli telemetria --cuerpo\");\n\n\t// Se dice de dónde salen los datos: un exportador que no nombra su fuente\n\t// obliga a leer código para saber qué está mandando.\n\tconsole.log(`\\nFuente: el libro de sesión de ${agentDir} (el mismo que audita \\`ada-cli audit\\`).`);\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli undo` — deshace los cambios de ficheros del último turno.
|
|
3
|
+
*
|
|
4
|
+
* La lógica vive en `core/undo/journal.ts`; aquí solo se traduce a texto. El
|
|
5
|
+
* comando cuenta SIEMPRE lo que no pudo revertir: decir "listo" callando que
|
|
6
|
+
* dos ficheros quedaron fuera sería peor que no ofrecer el comando.
|
|
7
|
+
*/
|
|
8
|
+
export declare function runUndoCommand(args: string[], agentDir: string): Promise<boolean>;
|
|
9
|
+
//# sourceMappingURL=undo-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"undo-command.d.ts","sourceRoot":"","sources":["../../src/cli/undo-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CvF","sourcesContent":["/**\n * `ada-cli undo` — deshace los cambios de ficheros del último turno.\n *\n * La lógica vive en `core/undo/journal.ts`; aquí solo se traduce a texto. El\n * comando cuenta SIEMPRE lo que no pudo revertir: decir \"listo\" callando que\n * dos ficheros quedaron fuera sería peor que no ofrecer el comando.\n */\n\nimport { deshacer, previsualizar } from \"../core/undo/journal.ts\";\n\nexport async function runUndoCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli undo Deshace los cambios de ficheros del último turno\n ada-cli undo --dry-run Enseña qué se desharía, sin tocar nada\n\nTodo o nada: si una escritura falla, se deshace la reversión entera. Los\nficheros demasiado grandes para fotografiar se avisan y NO se revierten.`);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tif (args.includes(\"--dry-run\")) {\n\t\tconst entradas = previsualizar(agentDir, cwd);\n\t\tif (entradas.length === 0) {\n\t\t\tconsole.log(\"No hay nada que deshacer en este proyecto.\");\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(`Turno ${entradas[0].turno} — ${entradas.length} fichero(s):`);\n\t\tfor (const e of entradas) {\n\t\t\tconst que = e.omitido ? \"se OMITE (demasiado grande)\" : e.previo === null ? \"se borraría\" : \"se restauraría\";\n\t\t\tconsole.log(` ${que}: ${e.path}`);\n\t\t}\n\t\treturn true;\n\t}\n\n\tconst r = deshacer(agentDir, cwd);\n\tif (r.turno === null) {\n\t\tconsole.log(\"No hay nada que deshacer en este proyecto.\");\n\t\treturn true;\n\t}\n\tif (r.error) {\n\t\tconsole.error(`No se pudo deshacer el turno ${r.turno}: ${r.error}`);\n\t\tconsole.error(\"No se ha cambiado ningún fichero.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\tconsole.log(`Turno ${r.turno} deshecho.`);\n\tfor (const p of r.restaurados) console.log(` restaurado: ${p}`);\n\tfor (const p of r.borrados) console.log(` borrado: ${p}`);\n\tif (r.omitidos.length > 0) {\n\t\tconsole.log(`\\nNO revertidos (demasiado grandes para fotografiar):`);\n\t\tfor (const p of r.omitidos) console.log(` ${p}`);\n\t}\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli undo` — deshace los cambios de ficheros del último turno.
|
|
3
|
+
*
|
|
4
|
+
* La lógica vive en `core/undo/journal.ts`; aquí solo se traduce a texto. El
|
|
5
|
+
* comando cuenta SIEMPRE lo que no pudo revertir: decir "listo" callando que
|
|
6
|
+
* dos ficheros quedaron fuera sería peor que no ofrecer el comando.
|
|
7
|
+
*/
|
|
8
|
+
import { deshacer, previsualizar } from "../core/undo/journal.js";
|
|
9
|
+
export async function runUndoCommand(args, agentDir) {
|
|
10
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
11
|
+
console.log(`Uso:
|
|
12
|
+
ada-cli undo Deshace los cambios de ficheros del último turno
|
|
13
|
+
ada-cli undo --dry-run Enseña qué se desharía, sin tocar nada
|
|
14
|
+
|
|
15
|
+
Todo o nada: si una escritura falla, se deshace la reversión entera. Los
|
|
16
|
+
ficheros demasiado grandes para fotografiar se avisan y NO se revierten.`);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
const cwd = process.cwd();
|
|
20
|
+
if (args.includes("--dry-run")) {
|
|
21
|
+
const entradas = previsualizar(agentDir, cwd);
|
|
22
|
+
if (entradas.length === 0) {
|
|
23
|
+
console.log("No hay nada que deshacer en este proyecto.");
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
console.log(`Turno ${entradas[0].turno} — ${entradas.length} fichero(s):`);
|
|
27
|
+
for (const e of entradas) {
|
|
28
|
+
const que = e.omitido ? "se OMITE (demasiado grande)" : e.previo === null ? "se borraría" : "se restauraría";
|
|
29
|
+
console.log(` ${que}: ${e.path}`);
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
const r = deshacer(agentDir, cwd);
|
|
34
|
+
if (r.turno === null) {
|
|
35
|
+
console.log("No hay nada que deshacer en este proyecto.");
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (r.error) {
|
|
39
|
+
console.error(`No se pudo deshacer el turno ${r.turno}: ${r.error}`);
|
|
40
|
+
console.error("No se ha cambiado ningún fichero.");
|
|
41
|
+
process.exitCode = 1;
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
console.log(`Turno ${r.turno} deshecho.`);
|
|
45
|
+
for (const p of r.restaurados)
|
|
46
|
+
console.log(` restaurado: ${p}`);
|
|
47
|
+
for (const p of r.borrados)
|
|
48
|
+
console.log(` borrado: ${p}`);
|
|
49
|
+
if (r.omitidos.length > 0) {
|
|
50
|
+
console.log(`\nNO revertidos (demasiado grandes para fotografiar):`);
|
|
51
|
+
for (const p of r.omitidos)
|
|
52
|
+
console.log(` ${p}`);
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=undo-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"undo-command.js","sourceRoot":"","sources":["../../src/cli/undo-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc,EAAE,QAAgB,EAAoB;IACxF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC;;;;;yEAK2D,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,QAAM,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,cAAa,CAAC,CAAC,CAAC,iBAAgB,CAAC;YAC7G,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,oCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACZ","sourcesContent":["/**\n * `ada-cli undo` — deshace los cambios de ficheros del último turno.\n *\n * La lógica vive en `core/undo/journal.ts`; aquí solo se traduce a texto. El\n * comando cuenta SIEMPRE lo que no pudo revertir: decir \"listo\" callando que\n * dos ficheros quedaron fuera sería peor que no ofrecer el comando.\n */\n\nimport { deshacer, previsualizar } from \"../core/undo/journal.ts\";\n\nexport async function runUndoCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli undo Deshace los cambios de ficheros del último turno\n ada-cli undo --dry-run Enseña qué se desharía, sin tocar nada\n\nTodo o nada: si una escritura falla, se deshace la reversión entera. Los\nficheros demasiado grandes para fotografiar se avisan y NO se revierten.`);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tif (args.includes(\"--dry-run\")) {\n\t\tconst entradas = previsualizar(agentDir, cwd);\n\t\tif (entradas.length === 0) {\n\t\t\tconsole.log(\"No hay nada que deshacer en este proyecto.\");\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(`Turno ${entradas[0].turno} — ${entradas.length} fichero(s):`);\n\t\tfor (const e of entradas) {\n\t\t\tconst que = e.omitido ? \"se OMITE (demasiado grande)\" : e.previo === null ? \"se borraría\" : \"se restauraría\";\n\t\t\tconsole.log(` ${que}: ${e.path}`);\n\t\t}\n\t\treturn true;\n\t}\n\n\tconst r = deshacer(agentDir, cwd);\n\tif (r.turno === null) {\n\t\tconsole.log(\"No hay nada que deshacer en este proyecto.\");\n\t\treturn true;\n\t}\n\tif (r.error) {\n\t\tconsole.error(`No se pudo deshacer el turno ${r.turno}: ${r.error}`);\n\t\tconsole.error(\"No se ha cambiado ningún fichero.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\tconsole.log(`Turno ${r.turno} deshecho.`);\n\tfor (const p of r.restaurados) console.log(` restaurado: ${p}`);\n\tfor (const p of r.borrados) console.log(` borrado: ${p}`);\n\tif (r.omitidos.length > 0) {\n\t\tconsole.log(`\\nNO revertidos (demasiado grandes para fotografiar):`);\n\t\tfor (const p of r.omitidos) console.log(` ${p}`);\n\t}\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli usage` — qué se ha consumido de verdad, y cuánto queda.
|
|
3
|
+
*
|
|
4
|
+
* Lo consumido sale de los JSONL de sesión; la agregación vive en
|
|
5
|
+
* `core/usage/aggregate.ts`. Lo que QUEDA no está en la sesión —vive en el
|
|
6
|
+
* proveedor— así que la sección "queda" viene de `core/usage/cuota/`, que le
|
|
7
|
+
* pregunta a cada proveedor con la credencial ya guardada en `auth.json`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function runUsageCommand(args: string[], agentDir: string): Promise<boolean>;
|
|
10
|
+
//# sourceMappingURL=usage-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-command.d.ts","sourceRoot":"","sources":["../../src/cli/usage-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6IH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0ExF","sourcesContent":["/**\n * `ada-cli usage` — qué se ha consumido de verdad, y cuánto queda.\n *\n * Lo consumido sale de los JSONL de sesión; la agregación vive en\n * `core/usage/aggregate.ts`. Lo que QUEDA no está en la sesión —vive en el\n * proveedor— así que la sección \"queda\" viene de `core/usage/cuota/`, que le\n * pregunta a cada proveedor con la credencial ya guardada en `auth.json`.\n */\n\nimport { readdirSync, readFileSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { readStoredCredential } from \"../core/auth-storage.ts\";\nimport { type LineaSesion, porCoste, resumir, type Totales } from \"../core/usage/aggregate.ts\";\nimport {\n\tconsultarCuota,\n\tErrorConsultaCuota,\n\tPROVEEDORES_CON_CUOTA,\n\ttype VentanaCuota,\n} from \"../core/usage/cuota/index.ts\";\n\nfunction leerSesiones(sessionsDir: string): Array<{ cwd?: string; lineas: LineaSesion[] }> {\n\tlet carpetas: string[];\n\ttry {\n\t\tcarpetas = readdirSync(sessionsDir);\n\t} catch {\n\t\treturn [];\n\t}\n\tconst sesiones: Array<{ cwd?: string; lineas: LineaSesion[] }> = [];\n\tfor (const carpeta of carpetas) {\n\t\tconst ruta = join(sessionsDir, carpeta);\n\t\tlet ficheros: string[];\n\t\ttry {\n\t\t\tif (!statSync(ruta).isDirectory()) continue;\n\t\t\tficheros = readdirSync(ruta).filter((f) => f.endsWith(\".jsonl\"));\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const fichero of ficheros) {\n\t\t\tconst lineas: LineaSesion[] = [];\n\t\t\ttry {\n\t\t\t\tfor (const linea of readFileSync(join(ruta, fichero), \"utf8\").split(\"\\n\")) {\n\t\t\t\t\tif (!linea.trim()) continue;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlineas.push(JSON.parse(linea) as LineaSesion);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Una línea corrupta no invalida la sesión entera.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lineas.length > 0) sesiones.push({ lineas });\n\t\t}\n\t}\n\treturn sesiones;\n}\n\nconst miles = (n: number) => n.toLocaleString(\"es-ES\");\nconst dinero = (n: number) => `${n < 0.01 && n > 0 ? n.toFixed(5) : n.toFixed(2)} $`;\n\nconst ETIQUETA_PROVEEDOR_CUOTA: Record<string, string> = {\n\tanthropic: \"Anthropic (Claude)\",\n\topenrouter: \"OpenRouter\",\n\t\"openai-codex\": \"OpenAI Codex\",\n\t\"github-copilot\": \"GitHub Copilot\",\n\tgoogle: \"Gemini\",\n};\n\ntype ResultadoCuotaProveedor =\n\t| { estado: \"ventanas\"; ventanas: VentanaCuota[] }\n\t| { estado: \"no-publica\" }\n\t| { estado: \"fallo\"; mensaje: string };\n\n/**\n * Le pregunta a cada proveedor con credencial guardada cuánto le queda.\n *\n * Solo se pregunta a los que TIENEN credencial: preguntar por uno sin\n * configurar no distingue \"no publica cuota\" de \"no está en uso\", así que ni\n * se intenta ni se enseña.\n *\n * En paralelo: un proveedor que tarda (o agota los 10s) no debe retrasar la\n * respuesta de los demás — con los 5 configurados y todos fallando, en serie\n * serían ~50s solo para `ada-cli usage`.\n */\nasync function consultarQueda(agentDir: string): Promise<Array<[string, ResultadoCuotaProveedor]>> {\n\tconst authPath = join(agentDir, \"auth.json\");\n\tconst conCredencial = PROVEEDORES_CON_CUOTA.map(\n\t\t(proveedor) => [proveedor, readStoredCredential(proveedor, authPath)] as const,\n\t).filter((par): par is [string, NonNullable<(typeof par)[1]>] => par[1] !== undefined);\n\n\treturn Promise.all(\n\t\tconCredencial.map(async ([proveedor, credencial]): Promise<[string, ResultadoCuotaProveedor]> => {\n\t\t\ttry {\n\t\t\t\tconst ventanas = await consultarCuota(proveedor, credencial, { señal: AbortSignal.timeout(10_000) });\n\t\t\t\treturn [proveedor, ventanas ? { estado: \"ventanas\", ventanas } : { estado: \"no-publica\" }];\n\t\t\t} catch (error) {\n\t\t\t\t// `ErrorConsultaCuota` trae un mensaje pensado para enseñarse; un error\n\t\t\t\t// inesperado también se reporta como fallo, nunca como \"no publica\".\n\t\t\t\tconst mensaje = error instanceof ErrorConsultaCuota ? error.message : String(error);\n\t\t\t\treturn [proveedor, { estado: \"fallo\", mensaje }];\n\t\t\t}\n\t\t}),\n\t);\n}\n\nfunction formateaSeReinicia(seReinicia: number | null): string {\n\tif (seReinicia === null) return \"\";\n\tconst restanteMs = seReinicia - Date.now();\n\tif (restanteMs <= 0) return \" (se reinicia ya)\";\n\tconst horas = restanteMs / 3_600_000;\n\tif (horas < 48) return ` (se reinicia en ${Math.max(1, Math.round(horas))} h)`;\n\treturn ` (se reinicia en ${Math.round(horas / 24)} d)`;\n}\n\nfunction formateaVentana(v: VentanaCuota): string {\n\tconst restante = Math.max(0, v.limite - v.usado);\n\tconst cuando = formateaSeReinicia(v.seReinicia);\n\tif (v.unidad === \"usd\") return `quedan ${dinero(restante)} de ${dinero(v.limite)}${cuando}`;\n\tif (v.unidad === \"peticiones\") return `quedan ${miles(restante)} de ${miles(v.limite)}${cuando}`;\n\treturn `${v.usado.toFixed(1)}% usado, quedan ${restante.toFixed(1)}%${cuando}`;\n}\n\nfunction tablaQueda(resultados: Array<[string, ResultadoCuotaProveedor]>): void {\n\tif (resultados.length === 0) return;\n\tconsole.log(\"\\nQueda del plan\");\n\tfor (const [proveedor, r] of resultados) {\n\t\tconst etiqueta = ETIQUETA_PROVEEDOR_CUOTA[proveedor] ?? proveedor;\n\t\tif (r.estado === \"no-publica\") {\n\t\t\tconsole.log(` ${etiqueta}: no publica cuota para esta credencial`);\n\t\t} else if (r.estado === \"fallo\") {\n\t\t\tconsole.log(` ${etiqueta}: no se pudo consultar (${r.mensaje})`);\n\t\t} else {\n\t\t\tfor (const v of r.ventanas) console.log(` ${etiqueta} · ${v.etiqueta}: ${formateaVentana(v)}`);\n\t\t}\n\t}\n}\n\nfunction tabla(titulo: string, filas: Array<[string, Totales]>, limite: number): void {\n\tif (filas.length === 0) return;\n\tconsole.log(`\\n${titulo}`);\n\tconst ancho = Math.min(52, Math.max(...filas.slice(0, limite).map(([k]) => k.length)));\n\tfor (const [clave, t] of filas.slice(0, limite)) {\n\t\tconst nombre = clave.length > ancho ? `…${clave.slice(-(ancho - 1))}` : clave.padEnd(ancho);\n\t\tconsole.log(` ${nombre} ${dinero(t.coste).padStart(10)} ${miles(t.entrada + t.salida).padStart(12)} tok`);\n\t}\n\tif (filas.length > limite) console.log(` … y ${filas.length - limite} más`);\n}\n\nexport async function runUsageCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli usage [--days N] [--json] [--all] [--sin-queda]\n\n --days N Solo los últimos N días (por defecto, todo)\n --json Salida en JSON, para conectarlo a otra cosa\n --all Incluye las sesiones de directorios temporales (las de los tests)\n --sin-queda No pregunta a los proveedores cuánto queda del plan (más rápido, sin red)\n\nLos tokens de caché se cuentan aparte: meterlos en el total haría que un día\ncon mucha caché pareciera carísimo cuando es justo lo contrario.\n\nAdemás de lo GASTADO (de los JSONL de sesión), enseña lo que QUEDA del plan\npara cada proveedor con credencial guardada: se lo pregunta al proveedor y\ncachea la respuesta unos minutos. Un proveedor que no publica cuota lo dice\nexplícitamente; si la consulta falla, también — nunca se confunde con \"sin\nlímite\".`);\n\t\treturn true;\n\t}\n\n\tconst iDias = args.indexOf(\"--days\");\n\tlet desde: string | undefined;\n\tif (iDias >= 0) {\n\t\tconst n = Number(args[iDias + 1]);\n\t\tif (!Number.isFinite(n) || n <= 0) {\n\t\t\tconsole.error(\"--days necesita un número de días positivo.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tdesde = new Date(Date.now() - n * 86_400_000).toISOString();\n\t}\n\n\tconst resumen = resumir(leerSesiones(join(agentDir, \"sessions\")), {\n\t\tdesde,\n\t\tincluirTemporales: args.includes(\"--all\"),\n\t});\n\tconst sinQueda = args.includes(\"--sin-queda\");\n\n\tif (args.includes(\"--json\")) {\n\t\tconst queda = sinQueda ? {} : Object.fromEntries(await consultarQueda(agentDir));\n\t\tconsole.log(JSON.stringify({ ...resumen, queda }, null, 2));\n\t\treturn true;\n\t}\n\n\tif (resumen.mensajes === 0) {\n\t\tconsole.log(desde ? \"Sin consumo registrado en ese periodo.\" : \"Sin consumo registrado todavía.\");\n\t\tif (!sinQueda) tablaQueda(await consultarQueda(agentDir));\n\t\treturn true;\n\t}\n\n\tconst dias = Object.keys(resumen.porDia).sort();\n\tconsole.log(`Consumo${desde ? ` (últimos ${args[iDias + 1]} días)` : \"\"}`);\n\tconsole.log(\n\t\t` ${miles(resumen.sesiones)} sesiones · ${miles(resumen.mensajes)} respuestas · ${dias.length} días activos`,\n\t);\n\tconsole.log(` entrada ${miles(resumen.entrada).padStart(14)} tok`);\n\tconsole.log(` salida ${miles(resumen.salida).padStart(14)} tok`);\n\tconsole.log(` caché ${miles(resumen.cacheRead).padStart(14)} tok leídos, ${miles(resumen.cacheWrite)} escritos`);\n\tconsole.log(` coste ${dinero(resumen.coste).padStart(14)}`);\n\n\tif (resumen.sesionesTemporales > 0) {\n\t\t// Se dice siempre: esconder sesiones sin avisar es cómo un panel empieza a\n\t\t// mentir sin que nadie se entere.\n\t\tconsole.log(\n\t\t\t` (${miles(resumen.sesionesTemporales)} sesiones de directorios temporales excluidas; --all para incluirlas)`,\n\t\t);\n\t}\n\n\ttabla(\"Por modelo\", porCoste(resumen.porModelo), 10);\n\ttabla(\"Por proyecto\", porCoste(resumen.porProyecto), 10);\n\ttabla(\"Por día (los más caros)\", porCoste(resumen.porDia), 7);\n\tif (!sinQueda) tablaQueda(await consultarQueda(agentDir));\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli usage` — qué se ha consumido de verdad, y cuánto queda.
|
|
3
|
+
*
|
|
4
|
+
* Lo consumido sale de los JSONL de sesión; la agregación vive en
|
|
5
|
+
* `core/usage/aggregate.ts`. Lo que QUEDA no está en la sesión —vive en el
|
|
6
|
+
* proveedor— así que la sección "queda" viene de `core/usage/cuota/`, que le
|
|
7
|
+
* pregunta a cada proveedor con la credencial ya guardada en `auth.json`.
|
|
8
|
+
*/
|
|
9
|
+
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { readStoredCredential } from "../core/auth-storage.js";
|
|
12
|
+
import { porCoste, resumir } from "../core/usage/aggregate.js";
|
|
13
|
+
import { consultarCuota, ErrorConsultaCuota, PROVEEDORES_CON_CUOTA, } from "../core/usage/cuota/index.js";
|
|
14
|
+
function leerSesiones(sessionsDir) {
|
|
15
|
+
let carpetas;
|
|
16
|
+
try {
|
|
17
|
+
carpetas = readdirSync(sessionsDir);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
const sesiones = [];
|
|
23
|
+
for (const carpeta of carpetas) {
|
|
24
|
+
const ruta = join(sessionsDir, carpeta);
|
|
25
|
+
let ficheros;
|
|
26
|
+
try {
|
|
27
|
+
if (!statSync(ruta).isDirectory())
|
|
28
|
+
continue;
|
|
29
|
+
ficheros = readdirSync(ruta).filter((f) => f.endsWith(".jsonl"));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
for (const fichero of ficheros) {
|
|
35
|
+
const lineas = [];
|
|
36
|
+
try {
|
|
37
|
+
for (const linea of readFileSync(join(ruta, fichero), "utf8").split("\n")) {
|
|
38
|
+
if (!linea.trim())
|
|
39
|
+
continue;
|
|
40
|
+
try {
|
|
41
|
+
lineas.push(JSON.parse(linea));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Una línea corrupta no invalida la sesión entera.
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (lineas.length > 0)
|
|
52
|
+
sesiones.push({ lineas });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return sesiones;
|
|
56
|
+
}
|
|
57
|
+
const miles = (n) => n.toLocaleString("es-ES");
|
|
58
|
+
const dinero = (n) => `${n < 0.01 && n > 0 ? n.toFixed(5) : n.toFixed(2)} $`;
|
|
59
|
+
const ETIQUETA_PROVEEDOR_CUOTA = {
|
|
60
|
+
anthropic: "Anthropic (Claude)",
|
|
61
|
+
openrouter: "OpenRouter",
|
|
62
|
+
"openai-codex": "OpenAI Codex",
|
|
63
|
+
"github-copilot": "GitHub Copilot",
|
|
64
|
+
google: "Gemini",
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Le pregunta a cada proveedor con credencial guardada cuánto le queda.
|
|
68
|
+
*
|
|
69
|
+
* Solo se pregunta a los que TIENEN credencial: preguntar por uno sin
|
|
70
|
+
* configurar no distingue "no publica cuota" de "no está en uso", así que ni
|
|
71
|
+
* se intenta ni se enseña.
|
|
72
|
+
*
|
|
73
|
+
* En paralelo: un proveedor que tarda (o agota los 10s) no debe retrasar la
|
|
74
|
+
* respuesta de los demás — con los 5 configurados y todos fallando, en serie
|
|
75
|
+
* serían ~50s solo para `ada-cli usage`.
|
|
76
|
+
*/
|
|
77
|
+
async function consultarQueda(agentDir) {
|
|
78
|
+
const authPath = join(agentDir, "auth.json");
|
|
79
|
+
const conCredencial = PROVEEDORES_CON_CUOTA.map((proveedor) => [proveedor, readStoredCredential(proveedor, authPath)]).filter((par) => par[1] !== undefined);
|
|
80
|
+
return Promise.all(conCredencial.map(async ([proveedor, credencial]) => {
|
|
81
|
+
try {
|
|
82
|
+
const ventanas = await consultarCuota(proveedor, credencial, { señal: AbortSignal.timeout(10_000) });
|
|
83
|
+
return [proveedor, ventanas ? { estado: "ventanas", ventanas } : { estado: "no-publica" }];
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
// `ErrorConsultaCuota` trae un mensaje pensado para enseñarse; un error
|
|
87
|
+
// inesperado también se reporta como fallo, nunca como "no publica".
|
|
88
|
+
const mensaje = error instanceof ErrorConsultaCuota ? error.message : String(error);
|
|
89
|
+
return [proveedor, { estado: "fallo", mensaje }];
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
function formateaSeReinicia(seReinicia) {
|
|
94
|
+
if (seReinicia === null)
|
|
95
|
+
return "";
|
|
96
|
+
const restanteMs = seReinicia - Date.now();
|
|
97
|
+
if (restanteMs <= 0)
|
|
98
|
+
return " (se reinicia ya)";
|
|
99
|
+
const horas = restanteMs / 3_600_000;
|
|
100
|
+
if (horas < 48)
|
|
101
|
+
return ` (se reinicia en ${Math.max(1, Math.round(horas))} h)`;
|
|
102
|
+
return ` (se reinicia en ${Math.round(horas / 24)} d)`;
|
|
103
|
+
}
|
|
104
|
+
function formateaVentana(v) {
|
|
105
|
+
const restante = Math.max(0, v.limite - v.usado);
|
|
106
|
+
const cuando = formateaSeReinicia(v.seReinicia);
|
|
107
|
+
if (v.unidad === "usd")
|
|
108
|
+
return `quedan ${dinero(restante)} de ${dinero(v.limite)}${cuando}`;
|
|
109
|
+
if (v.unidad === "peticiones")
|
|
110
|
+
return `quedan ${miles(restante)} de ${miles(v.limite)}${cuando}`;
|
|
111
|
+
return `${v.usado.toFixed(1)}% usado, quedan ${restante.toFixed(1)}%${cuando}`;
|
|
112
|
+
}
|
|
113
|
+
function tablaQueda(resultados) {
|
|
114
|
+
if (resultados.length === 0)
|
|
115
|
+
return;
|
|
116
|
+
console.log("\nQueda del plan");
|
|
117
|
+
for (const [proveedor, r] of resultados) {
|
|
118
|
+
const etiqueta = ETIQUETA_PROVEEDOR_CUOTA[proveedor] ?? proveedor;
|
|
119
|
+
if (r.estado === "no-publica") {
|
|
120
|
+
console.log(` ${etiqueta}: no publica cuota para esta credencial`);
|
|
121
|
+
}
|
|
122
|
+
else if (r.estado === "fallo") {
|
|
123
|
+
console.log(` ${etiqueta}: no se pudo consultar (${r.mensaje})`);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
for (const v of r.ventanas)
|
|
127
|
+
console.log(` ${etiqueta} · ${v.etiqueta}: ${formateaVentana(v)}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function tabla(titulo, filas, limite) {
|
|
132
|
+
if (filas.length === 0)
|
|
133
|
+
return;
|
|
134
|
+
console.log(`\n${titulo}`);
|
|
135
|
+
const ancho = Math.min(52, Math.max(...filas.slice(0, limite).map(([k]) => k.length)));
|
|
136
|
+
for (const [clave, t] of filas.slice(0, limite)) {
|
|
137
|
+
const nombre = clave.length > ancho ? `…${clave.slice(-(ancho - 1))}` : clave.padEnd(ancho);
|
|
138
|
+
console.log(` ${nombre} ${dinero(t.coste).padStart(10)} ${miles(t.entrada + t.salida).padStart(12)} tok`);
|
|
139
|
+
}
|
|
140
|
+
if (filas.length > limite)
|
|
141
|
+
console.log(` … y ${filas.length - limite} más`);
|
|
142
|
+
}
|
|
143
|
+
export async function runUsageCommand(args, agentDir) {
|
|
144
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
145
|
+
console.log(`Uso:
|
|
146
|
+
ada-cli usage [--days N] [--json] [--all] [--sin-queda]
|
|
147
|
+
|
|
148
|
+
--days N Solo los últimos N días (por defecto, todo)
|
|
149
|
+
--json Salida en JSON, para conectarlo a otra cosa
|
|
150
|
+
--all Incluye las sesiones de directorios temporales (las de los tests)
|
|
151
|
+
--sin-queda No pregunta a los proveedores cuánto queda del plan (más rápido, sin red)
|
|
152
|
+
|
|
153
|
+
Los tokens de caché se cuentan aparte: meterlos en el total haría que un día
|
|
154
|
+
con mucha caché pareciera carísimo cuando es justo lo contrario.
|
|
155
|
+
|
|
156
|
+
Además de lo GASTADO (de los JSONL de sesión), enseña lo que QUEDA del plan
|
|
157
|
+
para cada proveedor con credencial guardada: se lo pregunta al proveedor y
|
|
158
|
+
cachea la respuesta unos minutos. Un proveedor que no publica cuota lo dice
|
|
159
|
+
explícitamente; si la consulta falla, también — nunca se confunde con "sin
|
|
160
|
+
límite".`);
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
const iDias = args.indexOf("--days");
|
|
164
|
+
let desde;
|
|
165
|
+
if (iDias >= 0) {
|
|
166
|
+
const n = Number(args[iDias + 1]);
|
|
167
|
+
if (!Number.isFinite(n) || n <= 0) {
|
|
168
|
+
console.error("--days necesita un número de días positivo.");
|
|
169
|
+
process.exitCode = 1;
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
desde = new Date(Date.now() - n * 86_400_000).toISOString();
|
|
173
|
+
}
|
|
174
|
+
const resumen = resumir(leerSesiones(join(agentDir, "sessions")), {
|
|
175
|
+
desde,
|
|
176
|
+
incluirTemporales: args.includes("--all"),
|
|
177
|
+
});
|
|
178
|
+
const sinQueda = args.includes("--sin-queda");
|
|
179
|
+
if (args.includes("--json")) {
|
|
180
|
+
const queda = sinQueda ? {} : Object.fromEntries(await consultarQueda(agentDir));
|
|
181
|
+
console.log(JSON.stringify({ ...resumen, queda }, null, 2));
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
if (resumen.mensajes === 0) {
|
|
185
|
+
console.log(desde ? "Sin consumo registrado en ese periodo." : "Sin consumo registrado todavía.");
|
|
186
|
+
if (!sinQueda)
|
|
187
|
+
tablaQueda(await consultarQueda(agentDir));
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
const dias = Object.keys(resumen.porDia).sort();
|
|
191
|
+
console.log(`Consumo${desde ? ` (últimos ${args[iDias + 1]} días)` : ""}`);
|
|
192
|
+
console.log(` ${miles(resumen.sesiones)} sesiones · ${miles(resumen.mensajes)} respuestas · ${dias.length} días activos`);
|
|
193
|
+
console.log(` entrada ${miles(resumen.entrada).padStart(14)} tok`);
|
|
194
|
+
console.log(` salida ${miles(resumen.salida).padStart(14)} tok`);
|
|
195
|
+
console.log(` caché ${miles(resumen.cacheRead).padStart(14)} tok leídos, ${miles(resumen.cacheWrite)} escritos`);
|
|
196
|
+
console.log(` coste ${dinero(resumen.coste).padStart(14)}`);
|
|
197
|
+
if (resumen.sesionesTemporales > 0) {
|
|
198
|
+
// Se dice siempre: esconder sesiones sin avisar es cómo un panel empieza a
|
|
199
|
+
// mentir sin que nadie se entere.
|
|
200
|
+
console.log(` (${miles(resumen.sesionesTemporales)} sesiones de directorios temporales excluidas; --all para incluirlas)`);
|
|
201
|
+
}
|
|
202
|
+
tabla("Por modelo", porCoste(resumen.porModelo), 10);
|
|
203
|
+
tabla("Por proyecto", porCoste(resumen.porProyecto), 10);
|
|
204
|
+
tabla("Por día (los más caros)", porCoste(resumen.porDia), 7);
|
|
205
|
+
if (!sinQueda)
|
|
206
|
+
tablaQueda(await consultarQueda(agentDir));
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=usage-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-command.js","sourceRoot":"","sources":["../../src/cli/usage-command.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `ada-cli usage` — qué se ha consumido de verdad, y cuánto queda.\n *\n * Lo consumido sale de los JSONL de sesión; la agregación vive en\n * `core/usage/aggregate.ts`. Lo que QUEDA no está en la sesión —vive en el\n * proveedor— así que la sección \"queda\" viene de `core/usage/cuota/`, que le\n * pregunta a cada proveedor con la credencial ya guardada en `auth.json`.\n */\n\nimport { readdirSync, readFileSync, statSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { readStoredCredential } from \"../core/auth-storage.ts\";\nimport { type LineaSesion, porCoste, resumir, type Totales } from \"../core/usage/aggregate.ts\";\nimport {\n\tconsultarCuota,\n\tErrorConsultaCuota,\n\tPROVEEDORES_CON_CUOTA,\n\ttype VentanaCuota,\n} from \"../core/usage/cuota/index.ts\";\n\nfunction leerSesiones(sessionsDir: string): Array<{ cwd?: string; lineas: LineaSesion[] }> {\n\tlet carpetas: string[];\n\ttry {\n\t\tcarpetas = readdirSync(sessionsDir);\n\t} catch {\n\t\treturn [];\n\t}\n\tconst sesiones: Array<{ cwd?: string; lineas: LineaSesion[] }> = [];\n\tfor (const carpeta of carpetas) {\n\t\tconst ruta = join(sessionsDir, carpeta);\n\t\tlet ficheros: string[];\n\t\ttry {\n\t\t\tif (!statSync(ruta).isDirectory()) continue;\n\t\t\tficheros = readdirSync(ruta).filter((f) => f.endsWith(\".jsonl\"));\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const fichero of ficheros) {\n\t\t\tconst lineas: LineaSesion[] = [];\n\t\t\ttry {\n\t\t\t\tfor (const linea of readFileSync(join(ruta, fichero), \"utf8\").split(\"\\n\")) {\n\t\t\t\t\tif (!linea.trim()) continue;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlineas.push(JSON.parse(linea) as LineaSesion);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Una línea corrupta no invalida la sesión entera.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lineas.length > 0) sesiones.push({ lineas });\n\t\t}\n\t}\n\treturn sesiones;\n}\n\nconst miles = (n: number) => n.toLocaleString(\"es-ES\");\nconst dinero = (n: number) => `${n < 0.01 && n > 0 ? n.toFixed(5) : n.toFixed(2)} $`;\n\nconst ETIQUETA_PROVEEDOR_CUOTA: Record<string, string> = {\n\tanthropic: \"Anthropic (Claude)\",\n\topenrouter: \"OpenRouter\",\n\t\"openai-codex\": \"OpenAI Codex\",\n\t\"github-copilot\": \"GitHub Copilot\",\n\tgoogle: \"Gemini\",\n};\n\ntype ResultadoCuotaProveedor =\n\t| { estado: \"ventanas\"; ventanas: VentanaCuota[] }\n\t| { estado: \"no-publica\" }\n\t| { estado: \"fallo\"; mensaje: string };\n\n/**\n * Le pregunta a cada proveedor con credencial guardada cuánto le queda.\n *\n * Solo se pregunta a los que TIENEN credencial: preguntar por uno sin\n * configurar no distingue \"no publica cuota\" de \"no está en uso\", así que ni\n * se intenta ni se enseña.\n *\n * En paralelo: un proveedor que tarda (o agota los 10s) no debe retrasar la\n * respuesta de los demás — con los 5 configurados y todos fallando, en serie\n * serían ~50s solo para `ada-cli usage`.\n */\nasync function consultarQueda(agentDir: string): Promise<Array<[string, ResultadoCuotaProveedor]>> {\n\tconst authPath = join(agentDir, \"auth.json\");\n\tconst conCredencial = PROVEEDORES_CON_CUOTA.map(\n\t\t(proveedor) => [proveedor, readStoredCredential(proveedor, authPath)] as const,\n\t).filter((par): par is [string, NonNullable<(typeof par)[1]>] => par[1] !== undefined);\n\n\treturn Promise.all(\n\t\tconCredencial.map(async ([proveedor, credencial]): Promise<[string, ResultadoCuotaProveedor]> => {\n\t\t\ttry {\n\t\t\t\tconst ventanas = await consultarCuota(proveedor, credencial, { señal: AbortSignal.timeout(10_000) });\n\t\t\t\treturn [proveedor, ventanas ? { estado: \"ventanas\", ventanas } : { estado: \"no-publica\" }];\n\t\t\t} catch (error) {\n\t\t\t\t// `ErrorConsultaCuota` trae un mensaje pensado para enseñarse; un error\n\t\t\t\t// inesperado también se reporta como fallo, nunca como \"no publica\".\n\t\t\t\tconst mensaje = error instanceof ErrorConsultaCuota ? error.message : String(error);\n\t\t\t\treturn [proveedor, { estado: \"fallo\", mensaje }];\n\t\t\t}\n\t\t}),\n\t);\n}\n\nfunction formateaSeReinicia(seReinicia: number | null): string {\n\tif (seReinicia === null) return \"\";\n\tconst restanteMs = seReinicia - Date.now();\n\tif (restanteMs <= 0) return \" (se reinicia ya)\";\n\tconst horas = restanteMs / 3_600_000;\n\tif (horas < 48) return ` (se reinicia en ${Math.max(1, Math.round(horas))} h)`;\n\treturn ` (se reinicia en ${Math.round(horas / 24)} d)`;\n}\n\nfunction formateaVentana(v: VentanaCuota): string {\n\tconst restante = Math.max(0, v.limite - v.usado);\n\tconst cuando = formateaSeReinicia(v.seReinicia);\n\tif (v.unidad === \"usd\") return `quedan ${dinero(restante)} de ${dinero(v.limite)}${cuando}`;\n\tif (v.unidad === \"peticiones\") return `quedan ${miles(restante)} de ${miles(v.limite)}${cuando}`;\n\treturn `${v.usado.toFixed(1)}% usado, quedan ${restante.toFixed(1)}%${cuando}`;\n}\n\nfunction tablaQueda(resultados: Array<[string, ResultadoCuotaProveedor]>): void {\n\tif (resultados.length === 0) return;\n\tconsole.log(\"\\nQueda del plan\");\n\tfor (const [proveedor, r] of resultados) {\n\t\tconst etiqueta = ETIQUETA_PROVEEDOR_CUOTA[proveedor] ?? proveedor;\n\t\tif (r.estado === \"no-publica\") {\n\t\t\tconsole.log(` ${etiqueta}: no publica cuota para esta credencial`);\n\t\t} else if (r.estado === \"fallo\") {\n\t\t\tconsole.log(` ${etiqueta}: no se pudo consultar (${r.mensaje})`);\n\t\t} else {\n\t\t\tfor (const v of r.ventanas) console.log(` ${etiqueta} · ${v.etiqueta}: ${formateaVentana(v)}`);\n\t\t}\n\t}\n}\n\nfunction tabla(titulo: string, filas: Array<[string, Totales]>, limite: number): void {\n\tif (filas.length === 0) return;\n\tconsole.log(`\\n${titulo}`);\n\tconst ancho = Math.min(52, Math.max(...filas.slice(0, limite).map(([k]) => k.length)));\n\tfor (const [clave, t] of filas.slice(0, limite)) {\n\t\tconst nombre = clave.length > ancho ? `…${clave.slice(-(ancho - 1))}` : clave.padEnd(ancho);\n\t\tconsole.log(` ${nombre} ${dinero(t.coste).padStart(10)} ${miles(t.entrada + t.salida).padStart(12)} tok`);\n\t}\n\tif (filas.length > limite) console.log(` … y ${filas.length - limite} más`);\n}\n\nexport async function runUsageCommand(args: string[], agentDir: string): Promise<boolean> {\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli usage [--days N] [--json] [--all] [--sin-queda]\n\n --days N Solo los últimos N días (por defecto, todo)\n --json Salida en JSON, para conectarlo a otra cosa\n --all Incluye las sesiones de directorios temporales (las de los tests)\n --sin-queda No pregunta a los proveedores cuánto queda del plan (más rápido, sin red)\n\nLos tokens de caché se cuentan aparte: meterlos en el total haría que un día\ncon mucha caché pareciera carísimo cuando es justo lo contrario.\n\nAdemás de lo GASTADO (de los JSONL de sesión), enseña lo que QUEDA del plan\npara cada proveedor con credencial guardada: se lo pregunta al proveedor y\ncachea la respuesta unos minutos. Un proveedor que no publica cuota lo dice\nexplícitamente; si la consulta falla, también — nunca se confunde con \"sin\nlímite\".`);\n\t\treturn true;\n\t}\n\n\tconst iDias = args.indexOf(\"--days\");\n\tlet desde: string | undefined;\n\tif (iDias >= 0) {\n\t\tconst n = Number(args[iDias + 1]);\n\t\tif (!Number.isFinite(n) || n <= 0) {\n\t\t\tconsole.error(\"--days necesita un número de días positivo.\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tdesde = new Date(Date.now() - n * 86_400_000).toISOString();\n\t}\n\n\tconst resumen = resumir(leerSesiones(join(agentDir, \"sessions\")), {\n\t\tdesde,\n\t\tincluirTemporales: args.includes(\"--all\"),\n\t});\n\tconst sinQueda = args.includes(\"--sin-queda\");\n\n\tif (args.includes(\"--json\")) {\n\t\tconst queda = sinQueda ? {} : Object.fromEntries(await consultarQueda(agentDir));\n\t\tconsole.log(JSON.stringify({ ...resumen, queda }, null, 2));\n\t\treturn true;\n\t}\n\n\tif (resumen.mensajes === 0) {\n\t\tconsole.log(desde ? \"Sin consumo registrado en ese periodo.\" : \"Sin consumo registrado todavía.\");\n\t\tif (!sinQueda) tablaQueda(await consultarQueda(agentDir));\n\t\treturn true;\n\t}\n\n\tconst dias = Object.keys(resumen.porDia).sort();\n\tconsole.log(`Consumo${desde ? ` (últimos ${args[iDias + 1]} días)` : \"\"}`);\n\tconsole.log(\n\t\t` ${miles(resumen.sesiones)} sesiones · ${miles(resumen.mensajes)} respuestas · ${dias.length} días activos`,\n\t);\n\tconsole.log(` entrada ${miles(resumen.entrada).padStart(14)} tok`);\n\tconsole.log(` salida ${miles(resumen.salida).padStart(14)} tok`);\n\tconsole.log(` caché ${miles(resumen.cacheRead).padStart(14)} tok leídos, ${miles(resumen.cacheWrite)} escritos`);\n\tconsole.log(` coste ${dinero(resumen.coste).padStart(14)}`);\n\n\tif (resumen.sesionesTemporales > 0) {\n\t\t// Se dice siempre: esconder sesiones sin avisar es cómo un panel empieza a\n\t\t// mentir sin que nadie se entere.\n\t\tconsole.log(\n\t\t\t` (${miles(resumen.sesionesTemporales)} sesiones de directorios temporales excluidas; --all para incluirlas)`,\n\t\t);\n\t}\n\n\ttabla(\"Por modelo\", porCoste(resumen.porModelo), 10);\n\ttabla(\"Por proyecto\", porCoste(resumen.porProyecto), 10);\n\ttabla(\"Por día (los más caros)\", porCoste(resumen.porDia), 7);\n\tif (!sinQueda) tablaQueda(await consultarQueda(agentDir));\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli wiki` — la wiki del repositorio, con citas que caducan.
|
|
3
|
+
*
|
|
4
|
+
* La lógica está en `core/wiki/`; aquí solo se traduce a texto y se decide el
|
|
5
|
+
* código de salida. `check` sale con 1 si hay afirmaciones obsoletas, para que
|
|
6
|
+
* pueda ser una puerta de CI: una wiki que miente es peor que no tenerla.
|
|
7
|
+
*/
|
|
8
|
+
export declare function runWikiCommand(args: string[]): Promise<boolean>;
|
|
9
|
+
//# sourceMappingURL=wiki-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-command.d.ts","sourceRoot":"","sources":["../../src/cli/wiki-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqErE","sourcesContent":["/**\n * `ada-cli wiki` — la wiki del repositorio, con citas que caducan.\n *\n * La lógica está en `core/wiki/`; aquí solo se traduce a texto y se decide el\n * código de salida. `check` sale con 1 si hay afirmaciones obsoletas, para que\n * pueda ser una puerta de CI: una wiki que miente es peor que no tenerla.\n */\n\nimport { CONFIG_DIR_NAME } from \"../config.ts\";\nimport { escribirWiki, indexarPaginas, lectorDelProyecto, leerWiki, rutaWiki } from \"../core/wiki/almacen.ts\";\nimport { formatearCita, reubicarCitas, verificarWiki } from \"../core/wiki/citas.ts\";\n\nexport async function runWikiCommand(args: string[]): Promise<boolean> {\n\tconst sub = args[1];\n\tif (!sub || args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli wiki index Lee las páginas de ${CONFIG_DIR_NAME}/wiki/*.md y fija la huella de cada cita\n ada-cli wiki check Comprueba qué afirmaciones siguen siendo ciertas (sale 1 si alguna no)\n ada-cli wiki relocate Actualiza las citas que solo se movieron de línea\n\nUna afirmación sin cita no cuenta como verificada: es una opinión, y se cuenta\naparte. Las obsoletas NO se arreglan solas — hay que leer el código nuevo y\ndecidir si la frase sigue siendo cierta.`);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tif (sub === \"index\") {\n\t\tconst wiki = indexarPaginas(cwd, CONFIG_DIR_NAME);\n\t\tif (wiki.afirmaciones.length === 0) {\n\t\t\tconsole.log(`No hay páginas en ${rutaWiki(cwd, CONFIG_DIR_NAME)}. Crea un .md ahí y vuelve a indexar.`);\n\t\t\treturn true;\n\t\t}\n\t\tescribirWiki(cwd, CONFIG_DIR_NAME, wiki);\n\t\tconst conCita = wiki.afirmaciones.filter((a) => a.citas.length > 0).length;\n\t\tconsole.log(`Indexadas ${wiki.afirmaciones.length} afirmaciones, ${conCita} con cita.`);\n\t\treturn true;\n\t}\n\n\tif (sub === \"check\" || sub === \"relocate\") {\n\t\tconst wiki = leerWiki(cwd, CONFIG_DIR_NAME);\n\t\tif (wiki.afirmaciones.length === 0) {\n\t\t\tconsole.log(\"La wiki está vacía. Usa 'ada-cli wiki index' primero.\");\n\t\t\treturn true;\n\t\t}\n\t\tconst resumen = verificarWiki(wiki.afirmaciones, lectorDelProyecto(cwd));\n\n\t\tif (sub === \"relocate\") {\n\t\t\tescribirWiki(cwd, CONFIG_DIR_NAME, { version: 1, afirmaciones: reubicarCitas(resumen) });\n\t\t\tconsole.log(`Reubicadas ${resumen.movidas} afirmación(es) cuyo código solo cambió de línea.`);\n\t\t\tif (resumen.obsoletas > 0) {\n\t\t\t\tconsole.log(`Quedan ${resumen.obsoletas} obsoletas: esas hay que releerlas y reescribirlas a mano.`);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tconsole.log(`${resumen.total} afirmaciones`);\n\t\tconsole.log(` vigentes: ${resumen.vigentes}`);\n\t\tconsole.log(` movidas: ${resumen.movidas} (usa 'wiki relocate')`);\n\t\tconsole.log(` obsoletas: ${resumen.obsoletas}`);\n\t\tconsole.log(` sin cita: ${resumen.sinCitas} (no verificadas: son opiniones)`);\n\n\t\tconst rotas = resumen.detalles.filter((d) => d.obsoleta);\n\t\tif (rotas.length > 0) {\n\t\t\tconsole.log(\"\\nObsoletas:\");\n\t\t\tfor (const d of rotas.slice(0, 30)) {\n\t\t\t\tconsole.log(`\\n ${d.afirmacion.id}: ${d.afirmacion.texto.split(\"\\n\")[0].slice(0, 90)}`);\n\t\t\t\tfor (const c of d.citas) {\n\t\t\t\t\tif (c.estado === \"obsoleta\") console.log(` ✗ ${formatearCita(c.cita)} — ${c.motivo}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (rotas.length > 30) console.log(`\\n … y ${rotas.length - 30} más`);\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli wiki --help'.`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli wiki` — la wiki del repositorio, con citas que caducan.
|
|
3
|
+
*
|
|
4
|
+
* La lógica está en `core/wiki/`; aquí solo se traduce a texto y se decide el
|
|
5
|
+
* código de salida. `check` sale con 1 si hay afirmaciones obsoletas, para que
|
|
6
|
+
* pueda ser una puerta de CI: una wiki que miente es peor que no tenerla.
|
|
7
|
+
*/
|
|
8
|
+
import { CONFIG_DIR_NAME } from "../config.js";
|
|
9
|
+
import { escribirWiki, indexarPaginas, lectorDelProyecto, leerWiki, rutaWiki } from "../core/wiki/almacen.js";
|
|
10
|
+
import { formatearCita, reubicarCitas, verificarWiki } from "../core/wiki/citas.js";
|
|
11
|
+
export async function runWikiCommand(args) {
|
|
12
|
+
const sub = args[1];
|
|
13
|
+
if (!sub || args.includes("--help") || args.includes("-h")) {
|
|
14
|
+
console.log(`Uso:
|
|
15
|
+
ada-cli wiki index Lee las páginas de ${CONFIG_DIR_NAME}/wiki/*.md y fija la huella de cada cita
|
|
16
|
+
ada-cli wiki check Comprueba qué afirmaciones siguen siendo ciertas (sale 1 si alguna no)
|
|
17
|
+
ada-cli wiki relocate Actualiza las citas que solo se movieron de línea
|
|
18
|
+
|
|
19
|
+
Una afirmación sin cita no cuenta como verificada: es una opinión, y se cuenta
|
|
20
|
+
aparte. Las obsoletas NO se arreglan solas — hay que leer el código nuevo y
|
|
21
|
+
decidir si la frase sigue siendo cierta.`);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const cwd = process.cwd();
|
|
25
|
+
if (sub === "index") {
|
|
26
|
+
const wiki = indexarPaginas(cwd, CONFIG_DIR_NAME);
|
|
27
|
+
if (wiki.afirmaciones.length === 0) {
|
|
28
|
+
console.log(`No hay páginas en ${rutaWiki(cwd, CONFIG_DIR_NAME)}. Crea un .md ahí y vuelve a indexar.`);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
escribirWiki(cwd, CONFIG_DIR_NAME, wiki);
|
|
32
|
+
const conCita = wiki.afirmaciones.filter((a) => a.citas.length > 0).length;
|
|
33
|
+
console.log(`Indexadas ${wiki.afirmaciones.length} afirmaciones, ${conCita} con cita.`);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
if (sub === "check" || sub === "relocate") {
|
|
37
|
+
const wiki = leerWiki(cwd, CONFIG_DIR_NAME);
|
|
38
|
+
if (wiki.afirmaciones.length === 0) {
|
|
39
|
+
console.log("La wiki está vacía. Usa 'ada-cli wiki index' primero.");
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
const resumen = verificarWiki(wiki.afirmaciones, lectorDelProyecto(cwd));
|
|
43
|
+
if (sub === "relocate") {
|
|
44
|
+
escribirWiki(cwd, CONFIG_DIR_NAME, { version: 1, afirmaciones: reubicarCitas(resumen) });
|
|
45
|
+
console.log(`Reubicadas ${resumen.movidas} afirmación(es) cuyo código solo cambió de línea.`);
|
|
46
|
+
if (resumen.obsoletas > 0) {
|
|
47
|
+
console.log(`Quedan ${resumen.obsoletas} obsoletas: esas hay que releerlas y reescribirlas a mano.`);
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
console.log(`${resumen.total} afirmaciones`);
|
|
52
|
+
console.log(` vigentes: ${resumen.vigentes}`);
|
|
53
|
+
console.log(` movidas: ${resumen.movidas} (usa 'wiki relocate')`);
|
|
54
|
+
console.log(` obsoletas: ${resumen.obsoletas}`);
|
|
55
|
+
console.log(` sin cita: ${resumen.sinCitas} (no verificadas: son opiniones)`);
|
|
56
|
+
const rotas = resumen.detalles.filter((d) => d.obsoleta);
|
|
57
|
+
if (rotas.length > 0) {
|
|
58
|
+
console.log("\nObsoletas:");
|
|
59
|
+
for (const d of rotas.slice(0, 30)) {
|
|
60
|
+
console.log(`\n ${d.afirmacion.id}: ${d.afirmacion.texto.split("\n")[0].slice(0, 90)}`);
|
|
61
|
+
for (const c of d.citas) {
|
|
62
|
+
if (c.estado === "obsoleta")
|
|
63
|
+
console.log(` ✗ ${formatearCita(c.cita)} — ${c.motivo}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (rotas.length > 30)
|
|
67
|
+
console.log(`\n … y ${rotas.length - 30} más`);
|
|
68
|
+
process.exitCode = 1;
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
console.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli wiki --help'.`);
|
|
73
|
+
process.exitCode = 1;
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=wiki-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wiki-command.js","sourceRoot":"","sources":["../../src/cli/wiki-command.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `ada-cli wiki` — la wiki del repositorio, con citas que caducan.\n *\n * La lógica está en `core/wiki/`; aquí solo se traduce a texto y se decide el\n * código de salida. `check` sale con 1 si hay afirmaciones obsoletas, para que\n * pueda ser una puerta de CI: una wiki que miente es peor que no tenerla.\n */\n\nimport { CONFIG_DIR_NAME } from \"../config.ts\";\nimport { escribirWiki, indexarPaginas, lectorDelProyecto, leerWiki, rutaWiki } from \"../core/wiki/almacen.ts\";\nimport { formatearCita, reubicarCitas, verificarWiki } from \"../core/wiki/citas.ts\";\n\nexport async function runWikiCommand(args: string[]): Promise<boolean> {\n\tconst sub = args[1];\n\tif (!sub || args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(`Uso:\n ada-cli wiki index Lee las páginas de ${CONFIG_DIR_NAME}/wiki/*.md y fija la huella de cada cita\n ada-cli wiki check Comprueba qué afirmaciones siguen siendo ciertas (sale 1 si alguna no)\n ada-cli wiki relocate Actualiza las citas que solo se movieron de línea\n\nUna afirmación sin cita no cuenta como verificada: es una opinión, y se cuenta\naparte. Las obsoletas NO se arreglan solas — hay que leer el código nuevo y\ndecidir si la frase sigue siendo cierta.`);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tif (sub === \"index\") {\n\t\tconst wiki = indexarPaginas(cwd, CONFIG_DIR_NAME);\n\t\tif (wiki.afirmaciones.length === 0) {\n\t\t\tconsole.log(`No hay páginas en ${rutaWiki(cwd, CONFIG_DIR_NAME)}. Crea un .md ahí y vuelve a indexar.`);\n\t\t\treturn true;\n\t\t}\n\t\tescribirWiki(cwd, CONFIG_DIR_NAME, wiki);\n\t\tconst conCita = wiki.afirmaciones.filter((a) => a.citas.length > 0).length;\n\t\tconsole.log(`Indexadas ${wiki.afirmaciones.length} afirmaciones, ${conCita} con cita.`);\n\t\treturn true;\n\t}\n\n\tif (sub === \"check\" || sub === \"relocate\") {\n\t\tconst wiki = leerWiki(cwd, CONFIG_DIR_NAME);\n\t\tif (wiki.afirmaciones.length === 0) {\n\t\t\tconsole.log(\"La wiki está vacía. Usa 'ada-cli wiki index' primero.\");\n\t\t\treturn true;\n\t\t}\n\t\tconst resumen = verificarWiki(wiki.afirmaciones, lectorDelProyecto(cwd));\n\n\t\tif (sub === \"relocate\") {\n\t\t\tescribirWiki(cwd, CONFIG_DIR_NAME, { version: 1, afirmaciones: reubicarCitas(resumen) });\n\t\t\tconsole.log(`Reubicadas ${resumen.movidas} afirmación(es) cuyo código solo cambió de línea.`);\n\t\t\tif (resumen.obsoletas > 0) {\n\t\t\t\tconsole.log(`Quedan ${resumen.obsoletas} obsoletas: esas hay que releerlas y reescribirlas a mano.`);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tconsole.log(`${resumen.total} afirmaciones`);\n\t\tconsole.log(` vigentes: ${resumen.vigentes}`);\n\t\tconsole.log(` movidas: ${resumen.movidas} (usa 'wiki relocate')`);\n\t\tconsole.log(` obsoletas: ${resumen.obsoletas}`);\n\t\tconsole.log(` sin cita: ${resumen.sinCitas} (no verificadas: son opiniones)`);\n\n\t\tconst rotas = resumen.detalles.filter((d) => d.obsoleta);\n\t\tif (rotas.length > 0) {\n\t\t\tconsole.log(\"\\nObsoletas:\");\n\t\t\tfor (const d of rotas.slice(0, 30)) {\n\t\t\t\tconsole.log(`\\n ${d.afirmacion.id}: ${d.afirmacion.texto.split(\"\\n\")[0].slice(0, 90)}`);\n\t\t\t\tfor (const c of d.citas) {\n\t\t\t\t\tif (c.estado === \"obsoleta\") console.log(` ✗ ${formatearCita(c.cita)} — ${c.motivo}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (rotas.length > 30) console.log(`\\n … y ${rotas.length - 30} más`);\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: ${sub}. Usa 'ada-cli wiki --help'.`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\n// Ada: arranque perezoso. `import { main } from \"./main.ts\"` cargaba 1927\n// módulos —660 de typebox, 171 de packages/ai, el motor de control del\n// ordenador— ANTES de mirar el primer argumento: 1,65 s para imprimir una\n// versión. Ahora son 30 y 0,21 s. El preámbulo (título, variables de entorno,\n// dispatcher de undici) y el reparto viven en core/arranque/atajos.ts, que es\n// nuestro; aquí queda un único enganche contra upstream, y la puerta que\n// impide que vuelva a crecer es scripts/check-arranque.mjs.\nconst { arrancar } = await import(\"./core/arranque/atajos.ts\");\nawait arrancar(process.argv.slice(2));\n"]}
|
package/dist/cli.js
CHANGED
|
@@ -5,15 +5,14 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Test with: npx tsx src/cli-new.ts [args...]
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
main(process.argv.slice(2));
|
|
8
|
+
// Ada: arranque perezoso. `import { main } from "./main.ts"` cargaba 1927
|
|
9
|
+
// módulos —660 de typebox, 171 de packages/ai, el motor de control del
|
|
10
|
+
// ordenador— ANTES de mirar el primer argumento: 1,65 s para imprimir una
|
|
11
|
+
// versión. Ahora son 30 y 0,21 s. El preámbulo (título, variables de entorno,
|
|
12
|
+
// dispatcher de undici) y el reparto viven en core/arranque/atajos.ts, que es
|
|
13
|
+
// nuestro; aquí queda un único enganche contra upstream, y la puerta que
|
|
14
|
+
// impide que vuelva a crecer es scripts/check-arranque.mjs.
|
|
15
|
+
const { arrancar } = await import("./core/arranque/atajos.js");
|
|
16
|
+
await arrancar(process.argv.slice(2));
|
|
17
|
+
export {};
|
|
19
18
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AACH,0EAA0E;AAC1E,0EAAuE;AACvE,4EAA0E;AAC1E,iFAA8E;AAC9E,8EAA8E;AAC9E,2EAAyE;AACzE,4DAA4D;AAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC/D,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n/**\n * CLI entry point for the refactored coding agent.\n * Uses main.ts with AgentSession and new mode modules.\n *\n * Test with: npx tsx src/cli-new.ts [args...]\n */\n// Ada: arranque perezoso. `import { main } from \"./main.ts\"` cargaba 1927\n// módulos —660 de typebox, 171 de packages/ai, el motor de control del\n// ordenador— ANTES de mirar el primer argumento: 1,65 s para imprimir una\n// versión. Ahora son 30 y 0,21 s. El preámbulo (título, variables de entorno,\n// dispatcher de undici) y el reparto viven en core/arranque/atajos.ts, que es\n// nuestro; aquí queda un único enganche contra upstream, y la puerta que\n// impide que vuelva a crecer es scripts/check-arranque.mjs.\nconst { arrancar } = await import(\"./core/arranque/atajos.ts\");\nawait arrancar(process.argv.slice(2));\n"]}
|
package/dist/config.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ export declare const VERSION: string;
|
|
|
70
70
|
export declare const ENV_AGENT_DIR: string;
|
|
71
71
|
export declare const ENV_SESSION_DIR: string;
|
|
72
72
|
export declare function expandTildePath(path: string): string;
|
|
73
|
-
/** Get the share viewer URL for a gist ID */
|
|
73
|
+
/** Get the share viewer URL for a gist ID. */
|
|
74
74
|
export declare function getShareViewerUrl(gistId: string): string;
|
|
75
75
|
/** Get the agent config directory (e.g., ~/.pi/agent/) */
|
|
76
76
|
export declare function getAgentDir(): string;
|