@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,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli discover` — qué han dejado otras herramientas en este proyecto:
|
|
3
|
+
* servidores MCP, skills y comandos de barra.
|
|
4
|
+
*
|
|
5
|
+
* Lee, no activa nada por sorpresa. Un servidor MCP `stdio` se LISTA, nunca
|
|
6
|
+
* se lanza (ver el motivo en cada entrada). Una skill descubierta en
|
|
7
|
+
* `.claude/skills` o `.github/skills` SÍ queda disponible en la sesión: se
|
|
8
|
+
* enlaza dentro de `.ada/skills`, que `core/skills.ts` ya recorre en cada
|
|
9
|
+
* sesión sin que se le haya tocado una línea (ver `descubrimiento/skills.ts`
|
|
10
|
+
* para el motivo de por qué es un symlink y no un `additionalSkillPaths` en
|
|
11
|
+
* `agent-session-services.ts`: el presupuesto de sincronización estaba a
|
|
12
|
+
* 115/115). Los comandos de barra, por ahora, solo se listan.
|
|
13
|
+
*
|
|
14
|
+
* Un proyecto vacío no dice "nada": dice DÓNDE ha mirado, para cada una de
|
|
15
|
+
* las tres cosas.
|
|
16
|
+
*/
|
|
17
|
+
import { descubrirComandos } from "../core/descubrimiento/comandos.js";
|
|
18
|
+
import { descubrirServidoresMcp } from "../core/descubrimiento/mcp.js";
|
|
19
|
+
import { descubrirSkills, instalarSkillsDescubiertas } from "../core/descubrimiento/skills.js";
|
|
20
|
+
const AYUDA = `Uso:
|
|
21
|
+
ada-cli discover Lista lo que hay: servidores MCP, skills y
|
|
22
|
+
comandos de otras herramientas en este proyecto
|
|
23
|
+
ada-cli discover --instalar Además, enlaza las skills descubiertas en
|
|
24
|
+
.ada/skills para que la próxima sesión las cargue
|
|
25
|
+
|
|
26
|
+
NO ACTIVA NADA POR SU CUENTA. Un servidor MCP stdio se marca "no soportado"
|
|
27
|
+
(el cliente MCP de Ada solo habla HTTP a propósito) y nunca se lanza; los
|
|
28
|
+
comandos de barra ajenos solo se listan; y las skills solo se enlazan si lo
|
|
29
|
+
pides con --instalar.
|
|
30
|
+
|
|
31
|
+
Enlazar escribe symlinks DENTRO de tu proyecto (.ada/skills), que es donde
|
|
32
|
+
viven las skills de proyecto — y por eso no se hace sin pedirlo: un comando
|
|
33
|
+
que se llama "descubrir" no debería dejar ficheros que acaben en un commit.`;
|
|
34
|
+
export async function runDiscoverCommand(args) {
|
|
35
|
+
if (args[0] !== "discover")
|
|
36
|
+
return false;
|
|
37
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
38
|
+
console.log(AYUDA);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
const cwd = process.cwd();
|
|
42
|
+
console.log("Servidores MCP:");
|
|
43
|
+
const mcp = descubrirServidoresMcp(cwd);
|
|
44
|
+
if (mcp.servidores.length === 0) {
|
|
45
|
+
console.log(` (ninguno encontrado) — mirado en:`);
|
|
46
|
+
for (const ruta of mcp.ficherosMirados)
|
|
47
|
+
console.log(` ${ruta}`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
for (const servidor of mcp.servidores) {
|
|
51
|
+
const estado = servidor.soportado ? "activo" : `no soportado — ${servidor.motivo}`;
|
|
52
|
+
const destino = servidor.url ?? servidor.comando ?? "";
|
|
53
|
+
console.log(` [${servidor.origen}] ${servidor.nombre} (${servidor.transporte}) ${estado}`);
|
|
54
|
+
console.log(` ${destino} — ${servidor.ruta}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (const error of mcp.errores)
|
|
58
|
+
console.log(` ! ${error.ruta}: ${error.motivo}`);
|
|
59
|
+
console.log("\nSkills:");
|
|
60
|
+
const skills = descubrirSkills(cwd);
|
|
61
|
+
if (skills.skills.length === 0) {
|
|
62
|
+
console.log(` (ninguna encontrada) — mirado en:`);
|
|
63
|
+
for (const dir of skills.directoriosMirados)
|
|
64
|
+
console.log(` ${dir}`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Enlazar ANTES de listar: si falla el enlace de una, se sigue listando
|
|
68
|
+
// igual — "listada pero no disponible" es mejor que tragarse el error.
|
|
69
|
+
// Solo con `--instalar`. Listar no escribe: ver la nota de la ayuda.
|
|
70
|
+
const instalar = args.includes("--instalar") || args.includes("--install");
|
|
71
|
+
const instaladas = instalar
|
|
72
|
+
? new Map(instalarSkillsDescubiertas(cwd).map((s) => [`${s.origen}:${s.nombre}`, s.enlace]))
|
|
73
|
+
: new Map();
|
|
74
|
+
for (const skill of skills.skills) {
|
|
75
|
+
const enlace = instaladas.get(`${skill.origen}:${skill.nombre}`);
|
|
76
|
+
// Tres estados, no dos: enlazada · no se ha pedido enlazar · se pidió y
|
|
77
|
+
// falló. Juntar los dos últimos haría que un fallo de enlace se leyera
|
|
78
|
+
// como "no lo pediste".
|
|
79
|
+
const disponibilidad = enlace
|
|
80
|
+
? `disponible en la sesión vía ${enlace}`
|
|
81
|
+
: instalar
|
|
82
|
+
? "NO se pudo enlazar en .ada/skills"
|
|
83
|
+
: "no enlazada (usa --instalar)";
|
|
84
|
+
console.log(` [${skill.origen}] ${skill.nombre} — ${skill.descripcion}`);
|
|
85
|
+
console.log(` ${skill.ruta} (${disponibilidad})`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const error of skills.errores)
|
|
89
|
+
console.log(` ! ${error.ruta}: ${error.motivo}`);
|
|
90
|
+
console.log("\nComandos de barra:");
|
|
91
|
+
const comandos = descubrirComandos(cwd);
|
|
92
|
+
if (comandos.comandos.length === 0) {
|
|
93
|
+
console.log(` (ninguno encontrado) — mirado en:`);
|
|
94
|
+
for (const dir of comandos.directoriosMirados)
|
|
95
|
+
console.log(` ${dir}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
for (const comando of comandos.comandos) {
|
|
99
|
+
const descripcion = comando.descripcion ? ` — ${comando.descripcion}` : "";
|
|
100
|
+
console.log(` [${comando.origen}] /${comando.nombre}${descripcion}`);
|
|
101
|
+
console.log(` ${comando.ruta}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
for (const error of comandos.errores)
|
|
105
|
+
console.log(` ! ${error.ruta}: ${error.motivo}`);
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=discover-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover-command.js","sourceRoot":"","sources":["../../src/cli/discover-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE/F,MAAM,KAAK,GAAG;;;;;;;;;;;;;6EAa8D,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc,EAAoB;IAC1E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAEzC,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,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,uCAAqC,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,eAAe;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACP,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAkB,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,MAAM,MAAM,EAAE,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,UAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,uCAAqC,CAAC,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,kBAAkB;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACP,wEAAwE;QACxE,yEAAuE;QACvE,qEAAqE;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,QAAQ;YAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,2EAAwE;YACxE,0EAAuE;YACvE,wBAAwB;YACxB,MAAM,cAAc,GAAG,MAAM;gBAC5B,CAAC,CAAC,iCAA+B,MAAM,EAAE;gBACzC,CAAC,CAAC,QAAQ;oBACT,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,8BAA8B,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,UAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,MAAM,cAAc,GAAG,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,uCAAqC,CAAC,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,kBAAkB;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACP,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAExF,OAAO,IAAI,CAAC;AAAA,CACZ","sourcesContent":["/**\n * `ada-cli discover` — qué han dejado otras herramientas en este proyecto:\n * servidores MCP, skills y comandos de barra.\n *\n * Lee, no activa nada por sorpresa. Un servidor MCP `stdio` se LISTA, nunca\n * se lanza (ver el motivo en cada entrada). Una skill descubierta en\n * `.claude/skills` o `.github/skills` SÍ queda disponible en la sesión: se\n * enlaza dentro de `.ada/skills`, que `core/skills.ts` ya recorre en cada\n * sesión sin que se le haya tocado una línea (ver `descubrimiento/skills.ts`\n * para el motivo de por qué es un symlink y no un `additionalSkillPaths` en\n * `agent-session-services.ts`: el presupuesto de sincronización estaba a\n * 115/115). Los comandos de barra, por ahora, solo se listan.\n *\n * Un proyecto vacío no dice \"nada\": dice DÓNDE ha mirado, para cada una de\n * las tres cosas.\n */\n\nimport { descubrirComandos } from \"../core/descubrimiento/comandos.ts\";\nimport { descubrirServidoresMcp } from \"../core/descubrimiento/mcp.ts\";\nimport { descubrirSkills, instalarSkillsDescubiertas } from \"../core/descubrimiento/skills.ts\";\n\nconst AYUDA = `Uso:\n ada-cli discover Lista lo que hay: servidores MCP, skills y\n comandos de otras herramientas en este proyecto\n ada-cli discover --instalar Además, enlaza las skills descubiertas en\n .ada/skills para que la próxima sesión las cargue\n\nNO ACTIVA NADA POR SU CUENTA. Un servidor MCP stdio se marca \"no soportado\"\n(el cliente MCP de Ada solo habla HTTP a propósito) y nunca se lanza; los\ncomandos de barra ajenos solo se listan; y las skills solo se enlazan si lo\npides con --instalar.\n\nEnlazar escribe symlinks DENTRO de tu proyecto (.ada/skills), que es donde\nviven las skills de proyecto — y por eso no se hace sin pedirlo: un comando\nque se llama \"descubrir\" no debería dejar ficheros que acaben en un commit.`;\n\nexport async function runDiscoverCommand(args: string[]): Promise<boolean> {\n\tif (args[0] !== \"discover\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst cwd = process.cwd();\n\n\tconsole.log(\"Servidores MCP:\");\n\tconst mcp = descubrirServidoresMcp(cwd);\n\tif (mcp.servidores.length === 0) {\n\t\tconsole.log(` (ninguno encontrado) — mirado en:`);\n\t\tfor (const ruta of mcp.ficherosMirados) console.log(` ${ruta}`);\n\t} else {\n\t\tfor (const servidor of mcp.servidores) {\n\t\t\tconst estado = servidor.soportado ? \"activo\" : `no soportado — ${servidor.motivo}`;\n\t\t\tconst destino = servidor.url ?? servidor.comando ?? \"\";\n\t\t\tconsole.log(` [${servidor.origen}] ${servidor.nombre} (${servidor.transporte}) ${estado}`);\n\t\t\tconsole.log(` ${destino} — ${servidor.ruta}`);\n\t\t}\n\t}\n\tfor (const error of mcp.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\tconsole.log(\"\\nSkills:\");\n\tconst skills = descubrirSkills(cwd);\n\tif (skills.skills.length === 0) {\n\t\tconsole.log(` (ninguna encontrada) — mirado en:`);\n\t\tfor (const dir of skills.directoriosMirados) console.log(` ${dir}`);\n\t} else {\n\t\t// Enlazar ANTES de listar: si falla el enlace de una, se sigue listando\n\t\t// igual — \"listada pero no disponible\" es mejor que tragarse el error.\n\t\t// Solo con `--instalar`. Listar no escribe: ver la nota de la ayuda.\n\t\tconst instalar = args.includes(\"--instalar\") || args.includes(\"--install\");\n\t\tconst instaladas = instalar\n\t\t\t? new Map(instalarSkillsDescubiertas(cwd).map((s) => [`${s.origen}:${s.nombre}`, s.enlace]))\n\t\t\t: new Map<string, string>();\n\t\tfor (const skill of skills.skills) {\n\t\t\tconst enlace = instaladas.get(`${skill.origen}:${skill.nombre}`);\n\t\t\t// Tres estados, no dos: enlazada · no se ha pedido enlazar · se pidió y\n\t\t\t// falló. Juntar los dos últimos haría que un fallo de enlace se leyera\n\t\t\t// como \"no lo pediste\".\n\t\t\tconst disponibilidad = enlace\n\t\t\t\t? `disponible en la sesión vía ${enlace}`\n\t\t\t\t: instalar\n\t\t\t\t\t? \"NO se pudo enlazar en .ada/skills\"\n\t\t\t\t\t: \"no enlazada (usa --instalar)\";\n\t\t\tconsole.log(` [${skill.origen}] ${skill.nombre} — ${skill.descripcion}`);\n\t\t\tconsole.log(` ${skill.ruta} (${disponibilidad})`);\n\t\t}\n\t}\n\tfor (const error of skills.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\tconsole.log(\"\\nComandos de barra:\");\n\tconst comandos = descubrirComandos(cwd);\n\tif (comandos.comandos.length === 0) {\n\t\tconsole.log(` (ninguno encontrado) — mirado en:`);\n\t\tfor (const dir of comandos.directoriosMirados) console.log(` ${dir}`);\n\t} else {\n\t\tfor (const comando of comandos.comandos) {\n\t\t\tconst descripcion = comando.descripcion ? ` — ${comando.descripcion}` : \"\";\n\t\t\tconsole.log(` [${comando.origen}] /${comando.nombre}${descripcion}`);\n\t\t\tconsole.log(` ${comando.ruta}`);\n\t\t}\n\t}\n\tfor (const error of comandos.errores) console.log(` ! ${error.ruta}: ${error.motivo}`);\n\n\treturn true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/cli/file-processor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/cli/file-processor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAClC,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,sEAAsE;AACtE,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+DpH","sourcesContent":["/**\n * Process @file CLI arguments into text content and image attachments\n */\n\nimport { access, readFile, stat } from \"node:fs/promises\";\nimport type { ImageContent } from \"@earendil-works/pi-ai\";\nimport chalk from \"chalk\";\nimport { resolve } from \"path\";\nimport { resolveReadPath } from \"../core/tools/path-utils.ts\";\nimport { processImage } from \"../utils/image-process.ts\";\nimport { detectSupportedImageMimeTypeFromFile } from \"../utils/mime.ts\";\nimport { stripBom } from \"../utils/text.ts\";\n\nexport interface ProcessedFiles {\n\ttext: string;\n\timages: ImageContent[];\n}\n\nexport interface ProcessFileOptions {\n\t/** Whether to auto-resize images to 2000x2000 max. Default: true */\n\tautoResizeImages?: boolean;\n}\n\n/** Process @file arguments into text content and image attachments */\nexport async function processFileArguments(fileArgs: string[], options?: ProcessFileOptions): Promise<ProcessedFiles> {\n\tconst autoResizeImages = options?.autoResizeImages ?? true;\n\tlet text = \"\";\n\tconst images: ImageContent[] = [];\n\n\tfor (const fileArg of fileArgs) {\n\t\t// Expand and resolve path (handles ~ expansion and macOS screenshot Unicode spaces)\n\t\tconst absolutePath = resolve(resolveReadPath(fileArg, process.cwd()));\n\n\t\t// Check if file exists\n\t\ttry {\n\t\t\tawait access(absolutePath);\n\t\t} catch {\n\t\t\tconsole.error(chalk.red(`Error: File not found: ${absolutePath}`));\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\t// Check if file is empty\n\t\tconst stats = await stat(absolutePath);\n\t\tif (stats.size === 0) {\n\t\t\t// Skip empty files\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst mimeType = await detectSupportedImageMimeTypeFromFile(absolutePath);\n\n\t\tif (mimeType) {\n\t\t\t// Handle image file\n\t\t\tconst content = await readFile(absolutePath);\n\t\t\tconst processed = await processImage(content, mimeType, { autoResizeImages });\n\n\t\t\tif (!processed.ok) {\n\t\t\t\ttext += `<file name=\"${absolutePath}\">${processed.message}</file>\\n`;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst attachment: ImageContent = {\n\t\t\t\ttype: \"image\",\n\t\t\t\tmimeType: processed.mimeType,\n\t\t\t\tdata: processed.data,\n\t\t\t};\n\t\t\timages.push(attachment);\n\n\t\t\t// Add text reference to image with optional processing hints\n\t\t\tif (processed.hints.length > 0) {\n\t\t\t\ttext += `<file name=\"${absolutePath}\">${processed.hints.join(\"\\n\")}</file>\\n`;\n\t\t\t} else {\n\t\t\t\ttext += `<file name=\"${absolutePath}\"></file>\\n`;\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle text file\n\t\t\ttry {\n\t\t\t\tconst content = stripBom(await readFile(absolutePath, \"utf-8\"));\n\t\t\t\ttext += `<file name=\"${absolutePath}\">\\n${content}\\n</file>\\n`;\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tconsole.error(chalk.red(`Error: Could not read file ${absolutePath}: ${message}`));\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { text, images };\n}\n"]}
|
|
@@ -7,6 +7,7 @@ import { resolve } from "path";
|
|
|
7
7
|
import { resolveReadPath } from "../core/tools/path-utils.js";
|
|
8
8
|
import { processImage } from "../utils/image-process.js";
|
|
9
9
|
import { detectSupportedImageMimeTypeFromFile } from "../utils/mime.js";
|
|
10
|
+
import { stripBom } from "../utils/text.js";
|
|
10
11
|
/** Process @file arguments into text content and image attachments */
|
|
11
12
|
export async function processFileArguments(fileArgs, options) {
|
|
12
13
|
const autoResizeImages = options?.autoResizeImages ?? true;
|
|
@@ -55,7 +56,7 @@ export async function processFileArguments(fileArgs, options) {
|
|
|
55
56
|
else {
|
|
56
57
|
// Handle text file
|
|
57
58
|
try {
|
|
58
|
-
const content = await readFile(absolutePath, "utf-8");
|
|
59
|
+
const content = stripBom(await readFile(absolutePath, "utf-8"));
|
|
59
60
|
text += `<file name="${absolutePath}">\n${content}\n</file>\n`;
|
|
60
61
|
}
|
|
61
62
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/cli/file-processor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/cli/file-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Process @file CLI arguments into text content and image attachments\n */\n\nimport { access, readFile, stat } from \"node:fs/promises\";\nimport type { ImageContent } from \"@earendil-works/pi-ai\";\nimport chalk from \"chalk\";\nimport { resolve } from \"path\";\nimport { resolveReadPath } from \"../core/tools/path-utils.ts\";\nimport { processImage } from \"../utils/image-process.ts\";\nimport { detectSupportedImageMimeTypeFromFile } from \"../utils/mime.ts\";\nimport { stripBom } from \"../utils/text.ts\";\n\nexport interface ProcessedFiles {\n\ttext: string;\n\timages: ImageContent[];\n}\n\nexport interface ProcessFileOptions {\n\t/** Whether to auto-resize images to 2000x2000 max. Default: true */\n\tautoResizeImages?: boolean;\n}\n\n/** Process @file arguments into text content and image attachments */\nexport async function processFileArguments(fileArgs: string[], options?: ProcessFileOptions): Promise<ProcessedFiles> {\n\tconst autoResizeImages = options?.autoResizeImages ?? true;\n\tlet text = \"\";\n\tconst images: ImageContent[] = [];\n\n\tfor (const fileArg of fileArgs) {\n\t\t// Expand and resolve path (handles ~ expansion and macOS screenshot Unicode spaces)\n\t\tconst absolutePath = resolve(resolveReadPath(fileArg, process.cwd()));\n\n\t\t// Check if file exists\n\t\ttry {\n\t\t\tawait access(absolutePath);\n\t\t} catch {\n\t\t\tconsole.error(chalk.red(`Error: File not found: ${absolutePath}`));\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\t// Check if file is empty\n\t\tconst stats = await stat(absolutePath);\n\t\tif (stats.size === 0) {\n\t\t\t// Skip empty files\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst mimeType = await detectSupportedImageMimeTypeFromFile(absolutePath);\n\n\t\tif (mimeType) {\n\t\t\t// Handle image file\n\t\t\tconst content = await readFile(absolutePath);\n\t\t\tconst processed = await processImage(content, mimeType, { autoResizeImages });\n\n\t\t\tif (!processed.ok) {\n\t\t\t\ttext += `<file name=\"${absolutePath}\">${processed.message}</file>\\n`;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst attachment: ImageContent = {\n\t\t\t\ttype: \"image\",\n\t\t\t\tmimeType: processed.mimeType,\n\t\t\t\tdata: processed.data,\n\t\t\t};\n\t\t\timages.push(attachment);\n\n\t\t\t// Add text reference to image with optional processing hints\n\t\t\tif (processed.hints.length > 0) {\n\t\t\t\ttext += `<file name=\"${absolutePath}\">${processed.hints.join(\"\\n\")}</file>\\n`;\n\t\t\t} else {\n\t\t\t\ttext += `<file name=\"${absolutePath}\"></file>\\n`;\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle text file\n\t\t\ttry {\n\t\t\t\tconst content = stripBom(await readFile(absolutePath, \"utf-8\"));\n\t\t\t\ttext += `<file name=\"${absolutePath}\">\\n${content}\\n</file>\\n`;\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tconsole.error(chalk.red(`Error: Could not read file ${absolutePath}: ${message}`));\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { text, images };\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli hashline` — aplica y genera hunks del formato de edición anclado
|
|
3
|
+
* por hash de línea (`core/edicion/hashline.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Dos subcomandos porque las dos puntas hacen falta para poder demostrar el
|
|
6
|
+
* formato de punta a punta sin escribir un cliente aparte: `tag` calcula la
|
|
7
|
+
* cabecera `[ruta#tag]` de un rango tal como está el fichero AHORA (lo que
|
|
8
|
+
* generaría quien compone un hunk), y `apply` la verifica y aplica.
|
|
9
|
+
*/
|
|
10
|
+
export declare function runHashlineCommand(args: string[]): Promise<boolean>;
|
|
11
|
+
//# sourceMappingURL=hashline-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashline-command.d.ts","sourceRoot":"","sources":["../../src/cli/hashline-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiCH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAuEzE","sourcesContent":["/**\n * `ada-cli hashline` — aplica y genera hunks del formato de edición anclado\n * por hash de línea (`core/edicion/hashline.ts`).\n *\n * Dos subcomandos porque las dos puntas hacen falta para poder demostrar el\n * formato de punta a punta sin escribir un cliente aparte: `tag` calcula la\n * cabecera `[ruta#tag]` de un rango tal como está el fichero AHORA (lo que\n * generaría quien compone un hunk), y `apply` la verifica y aplica.\n */\n\nimport { readFileSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { aplicarHashline, construirCabecera } from \"../core/edicion/hashline.ts\";\n\nfunction ayuda(): void {\n\tconsole.log(`Uso:\n ada-cli hashline tag <ruta> <desde> [hasta] Imprime \"[ruta#tag]\" para ese rango, tal como está el fichero ahora\n ada-cli hashline apply <ruta> [--patch <file>] Aplica un hunk hashline; sin --patch lo lee de stdin\n\nEl hunk (para \"apply\") tiene tres partes, cada una en su línea:\n [ruta#tag]\n desde-hasta\n +línea de sustitución (una por línea; \"+\" sola = línea en blanco)\n\nSe RECHAZA sin tocar el fichero si el tag no corresponde al contenido actual\nde ese rango: significa que el fichero cambió por debajo desde que se generó\nel hunk.`);\n}\n\nfunction leerStdinSync(): string {\n\t// Sin await: los subcomandos de `ada-cli` que no abren el TUI son\n\t// procesos de un solo tiro, y `readFileSync(0, ...)` es la forma estándar\n\t// de leer stdin entero de forma síncrona en Node sin traer un lector de\n\t// stream para un caso de uso tan chico.\n\ttry {\n\t\treturn readFileSync(0, \"utf-8\");\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nexport async function runHashlineCommand(args: string[]): Promise<boolean> {\n\tif (args[0] !== \"hashline\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\") || args.length === 1) {\n\t\tayuda();\n\t\treturn true;\n\t}\n\n\tconst sub = args[1];\n\n\tif (sub === \"tag\") {\n\t\tconst ruta = args[2];\n\t\tconst desde = Number(args[3]);\n\t\tconst hasta = args[4] !== undefined ? Number(args[4]) : desde;\n\t\tif (!ruta || !Number.isInteger(desde) || !Number.isInteger(hasta)) {\n\t\t\tconsole.error(\"Uso: ada-cli hashline tag <ruta> <desde> [hasta]\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tlet contenido: string;\n\t\ttry {\n\t\t\tcontenido = readFileSync(resolve(process.cwd(), ruta), \"utf-8\");\n\t\t} catch (error) {\n\t\t\tconsole.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(construirCabecera(ruta, contenido, desde, hasta));\n\t\treturn true;\n\t}\n\n\tif (sub === \"apply\") {\n\t\tconst ruta = args[2];\n\t\tif (!ruta) {\n\t\t\tconsole.error(\"Uso: ada-cli hashline apply <ruta> [--patch <fichero>]\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tconst iPatch = args.indexOf(\"--patch\");\n\t\tconst textoHunk = iPatch >= 0 && args[iPatch + 1] ? readFileSync(args[iPatch + 1], \"utf-8\") : leerStdinSync();\n\t\tif (textoHunk.trim() === \"\") {\n\t\t\tconsole.error(\"No hay hunk que aplicar (ni --patch ni stdin traían nada).\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tconst rutaAbsoluta = resolve(process.cwd(), ruta);\n\t\tlet contenidoActual: string;\n\t\ttry {\n\t\t\tcontenidoActual = readFileSync(rutaAbsoluta, \"utf-8\");\n\t\t} catch (error) {\n\t\t\tconsole.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tconst resultado = aplicarHashline(contenidoActual, textoHunk);\n\t\tif (!resultado.ok) {\n\t\t\tconsole.error(`Hunk RECHAZADO, ${ruta} no se ha tocado: ${resultado.motivo}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\twriteFileSync(rutaAbsoluta, resultado.contenido, \"utf-8\");\n\t\tconsole.log(`Aplicado sobre ${ruta}.`);\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: \"${sub}\". Usa \"ada-cli hashline --help\".`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli hashline` — aplica y genera hunks del formato de edición anclado
|
|
3
|
+
* por hash de línea (`core/edicion/hashline.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Dos subcomandos porque las dos puntas hacen falta para poder demostrar el
|
|
6
|
+
* formato de punta a punta sin escribir un cliente aparte: `tag` calcula la
|
|
7
|
+
* cabecera `[ruta#tag]` de un rango tal como está el fichero AHORA (lo que
|
|
8
|
+
* generaría quien compone un hunk), y `apply` la verifica y aplica.
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
11
|
+
import { resolve } from "node:path";
|
|
12
|
+
import { aplicarHashline, construirCabecera } from "../core/edicion/hashline.js";
|
|
13
|
+
function ayuda() {
|
|
14
|
+
console.log(`Uso:
|
|
15
|
+
ada-cli hashline tag <ruta> <desde> [hasta] Imprime "[ruta#tag]" para ese rango, tal como está el fichero ahora
|
|
16
|
+
ada-cli hashline apply <ruta> [--patch <file>] Aplica un hunk hashline; sin --patch lo lee de stdin
|
|
17
|
+
|
|
18
|
+
El hunk (para "apply") tiene tres partes, cada una en su línea:
|
|
19
|
+
[ruta#tag]
|
|
20
|
+
desde-hasta
|
|
21
|
+
+línea de sustitución (una por línea; "+" sola = línea en blanco)
|
|
22
|
+
|
|
23
|
+
Se RECHAZA sin tocar el fichero si el tag no corresponde al contenido actual
|
|
24
|
+
de ese rango: significa que el fichero cambió por debajo desde que se generó
|
|
25
|
+
el hunk.`);
|
|
26
|
+
}
|
|
27
|
+
function leerStdinSync() {
|
|
28
|
+
// Sin await: los subcomandos de `ada-cli` que no abren el TUI son
|
|
29
|
+
// procesos de un solo tiro, y `readFileSync(0, ...)` es la forma estándar
|
|
30
|
+
// de leer stdin entero de forma síncrona en Node sin traer un lector de
|
|
31
|
+
// stream para un caso de uso tan chico.
|
|
32
|
+
try {
|
|
33
|
+
return readFileSync(0, "utf-8");
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export async function runHashlineCommand(args) {
|
|
40
|
+
if (args[0] !== "hashline")
|
|
41
|
+
return false;
|
|
42
|
+
if (args.includes("--help") || args.includes("-h") || args.length === 1) {
|
|
43
|
+
ayuda();
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
const sub = args[1];
|
|
47
|
+
if (sub === "tag") {
|
|
48
|
+
const ruta = args[2];
|
|
49
|
+
const desde = Number(args[3]);
|
|
50
|
+
const hasta = args[4] !== undefined ? Number(args[4]) : desde;
|
|
51
|
+
if (!ruta || !Number.isInteger(desde) || !Number.isInteger(hasta)) {
|
|
52
|
+
console.error("Uso: ada-cli hashline tag <ruta> <desde> [hasta]");
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
let contenido;
|
|
57
|
+
try {
|
|
58
|
+
contenido = readFileSync(resolve(process.cwd(), ruta), "utf-8");
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);
|
|
62
|
+
process.exitCode = 1;
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
console.log(construirCabecera(ruta, contenido, desde, hasta));
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
if (sub === "apply") {
|
|
69
|
+
const ruta = args[2];
|
|
70
|
+
if (!ruta) {
|
|
71
|
+
console.error("Uso: ada-cli hashline apply <ruta> [--patch <fichero>]");
|
|
72
|
+
process.exitCode = 1;
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
const iPatch = args.indexOf("--patch");
|
|
76
|
+
const textoHunk = iPatch >= 0 && args[iPatch + 1] ? readFileSync(args[iPatch + 1], "utf-8") : leerStdinSync();
|
|
77
|
+
if (textoHunk.trim() === "") {
|
|
78
|
+
console.error("No hay hunk que aplicar (ni --patch ni stdin traían nada).");
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
const rutaAbsoluta = resolve(process.cwd(), ruta);
|
|
83
|
+
let contenidoActual;
|
|
84
|
+
try {
|
|
85
|
+
contenidoActual = readFileSync(rutaAbsoluta, "utf-8");
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
+
process.exitCode = 1;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
const resultado = aplicarHashline(contenidoActual, textoHunk);
|
|
93
|
+
if (!resultado.ok) {
|
|
94
|
+
console.error(`Hunk RECHAZADO, ${ruta} no se ha tocado: ${resultado.motivo}`);
|
|
95
|
+
process.exitCode = 1;
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
writeFileSync(rutaAbsoluta, resultado.contenido, "utf-8");
|
|
99
|
+
console.log(`Aplicado sobre ${ruta}.`);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
console.error(`Subcomando desconocido: "${sub}". Usa "ada-cli hashline --help".`);
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=hashline-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashline-command.js","sourceRoot":"","sources":["../../src/cli/hashline-command.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `ada-cli hashline` — aplica y genera hunks del formato de edición anclado\n * por hash de línea (`core/edicion/hashline.ts`).\n *\n * Dos subcomandos porque las dos puntas hacen falta para poder demostrar el\n * formato de punta a punta sin escribir un cliente aparte: `tag` calcula la\n * cabecera `[ruta#tag]` de un rango tal como está el fichero AHORA (lo que\n * generaría quien compone un hunk), y `apply` la verifica y aplica.\n */\n\nimport { readFileSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { aplicarHashline, construirCabecera } from \"../core/edicion/hashline.ts\";\n\nfunction ayuda(): void {\n\tconsole.log(`Uso:\n ada-cli hashline tag <ruta> <desde> [hasta] Imprime \"[ruta#tag]\" para ese rango, tal como está el fichero ahora\n ada-cli hashline apply <ruta> [--patch <file>] Aplica un hunk hashline; sin --patch lo lee de stdin\n\nEl hunk (para \"apply\") tiene tres partes, cada una en su línea:\n [ruta#tag]\n desde-hasta\n +línea de sustitución (una por línea; \"+\" sola = línea en blanco)\n\nSe RECHAZA sin tocar el fichero si el tag no corresponde al contenido actual\nde ese rango: significa que el fichero cambió por debajo desde que se generó\nel hunk.`);\n}\n\nfunction leerStdinSync(): string {\n\t// Sin await: los subcomandos de `ada-cli` que no abren el TUI son\n\t// procesos de un solo tiro, y `readFileSync(0, ...)` es la forma estándar\n\t// de leer stdin entero de forma síncrona en Node sin traer un lector de\n\t// stream para un caso de uso tan chico.\n\ttry {\n\t\treturn readFileSync(0, \"utf-8\");\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nexport async function runHashlineCommand(args: string[]): Promise<boolean> {\n\tif (args[0] !== \"hashline\") return false;\n\n\tif (args.includes(\"--help\") || args.includes(\"-h\") || args.length === 1) {\n\t\tayuda();\n\t\treturn true;\n\t}\n\n\tconst sub = args[1];\n\n\tif (sub === \"tag\") {\n\t\tconst ruta = args[2];\n\t\tconst desde = Number(args[3]);\n\t\tconst hasta = args[4] !== undefined ? Number(args[4]) : desde;\n\t\tif (!ruta || !Number.isInteger(desde) || !Number.isInteger(hasta)) {\n\t\t\tconsole.error(\"Uso: ada-cli hashline tag <ruta> <desde> [hasta]\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tlet contenido: string;\n\t\ttry {\n\t\t\tcontenido = readFileSync(resolve(process.cwd(), ruta), \"utf-8\");\n\t\t} catch (error) {\n\t\t\tconsole.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tconsole.log(construirCabecera(ruta, contenido, desde, hasta));\n\t\treturn true;\n\t}\n\n\tif (sub === \"apply\") {\n\t\tconst ruta = args[2];\n\t\tif (!ruta) {\n\t\t\tconsole.error(\"Uso: ada-cli hashline apply <ruta> [--patch <fichero>]\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\t\tconst iPatch = args.indexOf(\"--patch\");\n\t\tconst textoHunk = iPatch >= 0 && args[iPatch + 1] ? readFileSync(args[iPatch + 1], \"utf-8\") : leerStdinSync();\n\t\tif (textoHunk.trim() === \"\") {\n\t\t\tconsole.error(\"No hay hunk que aplicar (ni --patch ni stdin traían nada).\");\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tconst rutaAbsoluta = resolve(process.cwd(), ruta);\n\t\tlet contenidoActual: string;\n\t\ttry {\n\t\t\tcontenidoActual = readFileSync(rutaAbsoluta, \"utf-8\");\n\t\t} catch (error) {\n\t\t\tconsole.error(`No se pudo leer ${ruta}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tconst resultado = aplicarHashline(contenidoActual, textoHunk);\n\t\tif (!resultado.ok) {\n\t\t\tconsole.error(`Hunk RECHAZADO, ${ruta} no se ha tocado: ${resultado.motivo}`);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\twriteFileSync(rutaAbsoluta, resultado.contenido, \"utf-8\");\n\t\tconsole.log(`Aplicado sobre ${ruta}.`);\n\t\treturn true;\n\t}\n\n\tconsole.error(`Subcomando desconocido: \"${sub}\". Usa \"ada-cli hashline --help\".`);\n\tprocess.exitCode = 1;\n\treturn true;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-screen.d.ts","sourceRoot":"","sources":["../../src/cli/home-screen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAU5G,KAAK,cAAc,GAAG,CAAC,UAAU,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAEnF;;;;GAIG;AACH,wBAAsB,cAAc,CACnC,qBAAqB,EAAE,cAAc,EACrC,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,CAAC,CAqD3B","sourcesContent":["/**\n * Central welcome flow shown when the CLI starts interactively (opencode/freebuff\n * style): entry screen (guest / login) -> home screen (conversations + updates).\n * Rendered on the alternate screen for a clean fullscreen \"app\" look.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { ProcessTerminal,
|
|
1
|
+
{"version":3,"file":"home-screen.d.ts","sourceRoot":"","sources":["../../src/cli/home-screen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAU5G,KAAK,cAAc,GAAG,CAAC,UAAU,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAEnF;;;;GAIG;AACH,wBAAsB,cAAc,CACnC,qBAAqB,EAAE,cAAc,EACrC,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,CAAC,CAqD3B","sourcesContent":["/**\n * Central welcome flow shown when the CLI starts interactively (opencode/freebuff\n * style): entry screen (guest / login) -> home screen (conversations + updates).\n * Rendered on the alternate screen for a clean fullscreen \"app\" look.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { ProcessTerminal, setKeybindings, TuiAltScreen } from \"@earendil-works/pi-tui\";\nimport { APP_NAME, getAgentDir, VERSION } from \"../config.ts\";\nimport { KeybindingsManager } from \"../core/keybindings.ts\";\nimport type { SessionInfo, SessionListProgress } from \"../core/session-manager.ts\";\nimport type { SettingsManager } from \"../core/settings-manager.ts\";\nimport { HomeScreenComponent, type HomeScreenResult } from \"../modes/interactive/components/home-screen.ts\";\nimport {\n\tdetectTerminalBackgroundFromEnv,\n\tinitTheme,\n\tresolveThemeSetting,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n} from \"../modes/interactive/theme/theme.ts\";\nimport { loadStartupThemes, startStartupTui } from \"./startup-ui.ts\";\n\ntype SessionsLoader = (onProgress?: SessionListProgress) => Promise<SessionInfo[]>;\n\n/**\n * Show the central welcome flow (entry screen, then home screen) and wait for\n * the user to start a new conversation, resume a previous one, update the app,\n * or quit.\n */\nexport async function showHomeScreen(\n\tcurrentSessionsLoader: SessionsLoader,\n\tsettingsManager: SettingsManager,\n\tcwd: string,\n): Promise<HomeScreenResult> {\n\t// The welcome flow is a dark \"landing\" screen regardless of the chat theme.\n\tsetRegisteredThemes(await loadStartupThemes(settingsManager));\n\tconst terminalTheme = detectTerminalBackgroundFromEnv().theme;\n\tinitTheme(resolveThemeSetting(settingsManager.getThemeSetting(), terminalTheme) ?? terminalTheme);\n\t// Fullscreen alternate screen: clean terminal, no scroll history, app feel.\n\tconst ui = new TuiAltScreen(new ProcessTerminal(), settingsManager.getShowHardwareCursor(), getAgentDir());\n\ttry {\n\t\treturn await new Promise<HomeScreenResult>((resolve) => {\n\t\t\tconst keybindings = KeybindingsManager.create();\n\t\t\tsetKeybindings(keybindings);\n\t\t\tlet resolved = false;\n\t\t\tconst finish = (result: HomeScreenResult) => {\n\t\t\t\tif (resolved) return;\n\t\t\t\tresolved = true;\n\t\t\t\tui.stop();\n\t\t\t\tresolve(result);\n\t\t\t};\n\n\t\t\tconst home = new HomeScreenComponent(currentSessionsLoader, VERSION);\n\t\t\tconst defaultProvider = settingsManager.getDefaultProvider();\n\t\t\tconst defaultModel = settingsManager.getDefaultModel();\n\t\t\thome.setModelLabel(defaultProvider && defaultModel ? `${defaultProvider}/${defaultModel}` : null);\n\t\t\thome.setCwdLabel(cwd);\n\t\t\thome.setMemoryEnabled(settingsManager.getProjectMemoryEnabled());\n\t\t\thome.onNew = () => finish({ kind: \"new\" });\n\t\t\thome.onResume = (path) => finish({ kind: \"resume\", path });\n\t\t\thome.onExit = () => finish(null);\n\t\t\thome.onEnterHome = () => {\n\t\t\t\t// Clear the physical screen and force a full repaint so the home\n\t\t\t\t// screen appears clean, without leftovers from the entry screen.\n\t\t\t\tui.terminal.clearScreen();\n\t\t\t\tui.requestRender(true);\n\t\t\t};\n\t\t\thome.onUpdate = () => {\n\t\t\t\tui.stop();\n\t\t\t\t// Run `ada-cli update` in the terminal, then ask for a restart.\n\t\t\t\tconst result = spawnSync(APP_NAME, [\"update\"], { stdio: \"inherit\" });\n\t\t\t\tconsole.log(\n\t\t\t\t\tresult.status === 0\n\t\t\t\t\t\t? \"\\n✓ Ada actualizado. Reinicia el CLI para usar la nueva versión.\"\n\t\t\t\t\t\t: \"\\n✗ No se pudo completar la actualización. Inténtalo de nuevo con: ada-cli update\",\n\t\t\t\t);\n\t\t\t\tprocess.exit(0);\n\t\t\t};\n\n\t\t\tui.addChild(home);\n\t\t\tui.setFocus(home);\n\t\t\tstartStartupTui(ui, settingsManager);\n\t\t});\n\t} finally {\n\t\tstopThemeWatcher();\n\t}\n}\n"]}
|
package/dist/cli/home-screen.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Rendered on the alternate screen for a clean fullscreen "app" look.
|
|
5
5
|
*/
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
|
-
import { ProcessTerminal,
|
|
8
|
-
import { APP_NAME,
|
|
7
|
+
import { ProcessTerminal, setKeybindings, TuiAltScreen } from "@earendil-works/pi-tui";
|
|
8
|
+
import { APP_NAME, getAgentDir, VERSION } from "../config.js";
|
|
9
9
|
import { KeybindingsManager } from "../core/keybindings.js";
|
|
10
10
|
import { HomeScreenComponent } from "../modes/interactive/components/home-screen.js";
|
|
11
11
|
import { detectTerminalBackgroundFromEnv, initTheme, resolveThemeSetting, setRegisteredThemes, stopThemeWatcher, } from "../modes/interactive/theme/theme.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-screen.js","sourceRoot":"","sources":["../../src/cli/home-screen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"home-screen.js","sourceRoot":"","sources":["../../src/cli/home-screen.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Central welcome flow shown when the CLI starts interactively (opencode/freebuff\n * style): entry screen (guest / login) -> home screen (conversations + updates).\n * Rendered on the alternate screen for a clean fullscreen \"app\" look.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { ProcessTerminal, setKeybindings, TuiAltScreen } from \"@earendil-works/pi-tui\";\nimport { APP_NAME, getAgentDir, VERSION } from \"../config.ts\";\nimport { KeybindingsManager } from \"../core/keybindings.ts\";\nimport type { SessionInfo, SessionListProgress } from \"../core/session-manager.ts\";\nimport type { SettingsManager } from \"../core/settings-manager.ts\";\nimport { HomeScreenComponent, type HomeScreenResult } from \"../modes/interactive/components/home-screen.ts\";\nimport {\n\tdetectTerminalBackgroundFromEnv,\n\tinitTheme,\n\tresolveThemeSetting,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n} from \"../modes/interactive/theme/theme.ts\";\nimport { loadStartupThemes, startStartupTui } from \"./startup-ui.ts\";\n\ntype SessionsLoader = (onProgress?: SessionListProgress) => Promise<SessionInfo[]>;\n\n/**\n * Show the central welcome flow (entry screen, then home screen) and wait for\n * the user to start a new conversation, resume a previous one, update the app,\n * or quit.\n */\nexport async function showHomeScreen(\n\tcurrentSessionsLoader: SessionsLoader,\n\tsettingsManager: SettingsManager,\n\tcwd: string,\n): Promise<HomeScreenResult> {\n\t// The welcome flow is a dark \"landing\" screen regardless of the chat theme.\n\tsetRegisteredThemes(await loadStartupThemes(settingsManager));\n\tconst terminalTheme = detectTerminalBackgroundFromEnv().theme;\n\tinitTheme(resolveThemeSetting(settingsManager.getThemeSetting(), terminalTheme) ?? terminalTheme);\n\t// Fullscreen alternate screen: clean terminal, no scroll history, app feel.\n\tconst ui = new TuiAltScreen(new ProcessTerminal(), settingsManager.getShowHardwareCursor(), getAgentDir());\n\ttry {\n\t\treturn await new Promise<HomeScreenResult>((resolve) => {\n\t\t\tconst keybindings = KeybindingsManager.create();\n\t\t\tsetKeybindings(keybindings);\n\t\t\tlet resolved = false;\n\t\t\tconst finish = (result: HomeScreenResult) => {\n\t\t\t\tif (resolved) return;\n\t\t\t\tresolved = true;\n\t\t\t\tui.stop();\n\t\t\t\tresolve(result);\n\t\t\t};\n\n\t\t\tconst home = new HomeScreenComponent(currentSessionsLoader, VERSION);\n\t\t\tconst defaultProvider = settingsManager.getDefaultProvider();\n\t\t\tconst defaultModel = settingsManager.getDefaultModel();\n\t\t\thome.setModelLabel(defaultProvider && defaultModel ? `${defaultProvider}/${defaultModel}` : null);\n\t\t\thome.setCwdLabel(cwd);\n\t\t\thome.setMemoryEnabled(settingsManager.getProjectMemoryEnabled());\n\t\t\thome.onNew = () => finish({ kind: \"new\" });\n\t\t\thome.onResume = (path) => finish({ kind: \"resume\", path });\n\t\t\thome.onExit = () => finish(null);\n\t\t\thome.onEnterHome = () => {\n\t\t\t\t// Clear the physical screen and force a full repaint so the home\n\t\t\t\t// screen appears clean, without leftovers from the entry screen.\n\t\t\t\tui.terminal.clearScreen();\n\t\t\t\tui.requestRender(true);\n\t\t\t};\n\t\t\thome.onUpdate = () => {\n\t\t\t\tui.stop();\n\t\t\t\t// Run `ada-cli update` in the terminal, then ask for a restart.\n\t\t\t\tconst result = spawnSync(APP_NAME, [\"update\"], { stdio: \"inherit\" });\n\t\t\t\tconsole.log(\n\t\t\t\t\tresult.status === 0\n\t\t\t\t\t\t? \"\\n✓ Ada actualizado. Reinicia el CLI para usar la nueva versión.\"\n\t\t\t\t\t\t: \"\\n✗ No se pudo completar la actualización. Inténtalo de nuevo con: ada-cli update\",\n\t\t\t\t);\n\t\t\t\tprocess.exit(0);\n\t\t\t};\n\n\t\t\tui.addChild(home);\n\t\t\tui.setFocus(home);\n\t\t\tstartStartupTui(ui, settingsManager);\n\t\t});\n\t} finally {\n\t\tstopThemeWatcher();\n\t}\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ada-cli import` — trae sesiones de Claude Code y de Codex.
|
|
3
|
+
*
|
|
4
|
+
* Es coste de cambio. Quien viene de otra herramienta tiene ahí meses de
|
|
5
|
+
* historial, y empezar de cero pesa más que cualquier comparativa de
|
|
6
|
+
* capacidades.
|
|
7
|
+
*
|
|
8
|
+
* Por defecto solo LISTA. Escribir sesiones en el directorio del agente sin que
|
|
9
|
+
* nadie lo haya pedido explícitamente es de las cosas que no se deshacen bien,
|
|
10
|
+
* y la lista es además lo que uno quiere ver primero.
|
|
11
|
+
*/
|
|
12
|
+
import { type Formato, type ResumenSesion } from "../core/importar/formatos.ts";
|
|
13
|
+
export interface ResultadoImportacion {
|
|
14
|
+
encontradas: ResumenSesion[];
|
|
15
|
+
escritas: string[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Busca (y opcionalmente escribe) las sesiones importables.
|
|
19
|
+
*
|
|
20
|
+
* Separado del comando para poder probarlo con directorios de mentira, sin
|
|
21
|
+
* tocar el `$HOME` de quien ejecuta las pruebas.
|
|
22
|
+
*/
|
|
23
|
+
export declare function importar(opciones: {
|
|
24
|
+
fuentes: Array<{
|
|
25
|
+
formato: Formato;
|
|
26
|
+
raiz: string;
|
|
27
|
+
}>;
|
|
28
|
+
destino: string;
|
|
29
|
+
escribir: boolean;
|
|
30
|
+
limite: number;
|
|
31
|
+
nuevoId: (indice: number) => string;
|
|
32
|
+
}): ResultadoImportacion;
|
|
33
|
+
/** Devuelve true si consumió los argumentos. */
|
|
34
|
+
export declare function runImportCommand(args: string[], agentDir: string, nuevoId: () => string): boolean;
|
|
35
|
+
//# sourceMappingURL=import-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-command.d.ts","sourceRoot":"","sources":["../../src/cli/import-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,aAAa,EAAW,MAAM,8BAA8B,CAAC;AAgDpG,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,GAAG,oBAAoB,CAoCvB;AAED,iDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CA6DjG","sourcesContent":["/**\n * `ada-cli import` — trae sesiones de Claude Code y de Codex.\n *\n * Es coste de cambio. Quien viene de otra herramienta tiene ahí meses de\n * historial, y empezar de cero pesa más que cualquier comparativa de\n * capacidades.\n *\n * Por defecto solo LISTA. Escribir sesiones en el directorio del agente sin que\n * nadie lo haya pedido explícitamente es de las cosas que no se deshacen bien,\n * y la lista es además lo que uno quiere ver primero.\n */\n\nimport type { Dirent } from \"node:fs\";\nimport { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { convertir, type Formato, type ResumenSesion, resumir } from \"../core/importar/formatos.ts\";\n\nconst AYUDA = `Uso:\n ada-cli import [--from claude-code|codex] [--write] [--limit N]\n\n --from <cual> Solo una de las dos fuentes (por defecto, las dos)\n --write Escribe las sesiones. Sin esto solo se listan.\n --limit N Cuántas traer, de la más reciente hacia atrás (por defecto 20)\n\nSe importa la CONVERSACIÓN, no el estado: las llamadas a herramientas y sus\nresultados se aplanan a texto legible porque no se pueden reproducir —los\nficheros han cambiado y los procesos murieron—. Una sesión importada sirve\npara leerla, buscarla y continuarla con contexto; no para rebobinarla.`;\n\n/** Dónde guarda cada herramienta sus transcripciones. */\nfunction origenes(cual: Formato | undefined): Array<{ formato: Formato; raiz: string }> {\n\tconst todos: Array<{ formato: Formato; raiz: string }> = [\n\t\t{ formato: \"claude-code\", raiz: join(homedir(), \".claude\", \"projects\") },\n\t\t{ formato: \"codex\", raiz: join(homedir(), \".codex\", \"sessions\") },\n\t];\n\treturn cual ? todos.filter((o) => o.formato === cual) : todos;\n}\n\n/** Todos los .jsonl bajo un directorio, a cualquier profundidad. */\nfunction jsonls(dir: string, acumulado: string[] = []): string[] {\n\tlet entradas: Dirent[];\n\ttry {\n\t\tentradas = readdirSync(dir, { withFileTypes: true });\n\t} catch {\n\t\treturn acumulado;\n\t}\n\tfor (const e of entradas) {\n\t\tconst ruta = join(dir, e.name);\n\t\tif (e.isDirectory()) jsonls(ruta, acumulado);\n\t\telse if (e.name.endsWith(\".jsonl\")) acumulado.push(ruta);\n\t}\n\treturn acumulado;\n}\n\n/** El nombre de proyecto que usa Ada para agrupar sesiones. */\nfunction carpetaDeProyecto(cwd: string): string {\n\treturn `-${(cwd || \"desconocido\").replace(/[/\\\\]/g, \"-\")}--`;\n}\n\nfunction marcaDeTiempo(ms: number): string {\n\treturn new Date(ms || 0).toISOString().replace(/[:.]/g, \"-\");\n}\n\nexport interface ResultadoImportacion {\n\tencontradas: ResumenSesion[];\n\tescritas: string[];\n}\n\n/**\n * Busca (y opcionalmente escribe) las sesiones importables.\n *\n * Separado del comando para poder probarlo con directorios de mentira, sin\n * tocar el `$HOME` de quien ejecuta las pruebas.\n */\nexport function importar(opciones: {\n\tfuentes: Array<{ formato: Formato; raiz: string }>;\n\tdestino: string;\n\tescribir: boolean;\n\tlimite: number;\n\tnuevoId: (indice: number) => string;\n}): ResultadoImportacion {\n\tconst candidatos: Array<{ ruta: string; cuando: number }> = [];\n\tfor (const { raiz } of opciones.fuentes) {\n\t\tfor (const ruta of jsonls(raiz)) {\n\t\t\ttry {\n\t\t\t\tcandidatos.push({ ruta, cuando: statSync(ruta).mtimeMs });\n\t\t\t} catch {\n\t\t\t\t// Un fichero que desaparece a mitad no es un error de importación.\n\t\t\t}\n\t\t}\n\t}\n\tcandidatos.sort((a, b) => b.cuando - a.cuando);\n\n\tconst encontradas: ResumenSesion[] = [];\n\tconst escritas: string[] = [];\n\tfor (const { ruta } of candidatos.slice(0, opciones.limite)) {\n\t\tlet lineas: string[];\n\t\ttry {\n\t\t\tlineas = readFileSync(ruta, \"utf8\").split(\"\\n\").filter(Boolean);\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t\tconst id = opciones.nuevoId(encontradas.length);\n\t\tconst convertido = convertir(lineas, id);\n\t\tif (!convertido) continue; // sin conversación: no se importa una sesión vacía\n\t\tconst resumen = resumir(convertido.entradas, convertido.formato, ruta);\n\t\tencontradas.push(resumen);\n\n\t\tif (!opciones.escribir) continue;\n\t\tconst carpeta = join(opciones.destino, carpetaDeProyecto(resumen.cwd));\n\t\tmkdirSync(carpeta, { recursive: true });\n\t\tconst fichero = join(carpeta, `${marcaDeTiempo(resumen.cuando)}_${id}.jsonl`);\n\t\twriteFileSync(fichero, `${convertido.entradas.map((e) => JSON.stringify(e)).join(\"\\n\")}\\n`, \"utf8\");\n\t\tescritas.push(fichero);\n\t}\n\treturn { encontradas, escritas };\n}\n\n/** Devuelve true si consumió los argumentos. */\nexport function runImportCommand(args: string[], agentDir: string, nuevoId: () => string): boolean {\n\tif (args[0] !== \"import\") return false;\n\tif (args.includes(\"--help\") || args.includes(\"-h\")) {\n\t\tconsole.log(AYUDA);\n\t\treturn true;\n\t}\n\n\tconst iFrom = args.indexOf(\"--from\");\n\tconst cual = iFrom >= 0 ? (args[iFrom + 1] as Formato | undefined) : undefined;\n\tif (cual && cual !== \"claude-code\" && cual !== \"codex\") {\n\t\tconsole.error(`--from solo admite 'claude-code' o 'codex' (recibido: ${cual}).`);\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\tconst iLimit = args.indexOf(\"--limit\");\n\tconst limite = iLimit >= 0 ? Number(args[iLimit + 1]) : 20;\n\tif (!Number.isFinite(limite) || limite <= 0) {\n\t\tconsole.error(\"--limit necesita un número positivo.\");\n\t\tprocess.exitCode = 1;\n\t\treturn true;\n\t}\n\n\tconst fuentes = origenes(cual).filter((o) => existsSync(o.raiz));\n\tif (fuentes.length === 0) {\n\t\t// Se nombra lo que se ha mirado: \"no hay nada\" sin decir dónde se buscó\n\t\t// deja al usuario sin forma de saber si es que no tiene sesiones o es que\n\t\t// las tiene en otro sitio.\n\t\tconsole.log(\n\t\t\t`No hay nada que importar. Se ha mirado en:\\n${origenes(cual)\n\t\t\t\t.map((o) => ` ${o.raiz}`)\n\t\t\t\t.join(\"\\n\")}`,\n\t\t);\n\t\treturn true;\n\t}\n\n\tconst escribir = args.includes(\"--write\");\n\tconst { encontradas, escritas } = importar({\n\t\tfuentes,\n\t\tdestino: join(agentDir, \"sessions\"),\n\t\tescribir,\n\t\tlimite,\n\t\tnuevoId,\n\t});\n\n\tif (encontradas.length === 0) {\n\t\tconsole.log(\"No se ha encontrado ninguna sesión con conversación en las fuentes revisadas.\");\n\t\treturn true;\n\t}\n\n\tfor (const s of encontradas) {\n\t\tconst fecha = new Date(s.cuando).toISOString().slice(0, 16).replace(\"T\", \" \");\n\t\tconsole.log(`${s.formato.padEnd(12)} ${fecha} ${String(s.mensajes).padStart(5)} msg ${s.cwd}`);\n\t\tif (s.primerPrompt) console.log(` ${s.primerPrompt}`);\n\t}\n\tconsole.log(\"\");\n\tif (escribir) {\n\t\tconsole.log(`Importadas ${escritas.length} sesión(es). Aparecen en \\`ada-cli sessions\\`.`);\n\t} else {\n\t\tconsole.log(`${encontradas.length} sesión(es) importable(s). Añade --write para traerlas.`);\n\t}\n\treturn true;\n}\n"]}
|