opensteer 0.6.2 → 0.6.4

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 (33) hide show
  1. package/bin/opensteer.mjs +94 -8
  2. package/dist/{browser-profile-client-DK9qa_Dj.d.cts → browser-profile-client-D6PuRefA.d.cts} +1 -1
  3. package/dist/{browser-profile-client-CaL-mwqs.d.ts → browser-profile-client-OUHaODro.d.ts} +1 -1
  4. package/dist/{chunk-7RMY26CM.js → chunk-54KNQTOL.js} +172 -55
  5. package/dist/{chunk-WJI7TGBQ.js → chunk-6B6LOYU3.js} +1 -1
  6. package/dist/{chunk-F2VDVOJO.js → chunk-G6V2DJRN.js} +451 -609
  7. package/dist/chunk-K5CL76MG.js +81 -0
  8. package/dist/{chunk-WDRMHPWL.js → chunk-KPPOTU3D.js} +159 -180
  9. package/dist/cli/auth.cjs +186 -95
  10. package/dist/cli/auth.d.cts +1 -1
  11. package/dist/cli/auth.d.ts +1 -1
  12. package/dist/cli/auth.js +2 -2
  13. package/dist/cli/local-profile.cjs +197 -0
  14. package/dist/cli/local-profile.d.cts +18 -0
  15. package/dist/cli/local-profile.d.ts +18 -0
  16. package/dist/cli/local-profile.js +97 -0
  17. package/dist/cli/profile.cjs +1747 -1279
  18. package/dist/cli/profile.d.cts +2 -2
  19. package/dist/cli/profile.d.ts +2 -2
  20. package/dist/cli/profile.js +469 -7
  21. package/dist/cli/server.cjs +759 -257
  22. package/dist/cli/server.js +69 -16
  23. package/dist/index.cjs +688 -238
  24. package/dist/index.d.cts +7 -5
  25. package/dist/index.d.ts +7 -5
  26. package/dist/index.js +4 -3
  27. package/dist/{types-BxiRblC7.d.cts → types-BWItZPl_.d.cts} +31 -13
  28. package/dist/{types-BxiRblC7.d.ts → types-BWItZPl_.d.ts} +31 -13
  29. package/package.json +2 -2
  30. package/skills/opensteer/SKILL.md +34 -14
  31. package/skills/opensteer/references/cli-reference.md +1 -1
  32. package/skills/opensteer/references/examples.md +5 -3
  33. package/skills/opensteer/references/sdk-reference.md +16 -14
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as playwright from 'playwright';
2
2
  import { Page, BrowserContext, ElementHandle, Cookie, Browser } from 'playwright';
3
- import { a as OpensteerConfig, L as LaunchOptions, G as GotoOptions, S as SnapshotOptions, b as StateResult, c as ScreenshotOptions, d as ClickOptions, A as ActionResult, H as HoverOptions, I as InputOptions, e as SelectOptions, f as ScrollOptions, T as TabInfo, C as CookieParam, B as BaseActionOptions, g as BoundingBox, F as FileUploadOptions, E as ExtractOptions, h as ExtractFromPlanOptions, i as ExtractionRunResult, j as OpensteerCursorState, k as OpensteerAgentConfig, l as OpensteerAgentInstance, m as ElementPath, n as SnapshotMode, o as AiResolveCallback, p as AiExtractCallback, O as OpensteerAuthScheme, q as OpensteerAgentProvider, r as OpensteerAgentAction, s as OpensteerAgentResult, t as OpensteerAgentUsage, u as OpensteerCursorStyle, v as OpensteerCursorConfig, w as OpensteerAgentExecuteOptions } from './types-BxiRblC7.cjs';
4
- export { x as ActionWaitOptions, y as AiExtractArgs, z as AiExtractResult, D as AiResolveArgs, J as AiResolveCallbackResult, K as AiResolveResult, M as AttributeMatchClause, N as ContextHop, P as DomPath, Q as ExtractSchema, R as ExtractSchemaField, U as ExtractSchemaValue, V as ExtractionFieldPlan, W as ExtractionPlan, X as MatchClause, Y as MatchOperator, Z as OpensteerAgentMode, _ as OpensteerAgentModelConfig, $ as OpensteerBrowserConfig, a0 as OpensteerCloudAnnouncePolicy, a1 as OpensteerCloudBrowserProfileOptions, a2 as OpensteerCloudConfig, a3 as OpensteerCloudOptions, a4 as OpensteerCursorColor, a5 as OpensteerCursorProfile, a6 as OpensteerStorageConfig, a7 as PathNode, a8 as PathNodePosition, a9 as PositionMatchClause } from './types-BxiRblC7.cjs';
5
- import { A as ActionFailure, e as ActionFailureCode, C as CloudErrorCode, f as CloudActionFailureDetails, g as CloudSessionCreateRequest, h as CloudSessionCreateResponse, i as CloudSelectorCacheImportRequest, j as CloudSelectorCacheImportResponse, k as CloudActionMethod, l as CloudSelectorCacheImportEntry } from './browser-profile-client-DK9qa_Dj.cjs';
6
- export { m as ActionFailureBlocker, n as ActionFailureClassificationSource, o as ActionFailureDetails, p as BrowserProfileArchiveFormat, q as BrowserProfileClient, c as BrowserProfileCreateRequest, d as BrowserProfileDescriptor, a as BrowserProfileListRequest, b as BrowserProfileListResponse, r as BrowserProfileProxyPolicy, B as BrowserProfileStatus, s as CloudActionFailure, t as CloudActionRequest, u as CloudActionResponse, v as CloudActionSuccess, w as CloudBrowserProfileLaunchPreference, x as CloudFingerprintMode, y as CloudSessionContractVersion, z as CloudSessionLaunchConfig, D as CloudSessionSourceType, E as CloudSessionSummary, F as cloudSessionContractVersion } from './browser-profile-client-DK9qa_Dj.cjs';
3
+ import { a as OpensteerConfig, L as LaunchOptions, b as OpensteerLocalProfileDescriptor, c as OpensteerRealBrowserOptions, G as GotoOptions, S as SnapshotOptions, d as StateResult, e as ScreenshotOptions, f as ClickOptions, A as ActionResult, H as HoverOptions, I as InputOptions, g as SelectOptions, h as ScrollOptions, T as TabInfo, C as CookieParam, B as BaseActionOptions, i as BoundingBox, F as FileUploadOptions, E as ExtractOptions, j as ExtractFromPlanOptions, k as ExtractionRunResult, l as OpensteerCursorState, m as OpensteerAgentConfig, n as OpensteerAgentInstance, o as ElementPath, p as SnapshotMode, q as AiResolveCallback, r as AiExtractCallback, O as OpensteerAuthScheme, s as OpensteerAgentProvider, t as OpensteerAgentAction, u as OpensteerAgentResult, v as OpensteerAgentUsage, w as OpensteerCursorStyle, x as OpensteerCursorConfig, y as OpensteerAgentExecuteOptions } from './types-BWItZPl_.cjs';
4
+ export { z as ActionWaitOptions, D as AiExtractArgs, J as AiExtractResult, K as AiResolveArgs, M as AiResolveCallbackResult, N as AiResolveResult, P as AttributeMatchClause, Q as ContextHop, R as DomPath, U as ExtractSchema, V as ExtractSchemaField, W as ExtractSchemaValue, X as ExtractionFieldPlan, Y as ExtractionPlan, Z as MatchClause, _ as MatchOperator, $ as OpensteerAgentMode, a0 as OpensteerAgentModelConfig, a1 as OpensteerBrowserConfig, a2 as OpensteerCloudAnnouncePolicy, a3 as OpensteerCloudBrowserProfileOptions, a4 as OpensteerCloudConfig, a5 as OpensteerCloudOptions, a6 as OpensteerCursorColor, a7 as OpensteerCursorProfile, a8 as OpensteerLocalBrowserMode, a9 as OpensteerStorageConfig, aa as PathNode, ab as PathNodePosition, ac as PositionMatchClause } from './types-BWItZPl_.cjs';
5
+ import { A as ActionFailure, e as ActionFailureCode, C as CloudErrorCode, f as CloudActionFailureDetails, g as CloudSessionCreateRequest, h as CloudSessionCreateResponse, i as CloudSelectorCacheImportRequest, j as CloudSelectorCacheImportResponse, k as CloudActionMethod, l as CloudSelectorCacheImportEntry } from './browser-profile-client-D6PuRefA.cjs';
6
+ export { m as ActionFailureBlocker, n as ActionFailureClassificationSource, o as ActionFailureDetails, p as BrowserProfileArchiveFormat, q as BrowserProfileClient, c as BrowserProfileCreateRequest, d as BrowserProfileDescriptor, a as BrowserProfileListRequest, b as BrowserProfileListResponse, r as BrowserProfileProxyPolicy, B as BrowserProfileStatus, s as CloudActionFailure, t as CloudActionRequest, u as CloudActionResponse, v as CloudActionSuccess, w as CloudBrowserProfileLaunchPreference, x as CloudFingerprintMode, y as CloudSessionContractVersion, z as CloudSessionLaunchConfig, D as CloudSessionSourceType, E as CloudSessionSummary, F as cloudSessionContractVersion } from './browser-profile-client-D6PuRefA.cjs';
7
7
 
