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.
Files changed (40) hide show
  1. package/README.md +5 -5
  2. package/dist/chunk-4LP7QP2O.js +4336 -0
  3. package/dist/chunk-4LP7QP2O.js.map +1 -0
  4. package/dist/{chunk-GQ3PGLYQ.js → chunk-6PGXWW3X.js} +5142 -9634
  5. package/dist/chunk-6PGXWW3X.js.map +1 -0
  6. package/dist/chunk-BMPUL66S.js +1170 -0
  7. package/dist/chunk-BMPUL66S.js.map +1 -0
  8. package/dist/{chunk-T6TG4WO2.js → chunk-L4FWHBQJ.js} +4 -3
  9. package/dist/chunk-L4FWHBQJ.js.map +1 -0
  10. package/dist/chunk-Z53HNZ7Z.js +1800 -0
  11. package/dist/chunk-Z53HNZ7Z.js.map +1 -0
  12. package/dist/cli/bin.cjs +3533 -499
  13. package/dist/cli/bin.cjs.map +1 -1
  14. package/dist/cli/bin.js +130 -11
  15. package/dist/cli/bin.js.map +1 -1
  16. package/dist/index.cjs +1382 -487
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +20 -27
  19. package/dist/index.d.ts +20 -27
  20. package/dist/index.js +4 -2
  21. package/dist/local-view/public/assets/app.css +770 -0
  22. package/dist/local-view/public/assets/app.js +2053 -0
  23. package/dist/local-view/public/index.html +235 -0
  24. package/dist/local-view/serve-entry.cjs +7436 -0
  25. package/dist/local-view/serve-entry.cjs.map +1 -0
  26. package/dist/local-view/serve-entry.d.cts +1 -0
  27. package/dist/local-view/serve-entry.d.ts +1 -0
  28. package/dist/local-view/serve-entry.js +23 -0
  29. package/dist/local-view/serve-entry.js.map +1 -0
  30. package/dist/opensteer-KZCRP425.js +6 -0
  31. package/dist/{opensteer-XMCWYUH3.js.map → opensteer-KZCRP425.js.map} +1 -1
  32. package/dist/session-control-VGBFOH3Y.js +39 -0
  33. package/dist/session-control-VGBFOH3Y.js.map +1 -0
  34. package/package.json +8 -8
  35. package/skills/README.md +12 -6
  36. package/skills/opensteer/SKILL.md +275 -217
  37. package/skills/recorder/SKILL.md +1 -1
  38. package/dist/chunk-GQ3PGLYQ.js.map +0 -1
  39. package/dist/chunk-T6TG4WO2.js.map +0 -1
  40. 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"]}
@@ -0,0 +1,6 @@
1
+ export { Opensteer } from './chunk-L4FWHBQJ.js';
2
+ import './chunk-6PGXWW3X.js';
3
+ import './chunk-4LP7QP2O.js';
4
+ import './chunk-BMPUL66S.js';
5
+ //# sourceMappingURL=opensteer-KZCRP425.js.map
6
+ //# sourceMappingURL=opensteer-KZCRP425.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"opensteer-XMCWYUH3.js"}
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.8.18",
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.6",
60
- "@opensteer/runtime-core": "0.1.7"
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.7"
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/browser-core": "0.7.7",
75
- "@opensteer/engine-abp": "0.8.7",
76
- "@opensteer/protocol": "0.7.7"
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, Codex, and other compatible agents.
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`: workspace-backed browser automation, structured DOM extraction, and browser-backed request replay with the Opensteer CLI and SDK
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/`.