@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,277 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { constants as fsConstants } from "node:fs";
|
|
3
|
+
import { access, mkdir, realpath } from "node:fs/promises";
|
|
4
|
+
import net from "node:net";
|
|
5
|
+
import os from "node:os";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { toBoolean, toFiniteNumber, toOptionalString } from "../coerce.js";
|
|
9
|
+
import { resolveMacosHelperAppPath } from "./helper-path.mjs";
|
|
10
|
+
const COMMAND_TIMEOUT_MS = 15_000;
|
|
11
|
+
const HELPER_PROTOCOL_VERSION = 6;
|
|
12
|
+
const HELPER_SETUP_TIMEOUT_MS = 60_000;
|
|
13
|
+
export const HELPER_BUNDLE_ID = "com.hoilab.ada-computer-use";
|
|
14
|
+
export const HELPER_APP_PATH = resolveMacosHelperAppPath();
|
|
15
|
+
export const HELPER_APP_EXECUTABLE_PATH = path.join(HELPER_APP_PATH, "Contents", "MacOS", "bridge");
|
|
16
|
+
const DEFAULT_HELPER_SOCKET_PATH = path.join(os.homedir(), "Library", "Caches", "ada-computer-use", "bridge.sock");
|
|
17
|
+
export const HELPER_SOCKET_PATH = process.env.PI_CU_SOCKET_PATH ?? DEFAULT_HELPER_SOCKET_PATH;
|
|
18
|
+
const usingExternalHelperSocket = HELPER_SOCKET_PATH !== DEFAULT_HELPER_SOCKET_PATH;
|
|
19
|
+
const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
|
|
20
|
+
const SETUP_HELPER_SCRIPT = path.join(PACKAGE_ROOT, "scripts", "setup-helper.mjs");
|
|
21
|
+
export class HelperTransportError extends Error {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "HelperTransportError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class HelperCommandError extends Error {
|
|
28
|
+
code;
|
|
29
|
+
constructor(message, code) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = "HelperCommandError";
|
|
32
|
+
this.code = code;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function throwIfAborted(signal) {
|
|
36
|
+
if (signal?.aborted)
|
|
37
|
+
throw new Error("Operation aborted.");
|
|
38
|
+
}
|
|
39
|
+
async function sleep(ms, signal) {
|
|
40
|
+
throwIfAborted(signal);
|
|
41
|
+
await new Promise((resolve, reject) => {
|
|
42
|
+
const timer = setTimeout(resolve, ms);
|
|
43
|
+
const onAbort = () => {
|
|
44
|
+
clearTimeout(timer);
|
|
45
|
+
reject(new Error("Operation aborted."));
|
|
46
|
+
};
|
|
47
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
48
|
+
}).finally(() => signal?.throwIfAborted?.());
|
|
49
|
+
}
|
|
50
|
+
async function isExecutable(filePath) {
|
|
51
|
+
try {
|
|
52
|
+
await access(filePath, fsConstants.X_OK);
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async function isResolvedHelperExecutable(filePath) {
|
|
60
|
+
if (!filePath)
|
|
61
|
+
return true;
|
|
62
|
+
const [actualPath, expectedPath] = await Promise.all([
|
|
63
|
+
realpath(filePath).catch(() => path.resolve(filePath)),
|
|
64
|
+
realpath(HELPER_APP_EXECUTABLE_PATH).catch(() => path.resolve(HELPER_APP_EXECUTABLE_PATH)),
|
|
65
|
+
]);
|
|
66
|
+
return actualPath === expectedPath;
|
|
67
|
+
}
|
|
68
|
+
export async function runProcess(command, args, timeoutMs, signal, env) {
|
|
69
|
+
throwIfAborted(signal);
|
|
70
|
+
await new Promise((resolve, reject) => {
|
|
71
|
+
const child = spawn(command, args, {
|
|
72
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
73
|
+
env,
|
|
74
|
+
});
|
|
75
|
+
let stderr = "";
|
|
76
|
+
let stdout = "";
|
|
77
|
+
const timer = setTimeout(() => {
|
|
78
|
+
child.kill("SIGTERM");
|
|
79
|
+
cleanup();
|
|
80
|
+
reject(new Error(`Command timed out after ${timeoutMs}ms: ${command} ${args.join(" ")}`));
|
|
81
|
+
}, timeoutMs);
|
|
82
|
+
const onAbort = () => {
|
|
83
|
+
child.kill("SIGTERM");
|
|
84
|
+
cleanup();
|
|
85
|
+
reject(new Error("Operation aborted."));
|
|
86
|
+
};
|
|
87
|
+
const cleanup = () => {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
signal?.removeEventListener("abort", onAbort);
|
|
90
|
+
};
|
|
91
|
+
child.stdout.on("data", (chunk) => {
|
|
92
|
+
stdout += String(chunk);
|
|
93
|
+
});
|
|
94
|
+
child.stderr.on("data", (chunk) => {
|
|
95
|
+
stderr += String(chunk);
|
|
96
|
+
});
|
|
97
|
+
child.on("error", (error) => {
|
|
98
|
+
cleanup();
|
|
99
|
+
reject(error);
|
|
100
|
+
});
|
|
101
|
+
child.on("close", (code) => {
|
|
102
|
+
cleanup();
|
|
103
|
+
if (code === 0) {
|
|
104
|
+
resolve();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const output = [stderr.trim(), stdout.trim()].filter(Boolean).join("\n");
|
|
108
|
+
reject(new Error(`Command failed (${code}): ${command} ${args.join(" ")}\n${output}`.trim()));
|
|
109
|
+
});
|
|
110
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
export class MacosHelperClient {
|
|
114
|
+
daemonAvailable = false;
|
|
115
|
+
requestSequence = 0;
|
|
116
|
+
diagnosticsCache;
|
|
117
|
+
get diagnostics() {
|
|
118
|
+
return this.diagnosticsCache;
|
|
119
|
+
}
|
|
120
|
+
async ensureInstalled(signal) {
|
|
121
|
+
if (usingExternalHelperSocket)
|
|
122
|
+
return;
|
|
123
|
+
// Installation is a deployment/repair operation, not part of every new
|
|
124
|
+
// agent process's hot path. Protocol compatibility is checked against the
|
|
125
|
+
// live daemon immediately afterwards.
|
|
126
|
+
if (await isExecutable(HELPER_APP_EXECUTABLE_PATH)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// Re-enter Electron and Bun standalone hosts as their JavaScript runtimes.
|
|
130
|
+
await runProcess(process.execPath, [SETUP_HELPER_SCRIPT, "--runtime"], HELPER_SETUP_TIMEOUT_MS, signal, {
|
|
131
|
+
...process.env,
|
|
132
|
+
ELECTRON_RUN_AS_NODE: "1",
|
|
133
|
+
BUN_BE_BUN: "1",
|
|
134
|
+
});
|
|
135
|
+
if (!(await isExecutable(HELPER_APP_EXECUTABLE_PATH))) {
|
|
136
|
+
throw new Error(`Failed to install ada-computer-use helper app at ${HELPER_APP_PATH}.`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async launchDaemon(signal) {
|
|
140
|
+
if (usingExternalHelperSocket)
|
|
141
|
+
throw new HelperTransportError(`External helper socket is unavailable at ${HELPER_SOCKET_PATH}.`);
|
|
142
|
+
await mkdir(path.dirname(HELPER_SOCKET_PATH), { recursive: true });
|
|
143
|
+
// Open the resolved bundle directly so a legacy system-wide copy with the
|
|
144
|
+
// same bundle id cannot win LaunchServices resolution.
|
|
145
|
+
await runProcess("open", ["-n", "-g", HELPER_APP_PATH, "--args", "serve", "--socket", HELPER_SOCKET_PATH], COMMAND_TIMEOUT_MS, signal);
|
|
146
|
+
}
|
|
147
|
+
async daemonCommand(cmd, args, timeoutMs, signal) {
|
|
148
|
+
return await new Promise((resolve, reject) => {
|
|
149
|
+
const id = `req_${++this.requestSequence}`;
|
|
150
|
+
const socket = net.createConnection(HELPER_SOCKET_PATH);
|
|
151
|
+
let buffer = "";
|
|
152
|
+
const timer = setTimeout(() => {
|
|
153
|
+
socket.destroy();
|
|
154
|
+
reject(new HelperTransportError(`Daemon command '${cmd}' timed out after ${timeoutMs}ms.`));
|
|
155
|
+
}, timeoutMs);
|
|
156
|
+
const cleanup = () => {
|
|
157
|
+
clearTimeout(timer);
|
|
158
|
+
signal?.removeEventListener("abort", onAbort);
|
|
159
|
+
};
|
|
160
|
+
const onAbort = () => {
|
|
161
|
+
socket.destroy();
|
|
162
|
+
cleanup();
|
|
163
|
+
reject(new Error("Operation aborted."));
|
|
164
|
+
};
|
|
165
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
166
|
+
socket.setEncoding("utf8");
|
|
167
|
+
socket.on("connect", () => socket.write(`${JSON.stringify({ id, cmd, ...args })}\n`));
|
|
168
|
+
socket.on("data", (chunk) => {
|
|
169
|
+
buffer += chunk;
|
|
170
|
+
const newline = buffer.indexOf("\n");
|
|
171
|
+
if (newline < 0)
|
|
172
|
+
return;
|
|
173
|
+
cleanup();
|
|
174
|
+
socket.end();
|
|
175
|
+
try {
|
|
176
|
+
const parsed = JSON.parse(buffer.slice(0, newline));
|
|
177
|
+
if (parsed.ok === true)
|
|
178
|
+
resolve(parsed.result);
|
|
179
|
+
else
|
|
180
|
+
reject(new HelperCommandError(parsed?.error?.message ?? `Daemon command '${cmd}' failed.`, parsed?.error?.code));
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
reject(error);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
socket.on("error", (error) => {
|
|
187
|
+
cleanup();
|
|
188
|
+
reject(new HelperTransportError(error.message));
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
async ensureDaemon(signal) {
|
|
193
|
+
if (this.daemonAvailable)
|
|
194
|
+
return true;
|
|
195
|
+
try {
|
|
196
|
+
await this.daemonCommand("diagnostics", {}, 1_000, signal);
|
|
197
|
+
this.daemonAvailable = true;
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
catch { }
|
|
201
|
+
await this.launchDaemon(signal).catch(() => undefined);
|
|
202
|
+
for (let index = 0; index < 30; index += 1) {
|
|
203
|
+
try {
|
|
204
|
+
await this.daemonCommand("diagnostics", {}, 1_000, signal);
|
|
205
|
+
this.daemonAvailable = true;
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
await sleep(100, signal);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
async command(cmd, args = {}, options) {
|
|
215
|
+
const timeoutMs = options?.timeoutMs ?? COMMAND_TIMEOUT_MS;
|
|
216
|
+
if (!(await this.ensureDaemon(options?.signal))) {
|
|
217
|
+
throw new HelperTransportError(`ada-computer-use helper app daemon is unavailable at ${HELPER_APP_PATH}.`);
|
|
218
|
+
}
|
|
219
|
+
try {
|
|
220
|
+
return await this.daemonCommand(cmd, args, timeoutMs, options?.signal);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
this.daemonAvailable = false;
|
|
224
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
async restart(signal) {
|
|
228
|
+
await this.command("shutdown", {}, { signal, timeoutMs: 2_000 }).catch(() => undefined);
|
|
229
|
+
this.daemonAvailable = false;
|
|
230
|
+
await sleep(400, signal);
|
|
231
|
+
if (!(await this.ensureDaemon(signal))) {
|
|
232
|
+
throw new Error(`ada-computer-use helper did not come back after restart. Helper app: ${HELPER_APP_PATH}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async diagnosticsCommand(signal) {
|
|
236
|
+
const result = await this.command("diagnostics", {}, { signal });
|
|
237
|
+
const diagnostics = {
|
|
238
|
+
protocolVersion: Math.trunc(toFiniteNumber(result?.protocolVersion, 0)),
|
|
239
|
+
architectureVersion: Math.trunc(toFiniteNumber(result?.architectureVersion, 0)),
|
|
240
|
+
invariants: Array.isArray(result?.invariants)
|
|
241
|
+
? result.invariants.filter((value) => typeof value === "string")
|
|
242
|
+
: [],
|
|
243
|
+
pid: Math.trunc(toFiniteNumber(result?.pid, 0)),
|
|
244
|
+
parentPid: Math.trunc(toFiniteNumber(result?.parentPid, 0)) || undefined,
|
|
245
|
+
parentAppName: toOptionalString(result?.parentAppName),
|
|
246
|
+
parentBundleId: toOptionalString(result?.parentBundleId),
|
|
247
|
+
parentPath: toOptionalString(result?.parentPath),
|
|
248
|
+
executablePath: toOptionalString(result?.executablePath),
|
|
249
|
+
os: toOptionalString(result?.macOS),
|
|
250
|
+
arch: toOptionalString(result?.arch),
|
|
251
|
+
accessibility: toBoolean(result?.accessibility),
|
|
252
|
+
screenRecording: toBoolean(result?.screenRecording),
|
|
253
|
+
};
|
|
254
|
+
this.diagnosticsCache = diagnostics;
|
|
255
|
+
return diagnostics;
|
|
256
|
+
}
|
|
257
|
+
async ensureProtocol(signal) {
|
|
258
|
+
let diagnostics = await this.diagnosticsCommand(signal);
|
|
259
|
+
const executableMatches = await isResolvedHelperExecutable(diagnostics.executablePath);
|
|
260
|
+
if (diagnostics.protocolVersion === HELPER_PROTOCOL_VERSION && executableMatches)
|
|
261
|
+
return diagnostics;
|
|
262
|
+
// The helper daemon outlives Pi, so restarting/reloading Pi alone does not
|
|
263
|
+
// replace a stale daemon or one launched from the legacy system location.
|
|
264
|
+
// Stop it through the backwards-compatible command channel and relaunch
|
|
265
|
+
// the exact app bundle that ensureInstalled() resolved.
|
|
266
|
+
await this.restart(signal);
|
|
267
|
+
diagnostics = await this.diagnosticsCommand(signal);
|
|
268
|
+
const relaunchedExecutableMatches = await isResolvedHelperExecutable(diagnostics.executablePath);
|
|
269
|
+
if (diagnostics.protocolVersion !== HELPER_PROTOCOL_VERSION || !relaunchedExecutableMatches) {
|
|
270
|
+
this.daemonAvailable = false;
|
|
271
|
+
throw new Error(`ada-computer-use helper mismatch after relaunch: expected protocol ${HELPER_PROTOCOL_VERSION} and executable ${HELPER_APP_EXECUTABLE_PATH}; got protocol ${diagnostics.protocolVersion} and executable ${diagnostics.executablePath ?? "unknown"}. Reinstall or rebuild the helper app at ${HELPER_APP_PATH}.`);
|
|
272
|
+
}
|
|
273
|
+
return diagnostics;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
export const macosHelper = new MacosHelperClient();
|
|
277
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../../../src/core/computer/motor/platform/macos/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpG,MAAM,0BAA0B,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;AACnH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;AAC9F,MAAM,yBAAyB,GAAG,kBAAkB,KAAK,0BAA0B,CAAC;AAEpF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClG,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;AAEnF,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC9C,YAAY,OAAe,EAAE;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IAAA,CACnC;CACD;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACnC,IAAI,CAAU;IAEvB,YAAY,OAAe,EAAE,IAAa,EAAE;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAAA,CACjB;CACD;AAED,SAAS,cAAc,CAAC,MAAoB,EAAQ;IACnD,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAAA,CAC3D;AAED,KAAK,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB,EAAiB;IACrE,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACrB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAAA,CACxC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAAA,CAC3D,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;AAAA,CAC7C;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAoB;IAC/D,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AAAA,CACD;AAED,KAAK,UAAU,0BAA0B,CAAC,QAAiB,EAAoB;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,QAAQ,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;KAC1F,CAAC,CAAC;IACH,OAAO,UAAU,KAAK,YAAY,CAAC;AAAA,CACnC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,OAAe,EACf,IAAc,EACd,SAAiB,EACjB,MAAoB,EACpB,GAAuB,EACP;IAChB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAClC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,GAAG;SACH,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,SAAS,OAAO,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAAA,CAC1F,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAAA,CACxC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACrB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAAA,CAC9C,CAAC;QAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CACxB,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CACxB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA,CACd,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;YACV,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,EAAE,CAAC;gBACV,OAAO;YACR,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,IAAI,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAAA,CAC9F,CAAC,CAAC;QAEH,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAAA,CAC3D,CAAC,CAAC;AAAA,CACH;AAED,MAAM,OAAO,iBAAiB;IACrB,eAAe,GAAG,KAAK,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACpB,gBAAgB,CAAuB;IAE/C,IAAI,WAAW,GAAoC;QAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAAA,CAC7B;IAED,KAAK,CAAC,eAAe,CAAC,MAAoB,EAAiB;QAC1D,IAAI,yBAAyB;YAAE,OAAO;QACtC,uEAAuE;QACvE,0EAA0E;QAC1E,sCAAsC;QACtC,IAAI,MAAM,YAAY,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACpD,OAAO;QACR,CAAC;QAED,2EAA2E;QAC3E,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,uBAAuB,EAAE,MAAM,EAAE;YACvG,GAAG,OAAO,CAAC,GAAG;YACd,oBAAoB,EAAE,GAAG;YACzB,UAAU,EAAE,GAAG;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,oDAAoD,eAAe,GAAG,CAAC,CAAC;QACzF,CAAC;IAAA,CACD;IAED,KAAK,CAAC,YAAY,CAAC,MAAoB,EAAiB;QACvD,IAAI,yBAAyB;YAC5B,MAAM,IAAI,oBAAoB,CAAC,4CAA4C,kBAAkB,GAAG,CAAC,CAAC;QACnG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,UAAU,CACf,MAAM,EACN,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAChF,kBAAkB,EAClB,MAAM,CACN,CAAC;IAAA,CACF;IAED,KAAK,CAAC,aAAa,CAClB,GAAW,EACX,IAA6B,EAC7B,SAAiB,EACjB,MAAoB,EACP;QACb,OAAO,MAAM,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YACxD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC9B,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,oBAAoB,CAAC,mBAAmB,GAAG,qBAAqB,SAAS,KAAK,CAAC,CAAC,CAAC;YAAA,CAC5F,EAAE,SAAS,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;gBACrB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAAA,CAC9C,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAAA,CACxC,CAAC;YACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC;gBAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,OAAO,GAAG,CAAC;oBAAE,OAAO;gBACxB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBACpD,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI;wBAAE,OAAO,CAAC,MAAM,CAAC,MAAW,CAAC,CAAC;;wBAEnD,MAAM,CACL,IAAI,kBAAkB,CACrB,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,mBAAmB,GAAG,WAAW,EAC3D,MAAM,EAAE,KAAK,EAAE,IAAI,CACnB,CACD,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC;YAAA,CACD,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAA,CAChD,CAAC,CAAC;QAAA,CACH,CAAC,CAAC;IAAA,CACH;IAED,KAAK,CAAC,YAAY,CAAC,MAAoB,EAAoB;QAC1D,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IAAA,CACb;IAED,KAAK,CAAC,OAAO,CACZ,GAAW,EACX,IAAI,GAA4B,EAAE,EAClC,OAAsD,EACzC;QACb,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;QAC3D,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,oBAAoB,CAAC,wDAAwD,eAAe,GAAG,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC;YACJ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,CAAC;IAAA,CACD;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB,EAAiB;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wEAAwE,eAAe,EAAE,CAAC,CAAC;QAC5G,CAAC;IAAA,CACD;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAoB,EAAgC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,aAAa,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG;YACnB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YACvE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC/E,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;gBAC5C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;gBAC1F,CAAC,CAAC,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;YACxE,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC;YACtD,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;YACxD,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;YAChD,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;YACxD,EAAE,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;YACnC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;YACpC,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YAC/C,eAAe,EAAE,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;SACnD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,WAAW,CAAC;IAAA,CACnB;IAED,KAAK,CAAC,cAAc,CAAC,MAAoB,EAAgC;QACxE,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACvF,IAAI,WAAW,CAAC,eAAe,KAAK,uBAAuB,IAAI,iBAAiB;YAAE,OAAO,WAAW,CAAC;QAErG,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,2BAA2B,GAAG,MAAM,0BAA0B,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACjG,IAAI,WAAW,CAAC,eAAe,KAAK,uBAAuB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC7F,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,MAAM,IAAI,KAAK,CACd,sEAAsE,uBAAuB,mBAAmB,0BAA0B,kBAAkB,WAAW,CAAC,eAAe,mBAAmB,WAAW,CAAC,cAAc,IAAI,SAAS,4CAA4C,eAAe,GAAG,CAC/S,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC;IAAA,CACnB;CACD;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["import { spawn } from \"node:child_process\";\nimport { constants as fsConstants } from \"node:fs\";\nimport { access, mkdir, realpath } from \"node:fs/promises\";\nimport net from \"node:net\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { toBoolean, toFiniteNumber, toOptionalString } from \"../coerce.ts\";\nimport type { PlatformDiagnostics } from \"../types.ts\";\nimport { resolveMacosHelperAppPath } from \"./helper-path.mjs\";\n\nconst COMMAND_TIMEOUT_MS = 15_000;\nconst HELPER_PROTOCOL_VERSION = 6;\nconst HELPER_SETUP_TIMEOUT_MS = 60_000;\n\nexport const HELPER_BUNDLE_ID = \"com.hoilab.ada-computer-use\";\nexport const HELPER_APP_PATH = resolveMacosHelperAppPath();\nexport const HELPER_APP_EXECUTABLE_PATH = path.join(HELPER_APP_PATH, \"Contents\", \"MacOS\", \"bridge\");\nconst DEFAULT_HELPER_SOCKET_PATH = path.join(os.homedir(), \"Library\", \"Caches\", \"ada-computer-use\", \"bridge.sock\");\nexport const HELPER_SOCKET_PATH = process.env.PI_CU_SOCKET_PATH ?? DEFAULT_HELPER_SOCKET_PATH;\nconst usingExternalHelperSocket = HELPER_SOCKET_PATH !== DEFAULT_HELPER_SOCKET_PATH;\n\nconst PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), \"..\", \"..\", \"..\");\nconst SETUP_HELPER_SCRIPT = path.join(PACKAGE_ROOT, \"scripts\", \"setup-helper.mjs\");\n\nexport class HelperTransportError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"HelperTransportError\";\n\t}\n}\n\nexport class HelperCommandError extends Error {\n\treadonly code?: string;\n\n\tconstructor(message: string, code?: string) {\n\t\tsuper(message);\n\t\tthis.name = \"HelperCommandError\";\n\t\tthis.code = code;\n\t}\n}\n\nfunction throwIfAborted(signal?: AbortSignal): void {\n\tif (signal?.aborted) throw new Error(\"Operation aborted.\");\n}\n\nasync function sleep(ms: number, signal?: AbortSignal): Promise<void> {\n\tthrowIfAborted(signal);\n\tawait new Promise<void>((resolve, reject) => {\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tconst onAbort = () => {\n\t\t\tclearTimeout(timer);\n\t\t\treject(new Error(\"Operation aborted.\"));\n\t\t};\n\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t}).finally(() => signal?.throwIfAborted?.());\n}\n\nasync function isExecutable(filePath: string): Promise<boolean> {\n\ttry {\n\t\tawait access(filePath, fsConstants.X_OK);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nasync function isResolvedHelperExecutable(filePath?: string): Promise<boolean> {\n\tif (!filePath) return true;\n\tconst [actualPath, expectedPath] = await Promise.all([\n\t\trealpath(filePath).catch(() => path.resolve(filePath)),\n\t\trealpath(HELPER_APP_EXECUTABLE_PATH).catch(() => path.resolve(HELPER_APP_EXECUTABLE_PATH)),\n\t]);\n\treturn actualPath === expectedPath;\n}\n\nexport async function runProcess(\n\tcommand: string,\n\targs: string[],\n\ttimeoutMs: number,\n\tsignal?: AbortSignal,\n\tenv?: NodeJS.ProcessEnv,\n): Promise<void> {\n\tthrowIfAborted(signal);\n\n\tawait new Promise<void>((resolve, reject) => {\n\t\tconst child = spawn(command, args, {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\tenv,\n\t\t});\n\n\t\tlet stderr = \"\";\n\t\tlet stdout = \"\";\n\n\t\tconst timer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\tcleanup();\n\t\t\treject(new Error(`Command timed out after ${timeoutMs}ms: ${command} ${args.join(\" \")}`));\n\t\t}, timeoutMs);\n\n\t\tconst onAbort = () => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\tcleanup();\n\t\t\treject(new Error(\"Operation aborted.\"));\n\t\t};\n\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t};\n\n\t\tchild.stdout.on(\"data\", (chunk) => {\n\t\t\tstdout += String(chunk);\n\t\t});\n\n\t\tchild.stderr.on(\"data\", (chunk) => {\n\t\t\tstderr += String(chunk);\n\t\t});\n\n\t\tchild.on(\"error\", (error) => {\n\t\t\tcleanup();\n\t\t\treject(error);\n\t\t});\n\n\t\tchild.on(\"close\", (code) => {\n\t\t\tcleanup();\n\t\t\tif (code === 0) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst output = [stderr.trim(), stdout.trim()].filter(Boolean).join(\"\\n\");\n\t\t\treject(new Error(`Command failed (${code}): ${command} ${args.join(\" \")}\\n${output}`.trim()));\n\t\t});\n\n\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n}\n\nexport class MacosHelperClient {\n\tprivate daemonAvailable = false;\n\tprivate requestSequence = 0;\n\tprivate diagnosticsCache?: PlatformDiagnostics;\n\n\tget diagnostics(): PlatformDiagnostics | undefined {\n\t\treturn this.diagnosticsCache;\n\t}\n\n\tasync ensureInstalled(signal?: AbortSignal): Promise<void> {\n\t\tif (usingExternalHelperSocket) return;\n\t\t// Installation is a deployment/repair operation, not part of every new\n\t\t// agent process's hot path. Protocol compatibility is checked against the\n\t\t// live daemon immediately afterwards.\n\t\tif (await isExecutable(HELPER_APP_EXECUTABLE_PATH)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Re-enter Electron and Bun standalone hosts as their JavaScript runtimes.\n\t\tawait runProcess(process.execPath, [SETUP_HELPER_SCRIPT, \"--runtime\"], HELPER_SETUP_TIMEOUT_MS, signal, {\n\t\t\t...process.env,\n\t\t\tELECTRON_RUN_AS_NODE: \"1\",\n\t\t\tBUN_BE_BUN: \"1\",\n\t\t});\n\n\t\tif (!(await isExecutable(HELPER_APP_EXECUTABLE_PATH))) {\n\t\t\tthrow new Error(`Failed to install ada-computer-use helper app at ${HELPER_APP_PATH}.`);\n\t\t}\n\t}\n\n\tasync launchDaemon(signal?: AbortSignal): Promise<void> {\n\t\tif (usingExternalHelperSocket)\n\t\t\tthrow new HelperTransportError(`External helper socket is unavailable at ${HELPER_SOCKET_PATH}.`);\n\t\tawait mkdir(path.dirname(HELPER_SOCKET_PATH), { recursive: true });\n\t\t// Open the resolved bundle directly so a legacy system-wide copy with the\n\t\t// same bundle id cannot win LaunchServices resolution.\n\t\tawait runProcess(\n\t\t\t\"open\",\n\t\t\t[\"-n\", \"-g\", HELPER_APP_PATH, \"--args\", \"serve\", \"--socket\", HELPER_SOCKET_PATH],\n\t\t\tCOMMAND_TIMEOUT_MS,\n\t\t\tsignal,\n\t\t);\n\t}\n\n\tasync daemonCommand<T>(\n\t\tcmd: string,\n\t\targs: Record<string, unknown>,\n\t\ttimeoutMs: number,\n\t\tsignal?: AbortSignal,\n\t): Promise<T> {\n\t\treturn await new Promise<T>((resolve, reject) => {\n\t\t\tconst id = `req_${++this.requestSequence}`;\n\t\t\tconst socket = net.createConnection(HELPER_SOCKET_PATH);\n\t\t\tlet buffer = \"\";\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tsocket.destroy();\n\t\t\t\treject(new HelperTransportError(`Daemon command '${cmd}' timed out after ${timeoutMs}ms.`));\n\t\t\t}, timeoutMs);\n\t\t\tconst cleanup = () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t};\n\t\t\tconst onAbort = () => {\n\t\t\t\tsocket.destroy();\n\t\t\t\tcleanup();\n\t\t\t\treject(new Error(\"Operation aborted.\"));\n\t\t\t};\n\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\tsocket.setEncoding(\"utf8\");\n\t\t\tsocket.on(\"connect\", () => socket.write(`${JSON.stringify({ id, cmd, ...args })}\\n`));\n\t\t\tsocket.on(\"data\", (chunk) => {\n\t\t\t\tbuffer += chunk;\n\t\t\t\tconst newline = buffer.indexOf(\"\\n\");\n\t\t\t\tif (newline < 0) return;\n\t\t\t\tcleanup();\n\t\t\t\tsocket.end();\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(buffer.slice(0, newline));\n\t\t\t\t\tif (parsed.ok === true) resolve(parsed.result as T);\n\t\t\t\t\telse\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew HelperCommandError(\n\t\t\t\t\t\t\t\tparsed?.error?.message ?? `Daemon command '${cmd}' failed.`,\n\t\t\t\t\t\t\t\tparsed?.error?.code,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tsocket.on(\"error\", (error) => {\n\t\t\t\tcleanup();\n\t\t\t\treject(new HelperTransportError(error.message));\n\t\t\t});\n\t\t});\n\t}\n\n\tasync ensureDaemon(signal?: AbortSignal): Promise<boolean> {\n\t\tif (this.daemonAvailable) return true;\n\t\ttry {\n\t\t\tawait this.daemonCommand(\"diagnostics\", {}, 1_000, signal);\n\t\t\tthis.daemonAvailable = true;\n\t\t\treturn true;\n\t\t} catch {}\n\t\tawait this.launchDaemon(signal).catch(() => undefined);\n\t\tfor (let index = 0; index < 30; index += 1) {\n\t\t\ttry {\n\t\t\t\tawait this.daemonCommand(\"diagnostics\", {}, 1_000, signal);\n\t\t\t\tthis.daemonAvailable = true;\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\tawait sleep(100, signal);\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tasync command<T>(\n\t\tcmd: string,\n\t\targs: Record<string, unknown> = {},\n\t\toptions?: { timeoutMs?: number; signal?: AbortSignal },\n\t): Promise<T> {\n\t\tconst timeoutMs = options?.timeoutMs ?? COMMAND_TIMEOUT_MS;\n\t\tif (!(await this.ensureDaemon(options?.signal))) {\n\t\t\tthrow new HelperTransportError(`ada-computer-use helper app daemon is unavailable at ${HELPER_APP_PATH}.`);\n\t\t}\n\t\ttry {\n\t\t\treturn await this.daemonCommand<T>(cmd, args, timeoutMs, options?.signal);\n\t\t} catch (error) {\n\t\t\tthis.daemonAvailable = false;\n\t\t\tthrow error instanceof Error ? error : new Error(String(error));\n\t\t}\n\t}\n\n\tasync restart(signal?: AbortSignal): Promise<void> {\n\t\tawait this.command(\"shutdown\", {}, { signal, timeoutMs: 2_000 }).catch(() => undefined);\n\t\tthis.daemonAvailable = false;\n\t\tawait sleep(400, signal);\n\t\tif (!(await this.ensureDaemon(signal))) {\n\t\t\tthrow new Error(`ada-computer-use helper did not come back after restart. Helper app: ${HELPER_APP_PATH}`);\n\t\t}\n\t}\n\n\tasync diagnosticsCommand(signal?: AbortSignal): Promise<PlatformDiagnostics> {\n\t\tconst result = await this.command<any>(\"diagnostics\", {}, { signal });\n\t\tconst diagnostics = {\n\t\t\tprotocolVersion: Math.trunc(toFiniteNumber(result?.protocolVersion, 0)),\n\t\t\tarchitectureVersion: Math.trunc(toFiniteNumber(result?.architectureVersion, 0)),\n\t\t\tinvariants: Array.isArray(result?.invariants)\n\t\t\t\t? result.invariants.filter((value: unknown): value is string => typeof value === \"string\")\n\t\t\t\t: [],\n\t\t\tpid: Math.trunc(toFiniteNumber(result?.pid, 0)),\n\t\t\tparentPid: Math.trunc(toFiniteNumber(result?.parentPid, 0)) || undefined,\n\t\t\tparentAppName: toOptionalString(result?.parentAppName),\n\t\t\tparentBundleId: toOptionalString(result?.parentBundleId),\n\t\t\tparentPath: toOptionalString(result?.parentPath),\n\t\t\texecutablePath: toOptionalString(result?.executablePath),\n\t\t\tos: toOptionalString(result?.macOS),\n\t\t\tarch: toOptionalString(result?.arch),\n\t\t\taccessibility: toBoolean(result?.accessibility),\n\t\t\tscreenRecording: toBoolean(result?.screenRecording),\n\t\t};\n\t\tthis.diagnosticsCache = diagnostics;\n\t\treturn diagnostics;\n\t}\n\n\tasync ensureProtocol(signal?: AbortSignal): Promise<PlatformDiagnostics> {\n\t\tlet diagnostics = await this.diagnosticsCommand(signal);\n\t\tconst executableMatches = await isResolvedHelperExecutable(diagnostics.executablePath);\n\t\tif (diagnostics.protocolVersion === HELPER_PROTOCOL_VERSION && executableMatches) return diagnostics;\n\n\t\t// The helper daemon outlives Pi, so restarting/reloading Pi alone does not\n\t\t// replace a stale daemon or one launched from the legacy system location.\n\t\t// Stop it through the backwards-compatible command channel and relaunch\n\t\t// the exact app bundle that ensureInstalled() resolved.\n\t\tawait this.restart(signal);\n\t\tdiagnostics = await this.diagnosticsCommand(signal);\n\t\tconst relaunchedExecutableMatches = await isResolvedHelperExecutable(diagnostics.executablePath);\n\t\tif (diagnostics.protocolVersion !== HELPER_PROTOCOL_VERSION || !relaunchedExecutableMatches) {\n\t\t\tthis.daemonAvailable = false;\n\t\t\tthrow new Error(\n\t\t\t\t`ada-computer-use helper mismatch after relaunch: expected protocol ${HELPER_PROTOCOL_VERSION} and executable ${HELPER_APP_EXECUTABLE_PATH}; got protocol ${diagnostics.protocolVersion} and executable ${diagnostics.executablePath ?? \"unknown\"}. Reinstall or rebuild the helper app at ${HELPER_APP_PATH}.`,\n\t\t\t);\n\t\t}\n\t\treturn diagnostics;\n\t}\n}\n\nexport const macosHelper = new MacosHelperClient();\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExtensionContext } from "../../../../extensions/types.ts";
|
|
2
|
+
import type { PlatformReadyState } from "../types.ts";
|
|
3
|
+
export declare function ensureMacosReady(ctx: ExtensionContext, state: PlatformReadyState, signal?: AbortSignal): Promise<PlatformReadyState>;
|
|
4
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../../../src/core/computer/motor/platform/macos/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAIxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuFtD,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,kBAAkB,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAsD7B","sourcesContent":["import type { ExtensionContext } from \"../../../../extensions/types.ts\";\nimport { ensurePermissions, type PermissionKind, type PermissionStatus } from \"../../permissions.ts\";\nimport { assertPlatformArchitecture } from \"../architecture.ts\";\nimport { toBoolean, toFiniteNumber, toOptionalString } from \"../coerce.ts\";\nimport type { PlatformReadyState } from \"../types.ts\";\nimport { HELPER_APP_PATH, macosHelper } from \"./helper.ts\";\n\nconst GRANT_INSTRUCTIONS =\n\t\"Grant Accessibility and Screen Recording to ada-computer-use.app in System Settings → Privacy & Security. \" +\n\t\"Screen Recording lets the agent see the window; Accessibility lets it interact with the window.\";\n\nconst SIGNING_MIGRATION_WARNING =\n\t\"If these permissions were enabled before this install/update, macOS invalidated the old grants because \" +\n\t\"ada-computer-use.app was re-signed. Re-enable both toggles for the newly signed helper. \" +\n\t\"If a toggle is already on, switch it off and on again.\";\n\nconst macosPermissionKinds = [\n\t{ kind: \"accessibility\" as const, openOption: \"Open Accessibility Settings (missing)\" },\n\t{ kind: \"screenRecording\" as const, openOption: \"Open Screen Recording Settings (missing)\" },\n];\n\nfunction permissionStatusSummary(status: PermissionStatus): string {\n\tconst lines = [\n\t\t`Accessibility: ${status.accessibility ? \"granted\" : \"missing\"}`,\n\t\t`Screen Recording: ${status.screenRecording ? \"granted\" : \"missing\"}`,\n\t];\n\tif (status.screenRecordingPreflight && !status.screenRecording) {\n\t\tlines.push(\n\t\t\t\"(Screen Recording reads granted in the TCC database but a live capture probe failed — \" +\n\t\t\t\t\"the grant likely belongs to a different app identity, or the helper needs a restart.)\",\n\t\t);\n\t}\n\treturn lines.join(\"; \");\n}\n\nfunction permissionPrompt(status: PermissionStatus, helperPath: string, hint?: string): string {\n\treturn [\n\t\t\"ada-computer-use needs macOS permissions for its helper app.\",\n\t\tpermissionStatusSummary(status),\n\t\t\"\",\n\t\t`Helper: ada-computer-use.app (${helperPath})`,\n\t\thint,\n\t\t\"\",\n\t\t`Important: ${SIGNING_MIGRATION_WARNING}`,\n\t\t\"\",\n\t\t\"ada-computer-use.app is already listed in the pane(s) — enable its toggle, then choose Recheck.\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\"\\n\");\n}\n\nfunction missingPermissionMessage(kinds: PermissionKind[]): string {\n\treturn `Still missing after restart: ${kinds.join(\" and \")}. ${SIGNING_MIGRATION_WARNING} Then choose Recheck again.`;\n}\n\nasync function checkPermissions(signal?: AbortSignal): Promise<PermissionStatus> {\n\tconst result = await macosHelper.command<any>(\"checkPermissions\", {}, { signal });\n\tconst rawSource = result?.source;\n\treturn {\n\t\taccessibility: toBoolean(result?.accessibility),\n\t\t// Authoritative: the helper's live ScreenCaptureKit probe.\n\t\tscreenRecording: toBoolean(result?.screenRecordingCapturable),\n\t\t// Keep the preflight value separate: disagreement means stale per-process\n\t\t// TCC cache or a grant row belonging to another app identity.\n\t\tscreenRecordingPreflight: toBoolean(result?.screenRecordingPreflight),\n\t\tsource:\n\t\t\trawSource && typeof rawSource === \"object\"\n\t\t\t\t? {\n\t\t\t\t\t\t// macOS attributes Accessibility / Screen Recording grants to the\n\t\t\t\t\t\t// responsible process at the top of the launch chain. \"helper-app\"\n\t\t\t\t\t\t// is the canonical installed app via LaunchServices; \"caller\" means\n\t\t\t\t\t\t// grants would attach to the launching app instead.\n\t\t\t\t\t\tattribution: rawSource.attribution === \"helper-app\" ? \"helper-app\" : \"caller\",\n\t\t\t\t\t\tpid: Math.trunc(toFiniteNumber(rawSource.pid, 0)) || undefined,\n\t\t\t\t\t\tparentPid: Math.trunc(toFiniteNumber(rawSource.parentPid, 0)) || undefined,\n\t\t\t\t\t\texecutablePath: toOptionalString(rawSource.executablePath),\n\t\t\t\t\t\tparentPath: toOptionalString(rawSource.parentPath),\n\t\t\t\t\t\tparentBundleId: toOptionalString(rawSource.parentBundleId),\n\t\t\t\t\t\tos: toOptionalString(rawSource.macOS),\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t};\n}\n\nasync function registerPermissions(signal?: AbortSignal): Promise<void> {\n\t// Raises the Accessibility prompt and performs a real ScreenCaptureKit\n\t// capture attempt so ada-computer-use.app is pre-listed in both Settings\n\t// panes; the user only flips toggles, no \"+\" path picking.\n\tawait macosHelper.command(\"registerPermissions\", {}, { signal, timeoutMs: 15_000 });\n}\n\nexport async function ensureMacosReady(\n\tctx: ExtensionContext,\n\tstate: PlatformReadyState,\n\tsignal?: AbortSignal,\n): Promise<PlatformReadyState> {\n\tawait macosHelper.ensureInstalled(signal);\n\tif (!(await macosHelper.ensureDaemon(signal))) {\n\t\tthrow new Error(`ada-computer-use helper app daemon did not start. Helper app: ${HELPER_APP_PATH}`);\n\t}\n\tconst helperDiagnostics = await macosHelper.ensureProtocol(signal);\n\tassertPlatformArchitecture(\"macOS\", helperDiagnostics);\n\n\tconst now = Date.now();\n\tconst cachedStatus = state.permissionStatus;\n\tconst canUseCachedPermissions =\n\t\tcachedStatus?.accessibility && cachedStatus.screenRecording && now - state.lastPermissionCheckAt < 2_000;\n\tif (canUseCachedPermissions) {\n\t\treturn { ...state, helperDiagnostics };\n\t}\n\n\tlet permissionStatus = await checkPermissions(signal);\n\tlet lastPermissionCheckAt = now;\n\n\tif (!permissionStatus.accessibility || !permissionStatus.screenRecording) {\n\t\t// Attribution \"caller\" means the helper is not running as the\n\t\t// canonical installed app — grants would attach to the wrong identity.\n\t\tconst attributionHint =\n\t\t\tpermissionStatus.source?.attribution === \"caller\"\n\t\t\t\t? `Warning: the helper is not running as the installed ada-computer-use.app (executable: ${permissionStatus.source?.executablePath ?? \"unknown\"}). Grants made now would attach to the launching app instead. Restart Pi so the canonical helper is used.`\n\t\t\t\t: undefined;\n\t\tpermissionStatus = await ensurePermissions(\n\t\t\tctx,\n\t\t\t{\n\t\t\t\tkinds: macosPermissionKinds,\n\t\t\t\tcopy: {\n\t\t\t\t\tnonInteractiveError: (helperPath) =>\n\t\t\t\t\t\t`ada-computer-use setup requires an interactive session. Start pi in interactive mode. ${GRANT_INSTRUCTIONS}\\nHelper path: ${helperPath}`,\n\t\t\t\t\tprompt: permissionPrompt,\n\t\t\t\t\tincompleteError: (helperPath) =>\n\t\t\t\t\t\t`ada-computer-use setup is incomplete. ${GRANT_INSTRUCTIONS} Helper path: ${helperPath}`,\n\t\t\t\t\treadyMessage: \"ada-computer-use is ready.\",\n\t\t\t\t\tstillMissing: missingPermissionMessage,\n\t\t\t\t},\n\t\t\t\tcheckPermissions: (permissionSignal) => checkPermissions(permissionSignal ?? signal),\n\t\t\t\tregisterPermissions: (permissionSignal) => registerPermissions(permissionSignal ?? signal),\n\t\t\t\topenPermissionPane: async (kind, permissionSignal) => {\n\t\t\t\t\tawait macosHelper.command(\"openPermissionPane\", { kind }, { signal: permissionSignal ?? signal });\n\t\t\t\t},\n\t\t\t\trestartHelper: (permissionSignal) => macosHelper.restart(permissionSignal ?? signal),\n\t\t\t\tpermissionHint: attributionHint,\n\t\t\t},\n\t\t\tHELPER_APP_PATH,\n\t\t\tsignal,\n\t\t);\n\t\tlastPermissionCheckAt = Date.now();\n\t}\n\n\treturn { permissionStatus, lastPermissionCheckAt, helperDiagnostics };\n}\n"]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ensurePermissions } from "../../permissions.js";
|
|
2
|
+
import { assertPlatformArchitecture } from "../architecture.js";
|
|
3
|
+
import { toBoolean, toFiniteNumber, toOptionalString } from "../coerce.js";
|
|
4
|
+
import { HELPER_APP_PATH, macosHelper } from "./helper.js";
|
|
5
|
+
const GRANT_INSTRUCTIONS = "Grant Accessibility and Screen Recording to ada-computer-use.app in System Settings → Privacy & Security. " +
|
|
6
|
+
"Screen Recording lets the agent see the window; Accessibility lets it interact with the window.";
|
|
7
|
+
const SIGNING_MIGRATION_WARNING = "If these permissions were enabled before this install/update, macOS invalidated the old grants because " +
|
|
8
|
+
"ada-computer-use.app was re-signed. Re-enable both toggles for the newly signed helper. " +
|
|
9
|
+
"If a toggle is already on, switch it off and on again.";
|
|
10
|
+
const macosPermissionKinds = [
|
|
11
|
+
{ kind: "accessibility", openOption: "Open Accessibility Settings (missing)" },
|
|
12
|
+
{ kind: "screenRecording", openOption: "Open Screen Recording Settings (missing)" },
|
|
13
|
+
];
|
|
14
|
+
function permissionStatusSummary(status) {
|
|
15
|
+
const lines = [
|
|
16
|
+
`Accessibility: ${status.accessibility ? "granted" : "missing"}`,
|
|
17
|
+
`Screen Recording: ${status.screenRecording ? "granted" : "missing"}`,
|
|
18
|
+
];
|
|
19
|
+
if (status.screenRecordingPreflight && !status.screenRecording) {
|
|
20
|
+
lines.push("(Screen Recording reads granted in the TCC database but a live capture probe failed — " +
|
|
21
|
+
"the grant likely belongs to a different app identity, or the helper needs a restart.)");
|
|
22
|
+
}
|
|
23
|
+
return lines.join("; ");
|
|
24
|
+
}
|
|
25
|
+
function permissionPrompt(status, helperPath, hint) {
|
|
26
|
+
return [
|
|
27
|
+
"ada-computer-use needs macOS permissions for its helper app.",
|
|
28
|
+
permissionStatusSummary(status),
|
|
29
|
+
"",
|
|
30
|
+
`Helper: ada-computer-use.app (${helperPath})`,
|
|
31
|
+
hint,
|
|
32
|
+
"",
|
|
33
|
+
`Important: ${SIGNING_MIGRATION_WARNING}`,
|
|
34
|
+
"",
|
|
35
|
+
"ada-computer-use.app is already listed in the pane(s) — enable its toggle, then choose Recheck.",
|
|
36
|
+
]
|
|
37
|
+
.filter(Boolean)
|
|
38
|
+
.join("\n");
|
|
39
|
+
}
|
|
40
|
+
function missingPermissionMessage(kinds) {
|
|
41
|
+
return `Still missing after restart: ${kinds.join(" and ")}. ${SIGNING_MIGRATION_WARNING} Then choose Recheck again.`;
|
|
42
|
+
}
|
|
43
|
+
async function checkPermissions(signal) {
|
|
44
|
+
const result = await macosHelper.command("checkPermissions", {}, { signal });
|
|
45
|
+
const rawSource = result?.source;
|
|
46
|
+
return {
|
|
47
|
+
accessibility: toBoolean(result?.accessibility),
|
|
48
|
+
// Authoritative: the helper's live ScreenCaptureKit probe.
|
|
49
|
+
screenRecording: toBoolean(result?.screenRecordingCapturable),
|
|
50
|
+
// Keep the preflight value separate: disagreement means stale per-process
|
|
51
|
+
// TCC cache or a grant row belonging to another app identity.
|
|
52
|
+
screenRecordingPreflight: toBoolean(result?.screenRecordingPreflight),
|
|
53
|
+
source: rawSource && typeof rawSource === "object"
|
|
54
|
+
? {
|
|
55
|
+
// macOS attributes Accessibility / Screen Recording grants to the
|
|
56
|
+
// responsible process at the top of the launch chain. "helper-app"
|
|
57
|
+
// is the canonical installed app via LaunchServices; "caller" means
|
|
58
|
+
// grants would attach to the launching app instead.
|
|
59
|
+
attribution: rawSource.attribution === "helper-app" ? "helper-app" : "caller",
|
|
60
|
+
pid: Math.trunc(toFiniteNumber(rawSource.pid, 0)) || undefined,
|
|
61
|
+
parentPid: Math.trunc(toFiniteNumber(rawSource.parentPid, 0)) || undefined,
|
|
62
|
+
executablePath: toOptionalString(rawSource.executablePath),
|
|
63
|
+
parentPath: toOptionalString(rawSource.parentPath),
|
|
64
|
+
parentBundleId: toOptionalString(rawSource.parentBundleId),
|
|
65
|
+
os: toOptionalString(rawSource.macOS),
|
|
66
|
+
}
|
|
67
|
+
: undefined,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async function registerPermissions(signal) {
|
|
71
|
+
// Raises the Accessibility prompt and performs a real ScreenCaptureKit
|
|
72
|
+
// capture attempt so ada-computer-use.app is pre-listed in both Settings
|
|
73
|
+
// panes; the user only flips toggles, no "+" path picking.
|
|
74
|
+
await macosHelper.command("registerPermissions", {}, { signal, timeoutMs: 15_000 });
|
|
75
|
+
}
|
|
76
|
+
export async function ensureMacosReady(ctx, state, signal) {
|
|
77
|
+
await macosHelper.ensureInstalled(signal);
|
|
78
|
+
if (!(await macosHelper.ensureDaemon(signal))) {
|
|
79
|
+
throw new Error(`ada-computer-use helper app daemon did not start. Helper app: ${HELPER_APP_PATH}`);
|
|
80
|
+
}
|
|
81
|
+
const helperDiagnostics = await macosHelper.ensureProtocol(signal);
|
|
82
|
+
assertPlatformArchitecture("macOS", helperDiagnostics);
|
|
83
|
+
const now = Date.now();
|
|
84
|
+
const cachedStatus = state.permissionStatus;
|
|
85
|
+
const canUseCachedPermissions = cachedStatus?.accessibility && cachedStatus.screenRecording && now - state.lastPermissionCheckAt < 2_000;
|
|
86
|
+
if (canUseCachedPermissions) {
|
|
87
|
+
return { ...state, helperDiagnostics };
|
|
88
|
+
}
|
|
89
|
+
let permissionStatus = await checkPermissions(signal);
|
|
90
|
+
let lastPermissionCheckAt = now;
|
|
91
|
+
if (!permissionStatus.accessibility || !permissionStatus.screenRecording) {
|
|
92
|
+
// Attribution "caller" means the helper is not running as the
|
|
93
|
+
// canonical installed app — grants would attach to the wrong identity.
|
|
94
|
+
const attributionHint = permissionStatus.source?.attribution === "caller"
|
|
95
|
+
? `Warning: the helper is not running as the installed ada-computer-use.app (executable: ${permissionStatus.source?.executablePath ?? "unknown"}). Grants made now would attach to the launching app instead. Restart Pi so the canonical helper is used.`
|
|
96
|
+
: undefined;
|
|
97
|
+
permissionStatus = await ensurePermissions(ctx, {
|
|
98
|
+
kinds: macosPermissionKinds,
|
|
99
|
+
copy: {
|
|
100
|
+
nonInteractiveError: (helperPath) => `ada-computer-use setup requires an interactive session. Start pi in interactive mode. ${GRANT_INSTRUCTIONS}\nHelper path: ${helperPath}`,
|
|
101
|
+
prompt: permissionPrompt,
|
|
102
|
+
incompleteError: (helperPath) => `ada-computer-use setup is incomplete. ${GRANT_INSTRUCTIONS} Helper path: ${helperPath}`,
|
|
103
|
+
readyMessage: "ada-computer-use is ready.",
|
|
104
|
+
stillMissing: missingPermissionMessage,
|
|
105
|
+
},
|
|
106
|
+
checkPermissions: (permissionSignal) => checkPermissions(permissionSignal ?? signal),
|
|
107
|
+
registerPermissions: (permissionSignal) => registerPermissions(permissionSignal ?? signal),
|
|
108
|
+
openPermissionPane: async (kind, permissionSignal) => {
|
|
109
|
+
await macosHelper.command("openPermissionPane", { kind }, { signal: permissionSignal ?? signal });
|
|
110
|
+
},
|
|
111
|
+
restartHelper: (permissionSignal) => macosHelper.restart(permissionSignal ?? signal),
|
|
112
|
+
permissionHint: attributionHint,
|
|
113
|
+
}, HELPER_APP_PATH, signal);
|
|
114
|
+
lastPermissionCheckAt = Date.now();
|
|
115
|
+
}
|
|
116
|
+
return { permissionStatus, lastPermissionCheckAt, helperDiagnostics };
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../../../src/core/computer/motor/platform/macos/permissions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExtensionContext } from \"../../../../extensions/types.ts\";\nimport { ensurePermissions, type PermissionKind, type PermissionStatus } from \"../../permissions.ts\";\nimport { assertPlatformArchitecture } from \"../architecture.ts\";\nimport { toBoolean, toFiniteNumber, toOptionalString } from \"../coerce.ts\";\nimport type { PlatformReadyState } from \"../types.ts\";\nimport { HELPER_APP_PATH, macosHelper } from \"./helper.ts\";\n\nconst GRANT_INSTRUCTIONS =\n\t\"Grant Accessibility and Screen Recording to ada-computer-use.app in System Settings → Privacy & Security. \" +\n\t\"Screen Recording lets the agent see the window; Accessibility lets it interact with the window.\";\n\nconst SIGNING_MIGRATION_WARNING =\n\t\"If these permissions were enabled before this install/update, macOS invalidated the old grants because \" +\n\t\"ada-computer-use.app was re-signed. Re-enable both toggles for the newly signed helper. \" +\n\t\"If a toggle is already on, switch it off and on again.\";\n\nconst macosPermissionKinds = [\n\t{ kind: \"accessibility\" as const, openOption: \"Open Accessibility Settings (missing)\" },\n\t{ kind: \"screenRecording\" as const, openOption: \"Open Screen Recording Settings (missing)\" },\n];\n\nfunction permissionStatusSummary(status: PermissionStatus): string {\n\tconst lines = [\n\t\t`Accessibility: ${status.accessibility ? \"granted\" : \"missing\"}`,\n\t\t`Screen Recording: ${status.screenRecording ? \"granted\" : \"missing\"}`,\n\t];\n\tif (status.screenRecordingPreflight && !status.screenRecording) {\n\t\tlines.push(\n\t\t\t\"(Screen Recording reads granted in the TCC database but a live capture probe failed — \" +\n\t\t\t\t\"the grant likely belongs to a different app identity, or the helper needs a restart.)\",\n\t\t);\n\t}\n\treturn lines.join(\"; \");\n}\n\nfunction permissionPrompt(status: PermissionStatus, helperPath: string, hint?: string): string {\n\treturn [\n\t\t\"ada-computer-use needs macOS permissions for its helper app.\",\n\t\tpermissionStatusSummary(status),\n\t\t\"\",\n\t\t`Helper: ada-computer-use.app (${helperPath})`,\n\t\thint,\n\t\t\"\",\n\t\t`Important: ${SIGNING_MIGRATION_WARNING}`,\n\t\t\"\",\n\t\t\"ada-computer-use.app is already listed in the pane(s) — enable its toggle, then choose Recheck.\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\"\\n\");\n}\n\nfunction missingPermissionMessage(kinds: PermissionKind[]): string {\n\treturn `Still missing after restart: ${kinds.join(\" and \")}. ${SIGNING_MIGRATION_WARNING} Then choose Recheck again.`;\n}\n\nasync function checkPermissions(signal?: AbortSignal): Promise<PermissionStatus> {\n\tconst result = await macosHelper.command<any>(\"checkPermissions\", {}, { signal });\n\tconst rawSource = result?.source;\n\treturn {\n\t\taccessibility: toBoolean(result?.accessibility),\n\t\t// Authoritative: the helper's live ScreenCaptureKit probe.\n\t\tscreenRecording: toBoolean(result?.screenRecordingCapturable),\n\t\t// Keep the preflight value separate: disagreement means stale per-process\n\t\t// TCC cache or a grant row belonging to another app identity.\n\t\tscreenRecordingPreflight: toBoolean(result?.screenRecordingPreflight),\n\t\tsource:\n\t\t\trawSource && typeof rawSource === \"object\"\n\t\t\t\t? {\n\t\t\t\t\t\t// macOS attributes Accessibility / Screen Recording grants to the\n\t\t\t\t\t\t// responsible process at the top of the launch chain. \"helper-app\"\n\t\t\t\t\t\t// is the canonical installed app via LaunchServices; \"caller\" means\n\t\t\t\t\t\t// grants would attach to the launching app instead.\n\t\t\t\t\t\tattribution: rawSource.attribution === \"helper-app\" ? \"helper-app\" : \"caller\",\n\t\t\t\t\t\tpid: Math.trunc(toFiniteNumber(rawSource.pid, 0)) || undefined,\n\t\t\t\t\t\tparentPid: Math.trunc(toFiniteNumber(rawSource.parentPid, 0)) || undefined,\n\t\t\t\t\t\texecutablePath: toOptionalString(rawSource.executablePath),\n\t\t\t\t\t\tparentPath: toOptionalString(rawSource.parentPath),\n\t\t\t\t\t\tparentBundleId: toOptionalString(rawSource.parentBundleId),\n\t\t\t\t\t\tos: toOptionalString(rawSource.macOS),\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t};\n}\n\nasync function registerPermissions(signal?: AbortSignal): Promise<void> {\n\t// Raises the Accessibility prompt and performs a real ScreenCaptureKit\n\t// capture attempt so ada-computer-use.app is pre-listed in both Settings\n\t// panes; the user only flips toggles, no \"+\" path picking.\n\tawait macosHelper.command(\"registerPermissions\", {}, { signal, timeoutMs: 15_000 });\n}\n\nexport async function ensureMacosReady(\n\tctx: ExtensionContext,\n\tstate: PlatformReadyState,\n\tsignal?: AbortSignal,\n): Promise<PlatformReadyState> {\n\tawait macosHelper.ensureInstalled(signal);\n\tif (!(await macosHelper.ensureDaemon(signal))) {\n\t\tthrow new Error(`ada-computer-use helper app daemon did not start. Helper app: ${HELPER_APP_PATH}`);\n\t}\n\tconst helperDiagnostics = await macosHelper.ensureProtocol(signal);\n\tassertPlatformArchitecture(\"macOS\", helperDiagnostics);\n\n\tconst now = Date.now();\n\tconst cachedStatus = state.permissionStatus;\n\tconst canUseCachedPermissions =\n\t\tcachedStatus?.accessibility && cachedStatus.screenRecording && now - state.lastPermissionCheckAt < 2_000;\n\tif (canUseCachedPermissions) {\n\t\treturn { ...state, helperDiagnostics };\n\t}\n\n\tlet permissionStatus = await checkPermissions(signal);\n\tlet lastPermissionCheckAt = now;\n\n\tif (!permissionStatus.accessibility || !permissionStatus.screenRecording) {\n\t\t// Attribution \"caller\" means the helper is not running as the\n\t\t// canonical installed app — grants would attach to the wrong identity.\n\t\tconst attributionHint =\n\t\t\tpermissionStatus.source?.attribution === \"caller\"\n\t\t\t\t? `Warning: the helper is not running as the installed ada-computer-use.app (executable: ${permissionStatus.source?.executablePath ?? \"unknown\"}). Grants made now would attach to the launching app instead. Restart Pi so the canonical helper is used.`\n\t\t\t\t: undefined;\n\t\tpermissionStatus = await ensurePermissions(\n\t\t\tctx,\n\t\t\t{\n\t\t\t\tkinds: macosPermissionKinds,\n\t\t\t\tcopy: {\n\t\t\t\t\tnonInteractiveError: (helperPath) =>\n\t\t\t\t\t\t`ada-computer-use setup requires an interactive session. Start pi in interactive mode. ${GRANT_INSTRUCTIONS}\\nHelper path: ${helperPath}`,\n\t\t\t\t\tprompt: permissionPrompt,\n\t\t\t\t\tincompleteError: (helperPath) =>\n\t\t\t\t\t\t`ada-computer-use setup is incomplete. ${GRANT_INSTRUCTIONS} Helper path: ${helperPath}`,\n\t\t\t\t\treadyMessage: \"ada-computer-use is ready.\",\n\t\t\t\t\tstillMissing: missingPermissionMessage,\n\t\t\t\t},\n\t\t\t\tcheckPermissions: (permissionSignal) => checkPermissions(permissionSignal ?? signal),\n\t\t\t\tregisterPermissions: (permissionSignal) => registerPermissions(permissionSignal ?? signal),\n\t\t\t\topenPermissionPane: async (kind, permissionSignal) => {\n\t\t\t\t\tawait macosHelper.command(\"openPermissionPane\", { kind }, { signal: permissionSignal ?? signal });\n\t\t\t\t},\n\t\t\t\trestartHelper: (permissionSignal) => macosHelper.restart(permissionSignal ?? signal),\n\t\t\t\tpermissionHint: attributionHint,\n\t\t\t},\n\t\t\tHELPER_APP_PATH,\n\t\t\tsignal,\n\t\t);\n\t\tlastPermissionCheckAt = Date.now();\n\t}\n\n\treturn { permissionStatus, lastPermissionCheckAt, helperDiagnostics };\n}\n"]}
|