8
8
  interface RegistryEntry {
9
9
  file: string;
@@ -85,6 +85,8 @@ declare class Opensteer {
85
85
  private buildCloudSessionLaunchConfig;
86
86
  launch(options?: LaunchOptions): Promise<void>;
87
87
  static from(page: Page, config?: OpensteerConfig): Opensteer;
88
+ static listLocalProfiles(userDataDir?: string): OpensteerLocalProfileDescriptor[];
89
+ static fromSystemChrome(browser?: OpensteerRealBrowserOptions, config?: OpensteerConfig): Opensteer;
88
90
  close(): Promise<void>;
89
91
  private syncLocalSelectorCacheToCloud;
90
92
  goto(url: string, options?: GotoOptions): Promise<void>;
@@ -645,4 +647,4 @@ declare class SvgCursorRenderer implements CursorRenderer {
645
647
  private handleError;
646
648
  }
647
649
 
648
- export { type ActionExecutionResult, ActionFailure, ActionFailureCode, ActionResult, ActionWsClient, AiExtractCallback, type AiModelConfig, AiResolveCallback, type ArrayExtractedRow, type ArrayRowMetadata, type ArraySelector, BaseActionOptions, BoundingBox, CdpOverlayCursorRenderer, ClickOptions, CloudActionFailureDetails, CloudActionMethod, CloudCdpClient, type CloudCdpConnectArgs, type CloudCdpConnection, CloudErrorCode, CloudSelectorCacheImportEntry, CloudSelectorCacheImportRequest, CloudSelectorCacheImportResponse, CloudSessionClient, CloudSessionCreateRequest, CloudSessionCreateResponse, CookieParam, type CounterRequest, CounterResolutionError, type CounterResolutionErrorCode, type CursorCapabilityReason, CursorController, type CursorIntent, type CursorMotionPlan, type CursorPoint, type CursorRenderer, type CursorStatus, ElementPath, ElementPathError, type ElementPathErrorCode, ExtractFromPlanOptions, ExtractOptions, ExtractionRunResult, type FieldSelector, FileUploadOptions, GotoOptions, HoverOptions, InputOptions, LaunchOptions, LocalSelectorStorage, type MarkInteractivityOptions, OPENSTEER_HIDDEN_ATTR, OPENSTEER_INTERACTIVE_ATTR, OPENSTEER_SCROLLABLE_ATTR, OS_BOUNDARY_ATTR, OS_IFRAME_BOUNDARY_TAG, OS_NODE_ID_ATTR, OS_SHADOW_BOUNDARY_TAG, OS_UNAVAILABLE_ATTR, Opensteer, OpensteerActionError, OpensteerAgentAction, OpensteerAgentActionError, OpensteerAgentApiError, OpensteerAgentBusyError, OpensteerAgentConfig, OpensteerAgentConfigError, OpensteerAgentError, OpensteerAgentExecuteOptions, OpensteerAgentExecutionError, OpensteerAgentInstance, OpensteerAgentProvider, OpensteerAgentProviderError, OpensteerAgentResult, OpensteerAgentUsage, OpensteerAuthScheme, OpensteerCloudError, OpensteerConfig, OpensteerCuaAgentHandler, OpensteerCursorConfig, OpensteerCursorState, OpensteerCursorStyle, type PreparedSnapshot, type RegistryEntry, type ResolvedElementPath, ScreenshotOptions, ScrollOptions, SelectOptions, type SelectorFile, type SelectorRegistry, type SerializeOptions, type SerializedNodeMeta, type SerializedPageHTML, SnapshotMode, SnapshotOptions, StateResult, SvgCursorRenderer, TabInfo, buildArrayFieldPathCandidates, buildElementPathFromHandle, buildElementPathFromSelector, buildPathSelectorHint, cleanForAction, cleanForClickable, cleanForExtraction, cleanForFull, cleanForScrollable, clearCookies, cloneElementPath, closeTab, cloudNotLaunchedError, cloudUnsupportedMethodError, collectLocalSelectorCacheEntries, countArrayItemsWithPath, createCuaClient, createEmptyRegistry, createExtractCallback, createResolveCallback, createTab, exportCookies, extractArrayRowsWithPaths, extractArrayWithPaths, extractWithPaths, getCookies, getElementAttributes, getElementBoundingBox, getElementText, getElementValue, getModelProvider, getPageHtml, getPageTitle, importCookies, listTabs, markInteractiveElements, normalizeNamespace, performClick, performFileUpload, performHover, performInput, performScroll, performSelect, planSnappyCursorMotion, prepareSnapshot, pressKey, queryAllByElementPath, resolveAgentConfig, resolveCounterElement, resolveCountersBatch, resolveElementPath, resolveNamespaceDir, sanitizeElementPath, serializePageHTML, setCookie, switchTab, typeText, waitForVisualStability };
650
+ export { type ActionExecutionResult, ActionFailure, ActionFailureCode, ActionResult, ActionWsClient, AiExtractCallback, type AiModelConfig, AiResolveCallback, type ArrayExtractedRow, type ArrayRowMetadata, type ArraySelector, BaseActionOptions, BoundingBox, CdpOverlayCursorRenderer, ClickOptions, CloudActionFailureDetails, CloudActionMethod, CloudCdpClient, type CloudCdpConnectArgs, type CloudCdpConnection, CloudErrorCode, CloudSelectorCacheImportEntry, CloudSelectorCacheImportRequest, CloudSelectorCacheImportResponse, CloudSessionClient, CloudSessionCreateRequest, CloudSessionCreateResponse, CookieParam, type CounterRequest, CounterResolutionError, type CounterResolutionErrorCode, type CursorCapabilityReason, CursorController, type CursorIntent, type CursorMotionPlan, type CursorPoint, type CursorRenderer, type CursorStatus, ElementPath, ElementPathError, type ElementPathErrorCode, ExtractFromPlanOptions, ExtractOptions, ExtractionRunResult, type FieldSelector, FileUploadOptions, GotoOptions, HoverOptions, InputOptions, LaunchOptions, LocalSelectorStorage, type MarkInteractivityOptions, OPENSTEER_HIDDEN_ATTR, OPENSTEER_INTERACTIVE_ATTR, OPENSTEER_SCROLLABLE_ATTR, OS_BOUNDARY_ATTR, OS_IFRAME_BOUNDARY_TAG, OS_NODE_ID_ATTR, OS_SHADOW_BOUNDARY_TAG, OS_UNAVAILABLE_ATTR, Opensteer, OpensteerActionError, OpensteerAgentAction, OpensteerAgentActionError, OpensteerAgentApiError, OpensteerAgentBusyError, OpensteerAgentConfig, OpensteerAgentConfigError, OpensteerAgentError, OpensteerAgentExecuteOptions, OpensteerAgentExecutionError, OpensteerAgentInstance, OpensteerAgentProvider, OpensteerAgentProviderError, OpensteerAgentResult, OpensteerAgentUsage, OpensteerAuthScheme, OpensteerCloudError, OpensteerConfig, OpensteerCuaAgentHandler, OpensteerCursorConfig, OpensteerCursorState, OpensteerCursorStyle, OpensteerLocalProfileDescriptor, OpensteerRealBrowserOptions, type PreparedSnapshot, type RegistryEntry, type ResolvedElementPath, ScreenshotOptions, ScrollOptions, SelectOptions, type SelectorFile, type SelectorRegistry, type SerializeOptions, type SerializedNodeMeta, type SerializedPageHTML, SnapshotMode, SnapshotOptions, StateResult, SvgCursorRenderer, TabInfo, buildArrayFieldPathCandidates, buildElementPathFromHandle, buildElementPathFromSelector, buildPathSelectorHint, cleanForAction, cleanForClickable, cleanForExtraction, cleanForFull, cleanForScrollable, clearCookies, cloneElementPath, closeTab, cloudNotLaunchedError, cloudUnsupportedMethodError, collectLocalSelectorCacheEntries, countArrayItemsWithPath, createCuaClient, createEmptyRegistry, createExtractCallback, createResolveCallback, createTab, exportCookies, extractArrayRowsWithPaths, extractArrayWithPaths, extractWithPaths, getCookies, getElementAttributes, getElementBoundingBox, getElementText, getElementValue, getModelProvider, getPageHtml, getPageTitle, importCookies, listTabs, markInteractiveElements, normalizeNamespace, performClick, performFileUpload, performHover, performInput, performScroll, performSelect, planSnappyCursorMotion, prepareSnapshot, pressKey, queryAllByElementPath, resolveAgentConfig, resolveCounterElement, resolveCountersBatch, resolveElementPath, resolveNamespaceDir, sanitizeElementPath, serializePageHTML, setCookie, switchTab, typeText, waitForVisualStability };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as playwright from 'playwright';
2
2
  import { Page, BrowserContext, ElementHandle, Cookie, Browser } from 'playwright';
3
- import { a as OpensteerConfig, L as LaunchOptions, G as GotoOptions, S as SnapshotOptions, b as StateResult, c as ScreenshotOptions, d as ClickOptions, A as ActionResult, H as HoverOptions, I as InputOptions, e as SelectOptions, f as ScrollOptions, T as TabInfo, C as CookieParam, B as BaseActionOptions, g as BoundingBox, F as FileUploadOptions, E as ExtractOptions, h as ExtractFromPlanOptions, i as ExtractionRunResult, j as OpensteerCursorState, k as OpensteerAgentConfig, l as OpensteerAgentInstance, m as ElementPath, n as SnapshotMode, o as AiResolveCallback, p as AiExtractCallback, O as OpensteerAuthScheme, q as OpensteerAgentProvider, r as OpensteerAgentAction, s as OpensteerAgentResult, t as OpensteerAgentUsage, u as OpensteerCursorStyle, v as OpensteerCursorConfig, w as OpensteerAgentExecuteOptions } from './types-BxiRblC7.js';
4
- export { x as ActionWaitOptions, y as AiExtractArgs, z as AiExtractResult, D as AiResolveArgs, J as AiResolveCallbackResult, K as AiResolveResult, M as AttributeMatchClause, N as ContextHop, P as DomPath, Q as ExtractSchema, R as ExtractSchemaField, U as ExtractSchemaValue, V as ExtractionFieldPlan, W as ExtractionPlan, X as MatchClause, Y as MatchOperator, Z as OpensteerAgentMode, _ as OpensteerAgentModelConfig, $ as OpensteerBrowserConfig, a0 as OpensteerCloudAnnouncePolicy, a1 as OpensteerCloudBrowserProfileOptions, a2 as OpensteerCloudConfig, a3 as OpensteerCloudOptions, a4 as OpensteerCursorColor, a5 as OpensteerCursorProfile, a6 as OpensteerStorageConfig, a7 as PathNode, a8 as PathNodePosition, a9 as PositionMatchClause } from './types-BxiRblC7.js';
5
- import { A as ActionFailure, e as ActionFailureCode, C as CloudErrorCode, f as CloudActionFailureDetails, g as CloudSessionCreateRequest, h as CloudSessionCreateResponse, i as CloudSelectorCacheImportRequest, j as CloudSelectorCacheImportResponse, k as CloudActionMethod, l as CloudSelectorCacheImportEntry } from './browser-profile-client-CaL-mwqs.js';
6
- export { m as ActionFailureBlocker, n as ActionFailureClassificationSource, o as ActionFailureDetails, p as BrowserProfileArchiveFormat, q as BrowserProfileClient, c as BrowserProfileCreateRequest, d as BrowserProfileDescriptor, a as BrowserProfileListRequest, b as BrowserProfileListResponse, r as BrowserProfileProxyPolicy, B as BrowserProfileStatus, s as CloudActionFailure, t as CloudActionRequest, u as CloudActionResponse, v as CloudActionSuccess, w as CloudBrowserProfileLaunchPreference, x as CloudFingerprintMode, y as CloudSessionContractVersion, z as CloudSessionLaunchConfig, D as CloudSessionSourceType, E as CloudSessionSummary, F as cloudSessionContractVersion } from './browser-profile-client-CaL-mwqs.js';
3
+ import { a as OpensteerConfig, L as LaunchOptions, b as OpensteerLocalProfileDescriptor, c as OpensteerRealBrowserOptions, G as GotoOptions, S as SnapshotOptions, d as StateResult, e as ScreenshotOptions, f as ClickOptions, A as ActionResult, H as HoverOptions, I as InputOptions, g as SelectOptions, h as ScrollOptions, T as TabInfo, C as CookieParam, B as BaseActionOptions, i as BoundingBox, F as FileUploadOptions, E as ExtractOptions, j as ExtractFromPlanOptions, k as ExtractionRunResult, l as OpensteerCursorState, m as OpensteerAgentConfig, n as OpensteerAgentInstance, o as ElementPath, p as SnapshotMode, q as AiResolveCallback, r as AiExtractCallback, O as OpensteerAuthScheme, s as OpensteerAgentProvider, t as OpensteerAgentAction, u as OpensteerAgentResult, v as OpensteerAgentUsage, w as OpensteerCursorStyle, x as OpensteerCursorConfig, y as OpensteerAgentExecuteOptions } from './types-BWItZPl_.js';
4
+ export { z as ActionWaitOptions, D as AiExtractArgs, J as AiExtractResult, K as AiResolveArgs, M as AiResolveCallbackResult, N as AiResolveResult, P as AttributeMatchClause, Q as ContextHop, R as DomPath, U as ExtractSchema, V as ExtractSchemaField, W as ExtractSchemaValue, X as ExtractionFieldPlan, Y as ExtractionPlan, Z as MatchClause, _ as MatchOperator, $ as OpensteerAgentMode, a0 as OpensteerAgentModelConfig, a1 as OpensteerBrowserConfig, a2 as OpensteerCloudAnnouncePolicy, a3 as OpensteerCloudBrowserProfileOptions, a4 as OpensteerCloudConfig, a5 as OpensteerCloudOptions, a6 as OpensteerCursorColor, a7 as OpensteerCursorProfile, a8 as OpensteerLocalBrowserMode, a9 as OpensteerStorageConfig, aa as PathNode, ab as PathNodePosition, ac as PositionMatchClause } from './types-BWItZPl_.js';
5
+ import { A as ActionFailure, e as ActionFailureCode, C as CloudErrorCode, f as CloudActionFailureDetails, g as CloudSessionCreateRequest, h as CloudSessionCreateResponse, i as CloudSelectorCacheImportRequest, j as CloudSelectorCacheImportResponse, k as CloudActionMethod, l as CloudSelectorCacheImportEntry } from './browser-profile-client-OUHaODro.js';
6
+ export { m as ActionFailureBlocker, n as ActionFailureClassificationSource, o as ActionFailureDetails, p as BrowserProfileArchiveFormat, q as BrowserProfileClient, c as BrowserProfileCreateRequest, d as BrowserProfileDescriptor, a as BrowserProfileListRequest, b as BrowserProfileListResponse, r as BrowserProfileProxyPolicy, B as BrowserProfileStatus, s as CloudActionFailure, t as CloudActionRequest, u as CloudActionResponse, v as CloudActionSuccess, w as CloudBrowserProfileLaunchPreference, x as CloudFingerprintMode, y as CloudSessionContractVersion, z as CloudSessionLaunchConfig, D as CloudSessionSourceType, E as CloudSessionSummary, F as cloudSessionContractVersion } from './browser-profile-client-OUHaODro.js';
7
7
 
8
8
  interface RegistryEntry {
9
9
  file: string;
@@ -85,6 +85,8 @@ declare class Opensteer {
85
85
  private buildCloudSessionLaunchConfig;
86
86
  launch(options?: LaunchOptions): Promise<void>;
87
87
  static from(page: Page, config?: OpensteerConfig): Opensteer;
88
+ static listLocalProfiles(userDataDir?: string): OpensteerLocalProfileDescriptor[];
89
+ static fromSystemChrome(browser?: OpensteerRealBrowserOptions, config?: OpensteerConfig): Opensteer;
88
90
  close(): Promise<void>;
89
91
  private syncLocalSelectorCacheToCloud;
90
92
  goto(url: string, options?: GotoOptions): Promise<void>;
@@ -645,4 +647,4 @@ declare class SvgCursorRenderer implements CursorRenderer {
645
647
  private handleError;
646
648
  }
647
649
 
648
- export { type ActionExecutionResult, ActionFailure, ActionFailureCode, ActionResult, ActionWsClient, AiExtractCallback, type AiModelConfig, AiResolveCallback, type ArrayExtractedRow, type ArrayRowMetadata, type ArraySelector, BaseActionOptions, BoundingBox, CdpOverlayCursorRenderer, ClickOptions, CloudActionFailureDetails, CloudActionMethod, CloudCdpClient, type CloudCdpConnectArgs, type CloudCdpConnection, CloudErrorCode, CloudSelectorCacheImportEntry, CloudSelectorCacheImportRequest, CloudSelectorCacheImportResponse, CloudSessionClient, CloudSessionCreateRequest, CloudSessionCreateResponse, CookieParam, type CounterRequest, CounterResolutionError, type CounterResolutionErrorCode, type CursorCapabilityReason, CursorController, type CursorIntent, type CursorMotionPlan, type CursorPoint, type CursorRenderer, type CursorStatus, ElementPath, ElementPathError, type ElementPathErrorCode, ExtractFromPlanOptions, ExtractOptions, ExtractionRunResult, type FieldSelector, FileUploadOptions, GotoOptions, HoverOptions, InputOptions, LaunchOptions, LocalSelectorStorage, type MarkInteractivityOptions, OPENSTEER_HIDDEN_ATTR, OPENSTEER_INTERACTIVE_ATTR, OPENSTEER_SCROLLABLE_ATTR, OS_BOUNDARY_ATTR, OS_IFRAME_BOUNDARY_TAG, OS_NODE_ID_ATTR, OS_SHADOW_BOUNDARY_TAG, OS_UNAVAILABLE_ATTR, Opensteer, OpensteerActionError, OpensteerAgentAction, OpensteerAgentActionError, OpensteerAgentApiError, OpensteerAgentBusyError, OpensteerAgentConfig, OpensteerAgentConfigError, OpensteerAgentError, OpensteerAgentExecuteOptions, OpensteerAgentExecutionError, OpensteerAgentInstance, OpensteerAgentProvider, OpensteerAgentProviderError, OpensteerAgentResult, OpensteerAgentUsage, OpensteerAuthScheme, OpensteerCloudError, OpensteerConfig, OpensteerCuaAgentHandler, OpensteerCursorConfig, OpensteerCursorState, OpensteerCursorStyle, type PreparedSnapshot, type RegistryEntry, type ResolvedElementPath, ScreenshotOptions, ScrollOptions, SelectOptions, type SelectorFile, type SelectorRegistry, type SerializeOptions, type SerializedNodeMeta, type SerializedPageHTML, SnapshotMode, SnapshotOptions, StateResult, SvgCursorRenderer, TabInfo, buildArrayFieldPathCandidates, buildElementPathFromHandle, buildElementPathFromSelector, buildPathSelectorHint, cleanForAction, cleanForClickable, cleanForExtraction, cleanForFull, cleanForScrollable, clearCookies, cloneElementPath, closeTab, cloudNotLaunchedError, cloudUnsupportedMethodError, collectLocalSelectorCacheEntries, countArrayItemsWithPath, createCuaClient, createEmptyRegistry, createExtractCallback, createResolveCallback, createTab, exportCookies, extractArrayRowsWithPaths, extractArrayWithPaths, extractWithPaths, getCookies, getElementAttributes, getElementBoundingBox, getElementText, getElementValue, getModelProvider, getPageHtml, getPageTitle, importCookies, listTabs, markInteractiveElements, normalizeNamespace, performClick, performFileUpload, performHover, performInput, performScroll, performSelect, planSnappyCursorMotion, prepareSnapshot, pressKey, queryAllByElementPath, resolveAgentConfig, resolveCounterElement, resolveCountersBatch, resolveElementPath, resolveNamespaceDir, sanitizeElementPath, serializePageHTML, setCookie, switchTab, typeText, waitForVisualStability };
650
+ export { type ActionExecutionResult, ActionFailure, ActionFailureCode, ActionResult, ActionWsClient, AiExtractCallback, type AiModelConfig, AiResolveCallback, type ArrayExtractedRow, type ArrayRowMetadata, type ArraySelector, BaseActionOptions, BoundingBox, CdpOverlayCursorRenderer, ClickOptions, CloudActionFailureDetails, CloudActionMethod, CloudCdpClient, type CloudCdpConnectArgs, type CloudCdpConnection, CloudErrorCode, CloudSelectorCacheImportEntry, CloudSelectorCacheImportRequest, CloudSelectorCacheImportResponse, CloudSessionClient, CloudSessionCreateRequest, CloudSessionCreateResponse, CookieParam, type CounterRequest, CounterResolutionError, type CounterResolutionErrorCode, type CursorCapabilityReason, CursorController, type CursorIntent, type CursorMotionPlan, type CursorPoint, type CursorRenderer, type CursorStatus, ElementPath, ElementPathError, type ElementPathErrorCode, ExtractFromPlanOptions, ExtractOptions, ExtractionRunResult, type FieldSelector, FileUploadOptions, GotoOptions, HoverOptions, InputOptions, LaunchOptions, LocalSelectorStorage, type MarkInteractivityOptions, OPENSTEER_HIDDEN_ATTR, OPENSTEER_INTERACTIVE_ATTR, OPENSTEER_SCROLLABLE_ATTR, OS_BOUNDARY_ATTR, OS_IFRAME_BOUNDARY_TAG, OS_NODE_ID_ATTR, OS_SHADOW_BOUNDARY_TAG, OS_UNAVAILABLE_ATTR, Opensteer, OpensteerActionError, OpensteerAgentAction, OpensteerAgentActionError, OpensteerAgentApiError, OpensteerAgentBusyError, OpensteerAgentConfig, OpensteerAgentConfigError, OpensteerAgentError, OpensteerAgentExecuteOptions, OpensteerAgentExecutionError, OpensteerAgentInstance, OpensteerAgentProvider, OpensteerAgentProviderError, OpensteerAgentResult, OpensteerAgentUsage, OpensteerAuthScheme, OpensteerCloudError, OpensteerConfig, OpensteerCuaAgentHandler, OpensteerCursorConfig, OpensteerCursorState, OpensteerCursorStyle, OpensteerLocalProfileDescriptor, OpensteerRealBrowserOptions, type PreparedSnapshot, type RegistryEntry, type ResolvedElementPath, ScreenshotOptions, ScrollOptions, SelectOptions, type SelectorFile, type SelectorRegistry, type SerializeOptions, type SerializedNodeMeta, type SerializedPageHTML, SnapshotMode, SnapshotOptions, StateResult, SvgCursorRenderer, TabInfo, buildArrayFieldPathCandidates, buildElementPathFromHandle, buildElementPathFromSelector, buildPathSelectorHint, cleanForAction, cleanForClickable, cleanForExtraction, cleanForFull, cleanForScrollable, clearCookies, cloneElementPath, closeTab, cloudNotLaunchedError, cloudUnsupportedMethodError, collectLocalSelectorCacheEntries, countArrayItemsWithPath, createCuaClient, createEmptyRegistry, createExtractCallback, createResolveCallback, createTab, exportCookies, extractArrayRowsWithPaths, extractArrayWithPaths, extractWithPaths, getCookies, getElementAttributes, getElementBoundingBox, getElementText, getElementValue, getModelProvider, getPageHtml, getPageTitle, importCookies, listTabs, markInteractiveElements, normalizeNamespace, performClick, performFileUpload, performHover, performInput, performScroll, performSelect, planSnappyCursorMotion, prepareSnapshot, pressKey, queryAllByElementPath, resolveAgentConfig, resolveCounterElement, resolveCountersBatch, resolveElementPath, resolveNamespaceDir, sanitizeElementPath, serializePageHTML, setCookie, switchTab, typeText, waitForVisualStability };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BrowserProfileClient
3
- } from "./chunk-WJI7TGBQ.js";
3
+ } from "./chunk-6B6LOYU3.js";
4
4
  import {
5
5
  ActionWsClient,
6
6
  CounterResolutionError,
@@ -78,7 +78,7 @@ import {
78
78
  switchTab,
79
79
  typeText,
80
80
  waitForVisualStability
81
- } from "./chunk-F2VDVOJO.js";
81
+ } from "./chunk-G6V2DJRN.js";
82
82
  import {
83
83
  CloudCdpClient,
84
84
  CloudSessionClient,
@@ -87,7 +87,8 @@ import {
87
87
  cloudUnsupportedMethodError,
88
88
  normalizeNamespace,
89
89
  resolveNamespaceDir
90
- } from "./chunk-WDRMHPWL.js";
90
+ } from "./chunk-KPPOTU3D.js";
91
+ import "./chunk-K5CL76MG.js";
91
92
  import {
92
93
  createResolveCallback
93
94
  } from "./chunk-DN3GI5CH.js";
@@ -72,17 +72,33 @@ interface GotoOptions {
72
72
  waitUntil?: 'commit' | 'domcontentloaded' | 'load' | 'networkidle';
73
73
  settleMs?: number;
74
74
  }
75
+ type OpensteerLocalBrowserMode = 'chromium' | 'real';
76
+ interface OpensteerLocalProfileDescriptor {
77
+ directory: string;
78
+ name: string;
79
+ }
80
+ interface OpensteerRealBrowserOptions {
81
+ headless?: boolean;
82
+ executablePath?: string;
83
+ userDataDir?: string;
84
+ profileDirectory?: string;
85
+ }
75
86
  interface LaunchOptions {
76
87
  headless?: boolean;
77
88
  executablePath?: string;
78
89
  slowMo?: number;
90
+ /** Sandbox-only context options. Not supported with cdpUrl or mode "real". */
79
91
  context?: BrowserContextOptions;
80
- /** Connect to a running browser. Example: "http://localhost:9222" */
81
- connectUrl?: string;
82
- /** Browser channel: "chrome", "chrome-beta", or "msedge" */
83
- channel?: string;
84
- /** Browser profile directory or Chromium user-data dir. Preserves cookies, extensions, and sessions. */
85
- profileDir?: string;
92
+ /** Initial URL to open as part of owned real-browser startup. */
93
+ initialUrl?: string;
94
+ /** Local browser mode. Defaults to "chromium". */
95
+ mode?: OpensteerLocalBrowserMode;
96
+ /** Connect to a running CDP-enabled browser. Example: "http://localhost:9222" */
97
+ cdpUrl?: string;
98
+ /** Browser user-data root directory for real-browser mode. */
99
+ userDataDir?: string;
100
+ /** Browser profile directory name for real-browser mode. */
101
+ profileDirectory?: string;
86
102
  /** Cloud browser profile preference. Applies only when cloud mode is enabled. */
87
103
  cloudBrowserProfile?: OpensteerCloudBrowserProfileOptions;
88
104
  /** Connection timeout in milliseconds. */
@@ -92,12 +108,14 @@ interface OpensteerBrowserConfig {
92
108
  headless?: boolean;
93
109
  executablePath?: string;
94
110
  slowMo?: number;
95
- /** Connect to a running browser. Example: "http://localhost:9222" */
96
- connectUrl?: string;
97
- /** Browser channel: "chrome", "chrome-beta", or "msedge" */
98
- channel?: string;
99
- /** Browser profile directory or Chromium user-data dir. Preserves cookies, extensions, and sessions. */
100
- profileDir?: string;
111
+ /** Local browser mode. Defaults to "chromium". */
112
+ mode?: OpensteerLocalBrowserMode;
113
+ /** Connect to a running CDP-enabled browser. Example: "http://localhost:9222" */
114
+ cdpUrl?: string;
115
+ /** Browser user-data root directory for real-browser mode. */
116
+ userDataDir?: string;
117
+ /** Browser profile directory name for real-browser mode. */
118
+ profileDirectory?: string;
101
119
  }
102
120
  interface OpensteerStorageConfig {
103
121
  rootDir?: string;
@@ -324,4 +342,4 @@ interface OpensteerAgentInstance {
324
342
  execute(instructionOrOptions: string | OpensteerAgentExecuteOptions): Promise<OpensteerAgentResult>;
325
343
  }
326
344
 
327
- export type { OpensteerBrowserConfig as $, ActionResult as A, BaseActionOptions as B, CookieParam as C, AiResolveArgs as D, ExtractOptions as E, FileUploadOptions as F, GotoOptions as G, HoverOptions as H, InputOptions as I, AiResolveCallbackResult as J, AiResolveResult as K, LaunchOptions as L, AttributeMatchClause as M, ContextHop as N, OpensteerAuthScheme as O, DomPath as P, ExtractSchema as Q, ExtractSchemaField as R, SnapshotOptions as S, TabInfo as T, ExtractSchemaValue as U, ExtractionFieldPlan as V, ExtractionPlan as W, MatchClause as X, MatchOperator as Y, OpensteerAgentMode as Z, OpensteerAgentModelConfig as _, OpensteerConfig as a, OpensteerCloudAnnouncePolicy as a0, OpensteerCloudBrowserProfileOptions as a1, OpensteerCloudConfig as a2, OpensteerCloudOptions as a3, OpensteerCursorColor as a4, OpensteerCursorProfile as a5, OpensteerStorageConfig as a6, PathNode as a7, PathNodePosition as a8, PositionMatchClause as a9, StateResult as b, ScreenshotOptions as c, ClickOptions as d, SelectOptions as e, ScrollOptions as f, BoundingBox as g, ExtractFromPlanOptions as h, ExtractionRunResult as i, OpensteerCursorState as j, OpensteerAgentConfig as k, OpensteerAgentInstance as l, ElementPath as m, SnapshotMode as n, AiResolveCallback as o, AiExtractCallback as p, OpensteerAgentProvider as q, OpensteerAgentAction as r, OpensteerAgentResult as s, OpensteerAgentUsage as t, OpensteerCursorStyle as u, OpensteerCursorConfig as v, OpensteerAgentExecuteOptions as w, ActionWaitOptions as x, AiExtractArgs as y, AiExtractResult as z };
345
+ export type { OpensteerAgentMode as $, ActionResult as A, BaseActionOptions as B, CookieParam as C, AiExtractArgs as D, ExtractOptions as E, FileUploadOptions as F, GotoOptions as G, HoverOptions as H, InputOptions as I, AiExtractResult as J, AiResolveArgs as K, LaunchOptions as L, AiResolveCallbackResult as M, AiResolveResult as N, OpensteerAuthScheme as O, AttributeMatchClause as P, ContextHop as Q, DomPath as R, SnapshotOptions as S, TabInfo as T, ExtractSchema as U, ExtractSchemaField as V, ExtractSchemaValue as W, ExtractionFieldPlan as X, ExtractionPlan as Y, MatchClause as Z, MatchOperator as _, OpensteerConfig as a, OpensteerAgentModelConfig as a0, OpensteerBrowserConfig as a1, OpensteerCloudAnnouncePolicy as a2, OpensteerCloudBrowserProfileOptions as a3, OpensteerCloudConfig as a4, OpensteerCloudOptions as a5, OpensteerCursorColor as a6, OpensteerCursorProfile as a7, OpensteerLocalBrowserMode as a8, OpensteerStorageConfig as a9, PathNode as aa, PathNodePosition as ab, PositionMatchClause as ac, OpensteerLocalProfileDescriptor as b, OpensteerRealBrowserOptions as c, StateResult as d, ScreenshotOptions as e, ClickOptions as f, SelectOptions as g, ScrollOptions as h, BoundingBox as i, ExtractFromPlanOptions as j, ExtractionRunResult as k, OpensteerCursorState as l, OpensteerAgentConfig as m, OpensteerAgentInstance as n, ElementPath as o, SnapshotMode as p, AiResolveCallback as q, AiExtractCallback as r, OpensteerAgentProvider as s, OpensteerAgentAction as t, OpensteerAgentResult as u, OpensteerAgentUsage as v, OpensteerCursorStyle as w, OpensteerCursorConfig as x, OpensteerAgentExecuteOptions as y, ActionWaitOptions as z };
@@ -72,17 +72,33 @@ interface GotoOptions {
72
72
  waitUntil?: 'commit' | 'domcontentloaded' | 'load' | 'networkidle';
73
73
  settleMs?: number;
74
74
  }
75
+ type OpensteerLocalBrowserMode = 'chromium' | 'real';
76
+ interface OpensteerLocalProfileDescriptor {
77
+ directory: string;
78
+ name: string;
79
+ }
80
+ interface OpensteerRealBrowserOptions {
81
+ headless?: boolean;
82
+ executablePath?: string;
83
+ userDataDir?: string;
84
+ profileDirectory?: string;
85
+ }
75
86
  interface LaunchOptions {
76
87
  headless?: boolean;
77
88
  executablePath?: string;
78
89
  slowMo?: number;
90
+ /** Sandbox-only context options. Not supported with cdpUrl or mode "real". */
79
91
  context?: BrowserContextOptions;
80
- /** Connect to a running browser. Example: "http://localhost:9222" */
81
- connectUrl?: string;
82
- /** Browser channel: "chrome", "chrome-beta", or "msedge" */
83
- channel?: string;
84
- /** Browser profile directory or Chromium user-data dir. Preserves cookies, extensions, and sessions. */
85
- profileDir?: string;
92
+ /** Initial URL to open as part of owned real-browser startup. */
93
+ initialUrl?: string;
94
+ /** Local browser mode. Defaults to "chromium". */
95
+ mode?: OpensteerLocalBrowserMode;
96
+ /** Connect to a running CDP-enabled browser. Example: "http://localhost:9222" */
97
+ cdpUrl?: string;
98
+ /** Browser user-data root directory for real-browser mode. */
99
+ userDataDir?: string;
100
+ /** Browser profile directory name for real-browser mode. */
101
+ profileDirectory?: string;
86
102
  /** Cloud browser profile preference. Applies only when cloud mode is enabled. */
87
103
  cloudBrowserProfile?: OpensteerCloudBrowserProfileOptions;
88
104
  /** Connection timeout in milliseconds. */
@@ -92,12 +108,14 @@ interface OpensteerBrowserConfig {
92
108
  headless?: boolean;
93
109
  executablePath?: string;
94
110
  slowMo?: number;
95
- /** Connect to a running browser. Example: "http://localhost:9222" */
96
- connectUrl?: string;
97
- /** Browser channel: "chrome", "chrome-beta", or "msedge" */
98
- channel?: string;
99
- /** Browser profile directory or Chromium user-data dir. Preserves cookies, extensions, and sessions. */
100
- profileDir?: string;
111
+ /** Local browser mode. Defaults to "chromium". */
112
+ mode?: OpensteerLocalBrowserMode;
113
+ /** Connect to a running CDP-enabled browser. Example: "http://localhost:9222" */
114
+ cdpUrl?: string;
115
+ /** Browser user-data root directory for real-browser mode. */
116
+ userDataDir?: string;
117
+ /** Browser profile directory name for real-browser mode. */
118
+ profileDirectory?: string;
101
119
  }
102
120
  interface OpensteerStorageConfig {
103
121
  rootDir?: string;
@@ -324,4 +342,4 @@ interface OpensteerAgentInstance {
324
342
  execute(instructionOrOptions: string | OpensteerAgentExecuteOptions): Promise<OpensteerAgentResult>;
325
343
  }
326
344
 
327
- export type { OpensteerBrowserConfig as $, ActionResult as A, BaseActionOptions as B, CookieParam as C, AiResolveArgs as D, ExtractOptions as E, FileUploadOptions as F, GotoOptions as G, HoverOptions as H, InputOptions as I, AiResolveCallbackResult as J, AiResolveResult as K, LaunchOptions as L, AttributeMatchClause as M, ContextHop as N, OpensteerAuthScheme as O, DomPath as P, ExtractSchema as Q, ExtractSchemaField as R, SnapshotOptions as S, TabInfo as T, ExtractSchemaValue as U, ExtractionFieldPlan as V, ExtractionPlan as W, MatchClause as X, MatchOperator as Y, OpensteerAgentMode as Z, OpensteerAgentModelConfig as _, OpensteerConfig as a, OpensteerCloudAnnouncePolicy as a0, OpensteerCloudBrowserProfileOptions as a1, OpensteerCloudConfig as a2, OpensteerCloudOptions as a3, OpensteerCursorColor as a4, OpensteerCursorProfile as a5, OpensteerStorageConfig as a6, PathNode as a7, PathNodePosition as a8, PositionMatchClause as a9, StateResult as b, ScreenshotOptions as c, ClickOptions as d, SelectOptions as e, ScrollOptions as f, BoundingBox as g, ExtractFromPlanOptions as h, ExtractionRunResult as i, OpensteerCursorState as j, OpensteerAgentConfig as k, OpensteerAgentInstance as l, ElementPath as m, SnapshotMode as n, AiResolveCallback as o, AiExtractCallback as p, OpensteerAgentProvider as q, OpensteerAgentAction as r, OpensteerAgentResult as s, OpensteerAgentUsage as t, OpensteerCursorStyle as u, OpensteerCursorConfig as v, OpensteerAgentExecuteOptions as w, ActionWaitOptions as x, AiExtractArgs as y, AiExtractResult as z };
345
+ export type { OpensteerAgentMode as $, ActionResult as A, BaseActionOptions as B, CookieParam as C, AiExtractArgs as D, ExtractOptions as E, FileUploadOptions as F, GotoOptions as G, HoverOptions as H, InputOptions as I, AiExtractResult as J, AiResolveArgs as K, LaunchOptions as L, AiResolveCallbackResult as M, AiResolveResult as N, OpensteerAuthScheme as O, AttributeMatchClause as P, ContextHop as Q, DomPath as R, SnapshotOptions as S, TabInfo as T, ExtractSchema as U, ExtractSchemaField as V, ExtractSchemaValue as W, ExtractionFieldPlan as X, ExtractionPlan as Y, MatchClause as Z, MatchOperator as _, OpensteerConfig as a, OpensteerAgentModelConfig as a0, OpensteerBrowserConfig as a1, OpensteerCloudAnnouncePolicy as a2, OpensteerCloudBrowserProfileOptions as a3, OpensteerCloudConfig as a4, OpensteerCloudOptions as a5, OpensteerCursorColor as a6, OpensteerCursorProfile as a7, OpensteerLocalBrowserMode as a8, OpensteerStorageConfig as a9, PathNode as aa, PathNodePosition as ab, PositionMatchClause as ac, OpensteerLocalProfileDescriptor as b, OpensteerRealBrowserOptions as c, StateResult as d, ScreenshotOptions as e, ClickOptions as f, SelectOptions as g, ScrollOptions as h, BoundingBox as i, ExtractFromPlanOptions as j, ExtractionRunResult as k, OpensteerCursorState as l, OpensteerAgentConfig as m, OpensteerAgentInstance as n, ElementPath as o, SnapshotMode as p, AiResolveCallback as q, AiExtractCallback as r, OpensteerAgentProvider as s, OpensteerAgentAction as t, OpensteerAgentResult as u, OpensteerAgentUsage as v, OpensteerCursorStyle as w, OpensteerCursorConfig as x, OpensteerAgentExecuteOptions as y, ActionWaitOptions as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensteer",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "Open-source browser automation SDK and CLI that lets AI agents build complex scrapers directly in your codebase.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -71,7 +71,7 @@
71
71
  "url": "https://github.com/steerlabs/opensteer/issues"
72
72
  },
73
73
  "scripts": {
74
- "build": "tsup src/index.ts src/cli/server.ts src/cli/skills-installer.ts src/cli/profile.ts src/cli/auth.ts --dts --format esm,cjs --clean --external ai --external zod --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/google --external @ai-sdk/xai --external @ai-sdk/groq --external openai --external @anthropic-ai/sdk --external @google/genai",
74
+ "build": "tsup src/index.ts src/cli/server.ts src/cli/skills-installer.ts src/cli/profile.ts src/cli/auth.ts src/cli/local-profile.ts --dts --format esm,cjs --clean --external ai --external zod --external @ai-sdk/openai --external @ai-sdk/anthropic --external @ai-sdk/google --external @ai-sdk/xai --external @ai-sdk/groq --external openai --external @anthropic-ai/sdk --external @google/genai",
75
75
  "test": "vitest run",
76
76
  "test:live-web": "vitest run --config vitest.live-web.config.ts",
77
77
  "test:unit": "vitest run tests/html tests/element-path tests/config.test.ts tests/storage",
@@ -8,7 +8,7 @@ description: "Browser automation, web scraping, and structured data extraction u
8
8
  **Exploring interactively?** Follow Phase 1.
9
9
  **Writing a scraper script?** Follow Phase 2.
10
10
 
11
- > Never use raw Playwright methods when an Opensteer equivalent exists. Never call `opensteer.navigate()` the correct method is `opensteer.goto()`.
11
+ > **SDK Rule**: Every browser action in a script MUST use an `opensteer.*` method. The SDK covers navigation, clicks, hover, input, select, scroll, extraction, text retrieval, HTML retrieval, screenshots, and waits. The correct navigation method is `opensteer.goto()` (not `navigate`).
12
12
 
13
13
  ---
14
14
 
@@ -77,6 +77,8 @@ Repeat Step 3 → Step 4 for every distinct page type the scraper will visit.
77
77
  opensteer close
78
78
  ```
79
79
 
80
+ > **SDK Rule**: Every browser action in a script MUST use an `opensteer.*` method.
81
+
80
82
  ---
81
83
 
82
84
  ## Phase 2 — SDK Scraper Script
@@ -112,6 +114,13 @@ async function run() {
112
114
  run().catch((err) => { console.error(err); process.exit(1); });
113
115
  ```
114
116
 
117
+ > **SDK Rule**: Every browser action in a script MUST use an `opensteer.*` method.
118
+
119
+ **Before writing a script, verify:**
120
+ 1. Every interaction uses `opensteer.click()`, `opensteer.input()`, `opensteer.hover()`, `opensteer.extract()` — not `page.*` equivalents
121
+ 2. Every extraction uses `opensteer.extract({ description: "..." })` — not `page.evaluate()` for DOM data
122
+ 3. Waits use `opensteer.waitForText()` — not `page.waitForSelector()` (unless no stable text exists)
123
+
115
124
  **Critical method signatures:**
116
125
 
117
126
  ```typescript
@@ -146,8 +155,7 @@ await opensteer.extract({
146
155
  },
147
156
  }); // first extraction run: agent defines the full object from the snapshot
148
157
 
149
- await opensteer.waitForText("literal text");
150
- await opensteer.page.waitForSelector("css-selector"); // SPA content guard
158
+ await opensteer.waitForText("literal text"); // page-transition wait
151
159
 
152
160
  // Do NOT add waits before opensteer actions — they handle waiting internally.
153
161
  ```
@@ -164,16 +172,6 @@ opensteer open --connect-url http://localhost:9222 --name "my-scraper"
164
172
  # Verify CDP is running: curl -s http://127.0.0.1:9222/json/version
165
173
  ```
166
174
 
167
- **API-based extraction (site has internal REST/GraphQL endpoints):**
168
- Navigate first to acquire session cookies, then call `fetch()` inside `page.evaluate()`. This is the only valid use of `page.evaluate()`.
169
- ```typescript
170
- await opensteer.goto("https://example.com");
171
- const data = await opensteer.page.evaluate(async () => {
172
- const res = await fetch("https://api.example.com/items?limit=100");
173
- return res.json();
174
- });
175
- ```
176
-
177
175
  **Tab management:**
178
176
  ```bash
179
177
  opensteer tabs
@@ -183,8 +181,30 @@ opensteer tab-close 1
183
181
  ```
184
182
 
185
183
  **Debugging failures (diagnose in this order):**
186
- 1. SPA content not loaded — add `waitForText` or `page.waitForSelector` before extraction.
184
+ 1. SPA content not loaded — add `opensteer.waitForText()` before extraction.
187
185
  2. Missing cache — re-run Phase 1 caching step for the page type that failed.
188
186
  3. Obstacle blocking target — cookie banner, modal, or login wall. Dismiss it first.
189
187
 
188
+ ### Advanced: Direct Page Access (rare)
189
+
190
+ Use `opensteer.page` ONLY for these two patterns. There are no other valid uses.
191
+
192
+ **SPA selector guard** — when `waitForText` cannot work (no stable visible text):
193
+ ```typescript
194
+ await opensteer.page.waitForSelector("css-selector");
195
+ ```
196
+
197
+ **Internal API call** — site has REST/GraphQL endpoints and you need session cookies:
198
+ ```typescript
199
+ await opensteer.goto("https://example.com");
200
+ const data = await opensteer.page.evaluate(async () => {
201
+ const res = await fetch("https://api.example.com/items?limit=100");
202
+ return res.json();
203
+ });
204
+ ```
205
+
206
+ These two patterns are the complete list.
207
+
208
+ > **SDK Rule**: Every browser action in a script MUST use an `opensteer.*` method.
209
+
190
210
  **Full references:** [cli-reference.md](references/cli-reference.md) | [sdk-reference.md](references/sdk-reference.md)
@@ -28,7 +28,7 @@ opensteer sessions # List active sessions
28
28
  opensteer status # Show resolved session/name state
29
29
  ```
30
30
 
31
- `open` does raw `page.goto()` (no stability wait). `navigate` includes `waitForVisualStability`. Use `open` once to start, then `navigate` for subsequent pages.
31
+ `open` performs a basic navigation (no stability wait). `navigate` includes `waitForVisualStability`. Use `open` once to start, then `navigate` for subsequent pages.
32
32
 
33
33
  ## Observation
34
34
 
@@ -59,7 +59,7 @@ async function run() {
59
59
  // Visit each detail page and extract using cached description
60
60
  for (const job of listings.jobs) {
61
61
  await opensteer.goto(job.url);
62
- await opensteer.page.waitForSelector("h1");
62
+ await opensteer.waitForText(job.title || "Job details");
63
63
 
64
64
  const detail = await opensteer.extract({
65
65
  description: "job detail page",
@@ -77,9 +77,9 @@ run().catch((err) => {
77
77
  });
78
78
  ```
79
79
 
80
- ## API-Based Extraction
80
+ ## Advanced: API-Based Extraction (uses direct page access)
81
81
 
82
- When a site has internal APIs (REST, GraphQL, Algolia), navigate first for cookies, then use `fetch()` inside `page.evaluate()`. This is the only valid use of `page.evaluate()` for data.
82
+ > This is a rare pattern. Only use it when the site has internal REST/GraphQL endpoints and DOM extraction via `opensteer.extract()` is insufficient.
83
83
 
84
84
  ```typescript
85
85
  import { Opensteer } from "opensteer";
@@ -114,3 +114,5 @@ run().catch((err) => {
114
114
  process.exit(1);
115
115
  });
116
116
  ```
117
+
118
+ > **SDK Rule**: For all other data extraction, use `opensteer.extract()`.
@@ -12,15 +12,15 @@ const opensteer = new Opensteer({
12
12
  await opensteer.launch({ headless: false });
13
13
  await opensteer.close();
14
14
 
15
- // Or wrap an existing Playwright page:
15
+ // Wrap an existing page instance:
16
16
  const opensteer = Opensteer.from(existingPage, { name: "my-scraper" });
17
17
  ```
18
18
 
19
19
  ## Properties
20
20
 
21
21
  ```typescript
22
- opensteer.page; // Raw Playwright Page only for page.evaluate(fetch), page.waitForSelector, page.waitForTimeout
23
- opensteer.context; // Raw Playwright BrowserContext
22
+ opensteer.page; // Low-level page handle (see "Advanced: Direct Page Access" in SKILL.md)
23
+ opensteer.context; // Low-level browser context handle
24
24
  ```
25
25
 
26
26
  ## Navigation
@@ -113,8 +113,7 @@ const title = await opensteer.getTitle();
113
113
  ```typescript
114
114
  await opensteer.waitForText("Success"); // Literal text on page
115
115
  await opensteer.waitForText("Success", { timeout: 5000 });
116
- await opensteer.page.waitForSelector("article"); // CSS selector
117
- await opensteer.page.waitForSelector(".loading", { state: "hidden" });
116
+ // For CSS selector waits, see "Advanced: Direct Page Access" in SKILL.md
118
117
  ```
119
118
 
120
119
  ## Tabs
@@ -142,13 +141,16 @@ await opensteer.importCookies("/tmp/cookies.json");
142
141
  await opensteer.uploadFile({ element: 5, paths: ["/path/to/file.pdf"] });
143
142
  ```
144
143
 
145
- ## Methods That DO NOT Exist
144
+ ## Common Mistakes
146
145
 
147
- | Wrong (throws) | Correct |
148
- | -------------------------------- | -------------------------------------- |
149
- | `opensteer.evaluate(...)` | `opensteer.page.evaluate(...)` |
150
- | `opensteer.waitForSelector(...)` | `opensteer.page.waitForSelector(...)` |
151
- | `opensteer.waitForLoad(...)` | `opensteer.page.waitForLoadState(...)` |
152
- | `opensteer.navigate(...)` | `opensteer.goto(...)` |
153
- | `opensteer.browser_launch(...)` | `opensteer.launch(...)` |
154
- | `opensteer.browser_close(...)` | `opensteer.close(...)` |
146
+ | If you want to... | Use this |
147
+ | ------------------------ | --------------------------------- |
148
+ | Navigate to a URL | `opensteer.goto(url)` |
149
+ | Launch the browser | `opensteer.launch()` |
150
+ | Close the browser | `opensteer.close()` |
151
+ | Get page text content | `opensteer.getElementText()` |
152
+ | Get page HTML | `opensteer.getHtml()` |
153
+ | Extract structured data | `opensteer.extract()` |
154
+ | Wait for content | `opensteer.waitForText()` |
155
+
156
+ > **SDK Rule**: Every browser action in a script MUST use an `opensteer.*` method.