opensteer 0.8.11 → 0.8.13

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/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { resolveOpensteerEnvironment, resolveOpensteerRuntimeConfig, createOpensteerSemanticRuntime, OpensteerBrowserManager } from './chunk-33FDEOQY.js';
2
- export { CloudSessionProxy, DEFAULT_OPENSTEER_ENGINE, DEFERRED_MATCH_ATTR_KEYS, ElementPathError, MATCH_ATTRIBUTE_PRIORITY, OPENSTEER_DOM_ACTION_BRIDGE_SYMBOL, OPENSTEER_ENGINE_NAMES, OPENSTEER_FILESYSTEM_WORKSPACE_LAYOUT, OPENSTEER_FILESYSTEM_WORKSPACE_VERSION, OpensteerAttachAmbiguousError, OpensteerBrowserManager, OpensteerCloudClient, OpensteerRuntime, OpensteerSessionRuntime, STABLE_PRIMARY_ATTR_KEYS, assertProviderSupportsEngine, buildArrayFieldPathCandidates, buildDomDescriptorKey, buildDomDescriptorPayload, buildDomDescriptorVersion, buildPathCandidates, buildPathSelectorHint, buildSegmentSelector, clearPersistedSessionRecord, cloneElementPath, cloneReplayElementPath, cloneStructuralElementAnchor, createArtifactStore, createDomDescriptorStore, createDomRuntime, createFilesystemOpensteerWorkspace, createObservationStore, createOpensteerExtractionDescriptorStore, createOpensteerSemanticRuntime, defaultFallbackPolicy, defaultPolicy, defaultRetryPolicy, defaultSettlePolicy, defaultTimeoutPolicy, delayWithSignal, discoverLocalCdpBrowsers, dispatchSemanticOperation, hashDomDescriptorDescription, inspectCdpEndpoint, isCurrentUrlField, isValidCssAttributeKey, listLocalChromeProfiles, manifestToExternalBinaryLocation, normalizeExtractedValue, normalizeObservabilityConfig, normalizeOpensteerEngineName, normalizeOpensteerProviderMode, normalizeWorkspaceId, parseDomDescriptorRecord, parseExtractionDescriptorRecord, readPersistedCloudSessionRecord, readPersistedLocalBrowserSessionRecord, readPersistedSessionRecord, resolveCloudConfig, resolveCloudSessionRecordPath, resolveDomActionBridge, resolveExtractedValueInContext, resolveFilesystemWorkspacePath, resolveLiveSessionRecordPath, resolveLocalSessionRecordPath, resolveOpensteerEngineName, resolveOpensteerProvider, resolveOpensteerRuntimeConfig, runWithPolicyTimeout, sanitizeElementPath, sanitizeReplayElementPath, sanitizeStructuralElementAnchor, settleWithPolicy, shouldKeepAttributeForPath, writePersistedSessionRecord } from './chunk-33FDEOQY.js';
1
+ import { resolveOpensteerEnvironment, resolveOpensteerRuntimeConfig, createOpensteerSemanticRuntime, OpensteerBrowserManager } from './chunk-BW2BH7HA.js';
2
+ export { CloudSessionProxy, DEFAULT_OPENSTEER_ENGINE, DEFERRED_MATCH_ATTR_KEYS, ElementPathError, MATCH_ATTRIBUTE_PRIORITY, OPENSTEER_DOM_ACTION_BRIDGE_SYMBOL, OPENSTEER_ENGINE_NAMES, OPENSTEER_FILESYSTEM_WORKSPACE_LAYOUT, OPENSTEER_FILESYSTEM_WORKSPACE_VERSION, OpensteerAttachAmbiguousError, OpensteerBrowserManager, OpensteerCloudClient, OpensteerRuntime, OpensteerSessionRuntime, STABLE_PRIMARY_ATTR_KEYS, assertProviderSupportsEngine, buildArrayFieldPathCandidates, buildDomDescriptorKey, buildDomDescriptorPayload, buildDomDescriptorVersion, buildPathCandidates, buildPathSelectorHint, buildSegmentSelector, clearPersistedSessionRecord, cloneElementPath, cloneReplayElementPath, cloneStructuralElementAnchor, createArtifactStore, createDomDescriptorStore, createDomRuntime, createFilesystemOpensteerWorkspace, createObservationStore, createOpensteerExtractionDescriptorStore, createOpensteerSemanticRuntime, defaultFallbackPolicy, defaultPolicy, defaultRetryPolicy, defaultSettlePolicy, defaultTimeoutPolicy, delayWithSignal, discoverLocalCdpBrowsers, dispatchSemanticOperation, hashDomDescriptorDescription, inspectCdpEndpoint, isCurrentUrlField, isValidCssAttributeKey, listLocalChromeProfiles, manifestToExternalBinaryLocation, normalizeExtractedValue, normalizeObservabilityConfig, normalizeOpensteerEngineName, normalizeOpensteerProviderMode, normalizeWorkspaceId, parseDomDescriptorRecord, parseExtractionDescriptorRecord, readPersistedCloudSessionRecord, readPersistedLocalBrowserSessionRecord, readPersistedSessionRecord, resolveCloudConfig, resolveCloudSessionRecordPath, resolveDomActionBridge, resolveExtractedValueInContext, resolveFilesystemWorkspacePath, resolveLiveSessionRecordPath, resolveLocalSessionRecordPath, resolveOpensteerEngineName, resolveOpensteerProvider, resolveOpensteerRuntimeConfig, runWithPolicyTimeout, sanitizeElementPath, sanitizeReplayElementPath, sanitizeStructuralElementAnchor, settleWithPolicy, shouldKeepAttributeForPath, writePersistedSessionRecord } from './chunk-BW2BH7HA.js';
3
3
 
