@aria-cli/tools 1.0.10 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/.tsbuildinfo +1 -0
- package/dist-cjs/ask-user-interaction.d.ts +10 -0
- package/dist-cjs/ask-user-interaction.js +28 -0
- package/dist-cjs/ask-user-interaction.js.map +1 -0
- package/dist-cjs/cache/web-cache.d.ts +52 -0
- package/dist-cjs/cache/web-cache.js +71 -0
- package/dist-cjs/cache/web-cache.js.map +1 -0
- package/dist-cjs/definitions/arion.d.ts +8 -0
- package/dist-cjs/definitions/arion.js +108 -0
- package/dist-cjs/definitions/arion.js.map +1 -0
- package/dist-cjs/definitions/browser/browser.d.ts +2 -0
- package/dist-cjs/definitions/browser/browser.js +422 -0
- package/dist-cjs/definitions/browser/browser.js.map +1 -0
- package/dist-cjs/definitions/browser/index.d.ts +1 -0
- package/dist-cjs/definitions/browser/index.js +9 -0
- package/dist-cjs/definitions/browser/index.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-downloads.d.ts +13 -0
- package/dist-cjs/definitions/browser/pw-downloads.js +118 -0
- package/dist-cjs/definitions/browser/pw-downloads.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-interactions.d.ts +78 -0
- package/dist-cjs/definitions/browser/pw-interactions.js +214 -0
- package/dist-cjs/definitions/browser/pw-interactions.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-responses.d.ts +28 -0
- package/dist-cjs/definitions/browser/pw-responses.js +85 -0
- package/dist-cjs/definitions/browser/pw-responses.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-session.d.ts +65 -0
- package/dist-cjs/definitions/browser/pw-session.js +327 -0
- package/dist-cjs/definitions/browser/pw-session.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-shared.d.ts +22 -0
- package/dist-cjs/definitions/browser/pw-shared.js +73 -0
- package/dist-cjs/definitions/browser/pw-shared.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-snapshot.d.ts +34 -0
- package/dist-cjs/definitions/browser/pw-snapshot.js +308 -0
- package/dist-cjs/definitions/browser/pw-snapshot.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-state.d.ts +22 -0
- package/dist-cjs/definitions/browser/pw-state.js +71 -0
- package/dist-cjs/definitions/browser/pw-state.js.map +1 -0
- package/dist-cjs/definitions/browser/types.d.ts +277 -0
- package/dist-cjs/definitions/browser/types.js +6 -0
- package/dist-cjs/definitions/browser/types.js.map +1 -0
- package/dist-cjs/definitions/code-intelligence.d.ts +8 -0
- package/dist-cjs/definitions/code-intelligence.js +474 -0
- package/dist-cjs/definitions/code-intelligence.js.map +1 -0
- package/dist-cjs/definitions/core.d.ts +47 -0
- package/dist-cjs/definitions/core.js +134 -0
- package/dist-cjs/definitions/core.js.map +1 -0
- package/dist-cjs/definitions/delegation.d.ts +11 -0
- package/dist-cjs/definitions/delegation.js +516 -0
- package/dist-cjs/definitions/delegation.js.map +1 -0
- package/dist-cjs/definitions/deploy.d.ts +15 -0
- package/dist-cjs/definitions/deploy.js +69 -0
- package/dist-cjs/definitions/deploy.js.map +1 -0
- package/dist-cjs/definitions/filesystem.d.ts +9 -0
- package/dist-cjs/definitions/filesystem.js +200 -0
- package/dist-cjs/definitions/filesystem.js.map +1 -0
- package/dist-cjs/definitions/frg.d.ts +3 -0
- package/dist-cjs/definitions/frg.js +67 -0
- package/dist-cjs/definitions/frg.js.map +1 -0
- package/dist-cjs/definitions/index.d.ts +19 -0
- package/dist-cjs/definitions/index.js +44 -0
- package/dist-cjs/definitions/index.js.map +1 -0
- package/dist-cjs/definitions/memory.d.ts +8 -0
- package/dist-cjs/definitions/memory.js +127 -0
- package/dist-cjs/definitions/memory.js.map +1 -0
- package/dist-cjs/definitions/messaging.d.ts +11 -0
- package/dist-cjs/definitions/messaging.js +632 -0
- package/dist-cjs/definitions/messaging.js.map +1 -0
- package/dist-cjs/definitions/meta.d.ts +11 -0
- package/dist-cjs/definitions/meta.js +353 -0
- package/dist-cjs/definitions/meta.js.map +1 -0
- package/dist-cjs/definitions/network.d.ts +11 -0
- package/dist-cjs/definitions/network.js +163 -0
- package/dist-cjs/definitions/network.js.map +1 -0
- package/dist-cjs/definitions/outlook.d.ts +2 -0
- package/dist-cjs/definitions/outlook.js +281 -0
- package/dist-cjs/definitions/outlook.js.map +1 -0
- package/dist-cjs/definitions/patch/apply-patch.d.ts +11 -0
- package/dist-cjs/definitions/patch/apply-patch.js +192 -0
- package/dist-cjs/definitions/patch/apply-patch.js.map +1 -0
- package/dist-cjs/definitions/patch/fuzzy-match.d.ts +10 -0
- package/dist-cjs/definitions/patch/fuzzy-match.js +173 -0
- package/dist-cjs/definitions/patch/fuzzy-match.js.map +1 -0
- package/dist-cjs/definitions/patch/index.d.ts +1 -0
- package/dist-cjs/definitions/patch/index.js +6 -0
- package/dist-cjs/definitions/patch/index.js.map +1 -0
- package/dist-cjs/definitions/patch/patch-parser.d.ts +50 -0
- package/dist-cjs/definitions/patch/patch-parser.js +216 -0
- package/dist-cjs/definitions/patch/patch-parser.js.map +1 -0
- package/dist-cjs/definitions/patch/sandbox-paths.d.ts +18 -0
- package/dist-cjs/definitions/patch/sandbox-paths.js +114 -0
- package/dist-cjs/definitions/patch/sandbox-paths.js.map +1 -0
- package/dist-cjs/definitions/process/index.d.ts +1 -0
- package/dist-cjs/definitions/process/index.js +9 -0
- package/dist-cjs/definitions/process/index.js.map +1 -0
- package/dist-cjs/definitions/process/process-registry.d.ts +67 -0
- package/dist-cjs/definitions/process/process-registry.js +232 -0
- package/dist-cjs/definitions/process/process-registry.js.map +1 -0
- package/dist-cjs/definitions/process/process.d.ts +9 -0
- package/dist-cjs/definitions/process/process.js +390 -0
- package/dist-cjs/definitions/process/process.js.map +1 -0
- package/dist-cjs/definitions/process/pty-keys.d.ts +13 -0
- package/dist-cjs/definitions/process/pty-keys.js +260 -0
- package/dist-cjs/definitions/process/pty-keys.js.map +1 -0
- package/dist-cjs/definitions/process/session-slug.d.ts +1 -0
- package/dist-cjs/definitions/process/session-slug.js +146 -0
- package/dist-cjs/definitions/process/session-slug.js.map +1 -0
- package/dist-cjs/definitions/quip.d.ts +2 -0
- package/dist-cjs/definitions/quip.js +199 -0
- package/dist-cjs/definitions/quip.js.map +1 -0
- package/dist-cjs/definitions/search.d.ts +9 -0
- package/dist-cjs/definitions/search.js +64 -0
- package/dist-cjs/definitions/search.js.map +1 -0
- package/dist-cjs/definitions/session-history.d.ts +11 -0
- package/dist-cjs/definitions/session-history.js +73 -0
- package/dist-cjs/definitions/session-history.js.map +1 -0
- package/dist-cjs/definitions/shell.d.ts +8 -0
- package/dist-cjs/definitions/shell.js +185 -0
- package/dist-cjs/definitions/shell.js.map +1 -0
- package/dist-cjs/definitions/slack.d.ts +2 -0
- package/dist-cjs/definitions/slack.js +184 -0
- package/dist-cjs/definitions/slack.js.map +1 -0
- package/dist-cjs/definitions/web.d.ts +8 -0
- package/dist-cjs/definitions/web.js +113 -0
- package/dist-cjs/definitions/web.js.map +1 -0
- package/dist-cjs/executors/apply-patch.d.ts +51 -0
- package/dist-cjs/executors/apply-patch.js +939 -0
- package/dist-cjs/executors/apply-patch.js.map +1 -0
- package/dist-cjs/executors/arion.d.ts +50 -0
- package/dist-cjs/executors/arion.js +126 -0
- package/dist-cjs/executors/arion.js.map +1 -0
- package/dist-cjs/executors/code-intelligence.d.ts +138 -0
- package/dist-cjs/executors/code-intelligence.js +926 -0
- package/dist-cjs/executors/code-intelligence.js.map +1 -0
- package/dist-cjs/executors/deploy.d.ts +169 -0
- package/dist-cjs/executors/deploy.js +870 -0
- package/dist-cjs/executors/deploy.js.map +1 -0
- package/dist-cjs/executors/filesystem.d.ts +150 -0
- package/dist-cjs/executors/filesystem.js +1168 -0
- package/dist-cjs/executors/filesystem.js.map +1 -0
- package/dist-cjs/executors/frg-freshness.d.ts +93 -0
- package/dist-cjs/executors/frg-freshness.js +628 -0
- package/dist-cjs/executors/frg-freshness.js.map +1 -0
- package/dist-cjs/executors/frg.d.ts +27 -0
- package/dist-cjs/executors/frg.js +335 -0
- package/dist-cjs/executors/frg.js.map +1 -0
- package/dist-cjs/executors/index.d.ts +44 -0
- package/dist-cjs/executors/index.js +144 -0
- package/dist-cjs/executors/index.js.map +1 -0
- package/dist-cjs/executors/learning-meta.d.ts +87 -0
- package/dist-cjs/executors/learning-meta.js +1166 -0
- package/dist-cjs/executors/learning-meta.js.map +1 -0
- package/dist-cjs/executors/lsp-client.d.ts +38 -0
- package/dist-cjs/executors/lsp-client.js +311 -0
- package/dist-cjs/executors/lsp-client.js.map +1 -0
- package/dist-cjs/executors/memory.d.ts +203 -0
- package/dist-cjs/executors/memory.js +797 -0
- package/dist-cjs/executors/memory.js.map +1 -0
- package/dist-cjs/executors/meta.d.ts +73 -0
- package/dist-cjs/executors/meta.js +227 -0
- package/dist-cjs/executors/meta.js.map +1 -0
- package/dist-cjs/executors/process-registry.d.ts +98 -0
- package/dist-cjs/executors/process-registry.js +470 -0
- package/dist-cjs/executors/process-registry.js.map +1 -0
- package/dist-cjs/executors/pty-session-store.d.ts +14 -0
- package/dist-cjs/executors/pty-session-store.js +35 -0
- package/dist-cjs/executors/pty-session-store.js.map +1 -0
- package/dist-cjs/executors/pty.d.ts +133 -0
- package/dist-cjs/executors/pty.js +313 -0
- package/dist-cjs/executors/pty.js.map +1 -0
- package/dist-cjs/executors/restart.d.ts +13 -0
- package/dist-cjs/executors/restart.js +156 -0
- package/dist-cjs/executors/restart.js.map +1 -0
- package/dist-cjs/executors/search-freshness.d.ts +50 -0
- package/dist-cjs/executors/search-freshness.js +235 -0
- package/dist-cjs/executors/search-freshness.js.map +1 -0
- package/dist-cjs/executors/search-types.d.ts +52 -0
- package/dist-cjs/executors/search-types.js +57 -0
- package/dist-cjs/executors/search-types.js.map +1 -0
- package/dist-cjs/executors/search.d.ts +11 -0
- package/dist-cjs/executors/search.js +103 -0
- package/dist-cjs/executors/search.js.map +1 -0
- package/dist-cjs/executors/self-diagnose.d.ts +89 -0
- package/dist-cjs/executors/self-diagnose.js +435 -0
- package/dist-cjs/executors/self-diagnose.js.map +1 -0
- package/dist-cjs/executors/session-history.d.ts +75 -0
- package/dist-cjs/executors/session-history.js +321 -0
- package/dist-cjs/executors/session-history.js.map +1 -0
- package/dist-cjs/executors/shell-safety.d.ts +27 -0
- package/dist-cjs/executors/shell-safety.js +479 -0
- package/dist-cjs/executors/shell-safety.js.map +1 -0
- package/dist-cjs/executors/shell.d.ts +168 -0
- package/dist-cjs/executors/shell.js +1002 -0
- package/dist-cjs/executors/shell.js.map +1 -0
- package/dist-cjs/executors/utils.d.ts +20 -0
- package/dist-cjs/executors/utils.js +74 -0
- package/dist-cjs/executors/utils.js.map +1 -0
- package/dist-cjs/executors/web.d.ts +89 -0
- package/dist-cjs/executors/web.js +548 -0
- package/dist-cjs/executors/web.js.map +1 -0
- package/dist-cjs/extraction/content-extraction.d.ts +48 -0
- package/dist-cjs/extraction/content-extraction.js +244 -0
- package/dist-cjs/extraction/content-extraction.js.map +1 -0
- package/dist-cjs/extraction/index.d.ts +4 -0
- package/dist-cjs/extraction/index.js +9 -0
- package/dist-cjs/extraction/index.js.map +1 -0
- package/dist-cjs/headless-control-contract.d.ts +3182 -0
- package/dist-cjs/headless-control-contract.js +973 -0
- package/dist-cjs/headless-control-contract.js.map +1 -0
- package/dist-cjs/index.d.ts +62 -0
- package/dist-cjs/index.js +438 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/local-control-http-auth.d.ts +2 -0
- package/dist-cjs/local-control-http-auth.js +6 -0
- package/dist-cjs/local-control-http-auth.js.map +1 -0
- package/dist-cjs/mcp/client.d.ts +68 -0
- package/dist-cjs/mcp/client.js +186 -0
- package/dist-cjs/mcp/client.js.map +1 -0
- package/dist-cjs/mcp/connection.d.ts +54 -0
- package/dist-cjs/mcp/connection.js +485 -0
- package/dist-cjs/mcp/connection.js.map +1 -0
- package/dist-cjs/mcp/index.d.ts +10 -0
- package/dist-cjs/mcp/index.js +31 -0
- package/dist-cjs/mcp/index.js.map +1 -0
- package/dist-cjs/mcp/jsonrpc.d.ts +36 -0
- package/dist-cjs/mcp/jsonrpc.js +149 -0
- package/dist-cjs/mcp/jsonrpc.js.map +1 -0
- package/dist-cjs/mcp/types.d.ts +178 -0
- package/dist-cjs/mcp/types.js +9 -0
- package/dist-cjs/mcp/types.js.map +1 -0
- package/dist-cjs/network-control-adapter.d.ts +4 -0
- package/dist-cjs/network-control-adapter.js +78 -0
- package/dist-cjs/network-control-adapter.js.map +1 -0
- package/dist-cjs/network-runtime/address-types.d.ts +201 -0
- package/dist-cjs/network-runtime/address-types.js +169 -0
- package/dist-cjs/network-runtime/address-types.js.map +1 -0
- package/dist-cjs/network-runtime/db-owner-fencing.d.ts +43 -0
- package/dist-cjs/network-runtime/db-owner-fencing.js +77 -0
- package/dist-cjs/network-runtime/db-owner-fencing.js.map +1 -0
- package/dist-cjs/network-runtime/delivery-receipts.d.ts +117 -0
- package/dist-cjs/network-runtime/delivery-receipts.js +277 -0
- package/dist-cjs/network-runtime/delivery-receipts.js.map +1 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.d.ts +8 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +30 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +1 -0
- package/dist-cjs/network-runtime/index.d.ts +24 -0
- package/dist-cjs/network-runtime/index.js +173 -0
- package/dist-cjs/network-runtime/index.js.map +1 -0
- package/dist-cjs/network-runtime/local-control-contract.d.ts +758 -0
- package/dist-cjs/network-runtime/local-control-contract.js +634 -0
- package/dist-cjs/network-runtime/local-control-contract.js.map +1 -0
- package/dist-cjs/network-runtime/node-store-contract.d.ts +49 -0
- package/dist-cjs/network-runtime/node-store-contract.js +39 -0
- package/dist-cjs/network-runtime/node-store-contract.js.map +1 -0
- package/dist-cjs/network-runtime/pair-route-contract.d.ts +100 -0
- package/dist-cjs/network-runtime/pair-route-contract.js +81 -0
- package/dist-cjs/network-runtime/pair-route-contract.js.map +1 -0
- package/dist-cjs/network-runtime/peer-capabilities.d.ts +10 -0
- package/dist-cjs/network-runtime/peer-capabilities.js +38 -0
- package/dist-cjs/network-runtime/peer-capabilities.js.map +1 -0
- package/dist-cjs/network-runtime/peer-principal-ref.d.ts +9 -0
- package/dist-cjs/network-runtime/peer-principal-ref.js +16 -0
- package/dist-cjs/network-runtime/peer-principal-ref.js.map +1 -0
- package/dist-cjs/network-runtime/peer-state-machine.d.ts +70 -0
- package/dist-cjs/network-runtime/peer-state-machine.js +130 -0
- package/dist-cjs/network-runtime/peer-state-machine.js.map +1 -0
- package/dist-cjs/network-runtime/protocol-schemas.d.ts +328 -0
- package/dist-cjs/network-runtime/protocol-schemas.js +213 -0
- package/dist-cjs/network-runtime/protocol-schemas.js.map +1 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.d.ts +81 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +64 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +1 -0
- package/dist-cjs/outlook/desktop-session.d.ts +68 -0
- package/dist-cjs/outlook/desktop-session.js +319 -0
- package/dist-cjs/outlook/desktop-session.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/policy.d.ts +43 -0
- package/dist-cjs/policy.js +156 -0
- package/dist-cjs/policy.js.map +1 -0
- package/dist-cjs/providers/brave.d.ts +10 -0
- package/dist-cjs/providers/brave.js +67 -0
- package/dist-cjs/providers/brave.js.map +1 -0
- package/dist-cjs/providers/duckduckgo.d.ts +18 -0
- package/dist-cjs/providers/duckduckgo.js +181 -0
- package/dist-cjs/providers/duckduckgo.js.map +1 -0
- package/dist-cjs/providers/exa.d.ts +10 -0
- package/dist-cjs/providers/exa.js +68 -0
- package/dist-cjs/providers/exa.js.map +1 -0
- package/dist-cjs/providers/firecrawl.d.ts +10 -0
- package/dist-cjs/providers/firecrawl.js +60 -0
- package/dist-cjs/providers/firecrawl.js.map +1 -0
- package/dist-cjs/providers/index.d.ts +8 -0
- package/dist-cjs/providers/index.js +18 -0
- package/dist-cjs/providers/index.js.map +1 -0
- package/dist-cjs/providers/jina.d.ts +10 -0
- package/dist-cjs/providers/jina.js +54 -0
- package/dist-cjs/providers/jina.js.map +1 -0
- package/dist-cjs/providers/router.d.ts +21 -0
- package/dist-cjs/providers/router.js +101 -0
- package/dist-cjs/providers/router.js.map +1 -0
- package/dist-cjs/providers/search-provider.d.ts +35 -0
- package/dist-cjs/providers/search-provider.js +37 -0
- package/dist-cjs/providers/search-provider.js.map +1 -0
- package/dist-cjs/providers/tavily.d.ts +10 -0
- package/dist-cjs/providers/tavily.js +59 -0
- package/dist-cjs/providers/tavily.js.map +1 -0
- package/dist-cjs/quip/desktop-session.d.ts +69 -0
- package/dist-cjs/quip/desktop-session.js +354 -0
- package/dist-cjs/quip/desktop-session.js.map +1 -0
- package/dist-cjs/registry/index.d.ts +1 -0
- package/dist-cjs/registry/index.js +7 -0
- package/dist-cjs/registry/index.js.map +1 -0
- package/dist-cjs/registry/registry.d.ts +156 -0
- package/dist-cjs/registry/registry.js +762 -0
- package/dist-cjs/registry/registry.js.map +1 -0
- package/dist-cjs/runtime-socket-local-control-client.d.ts +10 -0
- package/dist-cjs/runtime-socket-local-control-client.js +368 -0
- package/dist-cjs/runtime-socket-local-control-client.js.map +1 -0
- package/dist-cjs/security/dns-normalization.d.ts +6 -0
- package/dist-cjs/security/dns-normalization.js +23 -0
- package/dist-cjs/security/dns-normalization.js.map +1 -0
- package/dist-cjs/security/dns-pinning.d.ts +27 -0
- package/dist-cjs/security/dns-pinning.js +161 -0
- package/dist-cjs/security/dns-pinning.js.map +1 -0
- package/dist-cjs/security/external-content.d.ts +40 -0
- package/dist-cjs/security/external-content.js +96 -0
- package/dist-cjs/security/external-content.js.map +1 -0
- package/dist-cjs/security/ssrf.d.ts +40 -0
- package/dist-cjs/security/ssrf.js +222 -0
- package/dist-cjs/security/ssrf.js.map +1 -0
- package/dist-cjs/slack/desktop-session.d.ts +69 -0
- package/dist-cjs/slack/desktop-session.js +367 -0
- package/dist-cjs/slack/desktop-session.js.map +1 -0
- package/dist-cjs/tool-factory.d.ts +46 -0
- package/dist-cjs/tool-factory.js +51 -0
- package/dist-cjs/tool-factory.js.map +1 -0
- package/dist-cjs/types.d.ts +1192 -0
- package/dist-cjs/types.js +9 -0
- package/dist-cjs/types.js.map +1 -0
- package/dist-cjs/utils/retry.d.ts +11 -0
- package/dist-cjs/utils/retry.js +170 -0
- package/dist-cjs/utils/retry.js.map +1 -0
- package/dist-cjs/utils/safe-parse-json.d.ts +26 -0
- package/dist-cjs/utils/safe-parse-json.js +165 -0
- package/dist-cjs/utils/safe-parse-json.js.map +1 -0
- package/dist-cjs/utils/url.d.ts +10 -0
- package/dist-cjs/utils/url.js +24 -0
- package/dist-cjs/utils/url.js.map +1 -0
- package/package.json +7 -6
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Originally from OpenClaw (MIT License, Copyright 2025 Peter Steinberger)
|
|
3
|
+
// https://github.com/openclaw/openclaw
|
|
4
|
+
// Modified for ARIA — stripped OpenClaw runtime, rewired to ARIA Tool interface
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.waitForDownload = waitForDownload;
|
|
7
|
+
/**
|
|
8
|
+
* File upload and download handling.
|
|
9
|
+
* Ported from OpenClaw's pw-tools-core.downloads.ts.
|
|
10
|
+
*
|
|
11
|
+
* Note: Upload is handled in pw-interactions.ts via setInputFiles.
|
|
12
|
+
* This module provides download capture via page "download" event.
|
|
13
|
+
*/
|
|
14
|
+
const node_os_1 = require("node:os");
|
|
15
|
+
const node_path_1 = require("node:path");
|
|
16
|
+
const promises_1 = require("node:fs/promises");
|
|
17
|
+
const node_crypto_1 = require("node:crypto");
|
|
18
|
+
const pw_shared_js_1 = require("./pw-shared.js");
|
|
19
|
+
// ── Filename sanitization ─────────────────────────────────────────────
|
|
20
|
+
function sanitizeDownloadFileName(fileName) {
|
|
21
|
+
const trimmed = String(fileName ?? "").trim();
|
|
22
|
+
if (!trimmed) {
|
|
23
|
+
return "download.bin";
|
|
24
|
+
}
|
|
25
|
+
// Force a basename so path separators/traversal can't escape the downloads dir.
|
|
26
|
+
let base = (0, node_path_1.basename)(trimmed);
|
|
27
|
+
let cleaned = "";
|
|
28
|
+
for (let i = 0; i < base.length; i++) {
|
|
29
|
+
const code = base.charCodeAt(i);
|
|
30
|
+
if (code < 0x20 || code === 0x7f) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
cleaned += base[i];
|
|
34
|
+
}
|
|
35
|
+
base = cleaned.trim();
|
|
36
|
+
if (!base || base === "." || base === "..") {
|
|
37
|
+
return "download.bin";
|
|
38
|
+
}
|
|
39
|
+
if (base.length > 200) {
|
|
40
|
+
base = base.slice(0, 200);
|
|
41
|
+
}
|
|
42
|
+
return base;
|
|
43
|
+
}
|
|
44
|
+
function buildTempDownloadPath(fileName) {
|
|
45
|
+
const id = (0, node_crypto_1.randomUUID)();
|
|
46
|
+
const safeName = sanitizeDownloadFileName(fileName);
|
|
47
|
+
return (0, node_path_1.join)((0, node_os_1.tmpdir)(), "aria-downloads", `${id}-${safeName}`);
|
|
48
|
+
}
|
|
49
|
+
// ── Download waiter ───────────────────────────────────────────────────
|
|
50
|
+
function createPageDownloadWaiter(page, timeoutMs) {
|
|
51
|
+
let done = false;
|
|
52
|
+
let timer;
|
|
53
|
+
let handler;
|
|
54
|
+
const cleanup = () => {
|
|
55
|
+
if (timer) {
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
}
|
|
58
|
+
timer = undefined;
|
|
59
|
+
if (handler) {
|
|
60
|
+
page.off("download", handler);
|
|
61
|
+
handler = undefined;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const promise = new Promise((resolveP, reject) => {
|
|
65
|
+
handler = (download) => {
|
|
66
|
+
if (done) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
done = true;
|
|
70
|
+
cleanup();
|
|
71
|
+
resolveP(download);
|
|
72
|
+
};
|
|
73
|
+
page.on("download", handler);
|
|
74
|
+
timer = setTimeout(() => {
|
|
75
|
+
if (done) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
done = true;
|
|
79
|
+
cleanup();
|
|
80
|
+
reject(new Error("Timeout waiting for download"));
|
|
81
|
+
}, timeoutMs);
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
promise,
|
|
85
|
+
cancel: () => {
|
|
86
|
+
if (done) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
done = true;
|
|
90
|
+
cleanup();
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// ── Public API ────────────────────────────────────────────────────────
|
|
95
|
+
/**
|
|
96
|
+
* Wait for the next download event on the page and save the file.
|
|
97
|
+
*/
|
|
98
|
+
async function waitForDownload(opts) {
|
|
99
|
+
const timeout = (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 120_000);
|
|
100
|
+
const waiter = createPageDownloadWaiter(opts.page, timeout);
|
|
101
|
+
try {
|
|
102
|
+
const download = (await waiter.promise);
|
|
103
|
+
const suggested = download.suggestedFilename?.() || "download.bin";
|
|
104
|
+
const outPath = opts.path?.trim() || buildTempDownloadPath(suggested);
|
|
105
|
+
await (0, promises_1.mkdir)((0, node_path_1.dirname)(outPath), { recursive: true });
|
|
106
|
+
await download.saveAs?.(outPath);
|
|
107
|
+
return {
|
|
108
|
+
url: download.url?.() || "",
|
|
109
|
+
suggestedFilename: suggested,
|
|
110
|
+
path: (0, node_path_1.resolve)(outPath),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
waiter.cancel();
|
|
115
|
+
throw err;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=pw-downloads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pw-downloads.js","sourceRoot":"","sources":["../../../src/definitions/browser/pw-downloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright interaction handlers: click, type, hover, drag, select, key press, evaluate.
|
|
3
|
+
* Ported from OpenClaw's pw-tools-core.interactions.ts.
|
|
4
|
+
*/
|
|
5
|
+
import type { PwPage, RoleRefMap } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve a ref string (e.g. "e1") into a Playwright Locator using the
|
|
8
|
+
* role-ref map from the last snapshot.
|
|
9
|
+
*/
|
|
10
|
+
export declare function refLocator(page: PwPage, ref: string, refs: RoleRefMap): import("./types.js").PwLocator;
|
|
11
|
+
export declare function clickViaPlaywright(opts: {
|
|
12
|
+
page: PwPage;
|
|
13
|
+
refs: RoleRefMap;
|
|
14
|
+
ref: string;
|
|
15
|
+
doubleClick?: boolean;
|
|
16
|
+
button?: "left" | "right" | "middle";
|
|
17
|
+
modifiers?: string[];
|
|
18
|
+
timeoutMs?: number;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
export declare function hoverViaPlaywright(opts: {
|
|
21
|
+
page: PwPage;
|
|
22
|
+
refs: RoleRefMap;
|
|
23
|
+
ref: string;
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
export declare function dragViaPlaywright(opts: {
|
|
27
|
+
page: PwPage;
|
|
28
|
+
refs: RoleRefMap;
|
|
29
|
+
startRef: string;
|
|
30
|
+
endRef: string;
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
export declare function typeViaPlaywright(opts: {
|
|
34
|
+
page: PwPage;
|
|
35
|
+
refs: RoleRefMap;
|
|
36
|
+
ref: string;
|
|
37
|
+
text: string;
|
|
38
|
+
submit?: boolean;
|
|
39
|
+
slowly?: boolean;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
}): Promise<void>;
|
|
42
|
+
export declare function selectOptionViaPlaywright(opts: {
|
|
43
|
+
page: PwPage;
|
|
44
|
+
refs: RoleRefMap;
|
|
45
|
+
ref: string;
|
|
46
|
+
values: string[];
|
|
47
|
+
timeoutMs?: number;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
export declare function pressKeyViaPlaywright(opts: {
|
|
50
|
+
page: PwPage;
|
|
51
|
+
key: string;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
export declare function evaluateViaPlaywright(opts: {
|
|
54
|
+
page: PwPage;
|
|
55
|
+
script: string;
|
|
56
|
+
timeoutMs?: number;
|
|
57
|
+
}): Promise<unknown>;
|
|
58
|
+
export declare function takeScreenshot(opts: {
|
|
59
|
+
page: PwPage;
|
|
60
|
+
fullPage?: boolean;
|
|
61
|
+
}): Promise<Buffer>;
|
|
62
|
+
export declare function scrollPage(opts: {
|
|
63
|
+
page: PwPage;
|
|
64
|
+
direction: "up" | "down";
|
|
65
|
+
amount?: number;
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
export declare function waitForCondition(opts: {
|
|
68
|
+
page: PwPage;
|
|
69
|
+
selector?: string;
|
|
70
|
+
text?: string;
|
|
71
|
+
timeout?: number;
|
|
72
|
+
}): Promise<void>;
|
|
73
|
+
export declare function uploadFiles(opts: {
|
|
74
|
+
page: PwPage;
|
|
75
|
+
refs: RoleRefMap;
|
|
76
|
+
ref: string;
|
|
77
|
+
paths: string[];
|
|
78
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Originally from OpenClaw (MIT License, Copyright 2025 Peter Steinberger)
|
|
3
|
+
// https://github.com/openclaw/openclaw
|
|
4
|
+
// Modified for ARIA — stripped OpenClaw runtime, rewired to ARIA Tool interface
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.refLocator = refLocator;
|
|
7
|
+
exports.clickViaPlaywright = clickViaPlaywright;
|
|
8
|
+
exports.hoverViaPlaywright = hoverViaPlaywright;
|
|
9
|
+
exports.dragViaPlaywright = dragViaPlaywright;
|
|
10
|
+
exports.typeViaPlaywright = typeViaPlaywright;
|
|
11
|
+
exports.selectOptionViaPlaywright = selectOptionViaPlaywright;
|
|
12
|
+
exports.pressKeyViaPlaywright = pressKeyViaPlaywright;
|
|
13
|
+
exports.evaluateViaPlaywright = evaluateViaPlaywright;
|
|
14
|
+
exports.takeScreenshot = takeScreenshot;
|
|
15
|
+
exports.scrollPage = scrollPage;
|
|
16
|
+
exports.waitForCondition = waitForCondition;
|
|
17
|
+
exports.uploadFiles = uploadFiles;
|
|
18
|
+
const pw_shared_js_1 = require("./pw-shared.js");
|
|
19
|
+
// ── Ref locator ───────────────────────────────────────────────────────
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a ref string (e.g. "e1") into a Playwright Locator using the
|
|
22
|
+
* role-ref map from the last snapshot.
|
|
23
|
+
*/
|
|
24
|
+
function refLocator(page, ref, refs) {
|
|
25
|
+
const normalized = ref.startsWith("@")
|
|
26
|
+
? ref.slice(1)
|
|
27
|
+
: ref.startsWith("ref=")
|
|
28
|
+
? ref.slice(4)
|
|
29
|
+
: ref;
|
|
30
|
+
if (/^e\d+$/.test(normalized)) {
|
|
31
|
+
const info = refs[normalized];
|
|
32
|
+
if (!info) {
|
|
33
|
+
throw new Error(`Unknown ref "${normalized}". Run a new snapshot and use a ref from that snapshot.`);
|
|
34
|
+
}
|
|
35
|
+
const locator = info.name
|
|
36
|
+
? page.getByRole(info.role, { name: info.name, exact: true })
|
|
37
|
+
: page.getByRole(info.role);
|
|
38
|
+
return info.nth !== undefined ? locator.nth(info.nth) : locator;
|
|
39
|
+
}
|
|
40
|
+
// Fallback: treat as CSS selector
|
|
41
|
+
return page.locator(normalized);
|
|
42
|
+
}
|
|
43
|
+
// ── Click ─────────────────────────────────────────────────────────────
|
|
44
|
+
async function clickViaPlaywright(opts) {
|
|
45
|
+
const ref = (0, pw_shared_js_1.requireRef)(opts.ref);
|
|
46
|
+
const locator = refLocator(opts.page, ref, opts.refs);
|
|
47
|
+
const timeout = (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 8000);
|
|
48
|
+
try {
|
|
49
|
+
if (opts.doubleClick) {
|
|
50
|
+
await locator.dblclick({
|
|
51
|
+
timeout,
|
|
52
|
+
button: opts.button,
|
|
53
|
+
modifiers: opts.modifiers,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
await locator.click({
|
|
58
|
+
timeout,
|
|
59
|
+
button: opts.button,
|
|
60
|
+
modifiers: opts.modifiers,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, ref);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// ── Hover ─────────────────────────────────────────────────────────────
|
|
69
|
+
async function hoverViaPlaywright(opts) {
|
|
70
|
+
const ref = (0, pw_shared_js_1.requireRef)(opts.ref);
|
|
71
|
+
try {
|
|
72
|
+
await refLocator(opts.page, ref, opts.refs).hover({
|
|
73
|
+
timeout: (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 8000),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, ref);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// ── Drag ──────────────────────────────────────────────────────────────
|
|
81
|
+
async function dragViaPlaywright(opts) {
|
|
82
|
+
const startRef = (0, pw_shared_js_1.requireRef)(opts.startRef);
|
|
83
|
+
const endRef = (0, pw_shared_js_1.requireRef)(opts.endRef);
|
|
84
|
+
try {
|
|
85
|
+
await refLocator(opts.page, startRef, opts.refs).dragTo(refLocator(opts.page, endRef, opts.refs), { timeout: (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 8000) });
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, `${startRef} -> ${endRef}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// ── Type ──────────────────────────────────────────────────────────────
|
|
92
|
+
async function typeViaPlaywright(opts) {
|
|
93
|
+
const text = String(opts.text ?? "");
|
|
94
|
+
const ref = (0, pw_shared_js_1.requireRef)(opts.ref);
|
|
95
|
+
const locator = refLocator(opts.page, ref, opts.refs);
|
|
96
|
+
const timeout = (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 8000);
|
|
97
|
+
try {
|
|
98
|
+
if (opts.slowly) {
|
|
99
|
+
await locator.click({ timeout });
|
|
100
|
+
await locator.type(text, { timeout, delay: 75 });
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
await locator.fill(text, { timeout });
|
|
104
|
+
}
|
|
105
|
+
if (opts.submit) {
|
|
106
|
+
await locator.press("Enter", { timeout });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, ref);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// ── Select option ─────────────────────────────────────────────────────
|
|
114
|
+
async function selectOptionViaPlaywright(opts) {
|
|
115
|
+
const ref = (0, pw_shared_js_1.requireRef)(opts.ref);
|
|
116
|
+
if (!opts.values?.length) {
|
|
117
|
+
throw new Error("values are required");
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
await refLocator(opts.page, ref, opts.refs).selectOption(opts.values, {
|
|
121
|
+
timeout: (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 8000),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, ref);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// ── Key press ─────────────────────────────────────────────────────────
|
|
129
|
+
async function pressKeyViaPlaywright(opts) {
|
|
130
|
+
const key = String(opts.key ?? "").trim();
|
|
131
|
+
if (!key) {
|
|
132
|
+
throw new Error("key is required");
|
|
133
|
+
}
|
|
134
|
+
await opts.page.keyboard.press(key);
|
|
135
|
+
}
|
|
136
|
+
// ── Evaluate ──────────────────────────────────────────────────────────
|
|
137
|
+
async function evaluateViaPlaywright(opts) {
|
|
138
|
+
const script = String(opts.script ?? "").trim();
|
|
139
|
+
if (!script) {
|
|
140
|
+
throw new Error("script is required");
|
|
141
|
+
}
|
|
142
|
+
const evaluateTimeout = (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeoutMs, 20_000);
|
|
143
|
+
// Inject a timeout wrapper into the browser context so async scripts
|
|
144
|
+
// don't block the Playwright command queue indefinitely.
|
|
145
|
+
// We use a string-form evaluate to avoid TypeScript signature conflicts
|
|
146
|
+
// with our minimal PwPage interface.
|
|
147
|
+
const wrappedScript = `
|
|
148
|
+
(function() {
|
|
149
|
+
var fnBody = ${JSON.stringify(script)};
|
|
150
|
+
var timeoutMs = ${evaluateTimeout};
|
|
151
|
+
try {
|
|
152
|
+
var candidate = eval("(" + fnBody + ")");
|
|
153
|
+
var result = typeof candidate === "function" ? candidate() : candidate;
|
|
154
|
+
if (result && typeof result === "object" && typeof result.then === "function") {
|
|
155
|
+
return Promise.race([
|
|
156
|
+
result,
|
|
157
|
+
new Promise(function(_, reject) {
|
|
158
|
+
setTimeout(function() { reject(new Error("evaluate timed out after " + timeoutMs + "ms")); }, timeoutMs);
|
|
159
|
+
})
|
|
160
|
+
]);
|
|
161
|
+
}
|
|
162
|
+
return result;
|
|
163
|
+
} catch (err) {
|
|
164
|
+
throw new Error("Invalid evaluate function: " + (err && err.message ? err.message : String(err)));
|
|
165
|
+
}
|
|
166
|
+
})()
|
|
167
|
+
`;
|
|
168
|
+
const result = await opts.page.evaluate(wrappedScript);
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
// ── Screenshot ────────────────────────────────────────────────────────
|
|
172
|
+
async function takeScreenshot(opts) {
|
|
173
|
+
return opts.page.screenshot({
|
|
174
|
+
type: "png",
|
|
175
|
+
fullPage: Boolean(opts.fullPage),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
// ── Scroll ────────────────────────────────────────────────────────────
|
|
179
|
+
async function scrollPage(opts) {
|
|
180
|
+
const pixels = Math.max(100, Math.min(5000, opts.amount ?? 500));
|
|
181
|
+
const deltaY = opts.direction === "up" ? -pixels : pixels;
|
|
182
|
+
await opts.page.mouse.wheel(0, deltaY);
|
|
183
|
+
// Give the page a moment to process the scroll
|
|
184
|
+
await opts.page.waitForTimeout(300);
|
|
185
|
+
}
|
|
186
|
+
// ── Wait ──────────────────────────────────────────────────────────────
|
|
187
|
+
async function waitForCondition(opts) {
|
|
188
|
+
const timeout = (0, pw_shared_js_1.normalizeTimeoutMs)(opts.timeout, 10_000);
|
|
189
|
+
if (opts.text) {
|
|
190
|
+
await opts.page.locator(`text=${opts.text}`).first().waitFor({ state: "visible", timeout });
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (opts.selector) {
|
|
194
|
+
await opts.page.locator(opts.selector).first().waitFor({ state: "visible", timeout });
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Default: wait for network idle
|
|
198
|
+
await opts.page.waitForLoadState("networkidle", { timeout });
|
|
199
|
+
}
|
|
200
|
+
// ── Upload ────────────────────────────────────────────────────────────
|
|
201
|
+
async function uploadFiles(opts) {
|
|
202
|
+
if (!opts.paths?.length) {
|
|
203
|
+
throw new Error("paths are required");
|
|
204
|
+
}
|
|
205
|
+
const ref = (0, pw_shared_js_1.requireRef)(opts.ref);
|
|
206
|
+
const locator = refLocator(opts.page, ref, opts.refs);
|
|
207
|
+
try {
|
|
208
|
+
await locator.setInputFiles(opts.paths);
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
throw (0, pw_shared_js_1.toAIFriendlyError)(err, ref);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=pw-interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pw-interactions.js","sourceRoot":"","sources":["../../../src/definitions/browser/pw-interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console, network, and error monitoring.
|
|
3
|
+
* Ported from OpenClaw's pw-tools-core.activity.ts + pw-tools-core.responses.ts.
|
|
4
|
+
*/
|
|
5
|
+
import type { BrowserConsoleMessage, BrowserNetworkRequest, BrowserPageError } from "./types.js";
|
|
6
|
+
export declare const MAX_CONSOLE_MESSAGES = 500;
|
|
7
|
+
export declare const MAX_NETWORK_REQUESTS = 500;
|
|
8
|
+
export declare const MAX_PAGE_ERRORS = 200;
|
|
9
|
+
/**
|
|
10
|
+
* Filter console messages by minimum severity level.
|
|
11
|
+
*/
|
|
12
|
+
export declare function filterConsoleMessages(messages: BrowserConsoleMessage[], level?: string): BrowserConsoleMessage[];
|
|
13
|
+
/**
|
|
14
|
+
* Filter network requests by URL substring match.
|
|
15
|
+
*/
|
|
16
|
+
export declare function filterNetworkRequests(requests: BrowserNetworkRequest[], filter?: string): BrowserNetworkRequest[];
|
|
17
|
+
/**
|
|
18
|
+
* Format console messages for tool output.
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatConsoleMessages(messages: BrowserConsoleMessage[]): string;
|
|
21
|
+
/**
|
|
22
|
+
* Format network requests for tool output.
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatNetworkRequests(requests: BrowserNetworkRequest[]): string;
|
|
25
|
+
/**
|
|
26
|
+
* Format page errors for tool output.
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatPageErrors(errors: BrowserPageError[]): string;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Originally from OpenClaw (MIT License, Copyright 2025 Peter Steinberger)
|
|
3
|
+
// https://github.com/openclaw/openclaw
|
|
4
|
+
// Modified for ARIA — stripped OpenClaw runtime, rewired to ARIA Tool interface
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MAX_PAGE_ERRORS = exports.MAX_NETWORK_REQUESTS = exports.MAX_CONSOLE_MESSAGES = void 0;
|
|
7
|
+
exports.filterConsoleMessages = filterConsoleMessages;
|
|
8
|
+
exports.filterNetworkRequests = filterNetworkRequests;
|
|
9
|
+
exports.formatConsoleMessages = formatConsoleMessages;
|
|
10
|
+
exports.formatNetworkRequests = formatNetworkRequests;
|
|
11
|
+
exports.formatPageErrors = formatPageErrors;
|
|
12
|
+
// ── Circular buffer limits ────────────────────────────────────────────
|
|
13
|
+
exports.MAX_CONSOLE_MESSAGES = 500;
|
|
14
|
+
exports.MAX_NETWORK_REQUESTS = 500;
|
|
15
|
+
exports.MAX_PAGE_ERRORS = 200;
|
|
16
|
+
// ── Console message filtering ─────────────────────────────────────────
|
|
17
|
+
function consolePriority(level) {
|
|
18
|
+
switch (level) {
|
|
19
|
+
case "error":
|
|
20
|
+
return 3;
|
|
21
|
+
case "warning":
|
|
22
|
+
return 2;
|
|
23
|
+
case "info":
|
|
24
|
+
case "log":
|
|
25
|
+
return 1;
|
|
26
|
+
case "debug":
|
|
27
|
+
return 0;
|
|
28
|
+
default:
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Filter console messages by minimum severity level.
|
|
34
|
+
*/
|
|
35
|
+
function filterConsoleMessages(messages, level) {
|
|
36
|
+
if (!level) {
|
|
37
|
+
return [...messages];
|
|
38
|
+
}
|
|
39
|
+
const min = consolePriority(level);
|
|
40
|
+
return messages.filter((msg) => consolePriority(msg.type) >= min);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Filter network requests by URL substring match.
|
|
44
|
+
*/
|
|
45
|
+
function filterNetworkRequests(requests, filter) {
|
|
46
|
+
const pattern = typeof filter === "string" ? filter.trim() : "";
|
|
47
|
+
if (!pattern) {
|
|
48
|
+
return [...requests];
|
|
49
|
+
}
|
|
50
|
+
return requests.filter((r) => r.url.includes(pattern));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Format console messages for tool output.
|
|
54
|
+
*/
|
|
55
|
+
function formatConsoleMessages(messages) {
|
|
56
|
+
if (!messages.length) {
|
|
57
|
+
return "No console messages captured.";
|
|
58
|
+
}
|
|
59
|
+
return messages.map((m) => `[${m.type.toUpperCase()}] ${m.text}`).join("\n");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Format network requests for tool output.
|
|
63
|
+
*/
|
|
64
|
+
function formatNetworkRequests(requests) {
|
|
65
|
+
if (!requests.length) {
|
|
66
|
+
return "No network requests captured.";
|
|
67
|
+
}
|
|
68
|
+
return requests
|
|
69
|
+
.map((r) => {
|
|
70
|
+
const status = r.status !== undefined ? ` ${r.status}` : "";
|
|
71
|
+
const failure = r.failureText ? ` (FAILED: ${r.failureText})` : "";
|
|
72
|
+
return `${r.method}${status} ${r.url}${failure}`;
|
|
73
|
+
})
|
|
74
|
+
.join("\n");
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Format page errors for tool output.
|
|
78
|
+
*/
|
|
79
|
+
function formatPageErrors(errors) {
|
|
80
|
+
if (!errors.length) {
|
|
81
|
+
return "No page errors captured.";
|
|
82
|
+
}
|
|
83
|
+
return errors.map((e) => `${e.name ?? "Error"}: ${e.message}`).join("\n");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=pw-responses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pw-responses.js","sourceRoot":"","sources":["../../../src/definitions/browser/pw-responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser session lifecycle management.
|
|
3
|
+
* Unlike OpenClaw (which connects to an external Chrome via CDP), ARIA
|
|
4
|
+
* launches its own Playwright browser instance directly.
|
|
5
|
+
*/
|
|
6
|
+
import type { BrowserConsoleMessage, BrowserNetworkRequest, BrowserPageError, BrowserSession, PwBrowser, RoleRefMap } from "./types.js";
|
|
7
|
+
export declare function getSession(): BrowserSession | null;
|
|
8
|
+
export declare function getRefs(): RoleRefMap;
|
|
9
|
+
export declare function setRefs(refs: RoleRefMap): void;
|
|
10
|
+
export declare function getConsoleMessages(): BrowserConsoleMessage[];
|
|
11
|
+
export declare function getNetworkRequests(): BrowserNetworkRequest[];
|
|
12
|
+
export declare function getPageErrors(): BrowserPageError[];
|
|
13
|
+
/**
|
|
14
|
+
* Test seam for injecting a mocked playwright loader.
|
|
15
|
+
* Passing null restores the production loader.
|
|
16
|
+
*/
|
|
17
|
+
export declare function setPlaywrightLoaderForTest(loader: (() => Promise<unknown>) | null): void;
|
|
18
|
+
type ChromiumLike = {
|
|
19
|
+
launch: (options?: {
|
|
20
|
+
headless?: boolean;
|
|
21
|
+
}) => Promise<PwBrowser>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Resolve Playwright's chromium launcher across module interop shapes.
|
|
25
|
+
* Some runtimes expose `{ chromium }`, others only `{ default: { chromium } }`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveChromiumLauncher(moduleValue: unknown): ChromiumLike;
|
|
28
|
+
/**
|
|
29
|
+
* Launch a new Playwright browser session.
|
|
30
|
+
* Uses dynamic import so the tool module loads even without playwright installed.
|
|
31
|
+
*/
|
|
32
|
+
export declare function launchBrowser(options?: {
|
|
33
|
+
headless?: boolean;
|
|
34
|
+
url?: string;
|
|
35
|
+
}): Promise<BrowserSession>;
|
|
36
|
+
/**
|
|
37
|
+
* Close the current browser session and clean up all state.
|
|
38
|
+
*/
|
|
39
|
+
export declare function closeBrowser(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* List all open tabs (pages) in the current context.
|
|
42
|
+
*/
|
|
43
|
+
export declare function listTabs(): Array<{
|
|
44
|
+
index: number;
|
|
45
|
+
url: string;
|
|
46
|
+
active: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Open a new tab, optionally navigating to a URL.
|
|
50
|
+
*/
|
|
51
|
+
export declare function newTab(url?: string): Promise<{
|
|
52
|
+
index: number;
|
|
53
|
+
url: string;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Switch to a tab by index.
|
|
57
|
+
*/
|
|
58
|
+
export declare function selectTab(index: number): Promise<{
|
|
59
|
+
url: string;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Close a tab by index (defaults to current tab).
|
|
63
|
+
*/
|
|
64
|
+
export declare function closeTab(index?: number): Promise<void>;
|
|
65
|
+
export {};
|