@zenalexa/unicli 0.217.0 → 0.218.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/AGENTS.md +36 -196
- package/README.md +59 -19
- package/README.zh-CN.md +36 -15
- package/crates/unicli-atspi/Cargo.toml +47 -0
- package/crates/unicli-atspi/README.md +6 -0
- package/crates/unicli-atspi/src/errors.rs +213 -0
- package/crates/unicli-atspi/src/input.rs +1004 -0
- package/crates/unicli-atspi/src/invoke.rs +1132 -0
- package/crates/unicli-atspi/src/main.rs +130 -0
- package/crates/unicli-atspi/src/refs.rs +24 -0
- package/crates/unicli-atspi/src/screenshot.rs +756 -0
- package/crates/unicli-atspi/src/tree.rs +2319 -0
- package/crates/unicli-shared/Cargo.toml +13 -0
- package/crates/unicli-shared/src/lib.rs +77 -0
- package/crates/unicli-uia/Cargo.toml +29 -0
- package/crates/unicli-uia/README.md +6 -0
- package/crates/unicli-uia/src/errors.rs +179 -0
- package/crates/unicli-uia/src/input.rs +790 -0
- package/crates/unicli-uia/src/invoke.rs +977 -0
- package/crates/unicli-uia/src/main.rs +130 -0
- package/crates/unicli-uia/src/refs.rs +24 -0
- package/crates/unicli-uia/src/screenshot.rs +685 -0
- package/crates/unicli-uia/src/tree.rs +2135 -0
- package/dist/adapters/macos/actions.d.ts +9 -0
- package/dist/adapters/macos/actions.d.ts.map +1 -0
- package/dist/adapters/macos/actions.js +55 -0
- package/dist/adapters/macos/actions.js.map +1 -0
- package/dist/browser/bridge.d.ts +2 -0
- package/dist/browser/bridge.d.ts.map +1 -1
- package/dist/browser/bridge.js +39 -0
- package/dist/browser/bridge.js.map +1 -1
- package/dist/browser/cdp-client.d.ts +2 -0
- package/dist/browser/cdp-client.d.ts.map +1 -1
- package/dist/browser/cdp-client.js +7 -0
- package/dist/browser/cdp-client.js.map +1 -1
- package/dist/browser/page.d.ts +2 -0
- package/dist/browser/page.d.ts.map +1 -1
- package/dist/browser/page.js +35 -0
- package/dist/browser/page.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +25 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/approvals.d.ts +3 -0
- package/dist/commands/approvals.d.ts.map +1 -0
- package/dist/commands/approvals.js +123 -0
- package/dist/commands/approvals.js.map +1 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +250 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser-operator-runtime.d.ts.map +1 -1
- package/dist/commands/browser-operator-runtime.js +1 -0
- package/dist/commands/browser-operator-runtime.js.map +1 -1
- package/dist/commands/browser-operator.d.ts.map +1 -1
- package/dist/commands/browser-operator.js +84 -12
- package/dist/commands/browser-operator.js.map +1 -1
- package/dist/commands/compute.d.ts +3 -0
- package/dist/commands/compute.d.ts.map +1 -0
- package/dist/commands/compute.js +324 -0
- package/dist/commands/compute.js.map +1 -0
- package/dist/commands/dev.js +1 -0
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +10 -4
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/doctor-compute.d.ts +38 -0
- package/dist/commands/doctor-compute.d.ts.map +1 -0
- package/dist/commands/doctor-compute.js +376 -0
- package/dist/commands/doctor-compute.js.map +1 -0
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +1 -0
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +78 -1
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +4 -0
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/repair.d.ts +1 -0
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +103 -61
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/runs.d.ts +3 -0
- package/dist/commands/runs.d.ts.map +1 -0
- package/dist/commands/runs.js +367 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/core/envelope.d.ts +8 -0
- package/dist/core/envelope.d.ts.map +1 -1
- package/dist/core/envelope.js +1 -0
- package/dist/core/envelope.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +15 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +9 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/discovery/macos-dynamic.d.ts +58 -0
- package/dist/discovery/macos-dynamic.d.ts.map +1 -0
- package/dist/discovery/macos-dynamic.js +429 -0
- package/dist/discovery/macos-dynamic.js.map +1 -0
- package/dist/discovery/search.d.ts.map +1 -1
- package/dist/discovery/search.js +152 -3
- package/dist/discovery/search.js.map +1 -1
- package/dist/electron-apps.d.ts +1 -0
- package/dist/electron-apps.d.ts.map +1 -1
- package/dist/electron-apps.js +1 -0
- package/dist/electron-apps.js.map +1 -1
- package/dist/engine/approval-store.d.ts +43 -0
- package/dist/engine/approval-store.d.ts.map +1 -0
- package/dist/engine/approval-store.js +193 -0
- package/dist/engine/approval-store.js.map +1 -0
- package/dist/engine/browser/action-evidence.d.ts +2 -0
- package/dist/engine/browser/action-evidence.d.ts.map +1 -1
- package/dist/engine/browser/action-evidence.js +35 -1
- package/dist/engine/browser/action-evidence.js.map +1 -1
- package/dist/engine/browser/evidence.d.ts +22 -0
- package/dist/engine/browser/evidence.d.ts.map +1 -1
- package/dist/engine/browser/evidence.js +72 -0
- package/dist/engine/browser/evidence.js.map +1 -1
- package/dist/engine/browser/session-lease.d.ts +53 -0
- package/dist/engine/browser/session-lease.d.ts.map +1 -0
- package/dist/engine/browser/session-lease.js +100 -0
- package/dist/engine/browser/session-lease.js.map +1 -0
- package/dist/engine/browser/session-lock.d.ts +17 -0
- package/dist/engine/browser/session-lock.d.ts.map +1 -0
- package/dist/engine/browser/session-lock.js +114 -0
- package/dist/engine/browser/session-lock.js.map +1 -0
- package/dist/engine/browser/session-runtime.d.ts +10 -0
- package/dist/engine/browser/session-runtime.d.ts.map +1 -0
- package/dist/engine/browser/session-runtime.js +87 -0
- package/dist/engine/browser/session-runtime.js.map +1 -0
- package/dist/engine/capability-policy.d.ts +13 -2
- package/dist/engine/capability-policy.d.ts.map +1 -1
- package/dist/engine/capability-policy.js +113 -3
- package/dist/engine/capability-policy.js.map +1 -1
- package/dist/engine/chromium-cookies-platform.d.ts +69 -0
- package/dist/engine/chromium-cookies-platform.d.ts.map +1 -0
- package/dist/engine/chromium-cookies-platform.js +315 -0
- package/dist/engine/chromium-cookies-platform.js.map +1 -0
- package/dist/engine/chromium-cookies-types.d.ts +26 -0
- package/dist/engine/chromium-cookies-types.d.ts.map +1 -0
- package/dist/engine/chromium-cookies-types.js +16 -0
- package/dist/engine/chromium-cookies-types.js.map +1 -0
- package/dist/engine/chromium-cookies.d.ts +56 -0
- package/dist/engine/chromium-cookies.d.ts.map +1 -0
- package/dist/engine/chromium-cookies.js +361 -0
- package/dist/engine/chromium-cookies.js.map +1 -0
- package/dist/engine/cookies.d.ts +13 -5
- package/dist/engine/cookies.d.ts.map +1 -1
- package/dist/engine/cookies.js +55 -9
- package/dist/engine/cookies.js.map +1 -1
- package/dist/engine/executor.d.ts +16 -3
- package/dist/engine/executor.d.ts.map +1 -1
- package/dist/engine/executor.js +10 -3
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/kernel/execute.d.ts +1 -0
- package/dist/engine/kernel/execute.d.ts.map +1 -1
- package/dist/engine/kernel/execute.js +126 -3
- package/dist/engine/kernel/execute.js.map +1 -1
- package/dist/engine/kernel/types.d.ts +13 -0
- package/dist/engine/kernel/types.d.ts.map +1 -1
- package/dist/engine/operation-policy.d.ts +9 -1
- package/dist/engine/operation-policy.d.ts.map +1 -1
- package/dist/engine/operation-policy.js +6 -2
- package/dist/engine/operation-policy.js.map +1 -1
- package/dist/engine/permission-rules.d.ts +43 -0
- package/dist/engine/permission-rules.d.ts.map +1 -0
- package/dist/engine/permission-rules.js +401 -0
- package/dist/engine/permission-rules.js.map +1 -0
- package/dist/engine/permission-runtime.d.ts +11 -0
- package/dist/engine/permission-runtime.d.ts.map +1 -0
- package/dist/engine/permission-runtime.js +21 -0
- package/dist/engine/permission-runtime.js.map +1 -0
- package/dist/engine/repair/quarantine-discovery.d.ts +25 -0
- package/dist/engine/repair/quarantine-discovery.d.ts.map +1 -0
- package/dist/engine/repair/quarantine-discovery.js +78 -0
- package/dist/engine/repair/quarantine-discovery.js.map +1 -0
- package/dist/engine/repair/remedies.d.ts +4 -0
- package/dist/engine/repair/remedies.d.ts.map +1 -0
- package/dist/engine/repair/remedies.js +169 -0
- package/dist/engine/repair/remedies.js.map +1 -0
- package/dist/engine/runtime-resource-guard.d.ts +23 -0
- package/dist/engine/runtime-resource-guard.d.ts.map +1 -0
- package/dist/engine/runtime-resource-guard.js +85 -0
- package/dist/engine/runtime-resource-guard.js.map +1 -0
- package/dist/engine/session/args.d.ts +3 -0
- package/dist/engine/session/args.d.ts.map +1 -0
- package/dist/engine/session/args.js +17 -0
- package/dist/engine/session/args.js.map +1 -0
- package/dist/engine/session/compare.d.ts +92 -0
- package/dist/engine/session/compare.d.ts.map +1 -0
- package/dist/engine/session/compare.js +324 -0
- package/dist/engine/session/compare.js.map +1 -0
- package/dist/engine/session/environment.d.ts +4 -0
- package/dist/engine/session/environment.d.ts.map +1 -0
- package/dist/engine/session/environment.js +25 -0
- package/dist/engine/session/environment.js.map +1 -0
- package/dist/engine/session/events.d.ts +2 -0
- package/dist/engine/session/events.d.ts.map +1 -1
- package/dist/engine/session/events.js +12 -0
- package/dist/engine/session/events.js.map +1 -1
- package/dist/engine/session/query.d.ts +47 -0
- package/dist/engine/session/query.d.ts.map +1 -0
- package/dist/engine/session/query.js +299 -0
- package/dist/engine/session/query.js.map +1 -0
- package/dist/engine/session/replay.d.ts +35 -0
- package/dist/engine/session/replay.d.ts.map +1 -0
- package/dist/engine/session/replay.js +144 -0
- package/dist/engine/session/replay.js.map +1 -0
- package/dist/engine/session/run-loop.d.ts.map +1 -1
- package/dist/engine/session/run-loop.js +62 -23
- package/dist/engine/session/run-loop.js.map +1 -1
- package/dist/engine/session/store.d.ts +7 -0
- package/dist/engine/session/store.d.ts.map +1 -1
- package/dist/engine/session/store.js +131 -1
- package/dist/engine/session/store.js.map +1 -1
- package/dist/engine/session/types.d.ts +3 -1
- package/dist/engine/session/types.d.ts.map +1 -1
- package/dist/engine/steps/compute.d.ts +41 -0
- package/dist/engine/steps/compute.d.ts.map +1 -0
- package/dist/engine/steps/compute.js +55 -0
- package/dist/engine/steps/compute.js.map +1 -0
- package/dist/engine/steps/desktop-ax.d.ts +8 -0
- package/dist/engine/steps/desktop-ax.d.ts.map +1 -1
- package/dist/engine/steps/desktop-ax.js +16 -0
- package/dist/engine/steps/desktop-ax.js.map +1 -1
- package/dist/engine/steps/desktop-sidecar.d.ts +49 -0
- package/dist/engine/steps/desktop-sidecar.d.ts.map +1 -0
- package/dist/engine/steps/desktop-sidecar.js +50 -0
- package/dist/engine/steps/desktop-sidecar.js.map +1 -0
- package/dist/engine/steps/download.d.ts +1 -1
- package/dist/engine/steps/download.d.ts.map +1 -1
- package/dist/engine/steps/download.js +24 -2
- package/dist/engine/steps/download.js.map +1 -1
- package/dist/engine/steps/exec.d.ts +1 -1
- package/dist/engine/steps/exec.d.ts.map +1 -1
- package/dist/engine/steps/exec.js +23 -7
- package/dist/engine/steps/exec.js.map +1 -1
- package/dist/engine/steps/fetch-text.d.ts +1 -1
- package/dist/engine/steps/fetch-text.d.ts.map +1 -1
- package/dist/engine/steps/fetch-text.js +12 -4
- package/dist/engine/steps/fetch-text.js.map +1 -1
- package/dist/engine/steps/fetch.d.ts +2 -1
- package/dist/engine/steps/fetch.d.ts.map +1 -1
- package/dist/engine/steps/fetch.js +29 -6
- package/dist/engine/steps/fetch.js.map +1 -1
- package/dist/engine/steps/index.d.ts +2 -0
- package/dist/engine/steps/index.d.ts.map +1 -1
- package/dist/engine/steps/index.js +2 -0
- package/dist/engine/steps/index.js.map +1 -1
- package/dist/engine/steps/navigate.d.ts +1 -1
- package/dist/engine/steps/navigate.d.ts.map +1 -1
- package/dist/engine/steps/navigate.js +33 -2
- package/dist/engine/steps/navigate.js.map +1 -1
- package/dist/engine/template.d.ts +14 -4
- package/dist/engine/template.d.ts.map +1 -1
- package/dist/engine/template.js +93 -65
- package/dist/engine/template.js.map +1 -1
- package/dist/engine/verify-row-shape.d.ts +17 -0
- package/dist/engine/verify-row-shape.d.ts.map +1 -0
- package/dist/engine/verify-row-shape.js +36 -0
- package/dist/engine/verify-row-shape.js.map +1 -0
- package/dist/fast-path/handlers/adapter.d.ts +15 -0
- package/dist/fast-path/handlers/adapter.d.ts.map +1 -0
- package/dist/fast-path/handlers/adapter.js +169 -0
- package/dist/fast-path/handlers/adapter.js.map +1 -0
- package/dist/fast-path/handlers/discovery.d.ts +14 -0
- package/dist/fast-path/handlers/discovery.d.ts.map +1 -0
- package/dist/fast-path/handlers/discovery.js +280 -0
- package/dist/fast-path/handlers/discovery.js.map +1 -0
- package/dist/fast-path/manifest.d.ts +47 -0
- package/dist/fast-path/manifest.d.ts.map +1 -0
- package/dist/fast-path/manifest.js +32 -0
- package/dist/fast-path/manifest.js.map +1 -0
- package/dist/fast-path/parsed-argv.d.ts +16 -0
- package/dist/fast-path/parsed-argv.d.ts.map +1 -0
- package/dist/fast-path/parsed-argv.js +6 -0
- package/dist/fast-path/parsed-argv.js.map +1 -0
- package/dist/fast-path/policy.d.ts +25 -0
- package/dist/fast-path/policy.d.ts.map +1 -0
- package/dist/fast-path/policy.js +96 -0
- package/dist/fast-path/policy.js.map +1 -0
- package/dist/fast-path/render.d.ts +26 -0
- package/dist/fast-path/render.d.ts.map +1 -0
- package/dist/fast-path/render.js +200 -0
- package/dist/fast-path/render.js.map +1 -0
- package/dist/fast-path.d.ts +8 -10
- package/dist/fast-path.d.ts.map +1 -1
- package/dist/fast-path.js +66 -726
- package/dist/fast-path.js.map +1 -1
- package/dist/manifest-compact.txt +2 -2
- package/dist/manifest-search.json +1 -1
- package/dist/manifest.json +1030 -6
- package/dist/mcp/handler.d.ts +2 -2
- package/dist/mcp/handler.d.ts.map +1 -1
- package/dist/mcp/handler.js +59 -5
- package/dist/mcp/handler.js.map +1 -1
- package/dist/mcp/profiles/computer-use.d.ts +4 -0
- package/dist/mcp/profiles/computer-use.d.ts.map +1 -0
- package/dist/mcp/profiles/computer-use.js +305 -0
- package/dist/mcp/profiles/computer-use.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +30 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +9 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +20 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/envelope.d.ts +6 -0
- package/dist/output/envelope.d.ts.map +1 -1
- package/dist/output/envelope.js.map +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +4 -0
- package/dist/output/error-map.js.map +1 -1
- package/dist/registry.d.ts +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +5 -0
- package/dist/registry.js.map +1 -1
- package/dist/transport/adapters/cdp-browser.d.ts +44 -8
- package/dist/transport/adapters/cdp-browser.d.ts.map +1 -1
- package/dist/transport/adapters/cdp-browser.js +356 -29
- package/dist/transport/adapters/cdp-browser.js.map +1 -1
- package/dist/transport/adapters/desktop-atspi.d.ts +23 -17
- package/dist/transport/adapters/desktop-atspi.d.ts.map +1 -1
- package/dist/transport/adapters/desktop-atspi.js +143 -32
- package/dist/transport/adapters/desktop-atspi.js.map +1 -1
- package/dist/transport/adapters/desktop-ax-helpers.d.ts +24 -0
- package/dist/transport/adapters/desktop-ax-helpers.d.ts.map +1 -0
- package/dist/transport/adapters/desktop-ax-helpers.js +190 -0
- package/dist/transport/adapters/desktop-ax-helpers.js.map +1 -0
- package/dist/transport/adapters/desktop-ax-swift.d.ts +13 -0
- package/dist/transport/adapters/desktop-ax-swift.d.ts.map +1 -1
- package/dist/transport/adapters/desktop-ax-swift.js +176 -2
- package/dist/transport/adapters/desktop-ax-swift.js.map +1 -1
- package/dist/transport/adapters/desktop-ax.d.ts +11 -2
- package/dist/transport/adapters/desktop-ax.d.ts.map +1 -1
- package/dist/transport/adapters/desktop-ax.js +131 -16
- package/dist/transport/adapters/desktop-ax.js.map +1 -1
- package/dist/transport/adapters/desktop-sidecar-errors.d.ts +3 -0
- package/dist/transport/adapters/desktop-sidecar-errors.d.ts.map +1 -0
- package/dist/transport/adapters/desktop-sidecar-errors.js +34 -0
- package/dist/transport/adapters/desktop-sidecar-errors.js.map +1 -0
- package/dist/transport/adapters/desktop-sidecar-snapshot.d.ts +10 -0
- package/dist/transport/adapters/desktop-sidecar-snapshot.d.ts.map +1 -0
- package/dist/transport/adapters/desktop-sidecar-snapshot.js +89 -0
- package/dist/transport/adapters/desktop-sidecar-snapshot.js.map +1 -0
- package/dist/transport/adapters/desktop-uia.d.ts +23 -17
- package/dist/transport/adapters/desktop-uia.d.ts.map +1 -1
- package/dist/transport/adapters/desktop-uia.js +142 -32
- package/dist/transport/adapters/desktop-uia.js.map +1 -1
- package/dist/transport/adapters/subprocess.d.ts +11 -4
- package/dist/transport/adapters/subprocess.d.ts.map +1 -1
- package/dist/transport/adapters/subprocess.js +68 -4
- package/dist/transport/adapters/subprocess.js.map +1 -1
- package/dist/transport/bus.d.ts +2 -0
- package/dist/transport/bus.d.ts.map +1 -1
- package/dist/transport/bus.js +7 -11
- package/dist/transport/bus.js.map +1 -1
- package/dist/transport/capability.d.ts.map +1 -1
- package/dist/transport/capability.js +123 -98
- package/dist/transport/capability.js.map +1 -1
- package/dist/transport/cascade.d.ts +5 -0
- package/dist/transport/cascade.d.ts.map +1 -0
- package/dist/transport/cascade.js +550 -0
- package/dist/transport/cascade.js.map +1 -0
- package/dist/transport/cdp-session.d.ts +11 -0
- package/dist/transport/cdp-session.d.ts.map +1 -0
- package/dist/transport/cdp-session.js +52 -0
- package/dist/transport/cdp-session.js.map +1 -0
- package/dist/transport/refs.d.ts +51 -0
- package/dist/transport/refs.d.ts.map +1 -0
- package/dist/transport/refs.js +135 -0
- package/dist/transport/refs.js.map +1 -0
- package/dist/transport/sidecar-binary.d.ts +18 -0
- package/dist/transport/sidecar-binary.d.ts.map +1 -0
- package/dist/transport/sidecar-binary.js +55 -0
- package/dist/transport/sidecar-binary.js.map +1 -0
- package/dist/transport/sidecar.d.ts +35 -0
- package/dist/transport/sidecar.d.ts.map +1 -0
- package/dist/transport/sidecar.js +134 -0
- package/dist/transport/sidecar.js.map +1 -0
- package/dist/transport/snapshot-encoder.d.ts +34 -0
- package/dist/transport/snapshot-encoder.d.ts.map +1 -0
- package/dist/transport/snapshot-encoder.js +139 -0
- package/dist/transport/snapshot-encoder.js.map +1 -0
- package/dist/transport/types.d.ts +6 -1
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/docs/mcp/clients/claude-code.md +29 -0
- package/docs/mcp/clients/claude-desktop.md +47 -0
- package/docs/mcp/clients/codex.md +29 -0
- package/docs/mcp/clients/cursor.md +38 -0
- package/docs/mcp/clients/gemini-cli.md +38 -0
- package/docs/operate/compute.md +172 -0
- package/docs/operate/electron.md +87 -0
- package/docs/operate/focus-behavior.md +40 -0
- package/docs/operate/troubleshooting.md +379 -0
- package/package.json +29 -4
- package/src/adapters/adguardhome/rules.yaml +1 -1
- package/src/adapters/adguardhome/stats.yaml +1 -1
- package/src/adapters/adguardhome/status.yaml +1 -1
- package/src/adapters/apple-music/rate-album.yaml +1 -2
- package/src/adapters/arxiv/trending.yaml +1 -1
- package/src/adapters/az/account.yaml +1 -1
- package/src/adapters/coupang/hot.yaml +2 -1
- package/src/adapters/ctrip/hot.yaml +2 -1
- package/src/adapters/ctrip/search.yaml +2 -1
- package/src/adapters/douban/top250.yaml +1 -1
- package/src/adapters/figma/export-selected.yaml +1 -2
- package/src/adapters/gcloud/projects.yaml +1 -1
- package/src/adapters/github-trending/developers.yaml +1 -1
- package/src/adapters/github-trending/weekly.yaml +1 -1
- package/src/adapters/homebrew/search.yaml +1 -1
- package/src/adapters/imdb/top.yaml +1 -1
- package/src/adapters/itch-io/popular.yaml +1 -1
- package/src/adapters/itch-io/top.yaml +1 -1
- package/src/adapters/juejin/hot.test.ts +25 -0
- package/src/adapters/juejin/hot.yaml +52 -0
- package/src/adapters/juejin/search.test.ts +27 -0
- package/src/adapters/juejin/search.yaml +58 -0
- package/src/adapters/leetcode/discuss-search.test.ts +29 -0
- package/src/adapters/leetcode/discuss-search.yaml +56 -0
- package/src/adapters/macos/actions.ts +63 -0
- package/src/adapters/mastodon/timeline.yaml +1 -1
- package/src/adapters/openrouter/search.yaml +1 -1
- package/src/adapters/pypi/search.yaml +2 -1
- package/src/adapters/sspai/hot.yaml +4 -1
- package/src/adapters/sspai/latest.yaml +3 -3
- package/src/adapters/tieba/hot.yaml +1 -1
- package/src/adapters/wikipedia/today.yaml +1 -1
- package/src/adapters/zoom/toggle-mute.yaml +1 -2
- package/dist/engine/yaml-runner.d.ts +0 -11
- package/dist/engine/yaml-runner.d.ts.map +0 -1
- package/dist/engine/yaml-runner.js +0 -18
- package/dist/engine/yaml-runner.js.map +0 -1
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
# Compute Troubleshooting
|
|
2
|
+
|
|
3
|
+
`unicli compute` failures include `minimum_capability` and, where known, a
|
|
4
|
+
structured `remedy`. Use this page when `unicli doctor compute` or a failed
|
|
5
|
+
compute command points at one of these keys.
|
|
6
|
+
|
|
7
|
+
## desktop-uia.binary_missing
|
|
8
|
+
|
|
9
|
+
Cause: the Windows UIA sidecar binary is not installed or is not on the expected
|
|
10
|
+
path.
|
|
11
|
+
|
|
12
|
+
Remedy: run `unicli doctor compute --install`, then retry the compute command.
|
|
13
|
+
|
|
14
|
+
Fallback: use CDP-backed Electron/browser control or CUA screenshot fallback if
|
|
15
|
+
configured.
|
|
16
|
+
|
|
17
|
+
## desktop-uia.startup_failed
|
|
18
|
+
|
|
19
|
+
Cause: the UIA sidecar started and exited before responding.
|
|
20
|
+
|
|
21
|
+
Remedy: run `UNICLI_TRACE=1 unicli doctor compute` and inspect antivirus,
|
|
22
|
+
Defender, or SmartScreen quarantine.
|
|
23
|
+
|
|
24
|
+
Fallback: retry after reinstalling the sidecar package.
|
|
25
|
+
|
|
26
|
+
## desktop-uia.permission
|
|
27
|
+
|
|
28
|
+
Cause: Windows denied the UIA operation.
|
|
29
|
+
|
|
30
|
+
Remedy: run from an elevated terminal or install the sidecar with UIAccess.
|
|
31
|
+
|
|
32
|
+
Fallback: use CDP for Electron/browser targets.
|
|
33
|
+
|
|
34
|
+
## desktop-uia.no_element
|
|
35
|
+
|
|
36
|
+
Cause: the saved ref no longer points at a live element.
|
|
37
|
+
|
|
38
|
+
Remedy: run `unicli compute snapshot` again, then retry with a fresh ref.
|
|
39
|
+
|
|
40
|
+
Fallback: target by app/window and take a new snapshot.
|
|
41
|
+
|
|
42
|
+
## desktop-uia.not_invokable
|
|
43
|
+
|
|
44
|
+
Cause: the target element does not expose the UIA Invoke pattern.
|
|
45
|
+
|
|
46
|
+
Remedy: use `unicli compute type`, `unicli compute press`, or focus the control
|
|
47
|
+
first and retry.
|
|
48
|
+
|
|
49
|
+
Fallback: use CUA when no structured pattern is exposed.
|
|
50
|
+
|
|
51
|
+
## desktop-uia.timeout
|
|
52
|
+
|
|
53
|
+
Cause: the UIA sidecar did not respond within the request timeout.
|
|
54
|
+
|
|
55
|
+
Remedy: retry the command; the sidecar boundary is designed to restart after
|
|
56
|
+
timeouts.
|
|
57
|
+
|
|
58
|
+
Fallback: run `UNICLI_TRACE=1 unicli doctor compute` if the timeout repeats.
|
|
59
|
+
|
|
60
|
+
## desktop-uia.sidecar_crashed
|
|
61
|
+
|
|
62
|
+
Cause: the UIA sidecar process exited or closed its pipe while a request was in
|
|
63
|
+
flight.
|
|
64
|
+
|
|
65
|
+
Remedy: retry once. If it repeats, run
|
|
66
|
+
`UNICLI_TRACE=1 unicli doctor compute`.
|
|
67
|
+
|
|
68
|
+
Fallback: use CDP for Electron/browser targets while inspecting sidecar logs.
|
|
69
|
+
|
|
70
|
+
## Windows UIA Native Scope
|
|
71
|
+
|
|
72
|
+
Current Windows UIA support has two layers:
|
|
73
|
+
|
|
74
|
+
- Top-level app/window inventory, snapshot, find, wait, observe, assert, focus,
|
|
75
|
+
invoke, type, scroll, screenshot, and direct launch helpers use native
|
|
76
|
+
Win32/UIA-adjacent calls such as `EnumWindows`, `SetForegroundWindow`,
|
|
77
|
+
`SendInput`, HWND/GDI capture, and PowerShell `Start-Process`.
|
|
78
|
+
- Live descendant UIA traversal populates refs where the OS exposes a control
|
|
79
|
+
tree. Descendant invoke, value, and focus actions prefer UIA patterns before
|
|
80
|
+
bounded fallback paths; descendant screenshot crops the owning window bitmap.
|
|
81
|
+
|
|
82
|
+
Stable top-level refs look like `desktop-uia:pid-1234:Window[0]`. When passed to
|
|
83
|
+
wait, Uni-CLI polls the native top-level window inventory for a matching
|
|
84
|
+
role/name/title/app/pid filter until timeout. Observe ranks the same top-level
|
|
85
|
+
window refs by goal/title token overlap. Assert checks the same inventory for
|
|
86
|
+
top-level title text and visible/appear/enabled state.
|
|
87
|
+
|
|
88
|
+
## desktop-atspi.binary_missing
|
|
89
|
+
|
|
90
|
+
Cause: the Linux AT-SPI sidecar binary is not installed or is not on the
|
|
91
|
+
expected path.
|
|
92
|
+
|
|
93
|
+
Remedy: run `unicli doctor compute --install`, then retry.
|
|
94
|
+
|
|
95
|
+
Fallback: use CDP-backed Electron/browser control or CUA screenshot fallback if
|
|
96
|
+
configured.
|
|
97
|
+
|
|
98
|
+
## desktop-atspi.dbus_blocked
|
|
99
|
+
|
|
100
|
+
Cause: the AT-SPI bus daemon is not reachable.
|
|
101
|
+
|
|
102
|
+
Remedy: run `systemctl --user start at-spi-dbus-bus`.
|
|
103
|
+
|
|
104
|
+
Fallback: restart the desktop session if the bus cannot be started.
|
|
105
|
+
|
|
106
|
+
## desktop-atspi.no_a11y_attr
|
|
107
|
+
|
|
108
|
+
Cause: the target app does not expose a usable AT-SPI tree.
|
|
109
|
+
|
|
110
|
+
Remedy: enable accessibility support for the app. Electron apps may need an
|
|
111
|
+
accessibility flag at launch.
|
|
112
|
+
|
|
113
|
+
Fallback: use CDP for Electron/browser targets or CUA screenshot fallback.
|
|
114
|
+
|
|
115
|
+
## desktop-atspi.atspi_apps
|
|
116
|
+
|
|
117
|
+
Cause: the Linux top-level app inventory helper is missing or failed.
|
|
118
|
+
|
|
119
|
+
Remedy: ensure the AT-SPI bus is running. Uni-CLI prefers `wmctrl -lG -p` for
|
|
120
|
+
real X11 window ids and geometry, but can fall back to AT-SPI-only registry
|
|
121
|
+
roots when `wmctrl` is missing or empty.
|
|
122
|
+
|
|
123
|
+
Fallback: target an Electron/browser app through CDP, or use CUA fallback.
|
|
124
|
+
|
|
125
|
+
## desktop-atspi.atspi_windows
|
|
126
|
+
|
|
127
|
+
Cause: the Linux top-level window inventory helper is missing or failed.
|
|
128
|
+
|
|
129
|
+
Remedy: install `wmctrl` when real X11 window ids are needed. On Wayland or
|
|
130
|
+
minimal environments, verify the AT-SPI bus is running so Uni-CLI can use
|
|
131
|
+
synthetic `atspi-root-N` windows from the accessibility registry.
|
|
132
|
+
|
|
133
|
+
Fallback: use `compute snapshot` on another transport or CUA fallback.
|
|
134
|
+
|
|
135
|
+
## desktop-atspi.wayland-input
|
|
136
|
+
|
|
137
|
+
Cause: Wayland input fallback tools are missing.
|
|
138
|
+
|
|
139
|
+
Remedy: install `wtype` for text and printable key dispatch. Install `ydotool`
|
|
140
|
+
for supported modifier combos and Wayland scroll fallback.
|
|
141
|
+
|
|
142
|
+
Fallback: use structured AT-SPI actions that do not need synthetic input.
|
|
143
|
+
|
|
144
|
+
## desktop-atspi.x11-input
|
|
145
|
+
|
|
146
|
+
Cause: X11 input fallback tools are missing.
|
|
147
|
+
|
|
148
|
+
Remedy: install `xdotool` for text, key, and scroll dispatch.
|
|
149
|
+
|
|
150
|
+
Fallback: use structured AT-SPI actions that do not need synthetic input.
|
|
151
|
+
|
|
152
|
+
## desktop-atspi.atspi_screenshot
|
|
153
|
+
|
|
154
|
+
Cause: no supported Linux screenshot helper is available, or the helper failed.
|
|
155
|
+
|
|
156
|
+
Remedy: install ImageMagick `import` for X11 top-level window capture, or
|
|
157
|
+
install `grim` for Wayland top-level bounds capture. Install
|
|
158
|
+
`gnome-screenshot` / `grim` for display-server fallback capture.
|
|
159
|
+
|
|
160
|
+
Fallback: use CDP for Electron/browser targets or CUA screenshot fallback.
|
|
161
|
+
|
|
162
|
+
## desktop-atspi.invalid_input
|
|
163
|
+
|
|
164
|
+
Cause: a Linux AT-SPI action received a `ref` or `stable` token that is not a
|
|
165
|
+
`desktop-atspi:pid-<pid>:Window[<n>]` top-level window token.
|
|
166
|
+
|
|
167
|
+
Remedy: run `unicli compute snapshot --format compact` or
|
|
168
|
+
`unicli compute find --first` on Linux, then retry with the fresh ref emitted by
|
|
169
|
+
the AT-SPI transport.
|
|
170
|
+
|
|
171
|
+
Fallback: omit the ref to use the global helper path for text, scroll, or
|
|
172
|
+
screenshot actions when targeting the active desktop surface is acceptable.
|
|
173
|
+
|
|
174
|
+
## desktop-atspi.no_element
|
|
175
|
+
|
|
176
|
+
Cause: the saved ref no longer points at a live element.
|
|
177
|
+
|
|
178
|
+
Remedy: run `unicli compute snapshot` again, then retry with a fresh ref.
|
|
179
|
+
|
|
180
|
+
Fallback: target by app/window and take a new snapshot.
|
|
181
|
+
|
|
182
|
+
## Linux AT-SPI Native Scope
|
|
183
|
+
|
|
184
|
+
Current Linux AT-SPI support has two layers:
|
|
185
|
+
|
|
186
|
+
- Top-level app/window inventory, snapshot, find, wait, observe, assert, focus,
|
|
187
|
+
invoke, type, scroll, screenshot, and direct launch helpers use `wmctrl` when
|
|
188
|
+
available, and AT-SPI-only synthetic windows when `wmctrl` is missing or
|
|
189
|
+
empty. Synthetic windows use native AT-SPI focus rather than `wmctrl`.
|
|
190
|
+
- Descendant AT-SPI traversal populates role/name/value/state/bounds refs where
|
|
191
|
+
the app exposes an accessibility tree. Descendant invoke, type, and focus
|
|
192
|
+
prefer native Action/Value/EditableText/Component proxies, then fall back to
|
|
193
|
+
bounded display-server helpers. Descendant scroll prefers native
|
|
194
|
+
`Component.scroll_to(...)`, then falls back to display-server wheel helpers.
|
|
195
|
+
- Screenshot uses `import -window <id>` for real X11 top-level window refs,
|
|
196
|
+
`grim -g` for known Wayland/top-level bounds, and region capture for bounded
|
|
197
|
+
descendant refs.
|
|
198
|
+
|
|
199
|
+
Stable top-level refs look like `desktop-atspi:pid-1234:Window[0]`. When passed
|
|
200
|
+
to type, scroll, or screenshot actions, Uni-CLI uses native operations when
|
|
201
|
+
available and activates the top-level window only for helper fallbacks. On X11
|
|
202
|
+
with ImageMagick `import`, screenshot uses the resolved top-level window id
|
|
203
|
+
directly. On Wayland with `grim` and known bounds, screenshot captures the
|
|
204
|
+
reported rectangle. Assert checks top-level and descendant text/value/state
|
|
205
|
+
where the tree exposes them. Observe reports `action: "scroll"` for scroll
|
|
206
|
+
roles or scrollable states.
|
|
207
|
+
|
|
208
|
+
## desktop-atspi.sidecar_crashed
|
|
209
|
+
|
|
210
|
+
Cause: the AT-SPI sidecar process exited or closed its pipe while a request was
|
|
211
|
+
in flight.
|
|
212
|
+
|
|
213
|
+
Remedy: retry once. If it repeats, run
|
|
214
|
+
`UNICLI_TRACE=1 unicli doctor compute`.
|
|
215
|
+
|
|
216
|
+
Fallback: use CDP for Electron/browser targets while inspecting sidecar logs.
|
|
217
|
+
|
|
218
|
+
## desktop-ax.permission
|
|
219
|
+
|
|
220
|
+
Cause: macOS Accessibility is not granted to the app or terminal that launches
|
|
221
|
+
Uni-CLI.
|
|
222
|
+
|
|
223
|
+
Remedy: grant Accessibility in System Settings, then retry. Deeplink:
|
|
224
|
+
`x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility`.
|
|
225
|
+
|
|
226
|
+
Fallback: CDP can still control browser/Electron renderers that expose a debug
|
|
227
|
+
port.
|
|
228
|
+
|
|
229
|
+
## desktop-ax.screen-recording
|
|
230
|
+
|
|
231
|
+
Cause: macOS Screen Recording is not granted. This is only needed for screenshot
|
|
232
|
+
fallback.
|
|
233
|
+
|
|
234
|
+
Remedy: grant Screen Recording in System Settings. Deeplink:
|
|
235
|
+
`x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture`.
|
|
236
|
+
|
|
237
|
+
Fallback: prefer AX snapshots when the target exposes a structured tree.
|
|
238
|
+
|
|
239
|
+
## desktop-ax.binary_missing
|
|
240
|
+
|
|
241
|
+
Cause: the Swift runtime required by the macOS AX helper is not available.
|
|
242
|
+
|
|
243
|
+
Remedy: run `xcode-select --install`.
|
|
244
|
+
|
|
245
|
+
Fallback: use CDP for browser/Electron targets.
|
|
246
|
+
|
|
247
|
+
## cdp-browser.attach_failed
|
|
248
|
+
|
|
249
|
+
Cause: the requested CDP port is not reachable.
|
|
250
|
+
|
|
251
|
+
Remedy: check the port, or start the browser transport with
|
|
252
|
+
`unicli browser start`.
|
|
253
|
+
|
|
254
|
+
Fallback: use native AX/UIA/AT-SPI snapshots for non-browser app control.
|
|
255
|
+
|
|
256
|
+
## cdp-browser.electron_running_without_debug_port
|
|
257
|
+
|
|
258
|
+
Cause: the Electron app is running, but no remote debugging port is available.
|
|
259
|
+
|
|
260
|
+
Remedy: relaunch the app with a debug port, for example
|
|
261
|
+
`unicli compute launch <app> --debug-port 9229`.
|
|
262
|
+
|
|
263
|
+
Fallback: use native AX/UIA/AT-SPI controls when the app exposes enough
|
|
264
|
+
accessibility structure.
|
|
265
|
+
|
|
266
|
+
## subprocess.launcher
|
|
267
|
+
|
|
268
|
+
Cause: the host launcher required by `compute launch` is unavailable. Uni-CLI
|
|
269
|
+
uses `/usr/bin/open` on macOS, PowerShell `Start-Process` on Windows, and
|
|
270
|
+
`gtk-launch` on Linux.
|
|
271
|
+
|
|
272
|
+
Remedy: restore the platform launcher. On Linux install GTK desktop utilities,
|
|
273
|
+
for example `sudo apt-get install libgtk-3-bin`.
|
|
274
|
+
|
|
275
|
+
Fallback: start the app manually, then use `compute attach`, `compute snapshot`,
|
|
276
|
+
or the native desktop transport for follow-up actions.
|
|
277
|
+
|
|
278
|
+
## cua.no_backend
|
|
279
|
+
|
|
280
|
+
Cause: screenshot/VLM fallback is enabled in the cascade, but no backend API key
|
|
281
|
+
is configured.
|
|
282
|
+
|
|
283
|
+
Remedy: set a supported backend environment variable such as
|
|
284
|
+
`ANTHROPIC_API_KEY`, `TRYCUA_API_KEY`, or `OPENAI_API_KEY`.
|
|
285
|
+
|
|
286
|
+
Fallback: use structured AX/UIA/AT-SPI/CDP control where possible.
|
|
287
|
+
|
|
288
|
+
## compute.compute_find.ref-store
|
|
289
|
+
|
|
290
|
+
Cause: `compute find --first` could not find a matching ref in the current ref
|
|
291
|
+
store.
|
|
292
|
+
|
|
293
|
+
Remedy: run `unicli compute snapshot`, then retry the find with the new refs.
|
|
294
|
+
|
|
295
|
+
Fallback: make the snapshot more specific with `--app`.
|
|
296
|
+
|
|
297
|
+
## compute.step.element_off_screen
|
|
298
|
+
|
|
299
|
+
Cause: the ref is valid, but the element bounds are outside the visible window
|
|
300
|
+
or screen.
|
|
301
|
+
|
|
302
|
+
Remedy: scroll the containing view into range, then take a fresh
|
|
303
|
+
`unicli compute snapshot`.
|
|
304
|
+
|
|
305
|
+
Fallback: use `--focus` only when the app cannot expose a scrollable structured
|
|
306
|
+
container.
|
|
307
|
+
|
|
308
|
+
## compute.step.window_minimized
|
|
309
|
+
|
|
310
|
+
Cause: the target window is minimized or hidden, so the transport cannot act in
|
|
311
|
+
background mode.
|
|
312
|
+
|
|
313
|
+
Remedy: restore the window or retry the action with explicit focus.
|
|
314
|
+
|
|
315
|
+
Fallback: use `unicli compute windows --app <name>` to choose a visible window.
|
|
316
|
+
|
|
317
|
+
## compute.step.element_disabled
|
|
318
|
+
|
|
319
|
+
Cause: the target element exists but is disabled.
|
|
320
|
+
|
|
321
|
+
Remedy: wait for it to become enabled with
|
|
322
|
+
`unicli compute wait --state enabled`.
|
|
323
|
+
|
|
324
|
+
Fallback: snapshot the surrounding UI and act on the prerequisite control.
|
|
325
|
+
|
|
326
|
+
## compute.step.ref_expired
|
|
327
|
+
|
|
328
|
+
Cause: the saved ref came from an older snapshot and no longer maps to a live
|
|
329
|
+
element.
|
|
330
|
+
|
|
331
|
+
Remedy: run `unicli compute snapshot`, then retry with the new ref.
|
|
332
|
+
|
|
333
|
+
Fallback: use `compute find --first` after the new snapshot to select the ref.
|
|
334
|
+
|
|
335
|
+
## compute.step.sidecar_crashed
|
|
336
|
+
|
|
337
|
+
Cause: the UIA or AT-SPI sidecar exited while a call was in flight.
|
|
338
|
+
|
|
339
|
+
Remedy: retry once. If it repeats, run
|
|
340
|
+
`UNICLI_TRACE=1 unicli doctor compute`.
|
|
341
|
+
|
|
342
|
+
Fallback: use CDP for Electron/browser targets while inspecting sidecar logs.
|
|
343
|
+
|
|
344
|
+
## compute.step.sidecar_busy
|
|
345
|
+
|
|
346
|
+
Cause: the sidecar is already processing a request.
|
|
347
|
+
|
|
348
|
+
Remedy: retry after the current call completes. Sidecar calls are serialized to
|
|
349
|
+
keep ref state stable.
|
|
350
|
+
|
|
351
|
+
Fallback: avoid concurrent writes to the same app/window.
|
|
352
|
+
|
|
353
|
+
## compute.step.app_ambiguous
|
|
354
|
+
|
|
355
|
+
Cause: multiple running apps or windows match the same app name.
|
|
356
|
+
|
|
357
|
+
Remedy: run `unicli compute windows --app <name>` and retry with a more
|
|
358
|
+
specific bundle id, process name, pid, or window id.
|
|
359
|
+
|
|
360
|
+
Fallback: target a CDP port or exact bundle id when controlling Electron apps.
|
|
361
|
+
|
|
362
|
+
## compute.step.focus_required
|
|
363
|
+
|
|
364
|
+
Cause: the transport cannot complete the action in background mode.
|
|
365
|
+
|
|
366
|
+
Remedy: retry with `--focus` only after confirming focus stealing is acceptable.
|
|
367
|
+
|
|
368
|
+
Fallback: prefer a structured value/action path such as `compute type` or
|
|
369
|
+
`compute press` before enabling focus.
|
|
370
|
+
|
|
371
|
+
## compute.step.no-transport-available
|
|
372
|
+
|
|
373
|
+
Cause: every transport in the compute cascade failed or was unavailable for the
|
|
374
|
+
requested step.
|
|
375
|
+
|
|
376
|
+
Remedy: run `unicli doctor compute` and fix the first failing host transport.
|
|
377
|
+
|
|
378
|
+
Fallback: choose a narrower transport directly when possible, such as CDP for a
|
|
379
|
+
debuggable Electron renderer.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenalexa/unicli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.218.0",
|
|
4
4
|
"description": "Agent execution substrate for web, apps, local tools, and system capabilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/",
|
|
12
|
+
"crates/",
|
|
13
|
+
"docs/operate/",
|
|
14
|
+
"docs/mcp/clients/",
|
|
12
15
|
"src/adapters/",
|
|
13
16
|
"src/hub/",
|
|
14
17
|
"AGENTS.md"
|
|
@@ -127,6 +130,9 @@
|
|
|
127
130
|
"build:agents": "tsx scripts/build-agents.ts",
|
|
128
131
|
"test": "vitest run --project unit",
|
|
129
132
|
"test:adapter": "vitest run --project adapter",
|
|
133
|
+
"test:perf": "vitest run --project perf",
|
|
134
|
+
"compute:smoke": "tsx scripts/compute-live-smoke.ts",
|
|
135
|
+
"coverage:compute-snapshot": "vitest run --project unit tests/unit/refs.test.ts tests/unit/snapshot-encoder.test.ts --coverage --coverage.enabled=true --coverage.provider=v8 --coverage.include=src/transport/refs.ts --coverage.include=src/transport/snapshot-encoder.ts --coverage.reporter=text --coverage.thresholds.lines=100 --coverage.thresholds.functions=100 --coverage.thresholds.branches=100 --coverage.thresholds.statements=100",
|
|
130
136
|
"coverage:adapter-test": "tsx scripts/check-adapter-test-coverage.ts --threshold 50",
|
|
131
137
|
"adapter:bootstrap": "tsx scripts/bootstrap-adapter-tests.ts",
|
|
132
138
|
"adapter:health": "tsx scripts/adapter-health-probe.ts",
|
|
@@ -137,17 +143,20 @@
|
|
|
137
143
|
"format:check": "prettier --check .",
|
|
138
144
|
"lint:context": "bash scripts/lint-context.sh",
|
|
139
145
|
"build:manifest": "tsx scripts/build-manifest.js",
|
|
146
|
+
"sidecars:build": "node scripts/build-sidecars.mjs",
|
|
147
|
+
"sidecars:publish": "node scripts/publish-sidecars.mjs",
|
|
140
148
|
"changeset": "changeset",
|
|
141
149
|
"changeset:version": "changeset version",
|
|
142
150
|
"changeset:status": "changeset status --since=origin/main",
|
|
143
151
|
"verify:changesets": "tsx scripts/verify-changesets.ts",
|
|
152
|
+
"verify:release-mainline": "tsx scripts/release-mainline-check.ts",
|
|
144
153
|
"conformance": "tsx scripts/conformance-report.ts",
|
|
145
154
|
"check:exports": "tsx scripts/check-exports-count.ts",
|
|
146
155
|
"lint:adapters": "tsx src/main.ts lint src/adapters",
|
|
147
156
|
"lint:schema-v2": "tsx scripts/lint-schema-v2.ts",
|
|
148
157
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
149
158
|
"validate:agents-size": "tsx scripts/validate-agents-size.ts",
|
|
150
|
-
"verify": "npm run format:check && npm run typecheck && npm run lint && npm run lint:context && npm run build:manifest && npm run lint:adapters && npm run lint:schema-v2 && npm run build && npm run test && npm run test:adapter && npm run coverage:adapter-test && npm run validate:agents-size && npm run stats:check && npm run conformance && npm run check:exports && npm run verify:changesets",
|
|
159
|
+
"verify": "npm run format:check && npm run typecheck && npm run lint && npm run lint:context && npm run build:manifest && npm run lint:adapters && npm run lint:schema-v2 && npm run build && npm run test && npm run test:adapter && npm run test:perf && npm run coverage:compute-snapshot && npm run coverage:adapter-test && npm run validate:agents-size && npm run stats:check && npm run conformance && npm run check:exports && npm run verify:changesets",
|
|
151
160
|
"verify:full": "npm run verify && npm run refs:verify && npm run adapter:health",
|
|
152
161
|
"verify:clean": "npm run clean && npm run verify",
|
|
153
162
|
"docs:prepare": "tsx scripts/generate-catalog.ts && tsx scripts/generate-docs-agent-assets.ts",
|
|
@@ -157,10 +166,10 @@
|
|
|
157
166
|
"docs:preview": "vitepress preview docs",
|
|
158
167
|
"doctor": "tsx src/doctor.ts",
|
|
159
168
|
"mcp": "tsx src/mcp/server.ts",
|
|
160
|
-
"release": "npm run build && tsx scripts/release.ts",
|
|
169
|
+
"release": "npm run verify:release-mainline && npm run build && tsx scripts/release.ts",
|
|
161
170
|
"release:check": "tsx scripts/release-check.ts",
|
|
162
171
|
"prepare": "lefthook install >/dev/null 2>&1 || true",
|
|
163
|
-
"preversion": "npm run verify",
|
|
172
|
+
"preversion": "npm run verify:release-mainline && npm run verify",
|
|
164
173
|
"postversion": "npm run build && tsx scripts/release.ts",
|
|
165
174
|
"bench": "tsx bench/report.ts",
|
|
166
175
|
"bench:self-discovery": "tsx bench/self-discovery.ts",
|
|
@@ -209,20 +218,36 @@
|
|
|
209
218
|
"ws": "^8.20.0",
|
|
210
219
|
"zod": "^4.3.6"
|
|
211
220
|
},
|
|
221
|
+
"optionalDependencies": {
|
|
222
|
+
"@zenalexa/unicli-atspi-linux-arm64": "0.218.0",
|
|
223
|
+
"@zenalexa/unicli-atspi-linux-x64": "0.218.0",
|
|
224
|
+
"@zenalexa/unicli-uia-win32-arm64": "0.218.0",
|
|
225
|
+
"@zenalexa/unicli-uia-win32-x64": "0.218.0"
|
|
226
|
+
},
|
|
212
227
|
"devDependencies": {
|
|
213
228
|
"@ai-sdk/openai-compatible": "^2.0.41",
|
|
229
|
+
"@base-ui/react": "^1.4.1",
|
|
214
230
|
"@changesets/cli": "^2.31.0",
|
|
215
231
|
"@chenglou/pretext": "^0.0.6",
|
|
232
|
+
"@hugeicons/core-free-icons": "^4.1.1",
|
|
233
|
+
"@hugeicons/react": "^1.1.6",
|
|
234
|
+
"@hugeicons/vue": "^1.0.5",
|
|
216
235
|
"@types/js-yaml": "^4.0.9",
|
|
217
236
|
"@types/node": "^25.6.0",
|
|
237
|
+
"@types/react": "^19.2.14",
|
|
238
|
+
"@types/react-dom": "^19.2.3",
|
|
218
239
|
"@types/shell-quote": "^1.7.5",
|
|
219
240
|
"@types/turndown": "^5.0.6",
|
|
220
241
|
"@types/ws": "^8.18.1",
|
|
242
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
243
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
221
244
|
"ai": "^6.0.168",
|
|
222
245
|
"lefthook": "^2.1.6",
|
|
223
246
|
"markdown-it-mathjax3": "^4.3.2",
|
|
224
247
|
"oxlint": "^1.61.0",
|
|
225
248
|
"prettier": "^3.8.3",
|
|
249
|
+
"react": "^19.2.5",
|
|
250
|
+
"react-dom": "^19.2.5",
|
|
226
251
|
"shell-quote": "^1.8.3",
|
|
227
252
|
"tsx": "^4.21.0",
|
|
228
253
|
"typescript": "^6.0.3",
|
|
@@ -29,5 +29,5 @@ minimum_capability: http.fetch
|
|
|
29
29
|
trust: public
|
|
30
30
|
confidentiality: public
|
|
31
31
|
quarantine: true
|
|
32
|
-
quarantineReason: "requires local AdGuard Home instance on a private host"
|
|
32
|
+
quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
|
|
33
33
|
schema_version: v2
|
|
@@ -30,5 +30,5 @@ minimum_capability: http.fetch
|
|
|
30
30
|
trust: public
|
|
31
31
|
confidentiality: public
|
|
32
32
|
quarantine: true
|
|
33
|
-
quarantineReason: "requires local AdGuard Home instance on a private host"
|
|
33
|
+
quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
|
|
34
34
|
schema_version: v2
|
|
@@ -30,5 +30,5 @@ minimum_capability: http.fetch
|
|
|
30
30
|
trust: public
|
|
31
31
|
confidentiality: public
|
|
32
32
|
quarantine: true
|
|
33
|
-
quarantineReason: "requires local AdGuard Home instance on a private host"
|
|
33
|
+
quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
|
|
34
34
|
schema_version: v2
|
|
@@ -17,8 +17,7 @@ strategy: ui
|
|
|
17
17
|
domain: music.apple.com
|
|
18
18
|
browser: false
|
|
19
19
|
quarantine: true
|
|
20
|
-
quarantineReason: Requires macOS + Apple Music desktop app + a CUA backend
|
|
21
|
-
|
|
20
|
+
quarantineReason: Requires macOS + Apple Music desktop app + a CUA backend (quarantined 2026-04-15)
|
|
22
21
|
args:
|
|
23
22
|
stars:
|
|
24
23
|
type: int
|
|
@@ -42,5 +42,5 @@ minimum_capability: http.fetch
|
|
|
42
42
|
trust: public
|
|
43
43
|
confidentiality: public
|
|
44
44
|
quarantine: true
|
|
45
|
-
quarantineReason: "HTTP 400 on empty category — probe fires without required `category` arg default"
|
|
45
|
+
quarantineReason: "HTTP 400 on empty category — probe fires without required `category` arg default (quarantined 2026-04-15)"
|
|
46
46
|
schema_version: v2
|
|
@@ -26,5 +26,5 @@ minimum_capability: subprocess.exec
|
|
|
26
26
|
trust: user
|
|
27
27
|
confidentiality: public
|
|
28
28
|
quarantine: true
|
|
29
|
-
quarantineReason: "`az account show` times out in CI without interactive login"
|
|
29
|
+
quarantineReason: "`az account show` times out in CI without interactive login (quarantined 2026-04-15)"
|
|
30
30
|
schema_version: v2
|
|
@@ -33,5 +33,6 @@ capabilities: ["http.fetch"]
|
|
|
33
33
|
minimum_capability: http.fetch
|
|
34
34
|
trust: public
|
|
35
35
|
confidentiality: public
|
|
36
|
-
quarantine:
|
|
36
|
+
quarantine: true
|
|
37
|
+
quarantineReason: "www.coupang.com/np/goldbox returns HTTP 403 from public IPs (Cloudflare bot-wall, verified 2026-05-05) — needs cookie strategy with a real browser session"
|
|
37
38
|
schema_version: v2
|
|
@@ -32,5 +32,6 @@ capabilities: ["http.fetch"]
|
|
|
32
32
|
minimum_capability: http.fetch
|
|
33
33
|
trust: public
|
|
34
34
|
confidentiality: public
|
|
35
|
-
quarantine:
|
|
35
|
+
quarantine: true
|
|
36
|
+
quarantineReason: "m.ctrip.com/restapi/h5api/searchapp/search returns HTTP 502 (verified 2026-05-05); upstream re-architected, no obvious public hot-city replacement endpoint"
|
|
36
37
|
schema_version: v2
|
|
@@ -57,5 +57,6 @@ capabilities: ["http.fetch"]
|
|
|
57
57
|
minimum_capability: http.fetch
|
|
58
58
|
trust: public
|
|
59
59
|
confidentiality: public
|
|
60
|
-
quarantine:
|
|
60
|
+
quarantine: true
|
|
61
|
+
quarantineReason: "flights.ctrip.com search endpoint now requires CAPTCHA (showAuthCode=true on every public hit, verified 2026-05-05) — needs cookie/UI strategy with anti-bot solve"
|
|
61
62
|
schema_version: v2
|
|
@@ -70,5 +70,5 @@ minimum_capability: cdp-browser.evaluate
|
|
|
70
70
|
trust: public
|
|
71
71
|
confidentiality: public
|
|
72
72
|
quarantine: true
|
|
73
|
-
quarantineReason: "timed out after 8s — upstream slow from hosted runners"
|
|
73
|
+
quarantineReason: "timed out after 8s — upstream slow from hosted runners (quarantined 2026-04-15)"
|
|
74
74
|
schema_version: v2
|
|
@@ -15,8 +15,7 @@ strategy: ui
|
|
|
15
15
|
domain: figma.com
|
|
16
16
|
browser: false
|
|
17
17
|
quarantine: true
|
|
18
|
-
quarantineReason: Requires macOS + Figma desktop app + a CUA backend (ANTHROPIC_API_KEY etc.)
|
|
19
|
-
|
|
18
|
+
quarantineReason: Requires macOS + Figma desktop app + a CUA backend (ANTHROPIC_API_KEY etc.) (quarantined 2026-04-15)
|
|
20
19
|
args:
|
|
21
20
|
format:
|
|
22
21
|
type: str
|
|
@@ -24,5 +24,5 @@ minimum_capability: subprocess.exec
|
|
|
24
24
|
trust: user
|
|
25
25
|
confidentiality: public
|
|
26
26
|
quarantine: true
|
|
27
|
-
quarantineReason: "cloud CLI not authenticated in CI; `gcloud auth login` required on host"
|
|
27
|
+
quarantineReason: "cloud CLI not authenticated in CI; `gcloud auth login` required on host (quarantined 2026-04-15)"
|
|
28
28
|
schema_version: v2
|
|
@@ -38,5 +38,5 @@ minimum_capability: http.fetch
|
|
|
38
38
|
trust: public
|
|
39
39
|
confidentiality: public
|
|
40
40
|
quarantine: true
|
|
41
|
-
quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape"
|
|
41
|
+
quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape (quarantined 2026-04-15)"
|
|
42
42
|
schema_version: v2
|
|
@@ -39,5 +39,5 @@ minimum_capability: http.fetch
|
|
|
39
39
|
trust: public
|
|
40
40
|
confidentiality: public
|
|
41
41
|
quarantine: true
|
|
42
|
-
quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape"
|
|
42
|
+
quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape (quarantined 2026-04-15)"
|
|
43
43
|
schema_version: v2
|
|
@@ -15,7 +15,7 @@ pipeline:
|
|
|
15
15
|
- fetch:
|
|
16
16
|
url: "https://formulae.brew.sh/api/formula.json"
|
|
17
17
|
|
|
18
|
-
- filter: "item.name.includes(
|
|
18
|
+
- filter: "item.name.toLowerCase().includes(args.query.toLowerCase()) || (item.desc || '').toLowerCase().includes(args.query.toLowerCase())"
|
|
19
19
|
|
|
20
20
|
- map:
|
|
21
21
|
name: ${{ item.name }}
|
|
@@ -36,5 +36,5 @@ minimum_capability: subprocess.exec
|
|
|
36
36
|
trust: user
|
|
37
37
|
confidentiality: public
|
|
38
38
|
quarantine: true
|
|
39
|
-
quarantineReason: "upstream returns HTML instead of JSON — scraping path needed"
|
|
39
|
+
quarantineReason: "upstream returns HTML instead of JSON — scraping path needed (quarantined 2026-04-15)"
|
|
40
40
|
schema_version: v2
|
|
@@ -27,5 +27,5 @@ minimum_capability: http.fetch
|
|
|
27
27
|
trust: public
|
|
28
28
|
confidentiality: public
|
|
29
29
|
quarantine: true
|
|
30
|
-
quarantineReason: "HTTP 404 — itch.io removed the top-rated JSON feed"
|
|
30
|
+
quarantineReason: "HTTP 404 — itch.io removed the top-rated JSON feed (quarantined 2026-04-15)"
|
|
31
31
|
schema_version: v2
|
|
@@ -36,5 +36,5 @@ minimum_capability: http.fetch
|
|
|
36
36
|
trust: public
|
|
37
37
|
confidentiality: public
|
|
38
38
|
quarantine: true
|
|
39
|
-
quarantineReason: "HTTP 404 — itch.io /api/1/x/games endpoint removed"
|
|
39
|
+
quarantineReason: "HTTP 404 — itch.io /api/1/x/games endpoint removed (quarantined 2026-04-15)"
|
|
40
40
|
schema_version: v2
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, it } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
runAdapterWithFixture,
|
|
4
|
+
expectAdapterShape,
|
|
5
|
+
} from "../../../tests/adapter-runner.js";
|
|
6
|
+
|
|
7
|
+
describe("juejin hot", () => {
|
|
8
|
+
it("returns rows with declared columns against fixture", async () => {
|
|
9
|
+
const { output } = await runAdapterWithFixture("juejin", "hot");
|
|
10
|
+
expectAdapterShape(output, {
|
|
11
|
+
columns: [
|
|
12
|
+
"rank",
|
|
13
|
+
"title",
|
|
14
|
+
"author",
|
|
15
|
+
"company",
|
|
16
|
+
"views",
|
|
17
|
+
"diggs",
|
|
18
|
+
"comments",
|
|
19
|
+
"hot_index",
|
|
20
|
+
"url",
|
|
21
|
+
],
|
|
22
|
+
minItems: 1,
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|