4
4
  // src/sdk/opensteer.ts
5
5
  var Opensteer = class {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensteer",
3
- "version": "0.8.11",
3
+ "version": "0.8.13",
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.3",
60
- "@opensteer/runtime-core": "0.1.3"
59
+ "@opensteer/engine-playwright": "0.8.5",
60
+ "@opensteer/runtime-core": "0.1.5"
61
61
  },
62
62
  "optionalDependencies": {
63
63
  "webcrack": "^2.15.1"
64
64
  },
65
65
  "peerDependencies": {
66
- "@opensteer/engine-abp": "0.8.4"
66
+ "@opensteer/engine-abp": "0.8.6"
67
67
  },
68
68
  "peerDependenciesMeta": {
69
69
  "@opensteer/engine-abp": {
@@ -71,9 +71,9 @@
71
71
  }
72
72
  },
73
73
  "devDependencies": {
74
- "@opensteer/browser-core": "0.7.3",
75
- "@opensteer/engine-abp": "0.8.4",
76
- "@opensteer/protocol": "0.7.3"
74
+ "@opensteer/protocol": "0.7.5",
75
+ "@opensteer/engine-abp": "0.8.6",
76
+ "@opensteer/browser-core": "0.7.5"
77
77
  },
78
78
  "scripts": {
79
79
  "build": "tsup && node ../../scripts/sync-package-skills.mjs",
@@ -1,52 +1,82 @@
1
1
  ---
2
2
  name: recorder
3
- description: "Use when the user wants to record a live browser workflow and turn it into a deterministic Opensteer replay script. Prefer this for manual browser capture, multi-tab flow recording, and agent-guided record-and-replay setup with the Opensteer CLI."
3
+ description: Use when the user wants to record a live browser workflow and turn it into a replayable Opensteer script. Prefer this for manual browser capture, multi-tab recording, and record-then-rerun workflows with the Opensteer CLI.
4
4
  argument-hint: "[url]"
5
5
  ---
6
6
 
7
7
  # Recorder
8
8
 
9
- Use the Opensteer recorder to open a headed local Playwright browser, capture DOM-level actions, and write a replayable TypeScript script.
9
+ Use the Opensteer recorder when the user wants to perform a real browser flow manually and save it as a deterministic replay script.
10
10
 
11
- ## When to use
11
+ ## Inputs
12
12
 
13
- - Record a real browser flow for later replay.
14
- - Turn a manual QA walkthrough into Opensteer SDK code.
15
- - Capture a multi-tab browsing session as a starting point for automation.
13
+ - `url`: starting URL to open
14
+ - `workspace`: target Opensteer workspace id
15
+ - `provider`: `local` or `cloud`
16
+ - optional `output`: explicit output path
16
17
 
17
- ## Quick start
18
+ ## Quick Start
19
+
20
+ Local recording:
18
21
 
19
22
  ```bash
20
23
  opensteer record --workspace <id> --url <url>
21
- opensteer record --workspace <id> --url <url> --output <path>
22
24
  ```
23
25
 
24
- 1. Start recording with `opensteer record --workspace <id> --url <url>`.
25
- 2. Perform the workflow in the headed browser.
26
- 3. Stop recording with the injected `Stop recording` button in the browser.
27
- 4. Wait for the CLI to write the script path and close the browser session.
28
- 5. Inspect the generated file before replaying or editing it.
26
+ Cloud recording:
27
+
28
+ ```bash
29
+ opensteer record --provider cloud --workspace <id> --url <url>
30
+ ```
31
+
32
+ Cloud recording requires:
33
+
34
+ - `OPENSTEER_BASE_URL`
35
+ - `OPENSTEER_API_KEY`
36
+ - `OPENSTEER_CLOUD_APP_BASE_URL`
37
+
38
+ ## Mode Selection
39
+
40
+ - Use `provider=local` when the user wants to interact with a local Playwright browser window.
41
+ - Use `provider=cloud` when the user wants to interact through the cloud browser session UI.
42
+ - Keep local recording on the default headed persistent browser flow.
43
+ - In cloud mode, do not force `headless=false`. Use the normal cloud launch behavior unless the user explicitly overrides it.
44
+
45
+ ## Workflow
46
+
47
+ 1. Start the recorder with `opensteer record`.
48
+ 2. If the provider is `cloud`, give the user the browser session URL printed by the CLI.
49
+ 3. Tell the user to perform the workflow manually.
50
+ 4. Tell the user exactly how to stop:
51
+ - local: click the injected `Stop recording` button in the browser page
52
+ - cloud: click `Stop recording` in the browser session toolbar UI
53
+ 5. Wait for the recorder process to finish. Do not assume recording is complete just because the browser URL was printed.
54
+ 6. Only after the CLI exits, read the generated script from disk and inspect what was captured.
55
+ 7. If the user wants verification, rerun the generated script instead of only reviewing the file.
29
56
 
30
57
  ## Guardrails
31
58
 
32
- - Recording requires `provider=local`.
33
59
  - Recording requires `engine=playwright`.
34
- - Recording always uses a headed persistent browser for the target workspace.
35
- - Stopping is browser-driven. Do not rely on `Ctrl+C` or removed timeout flags.
60
+ - Local recording only supports a persistent browser.
61
+ - Local recording requires a headed browser. Do not pass `--headless true` in local mode.
62
+ - Cloud recording does not support `browser.mode="attach"`.
63
+ - Do not stop recording with `Ctrl+C` unless the user explicitly wants to abort the run.
64
+ - Do not use removed timeout flags such as `--record-timeout-ms`.
36
65
  - If a launch argument value starts with `--`, pass it as `--arg=...`, not `--arg ...`.
66
+ - If the flow depends on recorder limits such as iframes, file upload, drag-and-drop, or canvas behavior, read the reference file before promising support.
37
67
 
38
- ## Output
68
+ ## Output Contract
39
69
 
40
70
  - Default output path: `.opensteer/workspaces/<id>/recorded-flow.ts`
41
- - The generated script imports `Opensteer` from `opensteer`.
42
- - Replay uses public SDK methods such as `open`, `goto`, `click`, `input`, `scroll`, `newPage`, `closePage`, `activatePage`, and `evaluate`.
71
+ - The CLI writes the replay script locally after recording completes in both local and cloud modes.
72
+ - Generated scripts use the public Opensteer SDK surface. Cloud recordings bootstrap `provider.mode = "cloud"` and local recordings bootstrap the workspace-backed local flow.
43
73
 
44
- ## Agent workflow
74
+ ## Agent Guidance
45
75
 
46
- - Use the browser stop button as the primary stop path.
47
- - After recording, read the generated script and summarize what was captured before changing it.
48
- - If the user asks for replay verification, run the generated script instead of only inspecting the file.
49
- - If the flow depends on recorder limits such as iframes or file upload, read the reference file before promising support.
76
+ - Keep the `record` command alive while the user is recording.
77
+ - If the user is actively driving the session, avoid mixing in extra agent actions unless they explicitly ask for help recording a combined flow.
78
+ - After recording completes, summarize the captured flow before editing it.
79
+ - If replay fails, debug the generated script and rerun it instead of re-recording immediately.
50
80
 
51
81
  ## References
52
82