opensteer 0.8.18 → 0.9.1
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 +5 -5
- package/dist/chunk-4LP7QP2O.js +4336 -0
- package/dist/chunk-4LP7QP2O.js.map +1 -0
- package/dist/{chunk-GQ3PGLYQ.js → chunk-6PGXWW3X.js} +5142 -9634
- package/dist/chunk-6PGXWW3X.js.map +1 -0
- package/dist/chunk-BMPUL66S.js +1170 -0
- package/dist/chunk-BMPUL66S.js.map +1 -0
- package/dist/{chunk-T6TG4WO2.js → chunk-L4FWHBQJ.js} +4 -3
- package/dist/chunk-L4FWHBQJ.js.map +1 -0
- package/dist/chunk-Z53HNZ7Z.js +1800 -0
- package/dist/chunk-Z53HNZ7Z.js.map +1 -0
- package/dist/cli/bin.cjs +3533 -499
- package/dist/cli/bin.cjs.map +1 -1
- package/dist/cli/bin.js +130 -11
- package/dist/cli/bin.js.map +1 -1
- package/dist/index.cjs +1382 -487
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +20 -27
- package/dist/index.d.ts +20 -27
- package/dist/index.js +4 -2
- package/dist/local-view/public/assets/app.css +770 -0
- package/dist/local-view/public/assets/app.js +2053 -0
- package/dist/local-view/public/index.html +235 -0
- package/dist/local-view/serve-entry.cjs +7436 -0
- package/dist/local-view/serve-entry.cjs.map +1 -0
- package/dist/local-view/serve-entry.d.cts +1 -0
- package/dist/local-view/serve-entry.d.ts +1 -0
- package/dist/local-view/serve-entry.js +23 -0
- package/dist/local-view/serve-entry.js.map +1 -0
- package/dist/opensteer-KZCRP425.js +6 -0
- package/dist/{opensteer-XMCWYUH3.js.map → opensteer-KZCRP425.js.map} +1 -1
- package/dist/session-control-VGBFOH3Y.js +39 -0
- package/dist/session-control-VGBFOH3Y.js.map +1 -0
- package/package.json +8 -8
- package/skills/README.md +12 -6
- package/skills/opensteer/SKILL.md +275 -217
- package/skills/recorder/SKILL.md +1 -1
- package/dist/chunk-GQ3PGLYQ.js.map +0 -1
- package/dist/chunk-T6TG4WO2.js.map +0 -1
- package/dist/opensteer-XMCWYUH3.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runLocalViewService } from '../chunk-Z53HNZ7Z.js';
|
|
3
|
+
import '../chunk-BMPUL66S.js';
|
|
4
|
+
|
|
5
|
+
// src/local-view/serve-entry.ts
|
|
6
|
+
runLocalViewService().catch((error) => {
|
|
7
|
+
const payload = error instanceof Error ? {
|
|
8
|
+
error: {
|
|
9
|
+
name: error.name,
|
|
10
|
+
message: error.message
|
|
11
|
+
}
|
|
12
|
+
} : {
|
|
13
|
+
error: {
|
|
14
|
+
name: "Error",
|
|
15
|
+
message: String(error)
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
process.stderr.write(`${JSON.stringify(payload)}
|
|
19
|
+
`);
|
|
20
|
+
process.exitCode = 1;
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=serve-entry.js.map
|
|
23
|
+
//# sourceMappingURL=serve-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/local-view/serve-entry.ts"],"names":[],"mappings":";;;;;AAIA,mBAAA,EAAoB,CAAE,KAAA,CAAM,CAAC,KAAA,KAAU;AACrC,EAAA,MAAM,OAAA,GACJ,iBAAiB,KAAA,GACb;AAAA,IACE,KAAA,EAAO;AAAA,MACL,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,SAAS,KAAA,CAAM;AAAA;AACjB,GACF,GACA;AAAA,IACE,KAAA,EAAO;AAAA,MACL,IAAA,EAAM,OAAA;AAAA,MACN,OAAA,EAAS,OAAO,KAAK;AAAA;AACvB,GACF;AACN,EAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,SAAA,CAAU,OAAO,CAAC;AAAA,CAAI,CAAA;AACnD,EAAA,OAAA,CAAQ,QAAA,GAAW,CAAA;AACrB,CAAC,CAAA","file":"serve-entry.js","sourcesContent":["#!/usr/bin/env node\n\nimport { runLocalViewService } from \"./serve.js\";\n\nrunLocalViewService().catch((error) => {\n const payload =\n error instanceof Error\n ? {\n error: {\n name: error.name,\n message: error.message,\n },\n }\n : {\n error: {\n name: \"Error\",\n message: String(error),\n },\n };\n process.stderr.write(`${JSON.stringify(payload)}\\n`);\n process.exitCode = 1;\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"opensteer-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"opensteer-KZCRP425.js"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OpensteerBrowserManager } from './chunk-4LP7QP2O.js';
|
|
2
|
+
import { readLocalViewSessionManifest, readPersistedLocalBrowserSessionRecord, deleteLocalViewSessionManifest } from './chunk-BMPUL66S.js';
|
|
3
|
+
|
|
4
|
+
// src/local-view/session-control.ts
|
|
5
|
+
var LocalViewSessionCloseError = class extends Error {
|
|
6
|
+
constructor(message, statusCode) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.statusCode = statusCode;
|
|
9
|
+
this.name = "LocalViewSessionCloseError";
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
async function closeLocalViewSessionBrowser(sessionId) {
|
|
13
|
+
const manifest = await readLocalViewSessionManifest(sessionId);
|
|
14
|
+
if (!manifest) {
|
|
15
|
+
throw new LocalViewSessionCloseError("Session not found.", 404);
|
|
16
|
+
}
|
|
17
|
+
if (manifest.ownership !== "owned") {
|
|
18
|
+
throw new LocalViewSessionCloseError(
|
|
19
|
+
"Only Opensteer-owned local browsers can be closed from the local view.",
|
|
20
|
+
409
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
const record = await readPersistedLocalBrowserSessionRecord(manifest.rootPath);
|
|
24
|
+
if (!record || record.pid !== manifest.pid || record.startedAt !== manifest.startedAt || record.engine !== manifest.engine) {
|
|
25
|
+
await deleteLocalViewSessionManifest(sessionId).catch(() => void 0);
|
|
26
|
+
throw new LocalViewSessionCloseError("Session not found.", 404);
|
|
27
|
+
}
|
|
28
|
+
const manager = new OpensteerBrowserManager({
|
|
29
|
+
rootPath: manifest.rootPath,
|
|
30
|
+
...manifest.workspace === void 0 ? {} : { workspace: manifest.workspace },
|
|
31
|
+
engineName: record.engine,
|
|
32
|
+
browser: "persistent"
|
|
33
|
+
});
|
|
34
|
+
await manager.close();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { LocalViewSessionCloseError, closeLocalViewSessionBrowser };
|
|
38
|
+
//# sourceMappingURL=session-control-VGBFOH3Y.js.map
|
|
39
|
+
//# sourceMappingURL=session-control-VGBFOH3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/local-view/session-control.ts"],"names":[],"mappings":";;;;AAOO,IAAM,0BAAA,GAAN,cAAyC,KAAA,CAAM;AAAA,EACpD,WAAA,CACE,SACS,UAAA,EACT;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAFJ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAGT,IAAA,IAAA,CAAK,IAAA,GAAO,4BAAA;AAAA,EACd;AACF;AAEA,eAAsB,6BAA6B,SAAA,EAAkC;AACnF,EAAA,MAAM,QAAA,GAAW,MAAM,4BAAA,CAA6B,SAAS,CAAA;AAC7D,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,0BAAA,CAA2B,oBAAA,EAAsB,GAAG,CAAA;AAAA,EAChE;AAEA,EAAA,IAAI,QAAA,CAAS,cAAc,OAAA,EAAS;AAClC,IAAA,MAAM,IAAI,0BAAA;AAAA,MACR,wEAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS,MAAM,sCAAA,CAAuC,QAAA,CAAS,QAAQ,CAAA;AAC7E,EAAA,IACE,CAAC,MAAA,IACD,MAAA,CAAO,GAAA,KAAQ,QAAA,CAAS,GAAA,IACxB,MAAA,CAAO,SAAA,KAAc,QAAA,CAAS,SAAA,IAC9B,MAAA,CAAO,MAAA,KAAW,SAAS,MAAA,EAC3B;AACA,IAAA,MAAM,8BAAA,CAA+B,SAAS,CAAA,CAAE,KAAA,CAAM,MAAM,MAAS,CAAA;AACrE,IAAA,MAAM,IAAI,0BAAA,CAA2B,oBAAA,EAAsB,GAAG,CAAA;AAAA,EAChE;AAEA,EAAA,MAAM,OAAA,GAAU,IAAI,uBAAA,CAAwB;AAAA,IAC1C,UAAU,QAAA,CAAS,QAAA;AAAA,IACnB,GAAI,SAAS,SAAA,KAAc,MAAA,GAAY,EAAC,GAAI,EAAE,SAAA,EAAW,QAAA,CAAS,SAAA,EAAU;AAAA,IAC5E,YAAY,MAAA,CAAO,MAAA;AAAA,IACnB,OAAA,EAAS;AAAA,GACV,CAAA;AACD,EAAA,MAAM,QAAQ,KAAA,EAAM;AACtB","file":"session-control-VGBFOH3Y.js","sourcesContent":["import { readPersistedLocalBrowserSessionRecord } from \"../live-session.js\";\nimport { OpensteerBrowserManager } from \"../browser-manager.js\";\nimport {\n deleteLocalViewSessionManifest,\n readLocalViewSessionManifest,\n} from \"./session-manifest.js\";\n\nexport class LocalViewSessionCloseError extends Error {\n constructor(\n message: string,\n readonly statusCode: 404 | 409,\n ) {\n super(message);\n this.name = \"LocalViewSessionCloseError\";\n }\n}\n\nexport async function closeLocalViewSessionBrowser(sessionId: string): Promise<void> {\n const manifest = await readLocalViewSessionManifest(sessionId);\n if (!manifest) {\n throw new LocalViewSessionCloseError(\"Session not found.\", 404);\n }\n\n if (manifest.ownership !== \"owned\") {\n throw new LocalViewSessionCloseError(\n \"Only Opensteer-owned local browsers can be closed from the local view.\",\n 409,\n );\n }\n\n const record = await readPersistedLocalBrowserSessionRecord(manifest.rootPath);\n if (\n !record ||\n record.pid !== manifest.pid ||\n record.startedAt !== manifest.startedAt ||\n record.engine !== manifest.engine\n ) {\n await deleteLocalViewSessionManifest(sessionId).catch(() => undefined);\n throw new LocalViewSessionCloseError(\"Session not found.\", 404);\n }\n\n const manager = new OpensteerBrowserManager({\n rootPath: manifest.rootPath,\n ...(manifest.workspace === undefined ? {} : { workspace: manifest.workspace }),\n engineName: record.engine,\n browser: \"persistent\",\n });\n await manager.close();\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opensteer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Opensteer browser automation, replay, and reverse-engineering toolkit.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
"sharp": "^0.34.5",
|
|
57
57
|
"skills": "^1.4.6",
|
|
58
58
|
"ws": "^8.18.0",
|
|
59
|
-
"@opensteer/engine-playwright": "0.8.
|
|
60
|
-
"@opensteer/runtime-core": "0.1
|
|
59
|
+
"@opensteer/engine-playwright": "0.8.7",
|
|
60
|
+
"@opensteer/runtime-core": "0.2.1"
|
|
61
61
|
},
|
|
62
62
|
"optionalDependencies": {
|
|
63
63
|
"webcrack": "^2.15.1"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
|
-
"@opensteer/engine-abp": "0.8.
|
|
66
|
+
"@opensteer/engine-abp": "0.8.8"
|
|
67
67
|
},
|
|
68
68
|
"peerDependenciesMeta": {
|
|
69
69
|
"@opensteer/engine-abp": {
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@opensteer/
|
|
75
|
-
"@opensteer/
|
|
76
|
-
"@opensteer/protocol": "0.
|
|
74
|
+
"@opensteer/engine-abp": "0.8.8",
|
|
75
|
+
"@opensteer/browser-core": "0.7.9",
|
|
76
|
+
"@opensteer/protocol": "0.8.1"
|
|
77
77
|
},
|
|
78
78
|
"scripts": {
|
|
79
|
-
"build": "tsup && node ../../scripts/sync-package-skills.mjs",
|
|
79
|
+
"build": "tsup && node ../../scripts/copy-opensteer-local-view-assets.mjs && node ../../scripts/sync-package-skills.mjs",
|
|
80
80
|
"clean": "rimraf dist skills",
|
|
81
81
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
82
82
|
}
|
package/skills/README.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Opensteer Skills
|
|
2
2
|
|
|
3
|
-
First-party Opensteer skills published from this repository. Install them through the upstream [`skills`](https://skills.sh) CLI into Claude Code,
|
|
3
|
+
First-party Opensteer skills published from this repository. Install them through the upstream [`skills`](https://skills.sh) CLI into Codex, Cursor, Claude Code, and other compatible agents.
|
|
4
|
+
|
|
5
|
+
From an Opensteer checkout, the installer prefers the local `skills/` directory so
|
|
6
|
+
Codex, Cursor, and Claude Code see the current repo `SKILL.md` immediately.
|
|
4
7
|
|
|
5
8
|
## Install
|
|
6
9
|
|
|
@@ -14,6 +17,12 @@ Install into Claude Code explicitly:
|
|
|
14
17
|
opensteer skills install --agent claude-code
|
|
15
18
|
```
|
|
16
19
|
|
|
20
|
+
Install into Codex, Cursor, and Claude Code explicitly:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
opensteer skills install --agent codex --agent cursor --agent claude-code
|
|
24
|
+
```
|
|
25
|
+
|
|
17
26
|
List the packaged skills without installing them:
|
|
18
27
|
|
|
19
28
|
```bash
|
|
@@ -22,7 +31,7 @@ opensteer skills install --list
|
|
|
22
31
|
|
|
23
32
|
## Available Skills
|
|
24
33
|
|
|
25
|
-
- `opensteer`:
|
|
34
|
+
- `opensteer`: browser automation, DOM extraction, session-state inspection, and browser-backed request replay with the Opensteer CLI and SDK
|
|
26
35
|
|
|
27
36
|
## Repository Layout
|
|
28
37
|
|
|
@@ -30,13 +39,10 @@ opensteer skills install --list
|
|
|
30
39
|
skills/
|
|
31
40
|
opensteer/
|
|
32
41
|
SKILL.md
|
|
33
|
-
references/
|
|
34
|
-
cli-reference.md
|
|
35
|
-
sdk-reference.md
|
|
36
|
-
request-workflow.md
|
|
37
42
|
```
|
|
38
43
|
|
|
39
44
|
## Maintainers
|
|
40
45
|
|
|
41
46
|
- Run `pnpm run skills:check` to verify that the upstream `skills` CLI can discover this repository.
|
|
42
47
|
- Keep each skill self-contained under `skills/<name>/` and keep links relative.
|
|
48
|
+
- Codex and Cursor load project skills from `.agents/skills/`; Claude Code loads them from `.claude/skills/`.
|