@ai-ecoverse/slicc-cdp 1.31.1 → 1.31.3
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/README.md +11 -2
- package/bin/curlwright.wasm +0 -0
- package/bin/playwright-cli.wasm +0 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -43,6 +43,8 @@ curlwright -i https://example.com/
|
|
|
43
43
|
|
|
44
44
|
Seven's origins, the vault, browser pages, extensions and local files are always off limits.
|
|
45
45
|
|
|
46
|
+
`snapshot` prints the same tree as `@playwright/cli`: the same role names and refs, with `[active]`, `[cursor=pointer]` and `/url:`. It runs Playwright's own aria snapshot code, taken from `playwright-core` 1.64 (Apache-2.0, Copyright Microsoft Corporation), in an isolated world, in `crates/playwright-cli/src/aria-snapshot.js`. A `/url:` is redacted like every other URL: a protected origin shows only its origin, and query values, fragments and credentials show as `…` unless `--full-urls` is given.
|
|
47
|
+
|
|
46
48
|
The cookie commands, `cookie-list`, `cookie-get`, `cookie-set`, `cookie-delete` and `cookie-clear`, work like Microsoft's and print ordinary values as they are. Seven's and the vault's cookies, including cookies scoped to a parent domain of a protected host, are never listed, read, set or deleted. Domain arguments are canonicalized before the guard checks them; protected scopes and malformed domains are refused. `cookie-clear` leaves protected cookies, and requests to protected origins are not recorded. Headers containing protected-scope cookies and console lines containing their values are hidden, even on ordinary pages.
|
|
47
49
|
|
|
48
50
|
Saved sessions never contain cookie values or value hashes. They retain only cookie names and scopes (domain and path), with Cookie and Set-Cookie header values redacted. `request-headers`, `response-headers` and `request` look up those scopes in the live guarded cookie jar and label any values they show as current jar values, not necessarily what was sent at that time. Removed and protected cookies stay `[redacted]`. A header with no retained scopes can show current cookies applicable to its URL only when that URL cannot share a protected parent-domain cookie. Cookie-bearing console messages may be shown live but are not saved.
|
|
@@ -52,9 +54,17 @@ Saved sessions never contain cookie values or value hashes. They retain only coo
|
|
|
52
54
|
```sh
|
|
53
55
|
npm run lint
|
|
54
56
|
npm run test:unit
|
|
55
|
-
npm
|
|
57
|
+
npm test
|
|
56
58
|
```
|
|
57
59
|
|
|
60
|
+
`npm test` builds the native and wasm CLIs and the guard bridge, installs the pinned Chrome for Testing (`config.chrome`) and runs `test/integration/*.test.mjs`, the Rust workspace tests included. The published guard set from `@ai-ecoverse/slicc-browsers` runs in four files, `guard-a.test.mjs` to `guard-d.test.mjs`, one per partition of its targets; `guard-union.test.mjs` checks the partitions add up to the whole set. Every row must pass, or skip with the reason its vector declares, and the `C2.redirect-*` and `C4.iframe-preattach` `.shared` rows must pass. Each partition writes its report to `artifacts/guard-<partition>.md`.
|
|
61
|
+
|
|
62
|
+
## CI and releases
|
|
63
|
+
|
|
64
|
+
`.github/workflows/ci.yml` calls [slicc-shared-web's pipeline](https://github.com/ai-ecoverse/slicc-shared-web#pipeline): lint, the integration tests split over four shards on the pool, and the Claude and Codex reviews on pull requests. The ruleset requires `ci / integration` and `ci / review`.
|
|
65
|
+
|
|
66
|
+
On `main`, semantic-release publishes `@ai-ecoverse/slicc-cdp` to npm with provenance from `ci.yml`, tags `v<version>` and opens a draft GitHub release. When it released, `ci.yml` then publishes the four crates to crates.io, builds the binaries for macOS, Linux and Windows (the macOS ones signed and notarised), and uploads them with `install.sh`, `LICENSE`, `THIRD-PARTY-NOTICES` and `SHA256SUMS` before it publishes the release as latest. `@ai-ecoverse/sliccy-browser` is published from the same workflow whenever its `package.json` names a version npm doesn't have yet.
|
|
67
|
+
|
|
58
68
|
## Backend contract
|
|
59
69
|
|
|
60
70
|
What the clients need from a CDP backend, checked against the code by `crates/cdp-client/src/contract.rs`.
|
|
@@ -104,7 +114,6 @@ What the clients need from a CDP backend, checked against the code by `crates/cd
|
|
|
104
114
|
- `Input`
|
|
105
115
|
- `Network`
|
|
106
116
|
- `Fetch`
|
|
107
|
-
- `Accessibility`
|
|
108
117
|
|
|
109
118
|
## Crates
|
|
110
119
|
|
package/bin/curlwright.wasm
CHANGED
|
Binary file
|
package/bin/playwright-cli.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-cdp",
|
|
3
|
-
"version": "1.31.
|
|
3
|
+
"version": "1.31.3",
|
|
4
4
|
"description": "SLICC's CDP layer: client, browser API, transports, HAR, and ARIA snapshot",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"fledgling": {
|
|
18
18
|
"provider": "github",
|
|
19
|
-
"workflow": "
|
|
19
|
+
"workflow": "ci.yml",
|
|
20
20
|
"repo": "ai-ecoverse/slicc-cdp",
|
|
21
21
|
"publish": true
|
|
22
22
|
},
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
"prepare": "slicc-install-hooks",
|
|
54
54
|
"build:wasm": "cargo build --locked --release --target wasm32-wasip1 -p slicc-cdp -p curlwright && mkdir -p bin && cp target/wasm32-wasip1/release/playwright-cli.wasm bin/playwright-cli.wasm && cp target/wasm32-wasip1/release/curlwright.wasm bin/curlwright.wasm",
|
|
55
55
|
"prepublishOnly": "npm run build:wasm",
|
|
56
|
-
"lint": "slicc-lint",
|
|
56
|
+
"lint": "slicc-lint && shellcheck -s sh install.sh",
|
|
57
57
|
"typecheck": "node --check src/index.js && node --check src/cdp-client.js && node --check src/connect.js && node --check src/page.js && node --check src/browser.js && node --check src/cli.js && node --check packages/sliccy-browser/src/browser.js && node --check packages/sliccy-browser/src/fetch-script.js",
|
|
58
58
|
"format": "biome check --write .",
|
|
59
|
-
"
|
|
60
|
-
"test
|
|
59
|
+
"pretest": "export PATH=\"$HOME/.cargo/bin:$PATH\" && cargo build --locked -p slicc-cdp -p curlwright && cargo build --locked -p slicc-cdp-client --examples && cargo build --locked --target wasm32-wasip1 -p slicc-cdp -p curlwright && cargo build --locked --target wasm32-wasip1 -p slicc-cdp-client --example guard_bridge && npm run -s browser >/dev/null",
|
|
60
|
+
"test": "PATH=\"$HOME/.cargo/bin:$PATH\" SLICC_CDP_PORTS=\"${SLICC_CDP_PORTS:-9300-9309}\" node --import ./test/integration/ports.mjs --test --test-timeout=600000 'test/integration/*.test.mjs'",
|
|
61
61
|
"test:unit": "SLICC_CDP_PORTS=\"${SLICC_CDP_PORTS:-9300-9309}\" mcr -c node_modules/@ai-ecoverse/slicc-shared-web/mcr.config.mjs node scripts/test-unit.mjs",
|
|
62
62
|
"trust": "npx fledgling sync -y --skip-publish",
|
|
63
63
|
"trust:dry": "npx fledgling sync --dry-run -y --skip-publish",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@ai-ecoverse/slicc-browsers": "1.12.0",
|
|
72
|
-
"@ai-ecoverse/slicc-kernel": "1.
|
|
73
|
-
"@ai-ecoverse/slicc-shared-web": "2.
|
|
72
|
+
"@ai-ecoverse/slicc-kernel": "1.145.0",
|
|
73
|
+
"@ai-ecoverse/slicc-shared-web": "2.8.2",
|
|
74
74
|
"@biomejs/biome": "2.5.15",
|
|
75
75
|
"lefthook": "2.2.2",
|
|
76
76
|
"semantic-release": "25.0.9"
|