@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,10 @@
|
|
|
1
|
+
import type { IPage } from "../../types.js";
|
|
2
|
+
import { type BrowserSessionLease, type BrowserSessionLeaseAuthPosture, type BrowserSessionLeaseTarget } from "./session-lease.js";
|
|
3
|
+
export declare function enrichBrowserSessionLease(lease: BrowserSessionLease, page: IPage, options?: {
|
|
4
|
+
now?: () => Date;
|
|
5
|
+
}): Promise<BrowserSessionLease>;
|
|
6
|
+
export declare function assertBrowserSessionLeaseTargetCurrent(lease: BrowserSessionLease, page: IPage): Promise<void>;
|
|
7
|
+
export declare function captureBrowserSessionTarget(page: IPage, now?: () => Date): Promise<BrowserSessionLeaseTarget | undefined>;
|
|
8
|
+
export declare function captureBrowserSessionAuthPosture(page: IPage, now?: () => Date): Promise<BrowserSessionLeaseAuthPosture>;
|
|
9
|
+
export declare function browserSessionTargetKey(target?: BrowserSessionLeaseTarget | null): string | undefined;
|
|
10
|
+
//# sourceMappingURL=session-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/browser/session-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAe5B,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,KAAK,EACX,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAAO,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,KAAK,EACX,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAqBhD;AAED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,KAAK,EACX,GAAG,GAAE,MAAM,IAAuB,GACjC,OAAO,CAAC,8BAA8B,CAAC,CAezC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,CAAC,EAAE,yBAAyB,GAAG,IAAI,GACxC,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { BrowserSessionLeaseGuardError, } from "./session-lease.js";
|
|
2
|
+
export async function enrichBrowserSessionLease(lease, page, options = {}) {
|
|
3
|
+
const now = options.now ?? (() => new Date());
|
|
4
|
+
const [target, auth] = await Promise.all([
|
|
5
|
+
captureBrowserSessionTarget(page, now),
|
|
6
|
+
captureBrowserSessionAuthPosture(page, now),
|
|
7
|
+
]);
|
|
8
|
+
return {
|
|
9
|
+
...lease,
|
|
10
|
+
...(target ? { target } : {}),
|
|
11
|
+
auth,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export async function assertBrowserSessionLeaseTargetCurrent(lease, page) {
|
|
15
|
+
const expected = browserSessionTargetKey(lease.target);
|
|
16
|
+
if (!expected)
|
|
17
|
+
return;
|
|
18
|
+
const current = await captureBrowserSessionTarget(page);
|
|
19
|
+
const actual = browserSessionTargetKey(current);
|
|
20
|
+
if (!actual || actual === expected)
|
|
21
|
+
return;
|
|
22
|
+
throw new BrowserSessionLeaseGuardError("browser_target_mismatch", lease, expected, actual);
|
|
23
|
+
}
|
|
24
|
+
export async function captureBrowserSessionTarget(page, now = () => new Date()) {
|
|
25
|
+
const provided = await captureProvidedBrowserTarget(page, now);
|
|
26
|
+
if (provided)
|
|
27
|
+
return provided;
|
|
28
|
+
try {
|
|
29
|
+
const raw = (await page.sendCDP("Target.getTargetInfo"));
|
|
30
|
+
const info = raw?.targetInfo;
|
|
31
|
+
if (!info)
|
|
32
|
+
return undefined;
|
|
33
|
+
return {
|
|
34
|
+
kind: "cdp-target",
|
|
35
|
+
captured_at: now().toISOString(),
|
|
36
|
+
...(info.targetId ? { target_id: info.targetId } : {}),
|
|
37
|
+
...(info.type ? { target_type: info.type } : {}),
|
|
38
|
+
...(info.url ? { url: info.url } : {}),
|
|
39
|
+
...(info.title ? { title: info.title } : {}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function captureBrowserSessionAuthPosture(page, now = () => new Date()) {
|
|
47
|
+
try {
|
|
48
|
+
const cookies = await page.cookies();
|
|
49
|
+
const cookieCount = Object.keys(cookies).length;
|
|
50
|
+
return {
|
|
51
|
+
state: cookieCount > 0 ? "cookies_present" : "no_cookies",
|
|
52
|
+
cookie_count: cookieCount,
|
|
53
|
+
captured_at: now().toISOString(),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return {
|
|
58
|
+
state: "unavailable",
|
|
59
|
+
captured_at: now().toISOString(),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export function browserSessionTargetKey(target) {
|
|
64
|
+
if (!target)
|
|
65
|
+
return undefined;
|
|
66
|
+
if (typeof target.tab_id === "number") {
|
|
67
|
+
return typeof target.window_id === "number"
|
|
68
|
+
? `window:${String(target.window_id)}:tab:${String(target.tab_id)}`
|
|
69
|
+
: `tab:${String(target.tab_id)}`;
|
|
70
|
+
}
|
|
71
|
+
if (target.target_id)
|
|
72
|
+
return `target:${target.target_id}`;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
async function captureProvidedBrowserTarget(page, now) {
|
|
76
|
+
const provider = page;
|
|
77
|
+
if (typeof provider.browserTargetInfo !== "function")
|
|
78
|
+
return undefined;
|
|
79
|
+
const target = await provider.browserTargetInfo().catch(() => null);
|
|
80
|
+
if (!target)
|
|
81
|
+
return undefined;
|
|
82
|
+
return {
|
|
83
|
+
...target,
|
|
84
|
+
captured_at: target.captured_at ?? now().toISOString(),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=session-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-runtime.js","sourceRoot":"","sources":["../../../src/engine/browser/session-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,19 +12,29 @@ export interface CapabilityDimension {
|
|
|
12
12
|
reason?: string;
|
|
13
13
|
}
|
|
14
14
|
export type CapabilityDimensionMap = Record<CapabilityDimensionName, CapabilityDimension>;
|
|
15
|
+
export interface CapabilityResourceScope {
|
|
16
|
+
domains: string[];
|
|
17
|
+
paths: string[];
|
|
18
|
+
executables: string[];
|
|
19
|
+
apps: string[];
|
|
20
|
+
accounts: string[];
|
|
21
|
+
}
|
|
15
22
|
export interface CapabilityScope {
|
|
16
23
|
schema_version: "1";
|
|
17
24
|
dimensions: CapabilityDimensionMap;
|
|
18
25
|
summary: string[];
|
|
26
|
+
resources: CapabilityResourceScope;
|
|
27
|
+
resource_summary: string[];
|
|
19
28
|
}
|
|
20
29
|
export interface CapabilityApprovalMemory {
|
|
21
30
|
schema_version: "1";
|
|
22
31
|
key: string;
|
|
23
|
-
persistence: "not_persisted";
|
|
32
|
+
persistence: "not_persisted" | "persisted";
|
|
24
33
|
profile: PermissionProfile;
|
|
25
|
-
decision: "not_approved" | "approved_for_invocation";
|
|
34
|
+
decision: "not_approved" | "approved_for_invocation" | "approved_by_memory";
|
|
26
35
|
scope: {
|
|
27
36
|
dimensions: Record<CapabilityDimensionName, CapabilityAccess>;
|
|
37
|
+
resources: CapabilityResourceScope;
|
|
28
38
|
};
|
|
29
39
|
}
|
|
30
40
|
export declare function deriveCapabilityScope(input: OperationPolicyInput, effect: OperationEffect): CapabilityScope;
|
|
@@ -34,6 +44,7 @@ export declare function buildCapabilityApprovalMemory(input: {
|
|
|
34
44
|
profile: PermissionProfile;
|
|
35
45
|
effect: OperationEffect;
|
|
36
46
|
approved: boolean;
|
|
47
|
+
approvalSource?: "none" | "invocation" | "env" | "memory";
|
|
37
48
|
scope: CapabilityScope;
|
|
38
49
|
}): CapabilityApprovalMemory;
|
|
39
50
|
//# sourceMappingURL=capability-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CACzC,uBAAuB,EACvB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,GAAG,CAAC;IACpB,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,uBAAuB,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,GAAG,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,eAAe,GAAG,WAAW,CAAC;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,cAAc,GAAG,yBAAyB,GAAG,oBAAoB,CAAC;IAC5E,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAC9D,SAAS,EAAE,uBAAuB,CAAC;KACpC,CAAC;CACH;AAmPD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,eAAe,GACtB,eAAe,CAoLjB;AAiBD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1D,KAAK,EAAE,eAAe,CAAC;CACxB,GAAG,wBAAwB,CAyB3B"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This is deliberately deterministic and metadata-only: it classifies the
|
|
5
5
|
* command contract, not user-provided runtime values.
|
|
6
6
|
*/
|
|
7
|
+
import { createHash } from "node:crypto";
|
|
7
8
|
import { AdapterType } from "../types.js";
|
|
8
9
|
const DIMENSION_ORDER = [
|
|
9
10
|
"network",
|
|
@@ -20,6 +21,19 @@ const WEB_STRATEGIES = new Set([
|
|
|
20
21
|
"intercept",
|
|
21
22
|
"ui",
|
|
22
23
|
]);
|
|
24
|
+
const PATH_ARG_NAMES = new Set([
|
|
25
|
+
"dir",
|
|
26
|
+
"directory",
|
|
27
|
+
"file",
|
|
28
|
+
"filename",
|
|
29
|
+
"folder",
|
|
30
|
+
"input",
|
|
31
|
+
"out",
|
|
32
|
+
"output",
|
|
33
|
+
"path",
|
|
34
|
+
"source",
|
|
35
|
+
"destination",
|
|
36
|
+
]);
|
|
23
37
|
function emptyDimensions() {
|
|
24
38
|
return {
|
|
25
39
|
network: { access: "none" },
|
|
@@ -30,6 +44,15 @@ function emptyDimensions() {
|
|
|
30
44
|
account: { access: "none" },
|
|
31
45
|
};
|
|
32
46
|
}
|
|
47
|
+
function emptyResources() {
|
|
48
|
+
return {
|
|
49
|
+
domains: [],
|
|
50
|
+
paths: [],
|
|
51
|
+
executables: [],
|
|
52
|
+
apps: [],
|
|
53
|
+
accounts: [],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
33
56
|
function accessRank(access) {
|
|
34
57
|
switch (access) {
|
|
35
58
|
case "write":
|
|
@@ -46,6 +69,62 @@ function promoteAccess(dimensions, name, access, reason) {
|
|
|
46
69
|
dimensions[name] = { access, reason };
|
|
47
70
|
}
|
|
48
71
|
}
|
|
72
|
+
function normalizedUnique(values) {
|
|
73
|
+
return Array.from(new Set(values
|
|
74
|
+
.map((value) => value.trim().toLowerCase())
|
|
75
|
+
.filter((value) => value.length > 0))).sort();
|
|
76
|
+
}
|
|
77
|
+
function normalizeDomain(value) {
|
|
78
|
+
if (!value)
|
|
79
|
+
return undefined;
|
|
80
|
+
const raw = value.trim();
|
|
81
|
+
if (raw.length === 0)
|
|
82
|
+
return undefined;
|
|
83
|
+
try {
|
|
84
|
+
const url = new URL(raw.includes("://") ? raw : `https://${raw}`);
|
|
85
|
+
return url.host.toLowerCase();
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return raw
|
|
89
|
+
.replace(/^https?:\/\//i, "")
|
|
90
|
+
.split("/")[0]
|
|
91
|
+
?.trim()
|
|
92
|
+
.toLowerCase();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function pathArgSlots(input) {
|
|
96
|
+
return normalizedUnique((input.args ?? []).flatMap((arg) => {
|
|
97
|
+
const name = arg.name.trim().toLowerCase();
|
|
98
|
+
return PATH_ARG_NAMES.has(name) ? [`arg:${name}`] : [];
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
function deriveResourceScope(input, dimensions) {
|
|
102
|
+
const resources = emptyResources();
|
|
103
|
+
if (dimensions.network.access !== "none" ||
|
|
104
|
+
dimensions.browser.access !== "none") {
|
|
105
|
+
const domain = normalizeDomain(input.domain ?? input.base);
|
|
106
|
+
resources.domains = domain ? [domain] : [];
|
|
107
|
+
}
|
|
108
|
+
if (dimensions.account.access !== "none") {
|
|
109
|
+
resources.accounts = [input.site];
|
|
110
|
+
}
|
|
111
|
+
if (dimensions.desktop.access !== "none") {
|
|
112
|
+
resources.apps = [input.site];
|
|
113
|
+
}
|
|
114
|
+
if (dimensions.process.access !== "none") {
|
|
115
|
+
resources.executables = [input.site];
|
|
116
|
+
}
|
|
117
|
+
if (dimensions.file.access !== "none") {
|
|
118
|
+
resources.paths = pathArgSlots(input);
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
domains: normalizedUnique(resources.domains),
|
|
122
|
+
paths: normalizedUnique(resources.paths),
|
|
123
|
+
executables: normalizedUnique(resources.executables),
|
|
124
|
+
apps: normalizedUnique(resources.apps),
|
|
125
|
+
accounts: normalizedUnique(resources.accounts),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
49
128
|
function effectAccess(effect) {
|
|
50
129
|
return effect === "read" ? "read" : "write";
|
|
51
130
|
}
|
|
@@ -97,6 +176,15 @@ function summaryFor(dimensions) {
|
|
|
97
176
|
return access === "none" ? [] : [`${name}:${access}`];
|
|
98
177
|
});
|
|
99
178
|
}
|
|
179
|
+
function resourceSummaryFor(resources) {
|
|
180
|
+
return [
|
|
181
|
+
...resources.domains.map((value) => `domain:${value}`),
|
|
182
|
+
...resources.accounts.map((value) => `account:${value}`),
|
|
183
|
+
...resources.apps.map((value) => `app:${value}`),
|
|
184
|
+
...resources.executables.map((value) => `process:${value}`),
|
|
185
|
+
...resources.paths.map((value) => `path:${value}`),
|
|
186
|
+
];
|
|
187
|
+
}
|
|
100
188
|
function accessMapFor(dimensions) {
|
|
101
189
|
return {
|
|
102
190
|
network: dimensions.network.access,
|
|
@@ -172,23 +260,45 @@ export function deriveCapabilityScope(input, effect) {
|
|
|
172
260
|
? "reads through an external CLI"
|
|
173
261
|
: "may write through an external CLI");
|
|
174
262
|
}
|
|
263
|
+
const resources = deriveResourceScope(input, dimensions);
|
|
175
264
|
return {
|
|
176
265
|
schema_version: "1",
|
|
177
266
|
dimensions,
|
|
178
267
|
summary: summaryFor(dimensions),
|
|
268
|
+
resources,
|
|
269
|
+
resource_summary: resourceSummaryFor(resources),
|
|
179
270
|
};
|
|
180
271
|
}
|
|
272
|
+
function resourceFingerprintFor(resources) {
|
|
273
|
+
return createHash("sha256")
|
|
274
|
+
.update(JSON.stringify({
|
|
275
|
+
accounts: normalizedUnique(resources.accounts),
|
|
276
|
+
apps: normalizedUnique(resources.apps),
|
|
277
|
+
domains: normalizedUnique(resources.domains),
|
|
278
|
+
executables: normalizedUnique(resources.executables),
|
|
279
|
+
paths: normalizedUnique(resources.paths),
|
|
280
|
+
}))
|
|
281
|
+
.digest("hex")
|
|
282
|
+
.slice(0, 16);
|
|
283
|
+
}
|
|
181
284
|
export function buildCapabilityApprovalMemory(input) {
|
|
182
285
|
const dimensionAccess = accessMapFor(input.scope.dimensions);
|
|
183
286
|
const dimensionKey = DIMENSION_ORDER.map((name) => `${name}:${dimensionAccess[name]}`).join(",");
|
|
287
|
+
const resourceKey = resourceFingerprintFor(input.scope.resources);
|
|
288
|
+
const approvalSource = input.approvalSource ?? (input.approved ? "invocation" : "none");
|
|
184
289
|
return {
|
|
185
290
|
schema_version: "1",
|
|
186
|
-
key: `cap:1:${input.site}.${input.command}:${input.profile}:${input.effect}:${dimensionKey}`,
|
|
187
|
-
persistence: "not_persisted",
|
|
291
|
+
key: `cap:1:${input.site}.${input.command}:${input.profile}:${input.effect}:${dimensionKey}:res:${resourceKey}`,
|
|
292
|
+
persistence: approvalSource === "memory" ? "persisted" : "not_persisted",
|
|
188
293
|
profile: input.profile,
|
|
189
|
-
decision:
|
|
294
|
+
decision: approvalSource === "memory"
|
|
295
|
+
? "approved_by_memory"
|
|
296
|
+
: input.approved
|
|
297
|
+
? "approved_for_invocation"
|
|
298
|
+
: "not_approved",
|
|
190
299
|
scope: {
|
|
191
300
|
dimensions: dimensionAccess,
|
|
301
|
+
resources: input.scope.resources,
|
|
192
302
|
},
|
|
193
303
|
};
|
|
194
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../src/engine/capability-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-platform Chromium cookie key derivation, keystore lookup, and decrypt.
|
|
3
|
+
*
|
|
4
|
+
* The three platforms diverge meaningfully:
|
|
5
|
+
*
|
|
6
|
+
* macOS — Keychain `security` CLI → password (≤24 ASCII chars)
|
|
7
|
+
* PBKDF2-SHA1(saltysalt, 1003, 16) → 16-byte AES key
|
|
8
|
+
* v10/v11 prefix + AES-128-CBC + IV=16×0x20 + PKCS7
|
|
9
|
+
* 32-byte SHA256 integrity prefix on plaintext (M122+)
|
|
10
|
+
*
|
|
11
|
+
* Linux — libsecret/KWallet via `secret-tool` → password
|
|
12
|
+
* fallback to literal "peanuts" if no keyring (Chromium HEAD)
|
|
13
|
+
* PBKDF2-SHA1(saltysalt, **1**, 16) → 16-byte AES key (CRITICAL)
|
|
14
|
+
* v10/v11 prefix + AES-128-CBC + IV=16×0x20 + PKCS7
|
|
15
|
+
* NO integrity prefix
|
|
16
|
+
*
|
|
17
|
+
* Windows — `Local State` → os_crypt.encrypted_key (base64)
|
|
18
|
+
* strip "DPAPI" 5-byte prefix
|
|
19
|
+
* CryptUnprotectData(CurrentUser) via PowerShell → 32-byte master
|
|
20
|
+
* v10 prefix + 12-byte nonce + AES-256-GCM(ct + 16-byte tag, master)
|
|
21
|
+
* 32-byte SHA256 integrity prefix on plaintext
|
|
22
|
+
* v20 (Chrome 127+ App-Bound Encryption) is BLOCKED for external
|
|
23
|
+
* processes by design; we surface encryption_unsupported and
|
|
24
|
+
* suggest CDP fallback rather than ship a brittle bypass.
|
|
25
|
+
*
|
|
26
|
+
* All three platforms validate the prefix bytes to detect format drift early.
|
|
27
|
+
*/
|
|
28
|
+
import { type BrowserId } from "./chromium-cookies-types.js";
|
|
29
|
+
export type Platform = "darwin" | "linux" | "win32";
|
|
30
|
+
export declare function currentPlatform(): Platform;
|
|
31
|
+
interface KeystoreSpec {
|
|
32
|
+
/** macOS: Keychain service labels to probe in order. */
|
|
33
|
+
macLabels?: readonly string[];
|
|
34
|
+
/** macOS: Keychain account candidates per label. */
|
|
35
|
+
macAccounts?: readonly string[];
|
|
36
|
+
/** Linux: secret-tool `application` attribute. */
|
|
37
|
+
linuxApp?: string;
|
|
38
|
+
/** Linux: secret-tool xdg:schema attribute. */
|
|
39
|
+
linuxSchema?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Windows: Local State path relative to the user-data root. Each browser
|
|
42
|
+
* stores its master key here; we read it once and feed DPAPI.
|
|
43
|
+
*/
|
|
44
|
+
winLocalStateRel?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function _resetSecretCache(): void;
|
|
47
|
+
export declare function getEncryptionSecret(browser: BrowserId, platform: Platform, spec: KeystoreSpec, userDataRoot: string): Buffer | string;
|
|
48
|
+
/**
|
|
49
|
+
* Derive the AES key from the platform secret. macOS uses 1003 PBKDF2
|
|
50
|
+
* iterations; Linux uses **1** iteration (Chromium's
|
|
51
|
+
* `kEncryptionIterations = 1` for `freedesktop_secret_key_provider.cc`).
|
|
52
|
+
* Windows passes through — DPAPI already returned a 32-byte master.
|
|
53
|
+
*/
|
|
54
|
+
export declare function deriveKey(secret: Buffer | string, platform: Platform): Buffer;
|
|
55
|
+
/**
|
|
56
|
+
* Decrypt a single Chromium-encrypted cookie value.
|
|
57
|
+
*
|
|
58
|
+
* • Empty buffer → empty string
|
|
59
|
+
* • No `vNN` prefix → raw bytes (legacy unencrypted)
|
|
60
|
+
* • `v10`/`v11` macOS → AES-128-CBC, strip 32-byte SHA256 prefix when present
|
|
61
|
+
* • `v10`/`v11` Linux → AES-128-CBC, NO integrity prefix
|
|
62
|
+
* • `v10` Win → AES-256-GCM with 12-byte nonce + 16-byte tag,
|
|
63
|
+
* strip 32-byte SHA256 prefix
|
|
64
|
+
* • `v20` Win → encryption_unsupported (App-Bound Encryption)
|
|
65
|
+
*/
|
|
66
|
+
export declare function decryptValue(encrypted: Buffer, key: Buffer, platform: Platform): string;
|
|
67
|
+
export declare const KEYSTORE_SPECS: Record<BrowserId, KeystoreSpec>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=chromium-cookies-platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromium-cookies-platform.d.ts","sourceRoot":"","sources":["../../src/engine/chromium-cookies-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,wBAAgB,eAAe,IAAI,QAAQ,CAQ1C;AAMD,UAAU,YAAY;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,oDAAoD;IACpD,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,MAAM,CAkBjB;AAgJD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAsB7E;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAmCR;AAkDD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAwC1D,CAAC"}
|