@hoilab/ada-cli 0.84.21 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -2
- package/README.es.md +174 -0
- package/README.md +203 -658
- package/dist/ada-publico.d.ts +35 -0
- package/dist/ada-publico.d.ts.map +1 -0
- package/dist/ada-publico.js +40 -0
- package/dist/ada-publico.js.map +1 -0
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit-command.d.ts +15 -0
- package/dist/cli/audit-command.d.ts.map +1 -0
- package/dist/cli/audit-command.js +280 -0
- package/dist/cli/audit-command.js.map +1 -0
- package/dist/cli/banco-command.d.ts +15 -0
- package/dist/cli/banco-command.d.ts.map +1 -0
- package/dist/cli/banco-command.js +213 -0
- package/dist/cli/banco-command.js.map +1 -0
- package/dist/cli/cleanse-command.d.ts +11 -0
- package/dist/cli/cleanse-command.d.ts.map +1 -0
- package/dist/cli/cleanse-command.js +101 -0
- package/dist/cli/cleanse-command.js.map +1 -0
- package/dist/cli/commit-command.d.ts +31 -0
- package/dist/cli/commit-command.d.ts.map +1 -0
- package/dist/cli/commit-command.js +158 -0
- package/dist/cli/commit-command.js.map +1 -0
- package/dist/cli/computer-command.d.ts +12 -0
- package/dist/cli/computer-command.d.ts.map +1 -0
- package/dist/cli/computer-command.js +141 -0
- package/dist/cli/computer-command.js.map +1 -0
- package/dist/cli/discover-command.d.ts +18 -0
- package/dist/cli/discover-command.d.ts.map +1 -0
- package/dist/cli/discover-command.js +108 -0
- package/dist/cli/discover-command.js.map +1 -0
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/hashline-command.d.ts +11 -0
- package/dist/cli/hashline-command.d.ts.map +1 -0
- package/dist/cli/hashline-command.js +106 -0
- package/dist/cli/hashline-command.js.map +1 -0
- package/dist/cli/home-screen.d.ts.map +1 -1
- package/dist/cli/home-screen.js +2 -2
- package/dist/cli/home-screen.js.map +1 -1
- package/dist/cli/import-command.d.ts +35 -0
- package/dist/cli/import-command.d.ts.map +1 -0
- package/dist/cli/import-command.js +164 -0
- package/dist/cli/import-command.js.map +1 -0
- package/dist/cli/politica-command.d.ts +20 -0
- package/dist/cli/politica-command.d.ts.map +1 -0
- package/dist/cli/politica-command.js +93 -0
- package/dist/cli/politica-command.js.map +1 -0
- package/dist/cli/refine-command.d.ts +18 -0
- package/dist/cli/refine-command.d.ts.map +1 -0
- package/dist/cli/refine-command.js +101 -0
- package/dist/cli/refine-command.js.map +1 -0
- package/dist/cli/review-command.d.ts +24 -0
- package/dist/cli/review-command.d.ts.map +1 -0
- package/dist/cli/review-command.js +168 -0
- package/dist/cli/review-command.js.map +1 -0
- package/dist/cli/schedule-command.d.ts +17 -0
- package/dist/cli/schedule-command.d.ts.map +1 -0
- package/dist/cli/schedule-command.js +117 -0
- package/dist/cli/schedule-command.js.map +1 -0
- package/dist/cli/serve-command.d.ts +72 -0
- package/dist/cli/serve-command.d.ts.map +1 -0
- package/dist/cli/serve-command.js +568 -0
- package/dist/cli/serve-command.js.map +1 -0
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +9 -3
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli/telegram-command.d.ts +18 -0
- package/dist/cli/telegram-command.d.ts.map +1 -0
- package/dist/cli/telegram-command.js +137 -0
- package/dist/cli/telegram-command.js.map +1 -0
- package/dist/cli/telemetria-command.d.ts +22 -0
- package/dist/cli/telemetria-command.d.ts.map +1 -0
- package/dist/cli/telemetria-command.js +127 -0
- package/dist/cli/telemetria-command.js.map +1 -0
- package/dist/cli/undo-command.d.ts +9 -0
- package/dist/cli/undo-command.d.ts.map +1 -0
- package/dist/cli/undo-command.js +56 -0
- package/dist/cli/undo-command.js.map +1 -0
- package/dist/cli/usage-command.d.ts +10 -0
- package/dist/cli/usage-command.d.ts.map +1 -0
- package/dist/cli/usage-command.js +209 -0
- package/dist/cli/usage-command.js.map +1 -0
- package/dist/cli/wiki-command.d.ts +9 -0
- package/dist/cli/wiki-command.d.ts.map +1 -0
- package/dist/cli/wiki-command.js +76 -0
- package/dist/cli/wiki-command.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -11
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -2
- package/dist/config.js.map +1 -1
- package/dist/core/ada.d.ts +58 -0
- package/dist/core/ada.d.ts.map +1 -0
- package/dist/core/ada.js +61 -0
- package/dist/core/ada.js.map +1 -0
- package/dist/core/advisor/guarda.d.ts +66 -0
- package/dist/core/advisor/guarda.d.ts.map +1 -0
- package/dist/core/advisor/guarda.js +191 -0
- package/dist/core/advisor/guarda.js.map +1 -0
- package/dist/core/advisor/runtime.d.ts +66 -0
- package/dist/core/advisor/runtime.d.ts.map +1 -0
- package/dist/core/advisor/runtime.js +121 -0
- package/dist/core/advisor/runtime.js.map +1 -0
- package/dist/core/advisor/sesion.d.ts +109 -0
- package/dist/core/advisor/sesion.d.ts.map +1 -0
- package/dist/core/advisor/sesion.js +139 -0
- package/dist/core/advisor/sesion.js.map +1 -0
- package/dist/core/agent-session.d.ts +85 -7
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +862 -78
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents/loader.d.ts +77 -0
- package/dist/core/agents/loader.d.ts.map +1 -0
- package/dist/core/agents/loader.js +154 -0
- package/dist/core/agents/loader.js.map +1 -0
- package/dist/core/aprobacion/generados.d.ts +37 -0
- package/dist/core/aprobacion/generados.d.ts.map +1 -0
- package/dist/core/aprobacion/generados.js +85 -0
- package/dist/core/aprobacion/generados.js.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts +90 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.js +212 -0
- package/dist/core/aprobacion/politica-de-maquina.js.map +1 -0
- package/dist/core/aprobacion/politica.d.ts +90 -0
- package/dist/core/aprobacion/politica.d.ts.map +1 -0
- package/dist/core/aprobacion/politica.js +375 -0
- package/dist/core/aprobacion/politica.js.map +1 -0
- package/dist/core/arranque/atajos.d.ts +46 -0
- package/dist/core/arranque/atajos.d.ts.map +1 -0
- package/dist/core/arranque/atajos.js +113 -0
- package/dist/core/arranque/atajos.js.map +1 -0
- package/dist/core/audit/exportacion.d.ts +54 -0
- package/dist/core/audit/exportacion.d.ts.map +1 -0
- package/dist/core/audit/exportacion.js +265 -0
- package/dist/core/audit/exportacion.js.map +1 -0
- package/dist/core/audit/libro.d.ts +318 -0
- package/dist/core/audit/libro.d.ts.map +1 -0
- package/dist/core/audit/libro.js +508 -0
- package/dist/core/audit/libro.js.map +1 -0
- package/dist/core/audit/registro-sesion.d.ts +78 -0
- package/dist/core/audit/registro-sesion.d.ts.map +1 -0
- package/dist/core/audit/registro-sesion.js +202 -0
- package/dist/core/audit/registro-sesion.js.map +1 -0
- package/dist/core/audit/retencion.d.ts +82 -0
- package/dist/core/audit/retencion.d.ts.map +1 -0
- package/dist/core/audit/retencion.js +152 -0
- package/dist/core/audit/retencion.js.map +1 -0
- package/dist/core/audit/rutas.d.ts +23 -0
- package/dist/core/audit/rutas.d.ts.map +1 -0
- package/dist/core/audit/rutas.js +23 -0
- package/dist/core/audit/rutas.js.map +1 -0
- package/dist/core/auth-storage.d.ts +0 -3
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +21 -8
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/banco/almacenamiento.d.ts +18 -0
- package/dist/core/banco/almacenamiento.d.ts.map +1 -0
- package/dist/core/banco/almacenamiento.js +50 -0
- package/dist/core/banco/almacenamiento.js.map +1 -0
- package/dist/core/banco/analisis.d.ts +37 -0
- package/dist/core/banco/analisis.d.ts.map +1 -0
- package/dist/core/banco/analisis.js +164 -0
- package/dist/core/banco/analisis.js.map +1 -0
- package/dist/core/banco/bloques.d.ts +39 -0
- package/dist/core/banco/bloques.d.ts.map +1 -0
- package/dist/core/banco/bloques.js +84 -0
- package/dist/core/banco/bloques.js.map +1 -0
- package/dist/core/banco/cargas.d.ts +84 -0
- package/dist/core/banco/cargas.d.ts.map +1 -0
- package/dist/core/banco/cargas.js +520 -0
- package/dist/core/banco/cargas.js.map +1 -0
- package/dist/core/banco/comparar.d.ts +29 -0
- package/dist/core/banco/comparar.d.ts.map +1 -0
- package/dist/core/banco/comparar.js +28 -0
- package/dist/core/banco/comparar.js.map +1 -0
- package/dist/core/banco/ejecutar.d.ts +44 -0
- package/dist/core/banco/ejecutar.d.ts.map +1 -0
- package/dist/core/banco/ejecutar.js +183 -0
- package/dist/core/banco/ejecutar.js.map +1 -0
- package/dist/core/banco/generar.d.ts +24 -0
- package/dist/core/banco/generar.d.ts.map +1 -0
- package/dist/core/banco/generar.js +159 -0
- package/dist/core/banco/generar.js.map +1 -0
- package/dist/core/banco/mutaciones.d.ts +25 -0
- package/dist/core/banco/mutaciones.d.ts.map +1 -0
- package/dist/core/banco/mutaciones.js +215 -0
- package/dist/core/banco/mutaciones.js.map +1 -0
- package/dist/core/banco/tipos.d.ts +121 -0
- package/dist/core/banco/tipos.d.ts.map +1 -0
- package/dist/core/banco/tipos.js +16 -0
- package/dist/core/banco/tipos.js.map +1 -0
- package/dist/core/blobs/almacen.d.ts +81 -0
- package/dist/core/blobs/almacen.d.ts.map +1 -0
- package/dist/core/blobs/almacen.js +198 -0
- package/dist/core/blobs/almacen.js.map +1 -0
- package/dist/core/blobs/broker.d.ts +103 -0
- package/dist/core/blobs/broker.d.ts.map +1 -0
- package/dist/core/blobs/broker.js +204 -0
- package/dist/core/blobs/broker.js.map +1 -0
- package/dist/core/blobs/index.d.ts +70 -0
- package/dist/core/blobs/index.d.ts.map +1 -0
- package/dist/core/blobs/index.js +232 -0
- package/dist/core/blobs/index.js.map +1 -0
- package/dist/core/blobs/payload.d.ts +55 -0
- package/dist/core/blobs/payload.d.ts.map +1 -0
- package/dist/core/blobs/payload.js +255 -0
- package/dist/core/blobs/payload.js.map +1 -0
- package/dist/core/blobs/proveedor.d.ts +85 -0
- package/dist/core/blobs/proveedor.d.ts.map +1 -0
- package/dist/core/blobs/proveedor.js +196 -0
- package/dist/core/blobs/proveedor.js.map +1 -0
- package/dist/core/browser/cdp.d.ts +41 -0
- package/dist/core/browser/cdp.d.ts.map +1 -0
- package/dist/core/browser/cdp.js +119 -0
- package/dist/core/browser/cdp.js.map +1 -0
- package/dist/core/browser/politica.d.ts +51 -0
- package/dist/core/browser/politica.d.ts.map +1 -0
- package/dist/core/browser/politica.js +123 -0
- package/dist/core/browser/politica.js.map +1 -0
- package/dist/core/browser/sesion.d.ts +52 -0
- package/dist/core/browser/sesion.d.ts.map +1 -0
- package/dist/core/browser/sesion.js +176 -0
- package/dist/core/browser/sesion.js.map +1 -0
- package/dist/core/browser/tools.d.ts +16 -0
- package/dist/core/browser/tools.d.ts.map +1 -0
- package/dist/core/browser/tools.js +279 -0
- package/dist/core/browser/tools.js.map +1 -0
- package/dist/core/commit/diff.d.ts +56 -0
- package/dist/core/commit/diff.d.ts.map +1 -0
- package/dist/core/commit/diff.js +145 -0
- package/dist/core/commit/diff.js.map +1 -0
- package/dist/core/commit/mensaje.d.ts +80 -0
- package/dist/core/commit/mensaje.d.ts.map +1 -0
- package/dist/core/commit/mensaje.js +207 -0
- package/dist/core/commit/mensaje.js.map +1 -0
- package/dist/core/compactar/index.d.ts +52 -0
- package/dist/core/compactar/index.d.ts.map +1 -0
- package/dist/core/compactar/index.js +91 -0
- package/dist/core/compactar/index.js.map +1 -0
- package/dist/core/compactar/registro-denso.d.ts +160 -0
- package/dist/core/compactar/registro-denso.d.ts.map +1 -0
- package/dist/core/compactar/registro-denso.js +620 -0
- package/dist/core/compactar/registro-denso.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +4 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +41 -32
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/computer/captura.d.ts +35 -0
- package/dist/core/computer/captura.d.ts.map +1 -0
- package/dist/core/computer/captura.js +140 -0
- package/dist/core/computer/captura.js.map +1 -0
- package/dist/core/computer/driver.d.ts +130 -0
- package/dist/core/computer/driver.d.ts.map +1 -0
- package/dist/core/computer/driver.js +206 -0
- package/dist/core/computer/driver.js.map +1 -0
- package/dist/core/computer/motor/actions.d.ts +109 -0
- package/dist/core/computer/motor/actions.d.ts.map +1 -0
- package/dist/core/computer/motor/actions.js +157 -0
- package/dist/core/computer/motor/actions.js.map +1 -0
- package/dist/core/computer/motor/bridge.d.ts +232 -0
- package/dist/core/computer/motor/bridge.d.ts.map +1 -0
- package/dist/core/computer/motor/bridge.js +2335 -0
- package/dist/core/computer/motor/bridge.js.map +1 -0
- package/dist/core/computer/motor/cdp.d.ts +107 -0
- package/dist/core/computer/motor/cdp.d.ts.map +1 -0
- package/dist/core/computer/motor/cdp.js +659 -0
- package/dist/core/computer/motor/cdp.js.map +1 -0
- package/dist/core/computer/motor/config.d.ts +23 -0
- package/dist/core/computer/motor/config.d.ts.map +1 -0
- package/dist/core/computer/motor/config.js +100 -0
- package/dist/core/computer/motor/config.js.map +1 -0
- package/dist/core/computer/motor/contract.d.ts +81 -0
- package/dist/core/computer/motor/contract.d.ts.map +1 -0
- package/dist/core/computer/motor/contract.js +14 -0
- package/dist/core/computer/motor/contract.js.map +1 -0
- package/dist/core/computer/motor/note.d.ts +37 -0
- package/dist/core/computer/motor/note.d.ts.map +1 -0
- package/dist/core/computer/motor/note.js +162 -0
- package/dist/core/computer/motor/note.js.map +1 -0
- package/dist/core/computer/motor/outline.d.ts +155 -0
- package/dist/core/computer/motor/outline.d.ts.map +1 -0
- package/dist/core/computer/motor/outline.js +590 -0
- package/dist/core/computer/motor/outline.js.map +1 -0
- package/dist/core/computer/motor/output.d.ts +18 -0
- package/dist/core/computer/motor/output.d.ts.map +1 -0
- package/dist/core/computer/motor/output.js +148 -0
- package/dist/core/computer/motor/output.js.map +1 -0
- package/dist/core/computer/motor/permissions.d.ts +41 -0
- package/dist/core/computer/motor/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/permissions.js +51 -0
- package/dist/core/computer/motor/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/architecture.d.ts +5 -0
- package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/architecture.js +21 -0
- package/dist/core/computer/motor/platform/architecture.js.map +1 -0
- package/dist/core/computer/motor/platform/coerce.d.ts +4 -0
- package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/coerce.js +17 -0
- package/dist/core/computer/motor/platform/coerce.js.map +1 -0
- package/dist/core/computer/motor/platform/index.d.ts +4 -0
- package/dist/core/computer/motor/platform/index.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/index.js +79 -0
- package/dist/core/computer/motor/platform/index.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.js +173 -0
- package/dist/core/computer/motor/platform/linux/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts +29 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.js +261 -0
- package/dist/core/computer/motor/platform/linux/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.js +124 -0
- package/dist/core/computer/motor/platform/macos/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts +7 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.js +101 -0
- package/dist/core/computer/motor/platform/macos/browser.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper-path.mjs +34 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts +32 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper.js +277 -0
- package/dist/core/computer/motor/platform/macos/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts +4 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.js +118 -0
- package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/types.d.ts +263 -0
- package/dist/core/computer/motor/platform/types.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/types.js +2 -0
- package/dist/core/computer/motor/platform/types.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.js +163 -0
- package/dist/core/computer/motor/platform/windows/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts +18 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.js +174 -0
- package/dist/core/computer/motor/platform/windows/helper.js.map +1 -0
- package/dist/core/computer/motor/root-selection.d.ts +6 -0
- package/dist/core/computer/motor/root-selection.d.ts.map +1 -0
- package/dist/core/computer/motor/root-selection.js +28 -0
- package/dist/core/computer/motor/root-selection.js.map +1 -0
- package/dist/core/computer/motor/runtime.d.ts +50 -0
- package/dist/core/computer/motor/runtime.d.ts.map +1 -0
- package/dist/core/computer/motor/runtime.js +119 -0
- package/dist/core/computer/motor/runtime.js.map +1 -0
- package/dist/core/computer/motor/state.d.ts +68 -0
- package/dist/core/computer/motor/state.d.ts.map +1 -0
- package/dist/core/computer/motor/state.js +100 -0
- package/dist/core/computer/motor/state.js.map +1 -0
- package/dist/core/computer/motor/view.d.ts +6 -0
- package/dist/core/computer/motor/view.d.ts.map +1 -0
- package/dist/core/computer/motor/view.js +185 -0
- package/dist/core/computer/motor/view.js.map +1 -0
- package/dist/core/computer/motor-ada.d.ts +159 -0
- package/dist/core/computer/motor-ada.d.ts.map +1 -0
- package/dist/core/computer/motor-ada.js +412 -0
- package/dist/core/computer/motor-ada.js.map +1 -0
- package/dist/core/computer/politica.d.ts +56 -0
- package/dist/core/computer/politica.d.ts.map +1 -0
- package/dist/core/computer/politica.js +163 -0
- package/dist/core/computer/politica.js.map +1 -0
- package/dist/core/computer/tools.d.ts +26 -0
- package/dist/core/computer/tools.d.ts.map +1 -0
- package/dist/core/computer/tools.js +399 -0
- package/dist/core/computer/tools.js.map +1 -0
- package/dist/core/context-breakdown.d.ts +80 -0
- package/dist/core/context-breakdown.d.ts.map +1 -0
- package/dist/core/context-breakdown.js +87 -0
- package/dist/core/context-breakdown.js.map +1 -0
- package/dist/core/credenciales/cliente.d.ts +60 -0
- package/dist/core/credenciales/cliente.d.ts.map +1 -0
- package/dist/core/credenciales/cliente.js +81 -0
- package/dist/core/credenciales/cliente.js.map +1 -0
- package/dist/core/credenciales/pool.d.ts +96 -0
- package/dist/core/credenciales/pool.d.ts.map +1 -0
- package/dist/core/credenciales/pool.js +128 -0
- package/dist/core/credenciales/pool.js.map +1 -0
- package/dist/core/credenciales/reposo.d.ts +93 -0
- package/dist/core/credenciales/reposo.d.ts.map +1 -0
- package/dist/core/credenciales/reposo.js +489 -0
- package/dist/core/credenciales/reposo.js.map +1 -0
- package/dist/core/credenciales/servidor.d.ts +55 -0
- package/dist/core/credenciales/servidor.d.ts.map +1 -0
- package/dist/core/credenciales/servidor.js +205 -0
- package/dist/core/credenciales/servidor.js.map +1 -0
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/descubrimiento/comandos.d.ts +30 -0
- package/dist/core/descubrimiento/comandos.d.ts.map +1 -0
- package/dist/core/descubrimiento/comandos.js +76 -0
- package/dist/core/descubrimiento/comandos.js.map +1 -0
- package/dist/core/descubrimiento/mcp.d.ts +42 -0
- package/dist/core/descubrimiento/mcp.d.ts.map +1 -0
- package/dist/core/descubrimiento/mcp.js +130 -0
- package/dist/core/descubrimiento/mcp.js.map +1 -0
- package/dist/core/descubrimiento/reglas.d.ts +61 -0
- package/dist/core/descubrimiento/reglas.d.ts.map +1 -0
- package/dist/core/descubrimiento/reglas.js +134 -0
- package/dist/core/descubrimiento/reglas.js.map +1 -0
- package/dist/core/descubrimiento/skills.d.ts +57 -0
- package/dist/core/descubrimiento/skills.d.ts.map +1 -0
- package/dist/core/descubrimiento/skills.js +113 -0
- package/dist/core/descubrimiento/skills.js.map +1 -0
- package/dist/core/dificultad/clasificador.d.ts +133 -0
- package/dist/core/dificultad/clasificador.d.ts.map +1 -0
- package/dist/core/dificultad/clasificador.js +288 -0
- package/dist/core/dificultad/clasificador.js.map +1 -0
- package/dist/core/edicion/diario.d.ts +37 -0
- package/dist/core/edicion/diario.d.ts.map +1 -0
- package/dist/core/edicion/diario.js +51 -0
- package/dist/core/edicion/diario.js.map +1 -0
- package/dist/core/edicion/hashline.d.ts +71 -0
- package/dist/core/edicion/hashline.d.ts.map +1 -0
- package/dist/core/edicion/hashline.js +111 -0
- package/dist/core/edicion/hashline.js.map +1 -0
- package/dist/core/edicion/hueco.d.ts +64 -0
- package/dist/core/edicion/hueco.d.ts.map +1 -0
- package/dist/core/edicion/hueco.js +162 -0
- package/dist/core/edicion/hueco.js.map +1 -0
- package/dist/core/edicion/limpiar-carga.d.ts +39 -0
- package/dist/core/edicion/limpiar-carga.d.ts.map +1 -0
- package/dist/core/edicion/limpiar-carga.js +121 -0
- package/dist/core/edicion/limpiar-carga.js.map +1 -0
- package/dist/core/edicion/observador.d.ts +80 -0
- package/dist/core/edicion/observador.d.ts.map +1 -0
- package/dist/core/edicion/observador.js +183 -0
- package/dist/core/edicion/observador.js.map +1 -0
- package/dist/core/edicion/parecido.d.ts +53 -0
- package/dist/core/edicion/parecido.d.ts.map +1 -0
- package/dist/core/edicion/parecido.js +145 -0
- package/dist/core/edicion/parecido.js.map +1 -0
- package/dist/core/edicion/parseo.d.ts +58 -0
- package/dist/core/edicion/parseo.d.ts.map +1 -0
- package/dist/core/edicion/parseo.js +124 -0
- package/dist/core/edicion/parseo.js.map +1 -0
- package/dist/core/edicion/reparacion.d.ts +67 -0
- package/dist/core/edicion/reparacion.d.ts.map +1 -0
- package/dist/core/edicion/reparacion.js +202 -0
- package/dist/core/edicion/reparacion.js.map +1 -0
- package/dist/core/edicion/sangria.d.ts +121 -0
- package/dist/core/edicion/sangria.d.ts.map +1 -0
- package/dist/core/edicion/sangria.js +341 -0
- package/dist/core/edicion/sangria.js.map +1 -0
- package/dist/core/edicion/tipos.d.ts +58 -0
- package/dist/core/edicion/tipos.d.ts.map +1 -0
- package/dist/core/edicion/tipos.js +160 -0
- package/dist/core/edicion/tipos.js.map +1 -0
- package/dist/core/engine-personality.d.ts +12 -0
- package/dist/core/engine-personality.d.ts.map +1 -0
- package/dist/core/engine-personality.js +53 -0
- package/dist/core/engine-personality.js.map +1 -0
- package/dist/core/errores/proveedor.d.ts +53 -0
- package/dist/core/errores/proveedor.d.ts.map +1 -0
- package/dist/core/errores/proveedor.js +191 -0
- package/dist/core/errores/proveedor.js.map +1 -0
- package/dist/core/estructural/buscar.d.ts +61 -0
- package/dist/core/estructural/buscar.d.ts.map +1 -0
- package/dist/core/estructural/buscar.js +261 -0
- package/dist/core/estructural/buscar.js.map +1 -0
- package/dist/core/estructural/editar.d.ts +36 -0
- package/dist/core/estructural/editar.d.ts.map +1 -0
- package/dist/core/estructural/editar.js +123 -0
- package/dist/core/estructural/editar.js.map +1 -0
- package/dist/core/estructural/tools.d.ts +11 -0
- package/dist/core/estructural/tools.d.ts.map +1 -0
- package/dist/core/estructural/tools.js +100 -0
- package/dist/core/estructural/tools.js.map +1 -0
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +10 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/extensiones/suplantacion.d.ts +49 -0
- package/dist/core/extensiones/suplantacion.d.ts.map +1 -0
- package/dist/core/extensiones/suplantacion.js +61 -0
- package/dist/core/extensiones/suplantacion.js.map +1 -0
- package/dist/core/extensiones/vigilancia.d.ts +54 -0
- package/dist/core/extensiones/vigilancia.d.ts.map +1 -0
- package/dist/core/extensiones/vigilancia.js +217 -0
- package/dist/core/extensiones/vigilancia.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +21 -6
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +23 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/harness/fuentes-de-contexto.d.ts +29 -0
- package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -0
- package/dist/core/harness/fuentes-de-contexto.js +44 -0
- package/dist/core/harness/fuentes-de-contexto.js.map +1 -0
- package/dist/core/harness/refine.d.ts +40 -0
- package/dist/core/harness/refine.d.ts.map +1 -0
- package/dist/core/harness/refine.js +109 -0
- package/dist/core/harness/refine.js.map +1 -0
- package/dist/core/harness/store.d.ts +75 -0
- package/dist/core/harness/store.d.ts.map +1 -0
- package/dist/core/harness/store.js +149 -0
- package/dist/core/harness/store.js.map +1 -0
- package/dist/core/hooks/contract.d.ts +85 -0
- package/dist/core/hooks/contract.d.ts.map +1 -0
- package/dist/core/hooks/contract.js +140 -0
- package/dist/core/hooks/contract.js.map +1 -0
- package/dist/core/hooks/runner.d.ts +42 -0
- package/dist/core/hooks/runner.d.ts.map +1 -0
- package/dist/core/hooks/runner.js +85 -0
- package/dist/core/hooks/runner.js.map +1 -0
- package/dist/core/hooks/session-hooks.d.ts +62 -0
- package/dist/core/hooks/session-hooks.d.ts.map +1 -0
- package/dist/core/hooks/session-hooks.js +84 -0
- package/dist/core/hooks/session-hooks.js.map +1 -0
- package/dist/core/importar/formatos.d.ts +69 -0
- package/dist/core/importar/formatos.d.ts.map +1 -0
- package/dist/core/importar/formatos.js +235 -0
- package/dist/core/importar/formatos.js.map +1 -0
- package/dist/core/interactivo/deteccion.d.ts +44 -0
- package/dist/core/interactivo/deteccion.d.ts.map +1 -0
- package/dist/core/interactivo/deteccion.js +82 -0
- package/dist/core/interactivo/deteccion.js.map +1 -0
- package/dist/core/interactivo/sesion.d.ts +50 -0
- package/dist/core/interactivo/sesion.d.ts.map +1 -0
- package/dist/core/interactivo/sesion.js +156 -0
- package/dist/core/interactivo/sesion.js.map +1 -0
- package/dist/core/interactivo/tools.d.ts +21 -0
- package/dist/core/interactivo/tools.d.ts.map +1 -0
- package/dist/core/interactivo/tools.js +122 -0
- package/dist/core/interactivo/tools.js.map +1 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lectura/mapa.d.ts +70 -0
- package/dist/core/lectura/mapa.d.ts.map +1 -0
- package/dist/core/lectura/mapa.js +177 -0
- package/dist/core/lectura/mapa.js.map +1 -0
- package/dist/core/lectura/pdf.d.ts +49 -0
- package/dist/core/lectura/pdf.d.ts.map +1 -0
- package/dist/core/lectura/pdf.js +337 -0
- package/dist/core/lectura/pdf.js.map +1 -0
- package/dist/core/limpieza/comprobadores.d.ts +28 -0
- package/dist/core/limpieza/comprobadores.d.ts.map +1 -0
- package/dist/core/limpieza/comprobadores.js +311 -0
- package/dist/core/limpieza/comprobadores.js.map +1 -0
- package/dist/core/limpieza/parseo.d.ts +19 -0
- package/dist/core/limpieza/parseo.d.ts.map +1 -0
- package/dist/core/limpieza/parseo.js +124 -0
- package/dist/core/limpieza/parseo.js.map +1 -0
- package/dist/core/limpieza/reparacion.d.ts +77 -0
- package/dist/core/limpieza/reparacion.d.ts.map +1 -0
- package/dist/core/limpieza/reparacion.js +254 -0
- package/dist/core/limpieza/reparacion.js.map +1 -0
- package/dist/core/limpieza/tipos.d.ts +56 -0
- package/dist/core/limpieza/tipos.d.ts.map +1 -0
- package/dist/core/limpieza/tipos.js +9 -0
- package/dist/core/limpieza/tipos.js.map +1 -0
- package/dist/core/lsp/cliente.d.ts +52 -0
- package/dist/core/lsp/cliente.d.ts.map +1 -0
- package/dist/core/lsp/cliente.js +232 -0
- package/dist/core/lsp/cliente.js.map +1 -0
- package/dist/core/lsp/descubrimiento.d.ts +62 -0
- package/dist/core/lsp/descubrimiento.d.ts.map +1 -0
- package/dist/core/lsp/descubrimiento.js +152 -0
- package/dist/core/lsp/descubrimiento.js.map +1 -0
- package/dist/core/lsp/ediciones.d.ts +59 -0
- package/dist/core/lsp/ediciones.d.ts.map +1 -0
- package/dist/core/lsp/ediciones.js +89 -0
- package/dist/core/lsp/ediciones.js.map +1 -0
- package/dist/core/lsp/extension.d.ts +28 -0
- package/dist/core/lsp/extension.d.ts.map +1 -0
- package/dist/core/lsp/extension.js +34 -0
- package/dist/core/lsp/extension.js.map +1 -0
- package/dist/core/lsp/tools.d.ts +45 -0
- package/dist/core/lsp/tools.d.ts.map +1 -0
- package/dist/core/lsp/tools.js +265 -0
- package/dist/core/lsp/tools.js.map +1 -0
- package/dist/core/mcp/client.d.ts +60 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +139 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/manager.d.ts +86 -0
- package/dist/core/mcp/manager.d.ts.map +1 -0
- package/dist/core/mcp/manager.js +124 -0
- package/dist/core/mcp/manager.js.map +1 -0
- package/dist/core/mcp/tools.d.ts +15 -0
- package/dist/core/mcp/tools.d.ts.map +1 -0
- package/dist/core/mcp/tools.js +84 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/memory-engine/audit-export.d.ts +56 -0
- package/dist/core/memory-engine/audit-export.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-export.js +100 -0
- package/dist/core/memory-engine/audit-export.js.map +1 -0
- package/dist/core/memory-engine/audit-indice.d.ts +153 -0
- package/dist/core/memory-engine/audit-indice.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-indice.js +271 -0
- package/dist/core/memory-engine/audit-indice.js.map +1 -0
- package/dist/core/memory-engine/audit.d.ts +18 -6
- package/dist/core/memory-engine/audit.d.ts.map +1 -1
- package/dist/core/memory-engine/audit.js +32 -50
- package/dist/core/memory-engine/audit.js.map +1 -1
- package/dist/core/memory-engine/engine.d.ts +21 -4
- package/dist/core/memory-engine/engine.d.ts.map +1 -1
- package/dist/core/memory-engine/engine.js +219 -55
- package/dist/core/memory-engine/engine.js.map +1 -1
- package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
- package/dist/core/memory-engine/inverted-index.js +67 -10
- package/dist/core/memory-engine/inverted-index.js.map +1 -1
- package/dist/core/memory-engine/keychain.d.ts.map +1 -1
- package/dist/core/memory-engine/keychain.js +1 -6
- package/dist/core/memory-engine/keychain.js.map +1 -1
- package/dist/core/memory-engine/observation-store.d.ts +0 -1
- package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
- package/dist/core/memory-engine/observation-store.js +40 -12
- package/dist/core/memory-engine/observation-store.js.map +1 -1
- package/dist/core/memory-engine/refinements.d.ts +51 -0
- package/dist/core/memory-engine/refinements.d.ts.map +1 -0
- package/dist/core/memory-engine/refinements.js +99 -0
- package/dist/core/memory-engine/refinements.js.map +1 -0
- package/dist/core/memory-engine/scanner.d.ts.map +1 -1
- package/dist/core/memory-engine/scanner.js +25 -5
- package/dist/core/memory-engine/scanner.js.map +1 -1
- package/dist/core/memory-engine/security.d.ts.map +1 -1
- package/dist/core/memory-engine/security.js +131 -23
- package/dist/core/memory-engine/security.js.map +1 -1
- package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
- package/dist/core/memory-engine/session-indexer.js +8 -2
- package/dist/core/memory-engine/session-indexer.js.map +1 -1
- package/dist/core/memory-engine/tools.d.ts +2 -2
- package/dist/core/memory-engine/tools.d.ts.map +1 -1
- package/dist/core/memory-engine/tools.js +41 -8
- package/dist/core/memory-engine/tools.js.map +1 -1
- package/dist/core/memory-engine/types.d.ts +2 -0
- package/dist/core/memory-engine/types.d.ts.map +1 -1
- package/dist/core/memory-engine/types.js.map +1 -1
- package/dist/core/memory-engine/vault.d.ts.map +1 -1
- package/dist/core/memory-engine/vault.js +2 -2
- package/dist/core/memory-engine/vault.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +2 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +19 -7
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/muestreo-restringido.d.ts +49 -0
- package/dist/core/muestreo-restringido.d.ts.map +1 -0
- package/dist/core/muestreo-restringido.js +65 -0
- package/dist/core/muestreo-restringido.js.map +1 -0
- package/dist/core/orphan-process-journal.d.ts +48 -0
- package/dist/core/orphan-process-journal.d.ts.map +1 -0
- package/dist/core/orphan-process-journal.js +116 -0
- package/dist/core/orphan-process-journal.js.map +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +11 -6
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/privacidad/categorias-especiales.d.ts +186 -0
- package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -0
- package/dist/core/privacidad/categorias-especiales.js +745 -0
- package/dist/core/privacidad/categorias-especiales.js.map +1 -0
- package/dist/core/privacidad/tapar.d.ts +48 -0
- package/dist/core/privacidad/tapar.d.ts.map +1 -0
- package/dist/core/privacidad/tapar.js +66 -0
- package/dist/core/privacidad/tapar.js.map +1 -0
- package/dist/core/prompt-cache/diagnostics.d.ts +33 -0
- package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -0
- package/dist/core/prompt-cache/diagnostics.js +100 -0
- package/dist/core/prompt-cache/diagnostics.js.map +1 -0
- package/dist/core/prompt-cache/index.d.ts +33 -0
- package/dist/core/prompt-cache/index.d.ts.map +1 -0
- package/dist/core/prompt-cache/index.js +189 -0
- package/dist/core/prompt-cache/index.js.map +1 -0
- package/dist/core/prompt-cache/payload.d.ts +58 -0
- package/dist/core/prompt-cache/payload.d.ts.map +1 -0
- package/dist/core/prompt-cache/payload.js +122 -0
- package/dist/core/prompt-cache/payload.js.map +1 -0
- package/dist/core/prompt-cache/stabilize.d.ts +65 -0
- package/dist/core/prompt-cache/stabilize.d.ts.map +1 -0
- package/dist/core/prompt-cache/stabilize.js +137 -0
- package/dist/core/prompt-cache/stabilize.js.map +1 -0
- package/dist/core/prompt-cache/stats.d.ts +55 -0
- package/dist/core/prompt-cache/stats.d.ts.map +1 -0
- package/dist/core/prompt-cache/stats.js +158 -0
- package/dist/core/prompt-cache/stats.js.map +1 -0
- package/dist/core/prompt-eleccion.d.ts +38 -0
- package/dist/core/prompt-eleccion.d.ts.map +1 -0
- package/dist/core/prompt-eleccion.js +46 -0
- package/dist/core/prompt-eleccion.js.map +1 -0
- package/dist/core/prompt-optimizer.d.ts +53 -0
- package/dist/core/prompt-optimizer.d.ts.map +1 -0
- package/dist/core/prompt-optimizer.js +138 -0
- package/dist/core/prompt-optimizer.js.map +1 -0
- package/dist/core/prompts/montar.d.ts +75 -0
- package/dist/core/prompts/montar.d.ts.map +1 -0
- package/dist/core/prompts/montar.js +146 -0
- package/dist/core/prompts/montar.js.map +1 -0
- package/dist/core/prompts/plantilla.d.ts +54 -0
- package/dist/core/prompts/plantilla.d.ts.map +1 -0
- package/dist/core/prompts/plantilla.js +153 -0
- package/dist/core/prompts/plantilla.js.map +1 -0
- package/dist/core/prompts/sistema.md +134 -0
- package/dist/core/provider-attribution.d.ts +24 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js +24 -42
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/remoto/destino.d.ts +38 -0
- package/dist/core/remoto/destino.d.ts.map +1 -0
- package/dist/core/remoto/destino.js +105 -0
- package/dist/core/remoto/destino.js.map +1 -0
- package/dist/core/remoto/ejecutor.d.ts +59 -0
- package/dist/core/remoto/ejecutor.d.ts.map +1 -0
- package/dist/core/remoto/ejecutor.js +225 -0
- package/dist/core/remoto/ejecutor.js.map +1 -0
- package/dist/core/remoto/ficheros.d.ts +29 -0
- package/dist/core/remoto/ficheros.d.ts.map +1 -0
- package/dist/core/remoto/ficheros.js +90 -0
- package/dist/core/remoto/ficheros.js.map +1 -0
- package/dist/core/remoto/registro-extension.d.ts +15 -0
- package/dist/core/remoto/registro-extension.d.ts.map +1 -0
- package/dist/core/remoto/registro-extension.js +17 -0
- package/dist/core/remoto/registro-extension.js.map +1 -0
- package/dist/core/remoto/tools.d.ts +28 -0
- package/dist/core/remoto/tools.d.ts.map +1 -0
- package/dist/core/remoto/tools.js +31 -0
- package/dist/core/remoto/tools.js.map +1 -0
- package/dist/core/resource-loader.d.ts +58 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +326 -8
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/revision/hallazgo.d.ts +51 -0
- package/dist/core/revision/hallazgo.d.ts.map +1 -0
- package/dist/core/revision/hallazgo.js +73 -0
- package/dist/core/revision/hallazgo.js.map +1 -0
- package/dist/core/revision/revisor.d.ts +81 -0
- package/dist/core/revision/revisor.d.ts.map +1 -0
- package/dist/core/revision/revisor.js +132 -0
- package/dist/core/revision/revisor.js.map +1 -0
- package/dist/core/revision/sarif.d.ts +30 -0
- package/dist/core/revision/sarif.d.ts.map +1 -0
- package/dist/core/revision/sarif.js +83 -0
- package/dist/core/revision/sarif.js.map +1 -0
- package/dist/core/scheduler/scheduler.d.ts +87 -0
- package/dist/core/scheduler/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler/scheduler.js +178 -0
- package/dist/core/scheduler/scheduler.js.map +1 -0
- package/dist/core/sdk.d.ts +8 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +11 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts +49 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js +77 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +156 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +255 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts +17 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +13 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetria/otlp.d.ts +122 -0
- package/dist/core/telemetria/otlp.d.ts.map +1 -0
- package/dist/core/telemetria/otlp.js +373 -0
- package/dist/core/telemetria/otlp.js.map +1 -0
- package/dist/core/tools/coercion-argumentos.d.ts +48 -0
- package/dist/core/tools/coercion-argumentos.d.ts.map +1 -0
- package/dist/core/tools/coercion-argumentos.js +99 -0
- package/dist/core/tools/coercion-argumentos.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +0 -12
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +234 -12
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +28 -5
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js +5 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +2 -2
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/json-tolerante.d.ts +30 -0
- package/dist/core/tools/json-tolerante.d.ts.map +1 -0
- package/dist/core/tools/json-tolerante.js +70 -0
- package/dist/core/tools/json-tolerante.js.map +1 -0
- package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
- package/dist/core/tools/project-memory-tool.js +4 -1
- package/dist/core/tools/project-memory-tool.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +17 -0
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +17 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/turno-vacio/detectar.d.ts +38 -0
- package/dist/core/turno-vacio/detectar.d.ts.map +1 -0
- package/dist/core/turno-vacio/detectar.js +66 -0
- package/dist/core/turno-vacio/detectar.js.map +1 -0
- package/dist/core/undo/journal.d.ts +57 -0
- package/dist/core/undo/journal.d.ts.map +1 -0
- package/dist/core/undo/journal.js +178 -0
- package/dist/core/undo/journal.js.map +1 -0
- package/dist/core/urls-internas/auditoria.d.ts +10 -0
- package/dist/core/urls-internas/auditoria.d.ts.map +1 -0
- package/dist/core/urls-internas/auditoria.js +42 -0
- package/dist/core/urls-internas/auditoria.js.map +1 -0
- package/dist/core/urls-internas/boveda.d.ts +13 -0
- package/dist/core/urls-internas/boveda.d.ts.map +1 -0
- package/dist/core/urls-internas/boveda.js +40 -0
- package/dist/core/urls-internas/boveda.js.map +1 -0
- package/dist/core/urls-internas/lector.d.ts +30 -0
- package/dist/core/urls-internas/lector.d.ts.map +1 -0
- package/dist/core/urls-internas/lector.js +56 -0
- package/dist/core/urls-internas/lector.js.map +1 -0
- package/dist/core/urls-internas/memoria.d.ts +11 -0
- package/dist/core/urls-internas/memoria.d.ts.map +1 -0
- package/dist/core/urls-internas/memoria.js +25 -0
- package/dist/core/urls-internas/memoria.js.map +1 -0
- package/dist/core/urls-internas/parse.d.ts +28 -0
- package/dist/core/urls-internas/parse.d.ts.map +1 -0
- package/dist/core/urls-internas/parse.js +32 -0
- package/dist/core/urls-internas/parse.js.map +1 -0
- package/dist/core/urls-internas/reglas.d.ts +10 -0
- package/dist/core/urls-internas/reglas.d.ts.map +1 -0
- package/dist/core/urls-internas/reglas.js +31 -0
- package/dist/core/urls-internas/reglas.js.map +1 -0
- package/dist/core/usage/aggregate.d.ts +68 -0
- package/dist/core/usage/aggregate.d.ts.map +1 -0
- package/dist/core/usage/aggregate.js +93 -0
- package/dist/core/usage/aggregate.js.map +1 -0
- package/dist/core/usage/cuota/anthropic.d.ts +10 -0
- package/dist/core/usage/cuota/anthropic.d.ts.map +1 -0
- package/dist/core/usage/cuota/anthropic.js +63 -0
- package/dist/core/usage/cuota/anthropic.js.map +1 -0
- package/dist/core/usage/cuota/cache.d.ts +20 -0
- package/dist/core/usage/cuota/cache.d.ts.map +1 -0
- package/dist/core/usage/cuota/cache.js +36 -0
- package/dist/core/usage/cuota/cache.js.map +1 -0
- package/dist/core/usage/cuota/github-copilot.d.ts +9 -0
- package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -0
- package/dist/core/usage/cuota/github-copilot.js +67 -0
- package/dist/core/usage/cuota/github-copilot.js.map +1 -0
- package/dist/core/usage/cuota/google-gemini.d.ts +9 -0
- package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -0
- package/dist/core/usage/cuota/google-gemini.js +72 -0
- package/dist/core/usage/cuota/google-gemini.js.map +1 -0
- package/dist/core/usage/cuota/index.d.ts +25 -0
- package/dist/core/usage/cuota/index.d.ts.map +1 -0
- package/dist/core/usage/cuota/index.js +50 -0
- package/dist/core/usage/cuota/index.js.map +1 -0
- package/dist/core/usage/cuota/openai-codex.d.ts +9 -0
- package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -0
- package/dist/core/usage/cuota/openai-codex.js +59 -0
- package/dist/core/usage/cuota/openai-codex.js.map +1 -0
- package/dist/core/usage/cuota/openrouter.d.ts +10 -0
- package/dist/core/usage/cuota/openrouter.d.ts.map +1 -0
- package/dist/core/usage/cuota/openrouter.js +47 -0
- package/dist/core/usage/cuota/openrouter.js.map +1 -0
- package/dist/core/usage/cuota/tipos.d.ts +50 -0
- package/dist/core/usage/cuota/tipos.d.ts.map +1 -0
- package/dist/core/usage/cuota/tipos.js +25 -0
- package/dist/core/usage/cuota/tipos.js.map +1 -0
- package/dist/core/web/busqueda-nativa.d.ts +82 -0
- package/dist/core/web/busqueda-nativa.d.ts.map +1 -0
- package/dist/core/web/busqueda-nativa.js +163 -0
- package/dist/core/web/busqueda-nativa.js.map +1 -0
- package/dist/core/web/destino.d.ts +58 -0
- package/dist/core/web/destino.d.ts.map +1 -0
- package/dist/core/web/destino.js +127 -0
- package/dist/core/web/destino.js.map +1 -0
- package/dist/core/web/proveedores/brave.d.ts +6 -0
- package/dist/core/web/proveedores/brave.d.ts.map +1 -0
- package/dist/core/web/proveedores/brave.js +20 -0
- package/dist/core/web/proveedores/brave.js.map +1 -0
- package/dist/core/web/proveedores/claves.d.ts +19 -0
- package/dist/core/web/proveedores/claves.d.ts.map +1 -0
- package/dist/core/web/proveedores/claves.js +36 -0
- package/dist/core/web/proveedores/claves.js.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts +3 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.js +109 -0
- package/dist/core/web/proveedores/duckduckgo.js.map +1 -0
- package/dist/core/web/proveedores/ecosia.d.ts +3 -0
- package/dist/core/web/proveedores/ecosia.d.ts.map +1 -0
- package/dist/core/web/proveedores/ecosia.js +72 -0
- package/dist/core/web/proveedores/ecosia.js.map +1 -0
- package/dist/core/web/proveedores/exa.d.ts +6 -0
- package/dist/core/web/proveedores/exa.d.ts.map +1 -0
- package/dist/core/web/proveedores/exa.js +24 -0
- package/dist/core/web/proveedores/exa.js.map +1 -0
- package/dist/core/web/proveedores/mojeek.d.ts +3 -0
- package/dist/core/web/proveedores/mojeek.d.ts.map +1 -0
- package/dist/core/web/proveedores/mojeek.js +65 -0
- package/dist/core/web/proveedores/mojeek.js.map +1 -0
- package/dist/core/web/proveedores/navegador.d.ts +10 -0
- package/dist/core/web/proveedores/navegador.d.ts.map +1 -0
- package/dist/core/web/proveedores/navegador.js +13 -0
- package/dist/core/web/proveedores/navegador.js.map +1 -0
- package/dist/core/web/proveedores/registro.d.ts +43 -0
- package/dist/core/web/proveedores/registro.d.ts.map +1 -0
- package/dist/core/web/proveedores/registro.js +49 -0
- package/dist/core/web/proveedores/registro.js.map +1 -0
- package/dist/core/web/proveedores/searxng.d.ts +9 -0
- package/dist/core/web/proveedores/searxng.d.ts.map +1 -0
- package/dist/core/web/proveedores/searxng.js +17 -0
- package/dist/core/web/proveedores/searxng.js.map +1 -0
- package/dist/core/web/proveedores/serper.d.ts +9 -0
- package/dist/core/web/proveedores/serper.d.ts.map +1 -0
- package/dist/core/web/proveedores/serper.js +19 -0
- package/dist/core/web/proveedores/serper.js.map +1 -0
- package/dist/core/web/proveedores/tavily.d.ts +6 -0
- package/dist/core/web/proveedores/tavily.d.ts.map +1 -0
- package/dist/core/web/proveedores/tavily.js +19 -0
- package/dist/core/web/proveedores/tavily.js.map +1 -0
- package/dist/core/web/proveedores/tipos.d.ts +36 -0
- package/dist/core/web/proveedores/tipos.d.ts.map +1 -0
- package/dist/core/web/proveedores/tipos.js +10 -0
- package/dist/core/web/proveedores/tipos.js.map +1 -0
- package/dist/core/web/registro-red.d.ts +43 -0
- package/dist/core/web/registro-red.d.ts.map +1 -0
- package/dist/core/web/registro-red.js +86 -0
- package/dist/core/web/registro-red.js.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts +10 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.js +38 -0
- package/dist/core/web/scrapers/cisa-kev.js.map +1 -0
- package/dist/core/web/scrapers/crates-io.d.ts +11 -0
- package/dist/core/web/scrapers/crates-io.d.ts.map +1 -0
- package/dist/core/web/scrapers/crates-io.js +29 -0
- package/dist/core/web/scrapers/crates-io.js.map +1 -0
- package/dist/core/web/scrapers/docs-rs.d.ts +10 -0
- package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -0
- package/dist/core/web/scrapers/docs-rs.js +35 -0
- package/dist/core/web/scrapers/docs-rs.js.map +1 -0
- package/dist/core/web/scrapers/github.d.ts +3 -0
- package/dist/core/web/scrapers/github.d.ts.map +1 -0
- package/dist/core/web/scrapers/github.js +72 -0
- package/dist/core/web/scrapers/github.js.map +1 -0
- package/dist/core/web/scrapers/go-pkg.d.ts +7 -0
- package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -0
- package/dist/core/web/scrapers/go-pkg.js +30 -0
- package/dist/core/web/scrapers/go-pkg.js.map +1 -0
- package/dist/core/web/scrapers/hex.d.ts +6 -0
- package/dist/core/web/scrapers/hex.d.ts.map +1 -0
- package/dist/core/web/scrapers/hex.js +27 -0
- package/dist/core/web/scrapers/hex.js.map +1 -0
- package/dist/core/web/scrapers/maven.d.ts +8 -0
- package/dist/core/web/scrapers/maven.d.ts.map +1 -0
- package/dist/core/web/scrapers/maven.js +41 -0
- package/dist/core/web/scrapers/maven.js.map +1 -0
- package/dist/core/web/scrapers/mdn.d.ts +6 -0
- package/dist/core/web/scrapers/mdn.d.ts.map +1 -0
- package/dist/core/web/scrapers/mdn.js +28 -0
- package/dist/core/web/scrapers/mdn.js.map +1 -0
- package/dist/core/web/scrapers/npm.d.ts +11 -0
- package/dist/core/web/scrapers/npm.d.ts.map +1 -0
- package/dist/core/web/scrapers/npm.js +57 -0
- package/dist/core/web/scrapers/npm.js.map +1 -0
- package/dist/core/web/scrapers/nuget.d.ts +8 -0
- package/dist/core/web/scrapers/nuget.d.ts.map +1 -0
- package/dist/core/web/scrapers/nuget.js +22 -0
- package/dist/core/web/scrapers/nuget.js.map +1 -0
- package/dist/core/web/scrapers/nvd.d.ts +7 -0
- package/dist/core/web/scrapers/nvd.d.ts.map +1 -0
- package/dist/core/web/scrapers/nvd.js +37 -0
- package/dist/core/web/scrapers/nvd.js.map +1 -0
- package/dist/core/web/scrapers/pypi.d.ts +6 -0
- package/dist/core/web/scrapers/pypi.d.ts.map +1 -0
- package/dist/core/web/scrapers/pypi.js +31 -0
- package/dist/core/web/scrapers/pypi.js.map +1 -0
- package/dist/core/web/scrapers/registro.d.ts +13 -0
- package/dist/core/web/scrapers/registro.d.ts.map +1 -0
- package/dist/core/web/scrapers/registro.js +65 -0
- package/dist/core/web/scrapers/registro.js.map +1 -0
- package/dist/core/web/scrapers/rubygems.d.ts +6 -0
- package/dist/core/web/scrapers/rubygems.d.ts.map +1 -0
- package/dist/core/web/scrapers/rubygems.js +23 -0
- package/dist/core/web/scrapers/rubygems.js.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts +3 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.js +46 -0
- package/dist/core/web/scrapers/stackoverflow.js.map +1 -0
- package/dist/core/web/scrapers/tipos.d.ts +42 -0
- package/dist/core/web/scrapers/tipos.d.ts.map +1 -0
- package/dist/core/web/scrapers/tipos.js +23 -0
- package/dist/core/web/scrapers/tipos.js.map +1 -0
- package/dist/core/web/texto.d.ts +10 -0
- package/dist/core/web/texto.d.ts.map +1 -0
- package/dist/core/web/texto.js +26 -0
- package/dist/core/web/texto.js.map +1 -0
- package/dist/core/web/tools.d.ts +91 -0
- package/dist/core/web/tools.d.ts.map +1 -0
- package/dist/core/web/tools.js +304 -0
- package/dist/core/web/tools.js.map +1 -0
- package/dist/core/wiki/almacen.d.ts +33 -0
- package/dist/core/wiki/almacen.d.ts.map +1 -0
- package/dist/core/wiki/almacen.js +93 -0
- package/dist/core/wiki/almacen.js.map +1 -0
- package/dist/core/wiki/citas.d.ts +111 -0
- package/dist/core/wiki/citas.d.ts.map +1 -0
- package/dist/core/wiki/citas.js +146 -0
- package/dist/core/wiki/citas.js.map +1 -0
- package/dist/core/workflows/agent-runner.d.ts +88 -0
- package/dist/core/workflows/agent-runner.d.ts.map +1 -0
- package/dist/core/workflows/agent-runner.js +312 -0
- package/dist/core/workflows/agent-runner.js.map +1 -0
- package/dist/core/workflows/builtins.d.ts +41 -0
- package/dist/core/workflows/builtins.d.ts.map +1 -0
- package/dist/core/workflows/builtins.js +283 -0
- package/dist/core/workflows/builtins.js.map +1 -0
- package/dist/core/workflows/contrato/esquema.d.ts +32 -0
- package/dist/core/workflows/contrato/esquema.d.ts.map +1 -0
- package/dist/core/workflows/contrato/esquema.js +25 -0
- package/dist/core/workflows/contrato/esquema.js.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts +69 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js +117 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -0
- package/dist/core/workflows/contrato/validador.d.ts +30 -0
- package/dist/core/workflows/contrato/validador.d.ts.map +1 -0
- package/dist/core/workflows/contrato/validador.js +56 -0
- package/dist/core/workflows/contrato/validador.js.map +1 -0
- package/dist/core/workflows/contrato/yield.d.ts +65 -0
- package/dist/core/workflows/contrato/yield.d.ts.map +1 -0
- package/dist/core/workflows/contrato/yield.js +80 -0
- package/dist/core/workflows/contrato/yield.js.map +1 -0
- package/dist/core/workflows/goal-engine/engine.d.ts +151 -0
- package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/engine.js +503 -0
- package/dist/core/workflows/goal-engine/engine.js.map +1 -0
- package/dist/core/workflows/goal-engine/errors.d.ts +7 -0
- package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/errors.js +9 -0
- package/dist/core/workflows/goal-engine/errors.js.map +1 -0
- package/dist/core/workflows/goal-engine/index.d.ts +13 -0
- package/dist/core/workflows/goal-engine/index.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/index.js +8 -0
- package/dist/core/workflows/goal-engine/index.js.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts +31 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.js +145 -0
- package/dist/core/workflows/goal-engine/persistence.js.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts +37 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.js +131 -0
- package/dist/core/workflows/goal-engine/prompts.js.map +1 -0
- package/dist/core/workflows/goal-engine/state.d.ts +41 -0
- package/dist/core/workflows/goal-engine/state.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/state.js +397 -0
- package/dist/core/workflows/goal-engine/state.js.map +1 -0
- package/dist/core/workflows/goal-engine/tools.d.ts +31 -0
- package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/tools.js +211 -0
- package/dist/core/workflows/goal-engine/tools.js.map +1 -0
- package/dist/core/workflows/goal-engine/types.d.ts +286 -0
- package/dist/core/workflows/goal-engine/types.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/types.js +17 -0
- package/dist/core/workflows/goal-engine/types.js.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts +23 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js +72 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -0
- package/dist/core/workflows/graph-sync.d.ts +67 -0
- package/dist/core/workflows/graph-sync.d.ts.map +1 -0
- package/dist/core/workflows/graph-sync.js +188 -0
- package/dist/core/workflows/graph-sync.js.map +1 -0
- package/dist/core/workflows/graph.d.ts +143 -0
- package/dist/core/workflows/graph.d.ts.map +1 -0
- package/dist/core/workflows/graph.js +319 -0
- package/dist/core/workflows/graph.js.map +1 -0
- package/dist/core/workflows/index.d.ts +26 -0
- package/dist/core/workflows/index.d.ts.map +1 -0
- package/dist/core/workflows/index.js +18 -0
- package/dist/core/workflows/index.js.map +1 -0
- package/dist/core/workflows/journal.d.ts +68 -0
- package/dist/core/workflows/journal.d.ts.map +1 -0
- package/dist/core/workflows/journal.js +83 -0
- package/dist/core/workflows/journal.js.map +1 -0
- package/dist/core/workflows/manager.d.ts +122 -0
- package/dist/core/workflows/manager.d.ts.map +1 -0
- package/dist/core/workflows/manager.js +351 -0
- package/dist/core/workflows/manager.js.map +1 -0
- package/dist/core/workflows/resolve-script.d.ts +35 -0
- package/dist/core/workflows/resolve-script.d.ts.map +1 -0
- package/dist/core/workflows/resolve-script.js +66 -0
- package/dist/core/workflows/resolve-script.js.map +1 -0
- package/dist/core/workflows/runtime.d.ts +62 -0
- package/dist/core/workflows/runtime.d.ts.map +1 -0
- package/dist/core/workflows/runtime.js +380 -0
- package/dist/core/workflows/runtime.js.map +1 -0
- package/dist/core/workflows/save-as-skill.d.ts +27 -0
- package/dist/core/workflows/save-as-skill.d.ts.map +1 -0
- package/dist/core/workflows/save-as-skill.js +54 -0
- package/dist/core/workflows/save-as-skill.js.map +1 -0
- package/dist/core/workflows/shared-store.d.ts +31 -0
- package/dist/core/workflows/shared-store.d.ts.map +1 -0
- package/dist/core/workflows/shared-store.js +80 -0
- package/dist/core/workflows/shared-store.js.map +1 -0
- package/dist/core/workflows/subagent-host.d.ts +50 -0
- package/dist/core/workflows/subagent-host.d.ts.map +1 -0
- package/dist/core/workflows/subagent-host.js +225 -0
- package/dist/core/workflows/subagent-host.js.map +1 -0
- package/dist/core/workflows/tool-workflow.d.ts +22 -0
- package/dist/core/workflows/tool-workflow.d.ts.map +1 -0
- package/dist/core/workflows/tool-workflow.js +120 -0
- package/dist/core/workflows/tool-workflow.js.map +1 -0
- package/dist/core/workflows/types.d.ts +191 -0
- package/dist/core/workflows/types.d.ts.map +1 -0
- package/dist/core/workflows/types.js +26 -0
- package/dist/core/workflows/types.js.map +1 -0
- package/dist/core/workflows/worktree.d.ts +42 -0
- package/dist/core/workflows/worktree.d.ts.map +1 -0
- package/dist/core/workflows/worktree.js +107 -0
- package/dist/core/workflows/worktree.js.map +1 -0
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -2
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/remoto/index.d.ts +22 -0
- package/dist/extensions/remoto/index.d.ts.map +1 -0
- package/dist/extensions/remoto/index.js +54 -0
- package/dist/extensions/remoto/index.js.map +1 -0
- package/dist/index.d.ts +1 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -13
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -15
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts +42 -0
- package/dist/modes/acp/acp-mode.d.ts.map +1 -0
- package/dist/modes/acp/acp-mode.js +190 -0
- package/dist/modes/acp/acp-mode.js.map +1 -0
- package/dist/modes/acp/events.d.ts +74 -0
- package/dist/modes/acp/events.d.ts.map +1 -0
- package/dist/modes/acp/events.js +116 -0
- package/dist/modes/acp/events.js.map +1 -0
- package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
- package/dist/modes/interactive/components/home-screen.js +2 -2
- package/dist/modes/interactive/components/home-screen.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +9 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +56 -12
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/prompt-optimization.d.ts +16 -0
- package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -0
- package/dist/modes/interactive/components/prompt-optimization.js +46 -0
- package/dist/modes/interactive/components/prompt-optimization.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +19 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +180 -56
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +74 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +21 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +709 -75
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +4 -3
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +11 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +173 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +29 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +27 -5
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/server/attach.d.ts +56 -0
- package/dist/server/attach.d.ts.map +1 -0
- package/dist/server/attach.js +130 -0
- package/dist/server/attach.js.map +1 -0
- package/dist/server/extension-ops.d.ts +40 -0
- package/dist/server/extension-ops.d.ts.map +1 -0
- package/dist/server/extension-ops.js +146 -0
- package/dist/server/extension-ops.js.map +1 -0
- package/dist/server/pi-server-service.d.ts +85 -0
- package/dist/server/pi-server-service.d.ts.map +1 -0
- package/dist/server/pi-server-service.js +213 -0
- package/dist/server/pi-server-service.js.map +1 -0
- package/dist/server/scheduler-tick.d.ts +32 -0
- package/dist/server/scheduler-tick.d.ts.map +1 -0
- package/dist/server/scheduler-tick.js +47 -0
- package/dist/server/scheduler-tick.js.map +1 -0
- package/dist/server/serve.d.ts +25 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/server/serve.js +83 -0
- package/dist/server/serve.js.map +1 -0
- package/dist/server/transcript.d.ts +38 -0
- package/dist/server/transcript.d.ts.map +1 -0
- package/dist/server/transcript.js +176 -0
- package/dist/server/transcript.js.map +1 -0
- package/dist/skills/ada-engine/SKILL.md +153 -0
- package/dist/skills/skill-creator/SKILL.md +90 -0
- package/dist/telegram/api.d.ts +75 -0
- package/dist/telegram/api.d.ts.map +1 -0
- package/dist/telegram/api.js +104 -0
- package/dist/telegram/api.js.map +1 -0
- package/dist/telegram/bridge.d.ts +85 -0
- package/dist/telegram/bridge.d.ts.map +1 -0
- package/dist/telegram/bridge.js +182 -0
- package/dist/telegram/bridge.js.map +1 -0
- package/dist/telegram/journal.d.ts +67 -0
- package/dist/telegram/journal.d.ts.map +1 -0
- package/dist/telegram/journal.js +119 -0
- package/dist/telegram/journal.js.map +1 -0
- package/dist/telegram/servidor.d.ts +15 -0
- package/dist/telegram/servidor.d.ts.map +1 -0
- package/dist/telegram/servidor.js +74 -0
- package/dist/telegram/servidor.js.map +1 -0
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +11 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +11 -0
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +29 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +25 -10
- package/docs/compliance.md +241 -0
- package/docs/containerization.md +24 -24
- package/docs/custom-provider.md +15 -12
- package/docs/development.md +47 -10
- package/docs/docs.json +14 -2
- package/docs/environment-variables.md +20 -17
- package/docs/extensions.md +62 -51
- package/docs/index.md +15 -21
- package/docs/json.md +10 -5
- package/docs/keybindings.md +5 -5
- package/docs/llama-cpp.md +9 -7
- package/docs/models.md +18 -12
- package/docs/packages.md +45 -45
- package/docs/prompt-templates.md +5 -5
- package/docs/providers.md +12 -12
- package/docs/quickstart.md +39 -39
- package/docs/rpc.md +21 -15
- package/docs/sdk.md +38 -38
- package/docs/security.md +26 -21
- package/docs/session-format.md +7 -7
- package/docs/sessions.md +14 -14
- package/docs/settings.md +47 -22
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +14 -13
- package/docs/terminal-setup.md +14 -14
- package/docs/termux.md +7 -7
- package/docs/themes.md +11 -11
- package/docs/tmux.md +4 -4
- package/docs/tui.md +3 -3
- package/docs/usage.md +54 -54
- package/docs/windows.md +2 -2
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/subagent/README.md +1 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/12-full-control.ts +9 -0
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +35 -261
- package/package.json +9 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/cdp.ts"],"names":[],"mappings":"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","sourcesContent":["// Minimal Chrome DevTools Protocol client.\n//\n// Opt-in: set ADA_COMPUTER_USE_CDP_PORT to the --remote-debugging-port of a\n// running Chromium-family browser. When active, navigate_browser uses\n// Page.navigate (event-driven, no AppleScript) and recent console messages\n// and uncaught exceptions are attached to tool results. Everything else\n// keeps the AX/CGEvent path, so with the env var unset this module is inert.\n\nimport { randomUUID } from \"node:crypto\";\nimport { parseLookResponse, type SerializedOutline, serializeOutline } from \"./outline.ts\";\n\nexport interface CdpConsoleEntry {\n\tlevel: string;\n\ttext: string;\n}\n\nexport interface CdpPageContext {\n\tcontextId: string;\n\ttargetId: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface CdpSnapshotTarget {\n\tref: string;\n\tsource: \"browser_ax\";\n\trole: string;\n\tname: string;\n\tvalue?: string;\n\tactions: string[];\n\tbackendNodeId?: number;\n}\n\nexport interface CdpPageSnapshot {\n\tcontextId: string;\n\tsnapshotId: string;\n\ttargetId: string;\n\ttitle: string;\n\turl: string;\n\tcapturedAt: number;\n\ttext: string;\n\ttargets: CdpSnapshotTarget[];\n\toutline: SerializedOutline;\n\tdiagnostics: {\n\t\tcdp: \"connected\";\n\t\ttargetCount: number;\n\t};\n}\n\nexport interface CdpEvaluationResult {\n\tcontextId: string;\n\tvalue: unknown;\n}\n\n/** Window frame in screen points, as reported by the AX side. */\nexport interface WindowFrame {\n\tx: number;\n\ty: number;\n\tw: number;\n\th: number;\n}\n\nconst COMMAND_TIMEOUT_MS = 5_000;\nconst CDP_CONTEXT_PREFIX = \"browser:\";\nconst NAVIGATE_LOAD_TIMEOUT_MS = 10_000;\nconst CONNECT_FAILURE_RETRY_MS = 5_000;\nconst CONSOLE_BUFFER_LIMIT = 20;\n\nexport class CdpTab {\n\tprivate nextId = 1;\n\tprivate readonly pending = new Map<number, { resolve: (result: any) => void; reject: (error: Error) => void }>();\n\tprivate consoleBuffer: CdpConsoleEntry[] = [];\n\tprivate loadFired: (() => void) | undefined;\n\n\t// Campos normales y no propiedades de constructor: este repositorio compila\n\t// con `erasableSyntaxOnly`, que prohíbe la forma corta.\n\tprivate readonly ws: WebSocket;\n\treadonly targetId: string;\n\tpublic title: string;\n\n\tprivate constructor(ws: WebSocket, targetId: string, title: string) {\n\t\tthis.ws = ws;\n\t\tthis.targetId = targetId;\n\t\tthis.title = title;\n\t}\n\n\tstatic async connect(wsUrl: string, targetId: string, title: string): Promise<CdpTab> {\n\t\tconst ws = new WebSocket(wsUrl);\n\t\ttry {\n\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\tconst timer = setTimeout(\n\t\t\t\t\t() => reject(new Error(`Timed out connecting to CDP target at ${wsUrl}`)),\n\t\t\t\t\tCOMMAND_TIMEOUT_MS,\n\t\t\t\t);\n\t\t\t\tws.onopen = () => {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\t\t\t\tws.onerror = () => {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\treject(new Error(`Failed to connect to CDP target at ${wsUrl}`));\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tconst tab = new CdpTab(ws, targetId, title);\n\t\t\tws.onmessage = (event) => tab.handleMessage(String(event.data));\n\t\t\tws.onclose = () => tab.rejectAllPending(new Error(\"CDP connection closed.\"));\n\t\t\tws.onerror = () => tab.rejectAllPending(new Error(\"CDP connection error.\"));\n\t\t\tawait tab.send(\"Runtime.enable\");\n\t\t\tawait tab.send(\"Page.enable\");\n\t\t\treturn tab;\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tws.close();\n\t\t\t} catch {\n\t\t\t\t// already closed\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tget isOpen(): boolean {\n\t\treturn this.ws.readyState === WebSocket.OPEN;\n\t}\n\n\tclose(): void {\n\t\tthis.loadFired?.();\n\t\tthis.loadFired = undefined;\n\t\tthis.rejectAllPending(new Error(\"CDP connection closed.\"));\n\t\ttry {\n\t\t\tthis.ws.close();\n\t\t} catch {\n\t\t\t// already closed\n\t\t}\n\t}\n\n\t/** Evaluates a JS expression in the page and returns its primitive value. */\n\tasync evaluate(expression: string): Promise<unknown> {\n\t\tconst result = await this.send(\"Runtime.evaluate\", {\n\t\t\texpression,\n\t\t\treturnByValue: true,\n\t\t\ttimeout: COMMAND_TIMEOUT_MS,\n\t\t\tawaitPromise: true,\n\t\t});\n\t\treturn result?.result?.value;\n\t}\n\n\tasync accessibilityTree(): Promise<unknown[]> {\n\t\tconst result = await this.send(\"Accessibility.getFullAXTree\");\n\t\treturn Array.isArray(result?.nodes) ? result.nodes : [];\n\t}\n\n\tasync navigate(url: string): Promise<void> {\n\t\tconst loaded = new Promise<void>((resolve) => {\n\t\t\tthis.loadFired = resolve;\n\t\t});\n\t\ttry {\n\t\t\tawait this.send(\"Page.navigate\", { url });\n\t\t\t// SPAs and slow pages may never fire load; cap the wait and move on.\n\t\t\tawait Promise.race([loaded, new Promise<void>((resolve) => setTimeout(resolve, NAVIGATE_LOAD_TIMEOUT_MS))]);\n\t\t} finally {\n\t\t\tthis.loadFired = undefined;\n\t\t}\n\t}\n\n\tasync clickBackendNode(backendNodeId: number): Promise<void> {\n\t\tawait this.withBackendNode(\n\t\t\tbackendNodeId,\n\t\t\t\"function(){ this.scrollIntoView({block:'center', inline:'center'}); this.click(); }\",\n\t\t);\n\t}\n\n\tasync typeIntoBackendNode(backendNodeId: number, text: string, replace: boolean): Promise<void> {\n\t\tawait this.withBackendNode(\n\t\t\tbackendNodeId,\n\t\t\t\"function(text, replace){ this.scrollIntoView({block:'center', inline:'center'}); this.focus(); if (replace) { if ('value' in this) this.value = ''; else this.textContent = ''; } if ('value' in this) this.value += text; else this.textContent = (this.textContent || '') + text; this.dispatchEvent(new InputEvent('input', {bubbles:true, inputType:'insertText', data:text})); this.dispatchEvent(new Event('change', {bubbles:true})); }\",\n\t\t\t[text, replace],\n\t\t);\n\t}\n\n\tasync scrollBy(deltaX: number, deltaY: number, backendNodeId?: number): Promise<void> {\n\t\tif (backendNodeId) {\n\t\t\tawait this.withBackendNode(\n\t\t\t\tbackendNodeId,\n\t\t\t\t\"function(dx, dy){ this.scrollIntoView({block:'center', inline:'center'}); this.scrollBy(dx, dy); }\",\n\t\t\t\t[deltaX, deltaY],\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tawait this.send(\"Runtime.evaluate\", {\n\t\t\texpression: `window.scrollBy(${JSON.stringify(deltaX)}, ${JSON.stringify(deltaY)})`,\n\t\t});\n\t}\n\n\tasync typeIntoFocused(text: string): Promise<void> {\n\t\tawait this.send(\"Input.insertText\", { text });\n\t}\n\n\tasync keypress(keys: string[]): Promise<void> {\n\t\tconst modifierBits: Record<string, number> = {\n\t\t\talt: 1,\n\t\t\toption: 1,\n\t\t\tcontrol: 2,\n\t\t\tctrl: 2,\n\t\t\tmeta: 4,\n\t\t\tcommand: 4,\n\t\t\tcmd: 4,\n\t\t\tshift: 8,\n\t\t};\n\t\tconst modifiers = keys.reduce((bits, key) => bits | (modifierBits[key.toLowerCase()] ?? 0), 0);\n\t\tfor (const key of keys.filter((candidate) => modifierBits[candidate.toLowerCase()] === undefined)) {\n\t\t\tawait this.send(\"Input.dispatchKeyEvent\", {\n\t\t\t\ttype: \"keyDown\",\n\t\t\t\tkey,\n\t\t\t\tcode: key,\n\t\t\t\ttext: key.length === 1 && modifiers === 0 ? key : undefined,\n\t\t\t\tmodifiers,\n\t\t\t});\n\t\t\tawait this.send(\"Input.dispatchKeyEvent\", { type: \"keyUp\", key, code: key, modifiers });\n\t\t}\n\t}\n\n\tasync mouseAt(\n\t\tx: number,\n\t\ty: number,\n\t\ttype: \"mouseMoved\" | \"mousePressed\" | \"mouseReleased\",\n\t\tbutton: \"left\" | \"right\" | \"middle\" = \"left\",\n\t\tclickCount = 1,\n\t): Promise<void> {\n\t\tawait this.send(\"Input.dispatchMouseEvent\", {\n\t\t\ttype,\n\t\t\tx,\n\t\t\ty,\n\t\t\tbutton: type === \"mouseMoved\" ? \"none\" : button,\n\t\t\tclickCount,\n\t\t});\n\t}\n\n\tasync dragPath(path: Array<{ x: number; y: number }>): Promise<void> {\n\t\tif (path.length < 2) throw new Error(\"CDP drag requires at least two points.\");\n\t\tawait this.mouseAt(path[0].x, path[0].y, \"mousePressed\");\n\t\tfor (const point of path.slice(1))\n\t\t\tawait this.send(\"Input.dispatchMouseEvent\", {\n\t\t\t\ttype: \"mouseMoved\",\n\t\t\t\tx: point.x,\n\t\t\t\ty: point.y,\n\t\t\t\tbutton: \"left\",\n\t\t\t\tbuttons: 1,\n\t\t\t});\n\t\tconst end = path[path.length - 1];\n\t\tawait this.mouseAt(end.x, end.y, \"mouseReleased\");\n\t}\n\n\tprivate async withBackendNode(\n\t\tbackendNodeId: number,\n\t\tfunctionDeclaration: string,\n\t\targs: unknown[] = [],\n\t): Promise<void> {\n\t\tconst resolved = await this.send(\"DOM.resolveNode\", { backendNodeId });\n\t\tconst objectId = resolved?.object?.objectId;\n\t\tif (typeof objectId !== \"string\") throw new Error(`CDP could not resolve backend node ${backendNodeId}.`);\n\t\tawait this.send(\"Runtime.callFunctionOn\", {\n\t\t\tobjectId,\n\t\t\tfunctionDeclaration,\n\t\t\targuments: args.map((value) => ({ value })),\n\t\t});\n\t}\n\n\t/** Screen bounds of the browser window containing this tab. */\n\tasync windowBounds(): Promise<WindowFrame | undefined> {\n\t\tconst result = await this.send(\"Browser.getWindowForTarget\", { targetId: this.targetId });\n\t\tconst bounds = result?.bounds;\n\t\tif (typeof bounds?.left !== \"number\" || typeof bounds?.width !== \"number\") return undefined;\n\t\treturn { x: bounds.left, y: bounds.top, w: bounds.width, h: bounds.height };\n\t}\n\n\t/** Returns buffered console messages/exceptions and clears the buffer. */\n\tdrainConsole(): CdpConsoleEntry[] {\n\t\tconst entries = this.consoleBuffer;\n\t\tthis.consoleBuffer = [];\n\t\treturn entries;\n\t}\n\n\tprivate send(method: string, params: Record<string, unknown> = {}): Promise<any> {\n\t\tconst id = this.nextId++;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(new Error(`CDP command '${method}' timed out after ${COMMAND_TIMEOUT_MS}ms.`));\n\t\t\t}, COMMAND_TIMEOUT_MS);\n\t\t\tthis.pending.set(id, {\n\t\t\t\tresolve: (result) => {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tresolve(result);\n\t\t\t\t},\n\t\t\t\treject: (error) => {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\treject(error);\n\t\t\t\t},\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tthis.ws.send(JSON.stringify({ id, method, params }));\n\t\t\t} catch (error) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate handleMessage(raw: string): void {\n\t\tlet message: any;\n\t\ttry {\n\t\t\tmessage = JSON.parse(raw);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof message.id === \"number\") {\n\t\t\tconst pending = this.pending.get(message.id);\n\t\t\tif (!pending) return;\n\t\t\tthis.pending.delete(message.id);\n\t\t\tif (message.error) {\n\t\t\t\tpending.reject(new Error(`CDP error: ${message.error.message ?? \"unknown\"}`));\n\t\t\t} else {\n\t\t\t\tpending.resolve(message.result);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (message.method) {\n\t\t\tcase \"Page.loadEventFired\":\n\t\t\t\tthis.loadFired?.();\n\t\t\t\tbreak;\n\t\t\tcase \"Runtime.consoleAPICalled\": {\n\t\t\t\tconst args = Array.isArray(message.params?.args) ? message.params.args : [];\n\t\t\t\tconst text = args\n\t\t\t\t\t.map((arg: any) => (arg?.value !== undefined ? String(arg.value) : (arg?.description ?? \"\")))\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\" \");\n\t\t\t\tthis.pushConsole({ level: String(message.params?.type ?? \"log\"), text });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"Runtime.exceptionThrown\": {\n\t\t\t\tconst details = message.params?.exceptionDetails;\n\t\t\t\tconst text = details?.exception?.description ?? details?.text ?? \"Uncaught exception\";\n\t\t\t\tthis.pushConsole({ level: \"exception\", text: String(text) });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate pushConsole(entry: CdpConsoleEntry): void {\n\t\tif (!entry.text) return;\n\t\tthis.consoleBuffer.push(entry);\n\t\tif (this.consoleBuffer.length > CONSOLE_BUFFER_LIMIT) {\n\t\t\tthis.consoleBuffer.shift();\n\t\t}\n\t}\n\n\tprivate rejectAllPending(error: Error): void {\n\t\tfor (const pending of this.pending.values()) {\n\t\t\tpending.reject(error);\n\t\t}\n\t\tthis.pending.clear();\n\t}\n}\n\nconst connectedTabs = new Map<string, CdpTab>();\nconst connectingTabs = new Map<string, Promise<CdpTab>>();\nlet lastConnectFailureAt = 0;\n\n/** Close session-owned CDP state without affecting the browser process. */\nexport function disconnectCdp(): void {\n\tfor (const tab of connectedTabs.values()) tab.close();\n\tconnectedTabs.clear();\n\tconnectingTabs.clear();\n\tlastConnectFailureAt = 0;\n}\n\nfunction cdpEnabled(): boolean {\n\tconst rawPort = process.env.ADA_COMPUTER_USE_CDP_PORT ?? \"\";\n\tif (!/^\\d+$/.test(rawPort)) return false;\n\tconst port = Number(rawPort);\n\treturn Number.isInteger(port) && port > 0 && port <= 65535 && typeof WebSocket !== \"undefined\";\n}\n\n/**\n * Returns a CDP connection to the tab matching the controlled window's title\n * (and, when provided, the window's screen frame), or undefined when CDP is\n * disabled, unreachable, or no tab matches. Reuses the cached connection\n * while it still matches; failures are cached briefly so an unreachable\n * endpoint never adds per-call latency.\n */\nexport async function cdpTabForWindow(windowTitle: string, frame?: WindowFrame): Promise<CdpTab | undefined> {\n\tif (!cdpEnabled()) return undefined;\n\tif (Date.now() - lastConnectFailureAt < CONNECT_FAILURE_RETRY_MS) return undefined;\n\n\tfor (const tab of connectedTabs.values()) {\n\t\tif (tab.isOpen && titlesMatch(tab.title, windowTitle) && (await tabMatchesFrame(tab, frame))) return tab;\n\t}\n\n\ttry {\n\t\tconst pages = await cdpPages();\n\t\tconst match = await pickTab(pages, windowTitle, frame);\n\t\tif (!match) return undefined;\n\n\t\tconst existing = connectedTabs.get(match.id);\n\t\tif (existing?.isOpen) {\n\t\t\texisting.title = match.title;\n\t\t\treturn existing;\n\t\t}\n\t\tlet connecting = connectingTabs.get(match.id);\n\t\tif (!connecting) {\n\t\t\tconnecting = CdpTab.connect(match.webSocketDebuggerUrl!, match.id, match.title);\n\t\t\tconnectingTabs.set(match.id, connecting);\n\t\t}\n\t\tlet connected: CdpTab;\n\t\ttry {\n\t\t\tconnected = await connecting;\n\t\t} finally {\n\t\t\tconnectingTabs.delete(match.id);\n\t\t}\n\t\tconnectedTabs.set(match.id, connected);\n\t\treturn connected;\n\t} catch {\n\t\tlastConnectFailureAt = Date.now();\n\t\treturn undefined;\n\t}\n}\n\ninterface CdpPageTarget {\n\tid: string;\n\ttype: string;\n\ttitle: string;\n\turl?: string;\n\twebSocketDebuggerUrl?: string;\n}\n\nexport async function listCdpPageContexts(): Promise<CdpPageContext[]> {\n\tconst pages = await cdpPages();\n\treturn pages.map((page) => ({\n\t\tcontextId: cdpContextId(page.id),\n\t\ttargetId: page.id,\n\t\ttitle: page.title,\n\t\turl: page.url ?? \"\",\n\t}));\n}\n\nexport async function cdpClickForContext(contextId: string, backendNodeId: number): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.clickBackendNode(backendNodeId);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpTypeForContext(\n\tcontextId: string,\n\tbackendNodeId: number,\n\ttext: string,\n\treplace: boolean,\n): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.typeIntoBackendNode(backendNodeId, text, replace);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpScrollForContext(\n\tcontextId: string,\n\tdeltaX: number,\n\tdeltaY: number,\n\tbackendNodeId?: number,\n): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.scrollBy(deltaX, deltaY, backendNodeId);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpTypeFocusedForContext(contextId: string, text: string): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.typeIntoFocused(text);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpKeypressForContext(contextId: string, keys: string[]): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.keypress(keys);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpMouseForContext(\n\tcontextId: string,\n\tx: number,\n\ty: number,\n\ttype: \"mouseMoved\" | \"mousePressed\" | \"mouseReleased\",\n\tbutton: \"left\" | \"right\" | \"middle\" = \"left\",\n\tclickCount = 1,\n): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.mouseAt(x, y, type, button, clickCount);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpDragForContext(contextId: string, path: Array<{ x: number; y: number }>): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.dragPath(path);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpNavigateContext(contextId: string, url: string): Promise<boolean> {\n\treturn (\n\t\t(await withCdpContextTab(contextId, async (tab) => {\n\t\t\tawait tab.navigate(url);\n\t\t\treturn true;\n\t\t})) === true\n\t);\n}\n\nexport async function cdpEvaluateForContext(\n\tcontextId: string,\n\texpression: string,\n): Promise<CdpEvaluationResult | undefined> {\n\tconst page = await cdpPageForContext(contextId);\n\tif (!page?.webSocketDebuggerUrl) return undefined;\n\tconst tab = await CdpTab.connect(page.webSocketDebuggerUrl, page.id, page.title);\n\ttry {\n\t\treturn { contextId, value: await tab.evaluate(expression) };\n\t} finally {\n\t\ttab.close();\n\t}\n}\n\nexport async function cdpSnapshotForContext(contextId: string): Promise<CdpPageSnapshot | undefined> {\n\tconst page = await cdpPageForContext(contextId);\n\tif (!page?.webSocketDebuggerUrl) return undefined;\n\n\tconst tab = await CdpTab.connect(page.webSocketDebuggerUrl, page.id, page.title);\n\ttry {\n\t\tconst [textValue, nodes] = await Promise.all([\n\t\t\ttab.evaluate(\"document.body ? document.body.innerText : ''\").catch(() => \"\"),\n\t\t\ttab.accessibilityTree().catch(() => []),\n\t\t]);\n\t\tconst snapshotId = randomUUID();\n\t\tconst { targets, outline } = cdpSnapshotOutline(snapshotId, nodes);\n\t\treturn {\n\t\t\tcontextId,\n\t\t\tsnapshotId,\n\t\t\ttargetId: page.id,\n\t\t\ttitle: page.title,\n\t\t\turl: page.url ?? \"\",\n\t\t\tcapturedAt: Date.now(),\n\t\t\ttext: typeof textValue === \"string\" ? textValue : String(textValue ?? \"\"),\n\t\t\ttargets,\n\t\t\toutline,\n\t\t\tdiagnostics: { cdp: \"connected\", targetCount: targets.length },\n\t\t};\n\t} finally {\n\t\ttab.close();\n\t}\n}\n\nasync function withCdpContextTab<T>(contextId: string, run: (tab: CdpTab) => Promise<T>): Promise<T | undefined> {\n\tconst page = await cdpPageForContext(contextId);\n\tif (!page?.webSocketDebuggerUrl) return undefined;\n\tconst tab = await CdpTab.connect(page.webSocketDebuggerUrl, page.id, page.title);\n\ttry {\n\t\treturn await run(tab);\n\t} finally {\n\t\ttab.close();\n\t}\n}\n\nasync function cdpPageForContext(contextId: string): Promise<CdpPageTarget | undefined> {\n\tif (!contextId.startsWith(CDP_CONTEXT_PREFIX)) return undefined;\n\tconst targetId = contextId.slice(CDP_CONTEXT_PREFIX.length);\n\tconst pages = await cdpPages();\n\treturn pages.find((candidate) => candidate.id === targetId);\n}\n\nasync function cdpPages(): Promise<CdpPageTarget[]> {\n\tif (!cdpEnabled()) return [];\n\tconst port = process.env.ADA_COMPUTER_USE_CDP_PORT;\n\tconst response = await fetch(`http://127.0.0.1:${port}/json/list`, { signal: AbortSignal.timeout(2_000) });\n\tconst targets = (await response.json()) as CdpPageTarget[];\n\treturn targets.filter(\n\t\t(target) =>\n\t\t\ttarget.type === \"page\" &&\n\t\t\ttarget.webSocketDebuggerUrl &&\n\t\t\tisLocalDebuggerWebSocket(target.webSocketDebuggerUrl, port),\n\t);\n}\n\nfunction cdpContextId(targetId: string): string {\n\treturn `${CDP_CONTEXT_PREFIX}${targetId}`;\n}\n\nfunction axString(raw: any): string {\n\tconst value = raw?.value ?? raw;\n\treturn typeof value === \"string\" ? value.trim() : \"\";\n}\n\nfunction cdpSnapshotOutline(\n\tsnapshotId: string,\n\tnodes: unknown[],\n): { targets: CdpSnapshotTarget[]; outline: SerializedOutline } {\n\tconst records = new Map<string, any>();\n\tfor (const raw of nodes as any[]) {\n\t\tconst nodeId = String(raw?.nodeId ?? \"\");\n\t\tif (nodeId) records.set(nodeId, raw);\n\t}\n\tconst targets: CdpSnapshotTarget[] = [];\n\tconst build = (raw: any, seen: Set<string>): any => {\n\t\tconst nodeId = String(raw?.nodeId ?? randomUUID());\n\t\tif (seen.has(nodeId)) return undefined;\n\t\tseen.add(nodeId);\n\t\tconst role = axString(raw?.role);\n\t\tconst name = axString(raw?.name);\n\t\tconst actions = browserActionsForAxRole(role);\n\t\tconst backendNodeId = Number.isFinite(raw?.backendDOMNodeId) ? Math.trunc(raw.backendDOMNodeId) : undefined;\n\t\tconst wireRef = `cdp:${nodeId}`;\n\t\tif (actions.length > 0 && name && (!actions.includes(\"click\") || backendNodeId)) {\n\t\t\ttargets.push({\n\t\t\t\tref: wireRef,\n\t\t\t\tsource: \"browser_ax\",\n\t\t\t\trole,\n\t\t\t\tname,\n\t\t\t\tvalue: axString(raw?.value) || undefined,\n\t\t\t\tactions,\n\t\t\t\tbackendNodeId,\n\t\t\t});\n\t\t}\n\t\tconst childIds: string[] = Array.isArray(raw?.childIds) ? raw.childIds.map(String) : [];\n\t\treturn {\n\t\t\tref: wireRef,\n\t\t\trole,\n\t\t\tsubrole: \"\",\n\t\t\tidentifier: \"\",\n\t\t\ttitle: name,\n\t\t\tdescription: axString(raw?.description),\n\t\t\tvalue: axString(raw?.value),\n\t\t\tactions,\n\t\t\tcanPress: actions.includes(\"click\"),\n\t\t\tcanFocus: actions.length > 0,\n\t\t\tcanSetValue: actions.includes(\"set_text\"),\n\t\t\tcanScroll: false,\n\t\t\tcanIncrement: false,\n\t\t\tcanDecrement: false,\n\t\t\tisTextInput: actions.includes(\"set_text\"),\n\t\t\trect: { x: 0, y: 0, w: 0, h: 0 },\n\t\t\tchildren: childIds\n\t\t\t\t.map((id: string) => records.get(id))\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.map((child: any) => build(child, seen))\n\t\t\t\t.filter(Boolean),\n\t\t};\n\t};\n\tconst roots = (nodes as any[]).filter((raw) => !raw?.parentId || !records.has(String(raw.parentId)));\n\tconst children = roots.map((root) => build(root, new Set())).filter(Boolean);\n\tconst rawOutline =\n\t\tchildren.length === 1\n\t\t\t? children[0]\n\t\t\t: {\n\t\t\t\t\tref: `cdp:root:${snapshotId}`,\n\t\t\t\t\trole: \"document\",\n\t\t\t\t\tsubrole: \"\",\n\t\t\t\t\tidentifier: \"\",\n\t\t\t\t\ttitle: \"Browser page\",\n\t\t\t\t\tdescription: \"\",\n\t\t\t\t\tvalue: \"\",\n\t\t\t\t\tactions: [],\n\t\t\t\t\tcanPress: false,\n\t\t\t\t\tcanFocus: false,\n\t\t\t\t\tcanSetValue: false,\n\t\t\t\t\tcanScroll: false,\n\t\t\t\t\tcanIncrement: false,\n\t\t\t\t\tcanDecrement: false,\n\t\t\t\t\tisTextInput: false,\n\t\t\t\t\trect: { x: 0, y: 0, w: 0, h: 0 },\n\t\t\t\t\tchildren,\n\t\t\t\t};\n\tconst parsed = parseLookResponse({\n\t\tlookId: snapshotId,\n\t\tcapturedAt: Date.now() / 1000,\n\t\twindow: {\n\t\t\twindowId: 0,\n\t\t\tframePoints: { x: 0, y: 0, w: 1, h: 1 },\n\t\t\tscaleFactor: 1,\n\t\t\tisModal: false,\n\t\t\trole: \"document\",\n\t\t\tsubrole: \"\",\n\t\t},\n\t\toutline: rawOutline,\n\t\ttimings: {},\n\t}).parsedOutline!;\n\tconst modelRefByWire = parsed.wireRefToRef;\n\tfor (const target of targets) target.ref = modelRefByWire.get(target.ref) ?? target.ref;\n\treturn { targets, outline: serializeOutline(parsed) };\n}\n\nfunction browserActionsForAxRole(role: string): string[] {\n\tconst normalized = role.toLowerCase();\n\tif ([\"button\", \"link\", \"checkbox\", \"radio\", \"menuitem\", \"tab\"].includes(normalized)) return [\"click\"];\n\tif ([\"textbox\", \"searchbox\", \"combobox\"].includes(normalized)) return [\"click\", \"set_text\"];\n\tif ([\"listbox\", \"slider\", \"spinbutton\"].includes(normalized)) return [\"click\"];\n\treturn [];\n}\n\nfunction isLocalDebuggerWebSocket(wsUrl: string, expectedPort: string | undefined): boolean {\n\ttry {\n\t\tconst parsed = new URL(wsUrl);\n\t\tconst localHosts = new Set([\"127.0.0.1\", \"localhost\", \"[::1]\"]);\n\t\treturn (\n\t\t\t(parsed.protocol === \"ws:\" || parsed.protocol === \"wss:\") &&\n\t\t\tlocalHosts.has(parsed.hostname) &&\n\t\t\tparsed.port === expectedPort\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n/**\n * Picks the tab for a window title. Disambiguation order, applied only while\n * more than one candidate remains:\n * 1. exact title matches beat prefix matches;\n * 2. the tab whose browser window frame matches the controlled window\n * (separates same-titled tabs in different windows);\n * 3. the visible tab (separates same-titled tabs in one window — the\n * active tab is \"visible\", background tabs are \"hidden\").\n * /json/list ordering is never trusted; it is an undocumented MRU detail.\n */\nasync function pickTab(\n\tpages: CdpPageTarget[],\n\twindowTitle: string,\n\tframe?: WindowFrame,\n): Promise<CdpPageTarget | undefined> {\n\tconst matches = pages.filter((target) => titlesMatch(target.title, windowTitle));\n\tif (matches.length === 0) return pages.length === 1 ? pages[0] : undefined;\n\tif (matches.length === 1) return matches[0];\n\n\tconst wanted = windowTitle.trim().toLowerCase();\n\tconst exact = matches.filter((target) => target.title.trim().toLowerCase() === wanted);\n\tconst pool = exact.length > 0 ? exact : matches;\n\tif (pool.length === 1) return pool[0];\n\n\tlet visibleFallback: CdpPageTarget | undefined;\n\tfor (const candidate of pool) {\n\t\ttry {\n\t\t\tconst tab = await CdpTab.connect(candidate.webSocketDebuggerUrl!, candidate.id, candidate.title);\n\t\t\tconst inFrame = await tabMatchesFrame(tab, frame, false);\n\t\t\tconst visibility = await tab.evaluate(\"document.visibilityState\").catch(() => undefined);\n\t\t\ttab.close();\n\t\t\tif (frame && inFrame && visibility === \"visible\") return candidate;\n\t\t\tif (frame && inFrame && !visibleFallback) visibleFallback = candidate;\n\t\t\tif (!frame && visibility === \"visible\") return candidate;\n\t\t} catch {\n\t\t\t// candidate unreachable; try the next one\n\t\t}\n\t}\n\treturn visibleFallback ?? pool[0];\n}\n\n/**\n * Whether the tab's browser window frame matches the AX window frame.\n * `trustOnUnknown` controls the answer when bounds cannot be read: cache\n * verification trusts the existing connection, candidate selection does not.\n */\nasync function tabMatchesFrame(tab: CdpTab, frame: WindowFrame | undefined, trustOnUnknown = true): Promise<boolean> {\n\tif (!frame) return true;\n\tconst bounds = await tab.windowBounds().catch(() => undefined);\n\tif (!bounds) return trustOnUnknown;\n\tconst tolerance = 50;\n\treturn (\n\t\tMath.abs(bounds.x + bounds.w / 2 - (frame.x + frame.w / 2)) <= tolerance &&\n\t\tMath.abs(bounds.y + bounds.h / 2 - (frame.y + frame.h / 2)) <= tolerance\n\t);\n}\n\n// The AX window title for a Chrome-family browser is usually the active tab\n// title, sometimes suffixed (\" - Google Chrome\", profile name), so compare\n// by prefix in both directions.\nfunction titlesMatch(tabTitle: string, windowTitle: string): boolean {\n\tconst tab = tabTitle.trim().toLowerCase();\n\tconst win = windowTitle.trim().toLowerCase();\n\tif (!tab || !win) return false;\n\treturn tab === win || win.startsWith(tab) || tab.startsWith(win);\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ComputerUseConfig {
|
|
2
|
+
browser_use: boolean;
|
|
3
|
+
headless: boolean;
|
|
4
|
+
cursor_overlay: boolean;
|
|
5
|
+
managed_browser: "helium" | "chrome";
|
|
6
|
+
}
|
|
7
|
+
export interface ComputerUseConfigSource {
|
|
8
|
+
path: string;
|
|
9
|
+
exists: boolean;
|
|
10
|
+
values?: Partial<ComputerUseConfig>;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface LoadedComputerUseConfig {
|
|
14
|
+
config: ComputerUseConfig;
|
|
15
|
+
sources: ComputerUseConfigSource[];
|
|
16
|
+
env: Partial<ComputerUseConfig>;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadComputerUseConfig(cwd: string): LoadedComputerUseConfig;
|
|
19
|
+
export declare function getComputerUseConfig(): ComputerUseConfig;
|
|
20
|
+
export declare function getLoadedComputerUseConfig(): LoadedComputerUseConfig;
|
|
21
|
+
export declare function isHeadlessMode(): boolean;
|
|
22
|
+
export declare function isBrowserUseEnabled(): boolean;
|
|
23
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/core/computer/motor/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AA6DD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAc1E;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAED,wBAAgB,0BAA0B,IAAI,uBAAuB,CAEpE;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { getAgentDir } from \"../../../config.ts\";\n\nexport interface ComputerUseConfig {\n\tbrowser_use: boolean;\n\theadless: boolean;\n\tcursor_overlay: boolean;\n\tmanaged_browser: \"helium\" | \"chrome\";\n}\n\nexport interface ComputerUseConfigSource {\n\tpath: string;\n\texists: boolean;\n\tvalues?: Partial<ComputerUseConfig>;\n\terror?: string;\n}\n\nexport interface LoadedComputerUseConfig {\n\tconfig: ComputerUseConfig;\n\tsources: ComputerUseConfigSource[];\n\tenv: Partial<ComputerUseConfig>;\n}\n\nconst DEFAULT_CONFIG: ComputerUseConfig = {\n\tbrowser_use: true,\n\theadless: false,\n\tcursor_overlay: true,\n\tmanaged_browser: \"chrome\",\n};\n\nlet activeConfig: ComputerUseConfig = { ...DEFAULT_CONFIG };\nlet activeLoadedConfig: LoadedComputerUseConfig = { config: activeConfig, sources: [], env: {} };\n\nfunction parseBoolean(value: unknown): boolean | undefined {\n\tif (typeof value === \"boolean\") return value;\n\tif (typeof value === \"number\") return value === 1 ? true : value === 0 ? false : undefined;\n\tif (typeof value !== \"string\") return undefined;\n\tconst normalized = value.trim().toLowerCase();\n\tif ([\"1\", \"true\", \"yes\", \"on\", \"enabled\"].includes(normalized)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"disabled\"].includes(normalized)) return false;\n\treturn undefined;\n}\n\nfunction normalizePartial(raw: unknown): Partial<ComputerUseConfig> {\n\tif (!raw || typeof raw !== \"object\") return {};\n\tconst source =\n\t\t(raw as any).computer_use && typeof (raw as any).computer_use === \"object\" ? (raw as any).computer_use : raw;\n\tconst out: Partial<ComputerUseConfig> = {};\n\tconst browserUse = parseBoolean((source as any).browser_use);\n\tconst headless = parseBoolean((source as any).headless);\n\tconst cursorOverlay = parseBoolean((source as any).cursor_overlay);\n\tif (browserUse !== undefined) out.browser_use = browserUse;\n\tif (headless !== undefined) out.headless = headless;\n\tif (cursorOverlay !== undefined) out.cursor_overlay = cursorOverlay;\n\tconst managedBrowser = (source as any).managed_browser;\n\tif (managedBrowser === \"helium\" || managedBrowser === \"chrome\") out.managed_browser = managedBrowser;\n\treturn out;\n}\n\nfunction readConfigFile(filePath: string): ComputerUseConfigSource {\n\tif (!existsSync(filePath)) return { path: filePath, exists: false };\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(filePath, \"utf-8\"));\n\t\treturn { path: filePath, exists: true, values: normalizePartial(parsed) };\n\t} catch (error) {\n\t\treturn { path: filePath, exists: true, error: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\nfunction readEnv(): Partial<ComputerUseConfig> {\n\tconst out: Partial<ComputerUseConfig> = {};\n\tconst browserUse = parseBoolean(process.env.ADA_COMPUTER_USE_BROWSER_USE);\n\tconst headless = parseBoolean(process.env.ADA_COMPUTER_USE_HEADLESS);\n\tconst cursorOverlay = parseBoolean(process.env.ADA_COMPUTER_USE_CURSOR_OVERLAY);\n\tif (browserUse !== undefined) out.browser_use = browserUse;\n\tif (headless !== undefined) out.headless = headless;\n\tif (cursorOverlay !== undefined) out.cursor_overlay = cursorOverlay;\n\tconst managedBrowser = process.env.ADA_COMPUTER_USE_MANAGED_BROWSER;\n\tif (managedBrowser === \"helium\" || managedBrowser === \"chrome\") out.managed_browser = managedBrowser;\n\treturn out;\n}\n\nexport function loadComputerUseConfig(cwd: string): LoadedComputerUseConfig {\n\tconst sources = [\n\t\treadConfigFile(path.join(getAgentDir(), \"extensions\", \"ada-computer-use.json\")),\n\t\treadConfigFile(path.join(cwd, \".pi\", \"computer-use.json\")),\n\t];\n\tconst env = readEnv();\n\tconst config = { ...DEFAULT_CONFIG };\n\tfor (const source of sources) {\n\t\tif (source.values) Object.assign(config, source.values);\n\t}\n\tObject.assign(config, env);\n\tactiveConfig = config;\n\tactiveLoadedConfig = { config, sources, env };\n\treturn activeLoadedConfig;\n}\n\nexport function getComputerUseConfig(): ComputerUseConfig {\n\treturn activeConfig;\n}\n\nexport function getLoadedComputerUseConfig(): LoadedComputerUseConfig {\n\treturn activeLoadedConfig;\n}\n\nexport function isHeadlessMode(): boolean {\n\treturn activeConfig.headless;\n}\n\nexport function isBrowserUseEnabled(): boolean {\n\treturn activeConfig.browser_use;\n}\n"]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { getAgentDir } from "../../../config.js";
|
|
4
|
+
const DEFAULT_CONFIG = {
|
|
5
|
+
browser_use: true,
|
|
6
|
+
headless: false,
|
|
7
|
+
cursor_overlay: true,
|
|
8
|
+
managed_browser: "chrome",
|
|
9
|
+
};
|
|
10
|
+
let activeConfig = { ...DEFAULT_CONFIG };
|
|
11
|
+
let activeLoadedConfig = { config: activeConfig, sources: [], env: {} };
|
|
12
|
+
function parseBoolean(value) {
|
|
13
|
+
if (typeof value === "boolean")
|
|
14
|
+
return value;
|
|
15
|
+
if (typeof value === "number")
|
|
16
|
+
return value === 1 ? true : value === 0 ? false : undefined;
|
|
17
|
+
if (typeof value !== "string")
|
|
18
|
+
return undefined;
|
|
19
|
+
const normalized = value.trim().toLowerCase();
|
|
20
|
+
if (["1", "true", "yes", "on", "enabled"].includes(normalized))
|
|
21
|
+
return true;
|
|
22
|
+
if (["0", "false", "no", "off", "disabled"].includes(normalized))
|
|
23
|
+
return false;
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
function normalizePartial(raw) {
|
|
27
|
+
if (!raw || typeof raw !== "object")
|
|
28
|
+
return {};
|
|
29
|
+
const source = raw.computer_use && typeof raw.computer_use === "object" ? raw.computer_use : raw;
|
|
30
|
+
const out = {};
|
|
31
|
+
const browserUse = parseBoolean(source.browser_use);
|
|
32
|
+
const headless = parseBoolean(source.headless);
|
|
33
|
+
const cursorOverlay = parseBoolean(source.cursor_overlay);
|
|
34
|
+
if (browserUse !== undefined)
|
|
35
|
+
out.browser_use = browserUse;
|
|
36
|
+
if (headless !== undefined)
|
|
37
|
+
out.headless = headless;
|
|
38
|
+
if (cursorOverlay !== undefined)
|
|
39
|
+
out.cursor_overlay = cursorOverlay;
|
|
40
|
+
const managedBrowser = source.managed_browser;
|
|
41
|
+
if (managedBrowser === "helium" || managedBrowser === "chrome")
|
|
42
|
+
out.managed_browser = managedBrowser;
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
function readConfigFile(filePath) {
|
|
46
|
+
if (!existsSync(filePath))
|
|
47
|
+
return { path: filePath, exists: false };
|
|
48
|
+
try {
|
|
49
|
+
const parsed = JSON.parse(readFileSync(filePath, "utf-8"));
|
|
50
|
+
return { path: filePath, exists: true, values: normalizePartial(parsed) };
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return { path: filePath, exists: true, error: error instanceof Error ? error.message : String(error) };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function readEnv() {
|
|
57
|
+
const out = {};
|
|
58
|
+
const browserUse = parseBoolean(process.env.ADA_COMPUTER_USE_BROWSER_USE);
|
|
59
|
+
const headless = parseBoolean(process.env.ADA_COMPUTER_USE_HEADLESS);
|
|
60
|
+
const cursorOverlay = parseBoolean(process.env.ADA_COMPUTER_USE_CURSOR_OVERLAY);
|
|
61
|
+
if (browserUse !== undefined)
|
|
62
|
+
out.browser_use = browserUse;
|
|
63
|
+
if (headless !== undefined)
|
|
64
|
+
out.headless = headless;
|
|
65
|
+
if (cursorOverlay !== undefined)
|
|
66
|
+
out.cursor_overlay = cursorOverlay;
|
|
67
|
+
const managedBrowser = process.env.ADA_COMPUTER_USE_MANAGED_BROWSER;
|
|
68
|
+
if (managedBrowser === "helium" || managedBrowser === "chrome")
|
|
69
|
+
out.managed_browser = managedBrowser;
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
export function loadComputerUseConfig(cwd) {
|
|
73
|
+
const sources = [
|
|
74
|
+
readConfigFile(path.join(getAgentDir(), "extensions", "ada-computer-use.json")),
|
|
75
|
+
readConfigFile(path.join(cwd, ".pi", "computer-use.json")),
|
|
76
|
+
];
|
|
77
|
+
const env = readEnv();
|
|
78
|
+
const config = { ...DEFAULT_CONFIG };
|
|
79
|
+
for (const source of sources) {
|
|
80
|
+
if (source.values)
|
|
81
|
+
Object.assign(config, source.values);
|
|
82
|
+
}
|
|
83
|
+
Object.assign(config, env);
|
|
84
|
+
activeConfig = config;
|
|
85
|
+
activeLoadedConfig = { config, sources, env };
|
|
86
|
+
return activeLoadedConfig;
|
|
87
|
+
}
|
|
88
|
+
export function getComputerUseConfig() {
|
|
89
|
+
return activeConfig;
|
|
90
|
+
}
|
|
91
|
+
export function getLoadedComputerUseConfig() {
|
|
92
|
+
return activeLoadedConfig;
|
|
93
|
+
}
|
|
94
|
+
export function isHeadlessMode() {
|
|
95
|
+
return activeConfig.headless;
|
|
96
|
+
}
|
|
97
|
+
export function isBrowserUseEnabled() {
|
|
98
|
+
return activeConfig.browser_use;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { getAgentDir } from \"../../../config.ts\";\n\nexport interface ComputerUseConfig {\n\tbrowser_use: boolean;\n\theadless: boolean;\n\tcursor_overlay: boolean;\n\tmanaged_browser: \"helium\" | \"chrome\";\n}\n\nexport interface ComputerUseConfigSource {\n\tpath: string;\n\texists: boolean;\n\tvalues?: Partial<ComputerUseConfig>;\n\terror?: string;\n}\n\nexport interface LoadedComputerUseConfig {\n\tconfig: ComputerUseConfig;\n\tsources: ComputerUseConfigSource[];\n\tenv: Partial<ComputerUseConfig>;\n}\n\nconst DEFAULT_CONFIG: ComputerUseConfig = {\n\tbrowser_use: true,\n\theadless: false,\n\tcursor_overlay: true,\n\tmanaged_browser: \"chrome\",\n};\n\nlet activeConfig: ComputerUseConfig = { ...DEFAULT_CONFIG };\nlet activeLoadedConfig: LoadedComputerUseConfig = { config: activeConfig, sources: [], env: {} };\n\nfunction parseBoolean(value: unknown): boolean | undefined {\n\tif (typeof value === \"boolean\") return value;\n\tif (typeof value === \"number\") return value === 1 ? true : value === 0 ? false : undefined;\n\tif (typeof value !== \"string\") return undefined;\n\tconst normalized = value.trim().toLowerCase();\n\tif ([\"1\", \"true\", \"yes\", \"on\", \"enabled\"].includes(normalized)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"disabled\"].includes(normalized)) return false;\n\treturn undefined;\n}\n\nfunction normalizePartial(raw: unknown): Partial<ComputerUseConfig> {\n\tif (!raw || typeof raw !== \"object\") return {};\n\tconst source =\n\t\t(raw as any).computer_use && typeof (raw as any).computer_use === \"object\" ? (raw as any).computer_use : raw;\n\tconst out: Partial<ComputerUseConfig> = {};\n\tconst browserUse = parseBoolean((source as any).browser_use);\n\tconst headless = parseBoolean((source as any).headless);\n\tconst cursorOverlay = parseBoolean((source as any).cursor_overlay);\n\tif (browserUse !== undefined) out.browser_use = browserUse;\n\tif (headless !== undefined) out.headless = headless;\n\tif (cursorOverlay !== undefined) out.cursor_overlay = cursorOverlay;\n\tconst managedBrowser = (source as any).managed_browser;\n\tif (managedBrowser === \"helium\" || managedBrowser === \"chrome\") out.managed_browser = managedBrowser;\n\treturn out;\n}\n\nfunction readConfigFile(filePath: string): ComputerUseConfigSource {\n\tif (!existsSync(filePath)) return { path: filePath, exists: false };\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(filePath, \"utf-8\"));\n\t\treturn { path: filePath, exists: true, values: normalizePartial(parsed) };\n\t} catch (error) {\n\t\treturn { path: filePath, exists: true, error: error instanceof Error ? error.message : String(error) };\n\t}\n}\n\nfunction readEnv(): Partial<ComputerUseConfig> {\n\tconst out: Partial<ComputerUseConfig> = {};\n\tconst browserUse = parseBoolean(process.env.ADA_COMPUTER_USE_BROWSER_USE);\n\tconst headless = parseBoolean(process.env.ADA_COMPUTER_USE_HEADLESS);\n\tconst cursorOverlay = parseBoolean(process.env.ADA_COMPUTER_USE_CURSOR_OVERLAY);\n\tif (browserUse !== undefined) out.browser_use = browserUse;\n\tif (headless !== undefined) out.headless = headless;\n\tif (cursorOverlay !== undefined) out.cursor_overlay = cursorOverlay;\n\tconst managedBrowser = process.env.ADA_COMPUTER_USE_MANAGED_BROWSER;\n\tif (managedBrowser === \"helium\" || managedBrowser === \"chrome\") out.managed_browser = managedBrowser;\n\treturn out;\n}\n\nexport function loadComputerUseConfig(cwd: string): LoadedComputerUseConfig {\n\tconst sources = [\n\t\treadConfigFile(path.join(getAgentDir(), \"extensions\", \"ada-computer-use.json\")),\n\t\treadConfigFile(path.join(cwd, \".pi\", \"computer-use.json\")),\n\t];\n\tconst env = readEnv();\n\tconst config = { ...DEFAULT_CONFIG };\n\tfor (const source of sources) {\n\t\tif (source.values) Object.assign(config, source.values);\n\t}\n\tObject.assign(config, env);\n\tactiveConfig = config;\n\tactiveLoadedConfig = { config, sources, env };\n\treturn activeLoadedConfig;\n}\n\nexport function getComputerUseConfig(): ComputerUseConfig {\n\treturn activeConfig;\n}\n\nexport function getLoadedComputerUseConfig(): LoadedComputerUseConfig {\n\treturn activeLoadedConfig;\n}\n\nexport function isHeadlessMode(): boolean {\n\treturn activeConfig.headless;\n}\n\nexport function isBrowserUseEnabled(): boolean {\n\treturn activeConfig.browser_use;\n}\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export type RootSelector = string;
|
|
2
|
+
export type ImageMode = "auto" | "always" | "never";
|
|
3
|
+
export type MouseButtonName = "left" | "right" | "middle";
|
|
4
|
+
export interface ObserveTargetParams {
|
|
5
|
+
root?: RootSelector;
|
|
6
|
+
}
|
|
7
|
+
export interface FindParams {
|
|
8
|
+
text?: string;
|
|
9
|
+
app?: string;
|
|
10
|
+
bundleId?: string;
|
|
11
|
+
pid?: number;
|
|
12
|
+
/** Filters on the platform's best-effort presentation hint; only window vs transient is guaranteed. */
|
|
13
|
+
kind?: "window" | "menu" | "sheet" | "popover" | "dialog" | "browser_page";
|
|
14
|
+
}
|
|
15
|
+
export interface StateTargetParams {
|
|
16
|
+
stateId?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface NavigateBrowserParams extends StateTargetParams {
|
|
19
|
+
url: string;
|
|
20
|
+
}
|
|
21
|
+
export interface LaunchBrowserParams {
|
|
22
|
+
url?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface EvaluateBrowserParams {
|
|
25
|
+
stateId: string;
|
|
26
|
+
expression: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ObserveParams extends ObserveTargetParams {
|
|
29
|
+
mode?: "semantic" | "visual" | "fused";
|
|
30
|
+
/** Internal capture override; not part of the model-facing schema. */
|
|
31
|
+
readText?: "auto" | "always" | "never";
|
|
32
|
+
}
|
|
33
|
+
export interface SearchUiParams extends StateTargetParams {
|
|
34
|
+
text?: string;
|
|
35
|
+
role?: string;
|
|
36
|
+
capability?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ExpandUiParams extends StateTargetParams {
|
|
39
|
+
ref: string;
|
|
40
|
+
depth?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface InspectUiParams extends StateTargetParams {
|
|
43
|
+
ref: string;
|
|
44
|
+
}
|
|
45
|
+
export interface UiCondition {
|
|
46
|
+
ref?: string;
|
|
47
|
+
scopeRef?: string;
|
|
48
|
+
text?: string;
|
|
49
|
+
role?: string;
|
|
50
|
+
value?: string;
|
|
51
|
+
until?: "present" | "absent";
|
|
52
|
+
timeoutMs?: number;
|
|
53
|
+
}
|
|
54
|
+
export interface UiAction {
|
|
55
|
+
action: "press" | "click" | "setText" | "typeText" | "keypress" | "scroll" | "drag" | "moveMouse";
|
|
56
|
+
ref?: string;
|
|
57
|
+
x?: number;
|
|
58
|
+
y?: number;
|
|
59
|
+
text?: string;
|
|
60
|
+
keys?: string[];
|
|
61
|
+
scrollX?: number;
|
|
62
|
+
scrollY?: number;
|
|
63
|
+
path?: Array<{
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
} | [number, number]>;
|
|
67
|
+
button?: MouseButtonName;
|
|
68
|
+
clickCount?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface ActParams extends StateTargetParams {
|
|
71
|
+
actions: UiAction[];
|
|
72
|
+
expect?: UiCondition;
|
|
73
|
+
}
|
|
74
|
+
export interface ReadTextParams extends StateTargetParams {
|
|
75
|
+
ref: string;
|
|
76
|
+
offset?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface WaitForParams extends StateTargetParams, UiCondition {
|
|
79
|
+
}
|
|
80
|
+
export declare const AGENT_TOOL_NAMES: Set<string>;
|
|
81
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/core/computer/motor/contract.ts"],"names":[],"mappings":"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","sourcesContent":["export type RootSelector = string;\nexport type ImageMode = \"auto\" | \"always\" | \"never\";\nexport type MouseButtonName = \"left\" | \"right\" | \"middle\";\n\nexport interface ObserveTargetParams {\n\troot?: RootSelector;\n}\n\nexport interface FindParams {\n\ttext?: string;\n\tapp?: string;\n\tbundleId?: string;\n\tpid?: number;\n\t/** Filters on the platform's best-effort presentation hint; only window vs transient is guaranteed. */\n\tkind?: \"window\" | \"menu\" | \"sheet\" | \"popover\" | \"dialog\" | \"browser_page\";\n}\n\nexport interface StateTargetParams {\n\tstateId?: string;\n}\n\nexport interface NavigateBrowserParams extends StateTargetParams {\n\turl: string;\n}\n\nexport interface LaunchBrowserParams {\n\turl?: string;\n}\n\nexport interface EvaluateBrowserParams {\n\tstateId: string;\n\texpression: string;\n}\n\nexport interface ObserveParams extends ObserveTargetParams {\n\tmode?: \"semantic\" | \"visual\" | \"fused\";\n\t/** Internal capture override; not part of the model-facing schema. */\n\treadText?: \"auto\" | \"always\" | \"never\";\n}\n\nexport interface SearchUiParams extends StateTargetParams {\n\ttext?: string;\n\trole?: string;\n\tcapability?: string;\n}\n\nexport interface ExpandUiParams extends StateTargetParams {\n\tref: string;\n\tdepth?: number;\n}\n\nexport interface InspectUiParams extends StateTargetParams {\n\tref: string;\n}\n\nexport interface UiCondition {\n\tref?: string;\n\tscopeRef?: string;\n\ttext?: string;\n\trole?: string;\n\tvalue?: string;\n\tuntil?: \"present\" | \"absent\";\n\ttimeoutMs?: number;\n}\n\nexport interface UiAction {\n\taction: \"press\" | \"click\" | \"setText\" | \"typeText\" | \"keypress\" | \"scroll\" | \"drag\" | \"moveMouse\";\n\tref?: string;\n\tx?: number;\n\ty?: number;\n\ttext?: string;\n\tkeys?: string[];\n\tscrollX?: number;\n\tscrollY?: number;\n\tpath?: Array<{ x: number; y: number } | [number, number]>;\n\tbutton?: MouseButtonName;\n\tclickCount?: number;\n}\n\nexport interface ActParams extends StateTargetParams {\n\tactions: UiAction[];\n\texpect?: UiCondition;\n}\n\nexport interface ReadTextParams extends StateTargetParams {\n\tref: string;\n\toffset?: number;\n}\n\nexport interface WaitForParams extends StateTargetParams, UiCondition {}\n\nexport const AGENT_TOOL_NAMES = new Set([\n\t\"find_roots\",\n\t\"read_text\",\n\t\"wait_for\",\n\t\"observe_ui\",\n\t\"search_ui\",\n\t\"expand_ui\",\n\t\"inspect_ui\",\n\t\"act_ui\",\n\t\"navigate_browser\",\n\t\"evaluate_browser\",\n\t\"launch_browser\",\n]);\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const AGENT_TOOL_NAMES = new Set([
|
|
2
|
+
"find_roots",
|
|
3
|
+
"read_text",
|
|
4
|
+
"wait_for",
|
|
5
|
+
"observe_ui",
|
|
6
|
+
"search_ui",
|
|
7
|
+
"expand_ui",
|
|
8
|
+
"inspect_ui",
|
|
9
|
+
"act_ui",
|
|
10
|
+
"navigate_browser",
|
|
11
|
+
"evaluate_browser",
|
|
12
|
+
"launch_browser",
|
|
13
|
+
]);
|
|
14
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../src/core/computer/motor/contract.ts"],"names":[],"mappings":"AA2FA,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACvC,YAAY;IACZ,WAAW;IACX,UAAU;IACV,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;CAChB,CAAC,CAAC","sourcesContent":["export type RootSelector = string;\nexport type ImageMode = \"auto\" | \"always\" | \"never\";\nexport type MouseButtonName = \"left\" | \"right\" | \"middle\";\n\nexport interface ObserveTargetParams {\n\troot?: RootSelector;\n}\n\nexport interface FindParams {\n\ttext?: string;\n\tapp?: string;\n\tbundleId?: string;\n\tpid?: number;\n\t/** Filters on the platform's best-effort presentation hint; only window vs transient is guaranteed. */\n\tkind?: \"window\" | \"menu\" | \"sheet\" | \"popover\" | \"dialog\" | \"browser_page\";\n}\n\nexport interface StateTargetParams {\n\tstateId?: string;\n}\n\nexport interface NavigateBrowserParams extends StateTargetParams {\n\turl: string;\n}\n\nexport interface LaunchBrowserParams {\n\turl?: string;\n}\n\nexport interface EvaluateBrowserParams {\n\tstateId: string;\n\texpression: string;\n}\n\nexport interface ObserveParams extends ObserveTargetParams {\n\tmode?: \"semantic\" | \"visual\" | \"fused\";\n\t/** Internal capture override; not part of the model-facing schema. */\n\treadText?: \"auto\" | \"always\" | \"never\";\n}\n\nexport interface SearchUiParams extends StateTargetParams {\n\ttext?: string;\n\trole?: string;\n\tcapability?: string;\n}\n\nexport interface ExpandUiParams extends StateTargetParams {\n\tref: string;\n\tdepth?: number;\n}\n\nexport interface InspectUiParams extends StateTargetParams {\n\tref: string;\n}\n\nexport interface UiCondition {\n\tref?: string;\n\tscopeRef?: string;\n\ttext?: string;\n\trole?: string;\n\tvalue?: string;\n\tuntil?: \"present\" | \"absent\";\n\ttimeoutMs?: number;\n}\n\nexport interface UiAction {\n\taction: \"press\" | \"click\" | \"setText\" | \"typeText\" | \"keypress\" | \"scroll\" | \"drag\" | \"moveMouse\";\n\tref?: string;\n\tx?: number;\n\ty?: number;\n\ttext?: string;\n\tkeys?: string[];\n\tscrollX?: number;\n\tscrollY?: number;\n\tpath?: Array<{ x: number; y: number } | [number, number]>;\n\tbutton?: MouseButtonName;\n\tclickCount?: number;\n}\n\nexport interface ActParams extends StateTargetParams {\n\tactions: UiAction[];\n\texpect?: UiCondition;\n}\n\nexport interface ReadTextParams extends StateTargetParams {\n\tref: string;\n\toffset?: number;\n}\n\nexport interface WaitForParams extends StateTargetParams, UiCondition {}\n\nexport const AGENT_TOOL_NAMES = new Set([\n\t\"find_roots\",\n\t\"read_text\",\n\t\"wait_for\",\n\t\"observe_ui\",\n\t\"search_ui\",\n\t\"expand_ui\",\n\t\"inspect_ui\",\n\t\"act_ui\",\n\t\"navigate_browser\",\n\t\"evaluate_browser\",\n\t\"launch_browser\",\n]);\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type Outline } from "./outline.ts";
|
|
2
|
+
interface NoteRegion {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
status: "seen" | "changed" | "never-looked";
|
|
6
|
+
detail?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WindowNote {
|
|
9
|
+
windowRef: string;
|
|
10
|
+
title: string;
|
|
11
|
+
pairing: "exact" | "high" | "low";
|
|
12
|
+
lastLookId?: string;
|
|
13
|
+
regions: NoteRegion[];
|
|
14
|
+
}
|
|
15
|
+
interface NoteWindowInput {
|
|
16
|
+
windowRef?: string;
|
|
17
|
+
title: string;
|
|
18
|
+
pairing?: "exact" | "high" | "low";
|
|
19
|
+
pairingScore?: number;
|
|
20
|
+
}
|
|
21
|
+
interface NoteRefreshOutcome {
|
|
22
|
+
window: NoteWindowInput;
|
|
23
|
+
windowChanged?: boolean;
|
|
24
|
+
newWindowLabel?: string;
|
|
25
|
+
rootDelta?: Array<{
|
|
26
|
+
change: string;
|
|
27
|
+
kind: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
ref?: string;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export declare function noteFromLook(prev: WindowNote | undefined, outline: Outline, window: NoteWindowInput): WindowNote;
|
|
33
|
+
export declare function noteAfterAct(prev: WindowNote | undefined, targetRef: string | undefined, outline: Outline, refreshOutcome: NoteRefreshOutcome): WindowNote;
|
|
34
|
+
export declare function noteRegionKeyForRef(outline: Outline, ref: string): string | undefined;
|
|
35
|
+
export declare function renderNote(note: WindowNote | undefined): string;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=note.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../../../src/core/computer/motor/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAsC,MAAM,cAAc,CAAC;AAE3F,UAAU,UAAU;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,eAAe;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClF;AAwED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,UAAU,CAoChH;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,kBAAkB,GAChC,UAAU,CAoCZ;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAkB/D","sourcesContent":["import { nodeByRef, type Outline, type OutlineNode, outlineNodeLabel } from \"./outline.ts\";\n\ninterface NoteRegion {\n\tkey: string;\n\tlabel: string;\n\tstatus: \"seen\" | \"changed\" | \"never-looked\";\n\tdetail?: string;\n}\n\nexport interface WindowNote {\n\twindowRef: string;\n\ttitle: string;\n\tpairing: \"exact\" | \"high\" | \"low\";\n\tlastLookId?: string;\n\tregions: NoteRegion[];\n}\n\ninterface NoteWindowInput {\n\twindowRef?: string;\n\ttitle: string;\n\tpairing?: \"exact\" | \"high\" | \"low\";\n\tpairingScore?: number;\n}\n\ninterface NoteRefreshOutcome {\n\twindow: NoteWindowInput;\n\twindowChanged?: boolean;\n\tnewWindowLabel?: string;\n\trootDelta?: Array<{ change: string; kind: string; title?: string; ref?: string }>;\n}\n\nfunction normalizedLabel(value: string): string {\n\treturn value.toLowerCase().replace(/\\s+/g, \" \").trim();\n}\n\nfunction nodeLabel(node: OutlineNode): string {\n\treturn outlineNodeLabel(node) || node.role || node.ref;\n}\n\nfunction regionKey(node: OutlineNode): string {\n\treturn `${node.role || \"AXUnknown\"}:${node.identifier || normalizedLabel(nodeLabel(node)) || node.ref}`;\n}\n\nfunction regionLabel(node: OutlineNode): string {\n\tconst label = nodeLabel(node);\n\treturn normalizedLabel(label) || normalizedLabel(node.role) || node.ref;\n}\n\nfunction topLevelRegions(outline: Outline): Array<{ node: OutlineNode; key: string; label: string }> {\n\tconst nodes = outline.root.children.length ? outline.root.children : [outline.root];\n\treturn nodes.map((node) => ({ node, key: regionKey(node), label: regionLabel(node) }));\n}\n\nfunction topLevelAncestor(node: OutlineNode, outline: Outline): OutlineNode {\n\tlet current = node;\n\twhile (current.parent && current.parent !== outline.root) current = current.parent;\n\treturn current;\n}\n\nfunction uniqueRegions(regions: NoteRegion[]): NoteRegion[] {\n\tconst seen = new Set<string>();\n\tconst output: NoteRegion[] = [];\n\tfor (const region of regions) {\n\t\tconst dedupeKey = `${region.key}:${region.status}:${region.detail ?? \"\"}`;\n\t\tif (seen.has(dedupeKey)) continue;\n\t\tseen.add(dedupeKey);\n\t\toutput.push(region);\n\t}\n\treturn output;\n}\n\nfunction frontierRegions(\n\toutline: Outline,\n\ttopLevels: Array<{ node: OutlineNode; key: string; label: string }>,\n): NoteRegion[] {\n\tconst output: NoteRegion[] = [];\n\tfor (const node of outline.nodes) {\n\t\tif (node.scrollExtent && node.scrollExtent.seen < node.scrollExtent.total) {\n\t\t\tconst ancestor = topLevelAncestor(node, outline);\n\t\t\tconst top = topLevels.find((candidate) => candidate.node === ancestor);\n\t\t\toutput.push({\n\t\t\t\tkey: `${top?.key ?? regionKey(ancestor)}:scroll:${node.ref}`,\n\t\t\t\tlabel: top?.label ?? regionLabel(ancestor),\n\t\t\t\tstatus: \"never-looked\",\n\t\t\t\tdetail: `${node.scrollExtent.total} rows, ${node.scrollExtent.seen} seen`,\n\t\t\t});\n\t\t}\n\t\tif (node.truncated) {\n\t\t\tconst ancestor = topLevelAncestor(node, outline);\n\t\t\tconst top = topLevels.find((candidate) => candidate.node === ancestor);\n\t\t\toutput.push({\n\t\t\t\tkey: `${top?.key ?? regionKey(ancestor)}:truncated:${node.ref}`,\n\t\t\t\tlabel: top?.label ?? regionLabel(ancestor),\n\t\t\t\tstatus: \"never-looked\",\n\t\t\t\tdetail: \"subtree not walked\",\n\t\t\t});\n\t\t}\n\t}\n\treturn output;\n}\n\nexport function noteFromLook(prev: WindowNote | undefined, outline: Outline, window: NoteWindowInput): WindowNote {\n\tconst topLevels = topLevelRegions(outline);\n\tconst currentKeys = new Set(topLevels.map((region) => region.key));\n\tconst regions: NoteRegion[] = topLevels.map((region) => ({\n\t\tkey: region.key,\n\t\tlabel: region.label,\n\t\tstatus: \"seen\",\n\t}));\n\n\tif (prev) {\n\t\tfor (const old of prev.regions) {\n\t\t\tif (old.status === \"never-looked\") continue;\n\t\t\tif (!currentKeys.has(old.key)) {\n\t\t\t\tregions.push({ ...old, status: \"changed\", detail: \"not matched in latest look\" });\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!window.windowRef || window.pairingScore === Number.NEGATIVE_INFINITY) {\n\t\tregions.push({\n\t\t\tkey: \"window:unpaired\",\n\t\t\tlabel: \"window capture\",\n\t\t\tstatus: \"never-looked\",\n\t\t\tdetail: \"AX window without capture pairing\",\n\t\t});\n\t}\n\n\tregions.push(...frontierRegions(outline, topLevels));\n\n\treturn {\n\t\twindowRef: window.windowRef ?? \"(unpaired)\",\n\t\ttitle: window.title,\n\t\tpairing: window.pairing ?? \"low\",\n\t\tlastLookId: outline.lookId,\n\t\tregions: uniqueRegions(regions),\n\t};\n}\n\nexport function noteAfterAct(\n\tprev: WindowNote | undefined,\n\ttargetRef: string | undefined,\n\toutline: Outline,\n\trefreshOutcome: NoteRefreshOutcome,\n): WindowNote {\n\tconst note = noteFromLook(prev, outline, refreshOutcome.window);\n\tif (targetRef) {\n\t\tconst target = nodeByRef(outline, targetRef);\n\t\tif (target) {\n\t\t\tconst ancestor = topLevelAncestor(target, outline);\n\t\t\tconst key = regionKey(ancestor);\n\t\t\tconst region = note.regions.find((candidate) => candidate.key === key);\n\t\t\tif (region) {\n\t\t\t\tregion.status = \"changed\";\n\t\t\t\tregion.detail = \"acted here\";\n\t\t\t} else {\n\t\t\t\tnote.regions.unshift({ key, label: regionLabel(ancestor), status: \"changed\", detail: \"acted here\" });\n\t\t\t}\n\t\t}\n\t}\n\tfor (const delta of refreshOutcome.rootDelta ?? []) {\n\t\tnote.regions.unshift({\n\t\t\tkey: `root:${delta.change}:${delta.ref ?? delta.kind}:${delta.title ?? \"\"}`,\n\t\t\tlabel: `${delta.kind}${delta.title ? ` ${delta.title}` : \"\"}`,\n\t\t\tstatus: delta.change === \"closed\" ? \"changed\" : \"never-looked\",\n\t\t\tdetail: `root ${delta.change}`,\n\t\t});\n\t}\n\tif (refreshOutcome.windowChanged) {\n\t\tfor (const region of note.regions) {\n\t\t\tif (region.status === \"seen\") region.status = \"changed\";\n\t\t}\n\t\tnote.regions.push({\n\t\t\tkey: `window:changed:${note.lastLookId ?? \"unknown\"}`,\n\t\t\tlabel: refreshOutcome.newWindowLabel ?? \"new sheet/window\",\n\t\t\tstatus: \"never-looked\",\n\t\t\tdetail: \"appeared after act\",\n\t\t});\n\t}\n\treturn { ...note, regions: uniqueRegions(note.regions) };\n}\n\nexport function noteRegionKeyForRef(outline: Outline, ref: string): string | undefined {\n\tconst node = nodeByRef(outline, ref);\n\treturn node ? regionKey(topLevelAncestor(node, outline)) : undefined;\n}\n\nexport function renderNote(note: WindowNote | undefined): string {\n\tif (!note) return \"\";\n\tconst looked = note.lastLookId ? \"looked just now\" : \"not looked\";\n\tconst lines = [\n\t\t`note ${note.windowRef} ${JSON.stringify(note.title.slice(0, 512))} (pairing ${note.pairing}, ${looked})`,\n\t];\n\tconst visible = note.regions.slice(0, 64);\n\tfor (const region of visible) {\n\t\tconst detail = region.detail ? ` (${region.detail.slice(0, 256)})` : \"\";\n\t\tlines.push(` ${region.label.slice(0, 512).padEnd(14, \" \")} ${region.status}${detail}`);\n\t}\n\tif (note.regions.length > visible.length)\n\t\tlines.push(` … ${note.regions.length - visible.length} more note regions; use search_ui or expand_ui`);\n\tconst encoded = new TextEncoder().encode(lines.join(\"\\n\"));\n\tif (encoded.byteLength <= 8 * 1024) return new TextDecoder().decode(encoded);\n\tlet end = 8 * 1024;\n\twhile (end > 0 && (encoded[end] & 0xc0) === 0x80) end -= 1;\n\treturn `${new TextDecoder().decode(encoded.subarray(0, end))}\\n… note byte budget reached`;\n}\n"]}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { nodeByRef, outlineNodeLabel } from "./outline.js";
|
|
2
|
+
function normalizedLabel(value) {
|
|
3
|
+
return value.toLowerCase().replace(/\s+/g, " ").trim();
|
|
4
|
+
}
|
|
5
|
+
function nodeLabel(node) {
|
|
6
|
+
return outlineNodeLabel(node) || node.role || node.ref;
|
|
7
|
+
}
|
|
8
|
+
function regionKey(node) {
|
|
9
|
+
return `${node.role || "AXUnknown"}:${node.identifier || normalizedLabel(nodeLabel(node)) || node.ref}`;
|
|
10
|
+
}
|
|
11
|
+
function regionLabel(node) {
|
|
12
|
+
const label = nodeLabel(node);
|
|
13
|
+
return normalizedLabel(label) || normalizedLabel(node.role) || node.ref;
|
|
14
|
+
}
|
|
15
|
+
function topLevelRegions(outline) {
|
|
16
|
+
const nodes = outline.root.children.length ? outline.root.children : [outline.root];
|
|
17
|
+
return nodes.map((node) => ({ node, key: regionKey(node), label: regionLabel(node) }));
|
|
18
|
+
}
|
|
19
|
+
function topLevelAncestor(node, outline) {
|
|
20
|
+
let current = node;
|
|
21
|
+
while (current.parent && current.parent !== outline.root)
|
|
22
|
+
current = current.parent;
|
|
23
|
+
return current;
|
|
24
|
+
}
|
|
25
|
+
function uniqueRegions(regions) {
|
|
26
|
+
const seen = new Set();
|
|
27
|
+
const output = [];
|
|
28
|
+
for (const region of regions) {
|
|
29
|
+
const dedupeKey = `${region.key}:${region.status}:${region.detail ?? ""}`;
|
|
30
|
+
if (seen.has(dedupeKey))
|
|
31
|
+
continue;
|
|
32
|
+
seen.add(dedupeKey);
|
|
33
|
+
output.push(region);
|
|
34
|
+
}
|
|
35
|
+
return output;
|
|
36
|
+
}
|
|
37
|
+
function frontierRegions(outline, topLevels) {
|
|
38
|
+
const output = [];
|
|
39
|
+
for (const node of outline.nodes) {
|
|
40
|
+
if (node.scrollExtent && node.scrollExtent.seen < node.scrollExtent.total) {
|
|
41
|
+
const ancestor = topLevelAncestor(node, outline);
|
|
42
|
+
const top = topLevels.find((candidate) => candidate.node === ancestor);
|
|
43
|
+
output.push({
|
|
44
|
+
key: `${top?.key ?? regionKey(ancestor)}:scroll:${node.ref}`,
|
|
45
|
+
label: top?.label ?? regionLabel(ancestor),
|
|
46
|
+
status: "never-looked",
|
|
47
|
+
detail: `${node.scrollExtent.total} rows, ${node.scrollExtent.seen} seen`,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (node.truncated) {
|
|
51
|
+
const ancestor = topLevelAncestor(node, outline);
|
|
52
|
+
const top = topLevels.find((candidate) => candidate.node === ancestor);
|
|
53
|
+
output.push({
|
|
54
|
+
key: `${top?.key ?? regionKey(ancestor)}:truncated:${node.ref}`,
|
|
55
|
+
label: top?.label ?? regionLabel(ancestor),
|
|
56
|
+
status: "never-looked",
|
|
57
|
+
detail: "subtree not walked",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return output;
|
|
62
|
+
}
|
|
63
|
+
export function noteFromLook(prev, outline, window) {
|
|
64
|
+
const topLevels = topLevelRegions(outline);
|
|
65
|
+
const currentKeys = new Set(topLevels.map((region) => region.key));
|
|
66
|
+
const regions = topLevels.map((region) => ({
|
|
67
|
+
key: region.key,
|
|
68
|
+
label: region.label,
|
|
69
|
+
status: "seen",
|
|
70
|
+
}));
|
|
71
|
+
if (prev) {
|
|
72
|
+
for (const old of prev.regions) {
|
|
73
|
+
if (old.status === "never-looked")
|
|
74
|
+
continue;
|
|
75
|
+
if (!currentKeys.has(old.key)) {
|
|
76
|
+
regions.push({ ...old, status: "changed", detail: "not matched in latest look" });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (!window.windowRef || window.pairingScore === Number.NEGATIVE_INFINITY) {
|
|
81
|
+
regions.push({
|
|
82
|
+
key: "window:unpaired",
|
|
83
|
+
label: "window capture",
|
|
84
|
+
status: "never-looked",
|
|
85
|
+
detail: "AX window without capture pairing",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
regions.push(...frontierRegions(outline, topLevels));
|
|
89
|
+
return {
|
|
90
|
+
windowRef: window.windowRef ?? "(unpaired)",
|
|
91
|
+
title: window.title,
|
|
92
|
+
pairing: window.pairing ?? "low",
|
|
93
|
+
lastLookId: outline.lookId,
|
|
94
|
+
regions: uniqueRegions(regions),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export function noteAfterAct(prev, targetRef, outline, refreshOutcome) {
|
|
98
|
+
const note = noteFromLook(prev, outline, refreshOutcome.window);
|
|
99
|
+
if (targetRef) {
|
|
100
|
+
const target = nodeByRef(outline, targetRef);
|
|
101
|
+
if (target) {
|
|
102
|
+
const ancestor = topLevelAncestor(target, outline);
|
|
103
|
+
const key = regionKey(ancestor);
|
|
104
|
+
const region = note.regions.find((candidate) => candidate.key === key);
|
|
105
|
+
if (region) {
|
|
106
|
+
region.status = "changed";
|
|
107
|
+
region.detail = "acted here";
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
note.regions.unshift({ key, label: regionLabel(ancestor), status: "changed", detail: "acted here" });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
for (const delta of refreshOutcome.rootDelta ?? []) {
|
|
115
|
+
note.regions.unshift({
|
|
116
|
+
key: `root:${delta.change}:${delta.ref ?? delta.kind}:${delta.title ?? ""}`,
|
|
117
|
+
label: `${delta.kind}${delta.title ? ` ${delta.title}` : ""}`,
|
|
118
|
+
status: delta.change === "closed" ? "changed" : "never-looked",
|
|
119
|
+
detail: `root ${delta.change}`,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (refreshOutcome.windowChanged) {
|
|
123
|
+
for (const region of note.regions) {
|
|
124
|
+
if (region.status === "seen")
|
|
125
|
+
region.status = "changed";
|
|
126
|
+
}
|
|
127
|
+
note.regions.push({
|
|
128
|
+
key: `window:changed:${note.lastLookId ?? "unknown"}`,
|
|
129
|
+
label: refreshOutcome.newWindowLabel ?? "new sheet/window",
|
|
130
|
+
status: "never-looked",
|
|
131
|
+
detail: "appeared after act",
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return { ...note, regions: uniqueRegions(note.regions) };
|
|
135
|
+
}
|
|
136
|
+
export function noteRegionKeyForRef(outline, ref) {
|
|
137
|
+
const node = nodeByRef(outline, ref);
|
|
138
|
+
return node ? regionKey(topLevelAncestor(node, outline)) : undefined;
|
|
139
|
+
}
|
|
140
|
+
export function renderNote(note) {
|
|
141
|
+
if (!note)
|
|
142
|
+
return "";
|
|
143
|
+
const looked = note.lastLookId ? "looked just now" : "not looked";
|
|
144
|
+
const lines = [
|
|
145
|
+
`note ${note.windowRef} ${JSON.stringify(note.title.slice(0, 512))} (pairing ${note.pairing}, ${looked})`,
|
|
146
|
+
];
|
|
147
|
+
const visible = note.regions.slice(0, 64);
|
|
148
|
+
for (const region of visible) {
|
|
149
|
+
const detail = region.detail ? ` (${region.detail.slice(0, 256)})` : "";
|
|
150
|
+
lines.push(` ${region.label.slice(0, 512).padEnd(14, " ")} ${region.status}${detail}`);
|
|
151
|
+
}
|
|
152
|
+
if (note.regions.length > visible.length)
|
|
153
|
+
lines.push(` … ${note.regions.length - visible.length} more note regions; use search_ui or expand_ui`);
|
|
154
|
+
const encoded = new TextEncoder().encode(lines.join("\n"));
|
|
155
|
+
if (encoded.byteLength <= 8 * 1024)
|
|
156
|
+
return new TextDecoder().decode(encoded);
|
|
157
|
+
let end = 8 * 1024;
|
|
158
|
+
while (end > 0 && (encoded[end] & 0xc0) === 0x80)
|
|
159
|
+
end -= 1;
|
|
160
|
+
return `${new TextDecoder().decode(encoded.subarray(0, end))}\n… note byte budget reached`;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=note.js.map
|