opensteer 0.9.7 → 0.9.8

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 (34) hide show
  1. package/README.md +2 -2
  2. package/dist/{chunk-R33BXCMQ.js → chunk-BPGXP3RF.js} +245 -21
  3. package/dist/chunk-BPGXP3RF.js.map +1 -0
  4. package/dist/{chunk-PJXN7HED.js → chunk-EXXRLPLI.js} +46 -35
  5. package/dist/chunk-EXXRLPLI.js.map +1 -0
  6. package/dist/{chunk-U4BUCIZ4.js → chunk-GKYBP3KD.js} +4 -4
  7. package/dist/chunk-GKYBP3KD.js.map +1 -0
  8. package/dist/{chunk-3OHKIPBD.js → chunk-LFWP5RXF.js} +189 -53
  9. package/dist/chunk-LFWP5RXF.js.map +1 -0
  10. package/dist/{chunk-52UNH5UW.js → chunk-SOJEWKSW.js} +5 -5
  11. package/dist/{chunk-52UNH5UW.js.map → chunk-SOJEWKSW.js.map} +1 -1
  12. package/dist/cli/bin.cjs +570 -119
  13. package/dist/cli/bin.cjs.map +1 -1
  14. package/dist/cli/bin.js +106 -28
  15. package/dist/cli/bin.js.map +1 -1
  16. package/dist/index.cjs +211 -72
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +10 -1
  19. package/dist/index.d.ts +10 -1
  20. package/dist/index.js +4 -4
  21. package/dist/local-view/serve-entry.cjs +288 -50
  22. package/dist/local-view/serve-entry.cjs.map +1 -1
  23. package/dist/local-view/serve-entry.js +2 -2
  24. package/dist/opensteer-XLPY343Y.js +6 -0
  25. package/dist/{opensteer-CY2QUJEG.js.map → opensteer-XLPY343Y.js.map} +1 -1
  26. package/dist/{session-control-FIP6ZJLH.js → session-control-FVKKD45R.js} +4 -4
  27. package/dist/{session-control-FIP6ZJLH.js.map → session-control-FVKKD45R.js.map} +1 -1
  28. package/package.json +7 -7
  29. package/skills/recorder/SKILL.md +2 -2
  30. package/dist/chunk-3OHKIPBD.js.map +0 -1
  31. package/dist/chunk-PJXN7HED.js.map +0 -1
  32. package/dist/chunk-R33BXCMQ.js.map +0 -1
  33. package/dist/chunk-U4BUCIZ4.js.map +0 -1
  34. package/dist/opensteer-CY2QUJEG.js +0 -6
@@ -1,6 +1,6 @@
1
- import { resolveOpensteerEnvironment, resolveOpensteerRuntimeConfig, createOpensteerSemanticRuntime, isBrowserCoreError } from './chunk-3OHKIPBD.js';
2
- import { OpensteerBrowserManager, isOpensteerProtocolError, OpensteerProtocolError, toOpensteerError, createOpensteerError } from './chunk-PJXN7HED.js';
3
- import { OpensteerAttachAmbiguousError } from './chunk-U4BUCIZ4.js';
1
+ import { resolveOpensteerEnvironment, resolveOpensteerRuntimeConfig, createOpensteerSemanticRuntime, isBrowserCoreError } from './chunk-LFWP5RXF.js';
2
+ import { OpensteerBrowserManager, isOpensteerProtocolError, OpensteerProtocolError, toOpensteerError, createOpensteerError } from './chunk-EXXRLPLI.js';
3
+ import { OpensteerAttachAmbiguousError } from './chunk-GKYBP3KD.js';
4
4
 
5
5
  // src/internal/errors.ts
6
6
  function normalizeThrownOpensteerError(error, fallbackMessage) {
@@ -454,5 +454,5 @@ function delay(ms) {
454
454
  }
455
455
 
456
456
  export { Opensteer };
457
- //# sourceMappingURL=chunk-52UNH5UW.js.map
458
- //# sourceMappingURL=chunk-52UNH5UW.js.map
457
+ //# sourceMappingURL=chunk-SOJEWKSW.js.map
458
+ //# sourceMappingURL=chunk-SOJEWKSW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/internal/errors.ts","../src/sdk/opensteer.ts"],"names":["options"],"mappings":"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","file":"chunk-52UNH5UW.js","sourcesContent":["import { isBrowserCoreError } from \"@opensteer/browser-core\";\nimport {\n createOpensteerError,\n isOpensteerProtocolError,\n toOpensteerError,\n type OpensteerError,\n} from \"@opensteer/protocol\";\nimport { OpensteerAttachAmbiguousError } from \"../local-browser/cdp-discovery.js\";\n\nexport function normalizeThrownOpensteerError(\n error: unknown,\n fallbackMessage: string,\n): OpensteerError {\n if (isOpensteerProtocolError(error)) {\n return toOpensteerError(error);\n }\n\n if (isBrowserCoreError(error)) {\n return createOpensteerError(error.code, error.message, {\n retriable: error.retriable,\n ...(error.details === undefined ? {} : { details: error.details }),\n });\n }\n\n if (error instanceof OpensteerAttachAmbiguousError) {\n return createOpensteerError(\"conflict\", error.message, {\n details: {\n candidates: error.candidates,\n code: error.code,\n name: error.name,\n },\n });\n }\n\n if (\n error instanceof Error &&\n \"opensteerError\" in error &&\n typeof (error as { opensteerError: unknown }).opensteerError === \"object\" &&\n (error as { opensteerError: unknown }).opensteerError !== null\n ) {\n const oe = (error as { opensteerError: OpensteerError }).opensteerError;\n return createOpensteerError(oe.code, oe.message, {\n retriable: oe.retriable,\n ...(oe.capability === undefined ? {} : { capability: oe.capability }),\n ...(oe.details === undefined ? {} : { details: oe.details }),\n });\n }\n\n if (error instanceof Error) {\n return createOpensteerError(\"operation-failed\", error.message, {\n details: {\n name: error.name,\n },\n });\n }\n\n return createOpensteerError(\"internal\", fallbackMessage, {\n details: {\n value: error,\n },\n });\n}\n","import {\n OpensteerProtocolError,\n isOpensteerProtocolError,\n type CookieRecord,\n type OpensteerCookieQueryOutput,\n type OpensteerActionResult,\n type OpensteerAddInitScriptInput,\n type OpensteerAddInitScriptOutput,\n type OpensteerComputerExecuteInput,\n type OpensteerComputerExecuteOutput,\n type OpensteerComputerKeyModifier,\n type OpensteerComputerMouseButton,\n type OpensteerNetworkDetailOutput,\n type OpensteerNetworkQueryInput,\n type OpensteerNetworkQueryOutput,\n type OpensteerOpenInput,\n type OpensteerOpenOutput,\n type OpensteerPageActivateInput,\n type OpensteerPageActivateOutput,\n type OpensteerPageCloseInput,\n type OpensteerPageCloseOutput,\n type OpensteerPageEvaluateInput,\n type OpensteerPageEvaluateOutput,\n type OpensteerPageGotoInput,\n type OpensteerPageGotoOutput,\n type OpensteerPageListInput,\n type OpensteerPageListOutput,\n type OpensteerPageNewInput,\n type OpensteerPageNewOutput,\n type OpensteerRequestBodyInput,\n type OpensteerRequestResponseResult,\n type OpensteerSessionCloseOutput,\n type OpensteerSessionFetchInput,\n type OpensteerSessionInfo,\n type OpensteerStateQueryOutput,\n type OpensteerStorageArea,\n type OpensteerStorageDomainSnapshot,\n type OpensteerTargetInput,\n} from \"@opensteer/protocol\";\n\nimport {\n OpensteerBrowserManager,\n type OpensteerBrowserStatus,\n type WorkspaceBrowserManifest,\n} from \"../browser-manager.js\";\nimport { resolveOpensteerEnvironment } from \"../env.js\";\nimport { normalizeThrownOpensteerError } from \"../internal/errors.js\";\nimport type { OpensteerProviderOptions } from \"../provider/config.js\";\nimport type {\n OpensteerInterceptScriptOptions,\n OpensteerInstrumentableRuntime,\n OpensteerRouteOptions,\n OpensteerRouteRegistration,\n} from \"./instrumentation.js\";\nimport type { OpensteerRuntimeOptions } from \"./runtime.js\";\nimport {\n createOpensteerSemanticRuntime,\n resolveOpensteerRuntimeConfig,\n} from \"./runtime-resolution.js\";\nimport type { OpensteerDisconnectableRuntime } from \"./semantic-runtime.js\";\n\nexport interface OpensteerTargetOptions {\n readonly element?: number;\n readonly selector?: string;\n readonly persist?: string;\n readonly captureNetwork?: string;\n}\n\nexport interface OpensteerClickOptions extends OpensteerTargetOptions {\n readonly button?: OpensteerComputerMouseButton;\n readonly clickCount?: number;\n readonly modifiers?: readonly OpensteerComputerKeyModifier[];\n}\n\nexport interface OpensteerInputOptions extends OpensteerTargetOptions {\n readonly text: string;\n readonly pressEnter?: boolean;\n}\n\nexport interface OpensteerScrollOptions extends OpensteerTargetOptions {\n readonly direction: \"up\" | \"down\" | \"left\" | \"right\";\n readonly amount: number;\n}\n\nexport interface OpensteerExtractOptions {\n readonly persist: string;\n}\n\nexport interface OpensteerWaitForPageOptions {\n readonly openerPageRef?: string;\n readonly urlIncludes?: string;\n readonly timeoutMs?: number;\n readonly pollIntervalMs?: number;\n}\n\nexport type OpensteerAddInitScriptOptions = OpensteerAddInitScriptInput;\nexport type OpensteerGotoOptions = Omit<OpensteerPageGotoInput, \"url\">;\nexport type OpensteerNetworkQueryOptions = OpensteerNetworkQueryInput;\nexport type OpensteerNetworkQueryResult = OpensteerNetworkQueryOutput;\nexport type OpensteerNetworkDetailResult = OpensteerNetworkDetailOutput;\nexport type OpensteerFetchOptions = Omit<OpensteerSessionFetchInput, \"url\" | \"body\"> & {\n readonly body?: string | OpensteerRequestBodyInput;\n};\nexport type OpensteerComputerExecuteOptions = OpensteerComputerExecuteInput;\nexport type OpensteerStorageMap = Readonly<Record<string, string>>;\nexport type OpensteerBrowserState = OpensteerStateQueryOutput;\n\nexport interface OpensteerCookieJar {\n readonly domain?: string;\n has(name: string): boolean;\n get(name: string): string | undefined;\n getAll(): readonly CookieRecord[];\n serialize(): string;\n}\n\nexport interface OpensteerDomController {\n click(input: OpensteerClickOptions): Promise<OpensteerActionResult>;\n hover(input: OpensteerTargetOptions): Promise<OpensteerActionResult>;\n input(input: OpensteerInputOptions): Promise<OpensteerActionResult>;\n scroll(input: OpensteerScrollOptions): Promise<OpensteerActionResult>;\n}\n\nexport interface OpensteerNetworkController {\n query(input?: OpensteerNetworkQueryOptions): Promise<OpensteerNetworkQueryResult>;\n detail(\n recordId: string,\n options?: { readonly probe?: boolean },\n ): Promise<OpensteerNetworkDetailResult>;\n}\n\nexport interface OpensteerOptions extends OpensteerRuntimeOptions {\n readonly provider?: OpensteerProviderOptions;\n}\n\nexport interface OpensteerBrowserCloneOptions {\n readonly sourceUserDataDir: string;\n readonly sourceProfileDirectory?: string;\n}\n\nexport interface OpensteerBrowserController {\n status(): Promise<OpensteerBrowserStatus>;\n clone(input: OpensteerBrowserCloneOptions): Promise<WorkspaceBrowserManifest>;\n reset(): Promise<void>;\n delete(): Promise<void>;\n}\n\nclass SessionCookieJar implements OpensteerCookieJar {\n readonly domain?: string;\n private readonly cookies: readonly CookieRecord[];\n\n constructor(output: OpensteerCookieQueryOutput) {\n if (output.domain !== undefined) {\n this.domain = output.domain;\n }\n this.cookies = output.cookies;\n }\n\n has(name: string): boolean {\n return this.cookies.some((cookie) => cookie.name === name);\n }\n\n get(name: string): string | undefined {\n return this.cookies.find((cookie) => cookie.name === name)?.value;\n }\n\n getAll(): readonly CookieRecord[] {\n return this.cookies;\n }\n\n serialize(): string {\n return this.cookies.map((cookie) => `${cookie.name}=${cookie.value}`).join(\"; \");\n }\n}\n\nfunction createSdkProtocolError(error: unknown, fallbackMessage: string): OpensteerProtocolError {\n const normalized = normalizeThrownOpensteerError(error, fallbackMessage);\n return new OpensteerProtocolError(normalized.code, normalized.message, {\n cause: error,\n retriable: normalized.retriable,\n ...(normalized.capability === undefined ? {} : { capability: normalized.capability }),\n ...(normalized.details === undefined ? {} : { details: normalized.details }),\n });\n}\n\nasync function wrapSdkError<T>(operation: string, fn: () => Promise<T>): Promise<T> {\n try {\n return await fn();\n } catch (error) {\n if (isOpensteerProtocolError(error)) {\n throw error;\n }\n throw createSdkProtocolError(error, `${operation} failed`);\n }\n}\n\nexport class Opensteer {\n private readonly runtime: OpensteerDisconnectableRuntime;\n private readonly browserManager: OpensteerBrowserManager | undefined;\n readonly browser: OpensteerBrowserController;\n readonly dom: OpensteerDomController;\n readonly network: OpensteerNetworkController;\n\n constructor(options: OpensteerOptions = {}) {\n try {\n const environment = resolveOpensteerEnvironment(options.rootDir);\n const { provider, engineName, ...runtimeOptions } = options;\n const runtimeConfig = resolveOpensteerRuntimeConfig({\n ...(provider === undefined ? {} : { provider }),\n environment,\n });\n\n if (runtimeConfig.provider.mode === \"cloud\") {\n this.browserManager = undefined;\n this.runtime = createOpensteerSemanticRuntime({\n ...(provider === undefined ? {} : { provider }),\n ...(engineName === undefined ? {} : { engine: engineName }),\n environment,\n runtimeOptions,\n });\n this.browser = createUnsupportedBrowserController();\n } else {\n this.browserManager = new OpensteerBrowserManager({\n ...(runtimeOptions.rootDir === undefined ? {} : { rootDir: runtimeOptions.rootDir }),\n ...(runtimeOptions.rootPath === undefined ? {} : { rootPath: runtimeOptions.rootPath }),\n ...(runtimeOptions.workspace === undefined\n ? {}\n : { workspace: runtimeOptions.workspace }),\n ...(engineName === undefined ? {} : { engineName }),\n environment,\n ...(runtimeOptions.browser === undefined ? {} : { browser: runtimeOptions.browser }),\n ...(runtimeOptions.launch === undefined ? {} : { launch: runtimeOptions.launch }),\n ...(runtimeOptions.context === undefined ? {} : { context: runtimeOptions.context }),\n });\n this.runtime = createOpensteerSemanticRuntime({\n ...(provider === undefined ? {} : { provider }),\n ...(engineName === undefined ? {} : { engine: engineName }),\n environment,\n runtimeOptions: {\n ...runtimeOptions,\n rootPath: this.browserManager.rootPath,\n cleanupRootOnClose: this.browserManager.cleanupRootOnDisconnect,\n },\n });\n this.browser = {\n status: () => wrapSdkError(\"browser.status\", () => this.browserManager!.status()),\n clone: (input) =>\n wrapSdkError(\"browser.clone\", () => this.browserManager!.clonePersistentBrowser(input)),\n reset: () => wrapSdkError(\"browser.reset\", () => this.browserManager!.reset()),\n delete: () => wrapSdkError(\"browser.delete\", () => this.browserManager!.delete()),\n };\n }\n\n this.dom = {\n click: (input) => this.click(input),\n hover: (input) => this.hover(input),\n input: (input) => this.input(input),\n scroll: (input) => this.scroll(input),\n };\n\n this.network = {\n query: (input = {}) =>\n wrapSdkError(\"network.query\", () => this.runtime.queryNetwork(input)),\n detail: (recordId, options) =>\n wrapSdkError(\"network.detail\", () =>\n this.runtime.getNetworkDetail({ recordId, ...options }),\n ),\n };\n } catch (error) {\n if (isOpensteerProtocolError(error)) {\n throw error;\n }\n throw createSdkProtocolError(error, \"Failed to initialize Opensteer\");\n }\n }\n\n async open(input: string | OpensteerOpenInput = {}): Promise<OpensteerOpenOutput> {\n return wrapSdkError(\"session.open\", () =>\n this.runtime.open(typeof input === \"string\" ? { url: input } : input),\n );\n }\n\n async info(): Promise<OpensteerSessionInfo> {\n return wrapSdkError(\"session.info\", () => this.runtime.info());\n }\n\n async listPages(input: OpensteerPageListInput = {}): Promise<OpensteerPageListOutput> {\n return wrapSdkError(\"page.list\", () => this.runtime.listPages(input));\n }\n\n async newPage(input: OpensteerPageNewInput = {}): Promise<OpensteerPageNewOutput> {\n return wrapSdkError(\"page.new\", () => this.runtime.newPage(input));\n }\n\n async activatePage(input: OpensteerPageActivateInput): Promise<OpensteerPageActivateOutput> {\n return wrapSdkError(\"page.activate\", () => this.runtime.activatePage(input));\n }\n\n async closePage(input: OpensteerPageCloseInput = {}): Promise<OpensteerPageCloseOutput> {\n return wrapSdkError(\"page.close\", () => this.runtime.closePage(input));\n }\n\n async goto(url: string, options: OpensteerGotoOptions = {}): Promise<OpensteerPageGotoOutput> {\n return wrapSdkError(\"page.goto\", () =>\n this.runtime.goto({\n url,\n ...options,\n }),\n );\n }\n\n async evaluate(\n input: string | OpensteerPageEvaluateInput,\n ): Promise<OpensteerPageEvaluateOutput[\"value\"]> {\n return wrapSdkError(\"page.evaluate\", async () => {\n const normalized =\n typeof input === \"string\"\n ? {\n script: input,\n }\n : input;\n return (await this.runtime.evaluate(normalized)).value;\n });\n }\n\n async addInitScript(\n input: string | OpensteerAddInitScriptInput,\n ): Promise<OpensteerAddInitScriptOutput> {\n return wrapSdkError(\"page.addInitScript\", () =>\n this.runtime.addInitScript(\n typeof input === \"string\"\n ? {\n script: input,\n }\n : input,\n ),\n );\n }\n\n async click(input: OpensteerClickOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.click\", () => {\n const { button, clickCount, modifiers, ...target } = input;\n return this.runtime.click({\n ...normalizeTargetOptions(target),\n ...(button === undefined ? {} : { button }),\n ...(clickCount === undefined ? {} : { clickCount }),\n ...(modifiers === undefined ? {} : { modifiers }),\n });\n });\n }\n\n async hover(input: OpensteerTargetOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.hover\", () => this.runtime.hover(normalizeTargetOptions(input)));\n }\n\n async input(input: OpensteerInputOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.input\", () =>\n this.runtime.input({\n ...normalizeTargetOptions(input),\n text: input.text,\n ...(input.pressEnter === undefined ? {} : { pressEnter: input.pressEnter }),\n }),\n );\n }\n\n async scroll(input: OpensteerScrollOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.scroll\", () =>\n this.runtime.scroll({\n ...normalizeTargetOptions(input),\n direction: input.direction,\n amount: input.amount,\n }),\n );\n }\n\n async extract(input: OpensteerExtractOptions): Promise<unknown> {\n return wrapSdkError(\"extract\", async () => (await this.runtime.extract(input)).data);\n }\n\n async waitForPage(\n input: OpensteerWaitForPageOptions = {},\n ): Promise<OpensteerPageListOutput[\"pages\"][number]> {\n return wrapSdkError(\"page.waitForPage\", async () => {\n const baseline = new Set((await this.runtime.listPages()).pages.map((page) => page.pageRef));\n const timeoutAt = Date.now() + (input.timeoutMs ?? 30_000);\n const pollIntervalMs = input.pollIntervalMs ?? 100;\n\n while (true) {\n const match = (await this.runtime.listPages()).pages.find((page) => {\n if (baseline.has(page.pageRef)) {\n return false;\n }\n if (input.openerPageRef !== undefined && page.openerPageRef !== input.openerPageRef) {\n return false;\n }\n if (input.urlIncludes !== undefined && !page.url.includes(input.urlIncludes)) {\n return false;\n }\n return true;\n });\n if (match !== undefined) {\n return match;\n }\n if (Date.now() >= timeoutAt) {\n throw new OpensteerProtocolError(\"timeout\", \"waitForPage timed out\");\n }\n await delay(pollIntervalMs);\n }\n });\n }\n\n async cookies(domain?: string): Promise<OpensteerCookieJar> {\n return wrapSdkError(\n \"session.cookies\",\n async () =>\n new SessionCookieJar(await this.runtime.getCookies(domain === undefined ? {} : { domain })),\n );\n }\n\n async storage(\n domain?: string,\n type: OpensteerStorageArea = \"local\",\n ): Promise<OpensteerStorageMap> {\n return wrapSdkError(\"session.storage\", async () => {\n const snapshot = await this.runtime.getStorageSnapshot(\n domain === undefined ? {} : { domain },\n );\n const domainSnapshot = pickStorageDomainSnapshot(snapshot, domain);\n if (domainSnapshot === undefined) {\n return {};\n }\n const entries =\n type === \"local\" ? domainSnapshot.localStorage : domainSnapshot.sessionStorage;\n return Object.fromEntries(entries.map((entry) => [entry.key, entry.value]));\n });\n }\n\n async state(domain?: string): Promise<OpensteerBrowserState> {\n return wrapSdkError(\"session.state\", () =>\n this.runtime.getBrowserState(domain === undefined ? {} : { domain }),\n );\n }\n\n async fetch(url: string, options: OpensteerFetchOptions = {}): Promise<Response> {\n return wrapSdkError(\"session.fetch\", async () => {\n const input = buildFetchInput(url, options);\n const result = await this.runtime.fetch(input);\n if (result.response === undefined) {\n throw new OpensteerProtocolError(\n \"operation-failed\",\n result.note ?? `session.fetch did not produce a response for ${url}`,\n );\n }\n return toResponse(result.response);\n });\n }\n\n async computerExecute(\n input: OpensteerComputerExecuteOptions,\n ): Promise<OpensteerComputerExecuteOutput> {\n return wrapSdkError(\"session.computerExecute\", () => this.runtime.computerExecute(input));\n }\n\n async route(input: OpensteerRouteOptions): Promise<OpensteerRouteRegistration> {\n return wrapSdkError(\"session.route\", () =>\n this.requireOwnedInstrumentationRuntime(\"route\").route(input),\n );\n }\n\n async interceptScript(\n input: OpensteerInterceptScriptOptions,\n ): Promise<OpensteerRouteRegistration> {\n return wrapSdkError(\"session.interceptScript\", () =>\n this.requireOwnedInstrumentationRuntime(\"interceptScript\").interceptScript(input),\n );\n }\n\n async close(): Promise<OpensteerSessionCloseOutput> {\n return wrapSdkError(\"session.close\", async () => {\n if (this.browserManager === undefined || this.browserManager.mode === \"temporary\") {\n return this.runtime.close();\n }\n\n const output = await this.runtime.close();\n await this.browserManager.close();\n return output;\n });\n }\n\n async disconnect(): Promise<void> {\n return wrapSdkError(\"session.disconnect\", () => this.runtime.disconnect());\n }\n\n private requireOwnedInstrumentationRuntime(\n method: \"route\" | \"interceptScript\",\n ): OpensteerInstrumentableRuntime {\n if (\n typeof (this.runtime as Partial<OpensteerInstrumentableRuntime>).route === \"function\" &&\n typeof (this.runtime as Partial<OpensteerInstrumentableRuntime>).interceptScript ===\n \"function\"\n ) {\n return this.runtime as OpensteerDisconnectableRuntime & OpensteerInstrumentableRuntime;\n }\n throw new OpensteerProtocolError(\n \"unsupported-operation\",\n `${method}() is not available for this session runtime.`,\n );\n }\n}\n\nfunction createUnsupportedBrowserController(): OpensteerBrowserController {\n const fail = async (): Promise<never> => {\n throw new OpensteerProtocolError(\n \"unsupported-operation\",\n \"browser.* helpers are only available in local mode.\",\n );\n };\n\n return {\n status: fail,\n clone: fail,\n reset: fail,\n delete: fail,\n };\n}\n\nfunction normalizeTargetOptions(input: OpensteerTargetOptions): {\n readonly target: OpensteerTargetInput;\n readonly persist?: string;\n readonly captureNetwork?: string;\n} {\n const hasElement = input.element !== undefined;\n const hasSelector = input.selector !== undefined;\n if (hasElement && hasSelector) {\n throw new OpensteerProtocolError(\n \"invalid-argument\",\n \"Specify exactly one of element, selector, or persist.\",\n );\n }\n\n if (hasElement) {\n return {\n target: {\n kind: \"element\",\n element: input.element,\n },\n ...(input.persist === undefined ? {} : { persist: input.persist }),\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n }\n\n if (hasSelector) {\n return {\n target: {\n kind: \"selector\",\n selector: input.selector,\n },\n ...(input.persist === undefined ? {} : { persist: input.persist }),\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n }\n\n if (input.persist === undefined) {\n throw new OpensteerProtocolError(\n \"invalid-argument\",\n \"Specify exactly one of element, selector, or persist.\",\n );\n }\n\n return {\n target: {\n kind: \"persist\",\n persist: input.persist,\n },\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n}\n\nfunction pickStorageDomainSnapshot(\n snapshot: {\n readonly domains: readonly OpensteerStorageDomainSnapshot[];\n },\n domain: string | undefined,\n): OpensteerStorageDomainSnapshot | undefined {\n if (snapshot.domains.length === 0) {\n return undefined;\n }\n if (domain === undefined) {\n return snapshot.domains[0];\n }\n return snapshot.domains.find((entry) => entry.domain === domain);\n}\n\nfunction buildFetchInput(url: string, options: OpensteerFetchOptions): OpensteerSessionFetchInput {\n const { body, ...rest } = options;\n return {\n url,\n ...rest,\n ...(body === undefined ? {} : { body: normalizeFetchBody(body, rest.headers) }),\n };\n}\n\nfunction normalizeFetchBody(\n body: string | OpensteerRequestBodyInput,\n headers: OpensteerSessionFetchInput[\"headers\"],\n): OpensteerRequestBodyInput {\n if (typeof body !== \"string\") {\n return body;\n }\n\n const contentType = findHeaderValue(headers, \"content-type\");\n return contentType === undefined ? { text: body } : { text: body, contentType };\n}\n\nfunction findHeaderValue(\n headers: OpensteerSessionFetchInput[\"headers\"],\n headerName: string,\n): string | undefined {\n if (headers === undefined) {\n return undefined;\n }\n\n const match = Object.entries(headers).find(\n ([name]) => name.toLowerCase() === headerName.toLowerCase(),\n );\n return match === undefined ? undefined : String(match[1]);\n}\n\nfunction toResponse(response: OpensteerRequestResponseResult): Response {\n return new Response(decodeBody(response), {\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.map((header) => [header.name, header.value])),\n });\n}\n\nfunction decodeBody(response: OpensteerRequestResponseResult): Uint8Array | undefined {\n if (response.body === undefined) {\n return undefined;\n }\n return Uint8Array.from(Buffer.from(response.body.data, \"base64\"));\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"]}
1
+ {"version":3,"sources":["../src/internal/errors.ts","../src/sdk/opensteer.ts"],"names":["options"],"mappings":"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","file":"chunk-SOJEWKSW.js","sourcesContent":["import { isBrowserCoreError } from \"@opensteer/browser-core\";\nimport {\n createOpensteerError,\n isOpensteerProtocolError,\n toOpensteerError,\n type OpensteerError,\n} from \"@opensteer/protocol\";\nimport { OpensteerAttachAmbiguousError } from \"../local-browser/cdp-discovery.js\";\n\nexport function normalizeThrownOpensteerError(\n error: unknown,\n fallbackMessage: string,\n): OpensteerError {\n if (isOpensteerProtocolError(error)) {\n return toOpensteerError(error);\n }\n\n if (isBrowserCoreError(error)) {\n return createOpensteerError(error.code, error.message, {\n retriable: error.retriable,\n ...(error.details === undefined ? {} : { details: error.details }),\n });\n }\n\n if (error instanceof OpensteerAttachAmbiguousError) {\n return createOpensteerError(\"conflict\", error.message, {\n details: {\n candidates: error.candidates,\n code: error.code,\n name: error.name,\n },\n });\n }\n\n if (\n error instanceof Error &&\n \"opensteerError\" in error &&\n typeof (error as { opensteerError: unknown }).opensteerError === \"object\" &&\n (error as { opensteerError: unknown }).opensteerError !== null\n ) {\n const oe = (error as { opensteerError: OpensteerError }).opensteerError;\n return createOpensteerError(oe.code, oe.message, {\n retriable: oe.retriable,\n ...(oe.capability === undefined ? {} : { capability: oe.capability }),\n ...(oe.details === undefined ? {} : { details: oe.details }),\n });\n }\n\n if (error instanceof Error) {\n return createOpensteerError(\"operation-failed\", error.message, {\n details: {\n name: error.name,\n },\n });\n }\n\n return createOpensteerError(\"internal\", fallbackMessage, {\n details: {\n value: error,\n },\n });\n}\n","import {\n OpensteerProtocolError,\n isOpensteerProtocolError,\n type CookieRecord,\n type OpensteerCookieQueryOutput,\n type OpensteerActionResult,\n type OpensteerAddInitScriptInput,\n type OpensteerAddInitScriptOutput,\n type OpensteerComputerExecuteInput,\n type OpensteerComputerExecuteOutput,\n type OpensteerComputerKeyModifier,\n type OpensteerComputerMouseButton,\n type OpensteerNetworkDetailOutput,\n type OpensteerNetworkQueryInput,\n type OpensteerNetworkQueryOutput,\n type OpensteerOpenInput,\n type OpensteerOpenOutput,\n type OpensteerPageActivateInput,\n type OpensteerPageActivateOutput,\n type OpensteerPageCloseInput,\n type OpensteerPageCloseOutput,\n type OpensteerPageEvaluateInput,\n type OpensteerPageEvaluateOutput,\n type OpensteerPageGotoInput,\n type OpensteerPageGotoOutput,\n type OpensteerPageListInput,\n type OpensteerPageListOutput,\n type OpensteerPageNewInput,\n type OpensteerPageNewOutput,\n type OpensteerRequestBodyInput,\n type OpensteerRequestResponseResult,\n type OpensteerSessionCloseOutput,\n type OpensteerSessionFetchInput,\n type OpensteerSessionInfo,\n type OpensteerStateQueryOutput,\n type OpensteerStorageArea,\n type OpensteerStorageDomainSnapshot,\n type OpensteerTargetInput,\n} from \"@opensteer/protocol\";\n\nimport {\n OpensteerBrowserManager,\n type OpensteerBrowserStatus,\n type WorkspaceBrowserManifest,\n} from \"../browser-manager.js\";\nimport { resolveOpensteerEnvironment } from \"../env.js\";\nimport { normalizeThrownOpensteerError } from \"../internal/errors.js\";\nimport type { OpensteerProviderOptions } from \"../provider/config.js\";\nimport type {\n OpensteerInterceptScriptOptions,\n OpensteerInstrumentableRuntime,\n OpensteerRouteOptions,\n OpensteerRouteRegistration,\n} from \"./instrumentation.js\";\nimport type { OpensteerRuntimeOptions } from \"./runtime.js\";\nimport {\n createOpensteerSemanticRuntime,\n resolveOpensteerRuntimeConfig,\n} from \"./runtime-resolution.js\";\nimport type { OpensteerDisconnectableRuntime } from \"./semantic-runtime.js\";\n\nexport interface OpensteerTargetOptions {\n readonly element?: number;\n readonly selector?: string;\n readonly persist?: string;\n readonly captureNetwork?: string;\n}\n\nexport interface OpensteerClickOptions extends OpensteerTargetOptions {\n readonly button?: OpensteerComputerMouseButton;\n readonly clickCount?: number;\n readonly modifiers?: readonly OpensteerComputerKeyModifier[];\n}\n\nexport interface OpensteerInputOptions extends OpensteerTargetOptions {\n readonly text: string;\n readonly pressEnter?: boolean;\n}\n\nexport interface OpensteerScrollOptions extends OpensteerTargetOptions {\n readonly direction: \"up\" | \"down\" | \"left\" | \"right\";\n readonly amount: number;\n}\n\nexport interface OpensteerExtractOptions {\n readonly persist: string;\n}\n\nexport interface OpensteerWaitForPageOptions {\n readonly openerPageRef?: string;\n readonly urlIncludes?: string;\n readonly timeoutMs?: number;\n readonly pollIntervalMs?: number;\n}\n\nexport type OpensteerAddInitScriptOptions = OpensteerAddInitScriptInput;\nexport type OpensteerGotoOptions = Omit<OpensteerPageGotoInput, \"url\">;\nexport type OpensteerNetworkQueryOptions = OpensteerNetworkQueryInput;\nexport type OpensteerNetworkQueryResult = OpensteerNetworkQueryOutput;\nexport type OpensteerNetworkDetailResult = OpensteerNetworkDetailOutput;\nexport type OpensteerFetchOptions = Omit<OpensteerSessionFetchInput, \"url\" | \"body\"> & {\n readonly body?: string | OpensteerRequestBodyInput;\n};\nexport type OpensteerComputerExecuteOptions = OpensteerComputerExecuteInput;\nexport type OpensteerStorageMap = Readonly<Record<string, string>>;\nexport type OpensteerBrowserState = OpensteerStateQueryOutput;\n\nexport interface OpensteerCookieJar {\n readonly domain?: string;\n has(name: string): boolean;\n get(name: string): string | undefined;\n getAll(): readonly CookieRecord[];\n serialize(): string;\n}\n\nexport interface OpensteerDomController {\n click(input: OpensteerClickOptions): Promise<OpensteerActionResult>;\n hover(input: OpensteerTargetOptions): Promise<OpensteerActionResult>;\n input(input: OpensteerInputOptions): Promise<OpensteerActionResult>;\n scroll(input: OpensteerScrollOptions): Promise<OpensteerActionResult>;\n}\n\nexport interface OpensteerNetworkController {\n query(input?: OpensteerNetworkQueryOptions): Promise<OpensteerNetworkQueryResult>;\n detail(\n recordId: string,\n options?: { readonly probe?: boolean },\n ): Promise<OpensteerNetworkDetailResult>;\n}\n\nexport interface OpensteerOptions extends OpensteerRuntimeOptions {\n readonly provider?: OpensteerProviderOptions;\n}\n\nexport interface OpensteerBrowserCloneOptions {\n readonly sourceUserDataDir: string;\n readonly sourceProfileDirectory?: string;\n}\n\nexport interface OpensteerBrowserController {\n status(): Promise<OpensteerBrowserStatus>;\n clone(input: OpensteerBrowserCloneOptions): Promise<WorkspaceBrowserManifest>;\n reset(): Promise<void>;\n delete(): Promise<void>;\n}\n\nclass SessionCookieJar implements OpensteerCookieJar {\n readonly domain?: string;\n private readonly cookies: readonly CookieRecord[];\n\n constructor(output: OpensteerCookieQueryOutput) {\n if (output.domain !== undefined) {\n this.domain = output.domain;\n }\n this.cookies = output.cookies;\n }\n\n has(name: string): boolean {\n return this.cookies.some((cookie) => cookie.name === name);\n }\n\n get(name: string): string | undefined {\n return this.cookies.find((cookie) => cookie.name === name)?.value;\n }\n\n getAll(): readonly CookieRecord[] {\n return this.cookies;\n }\n\n serialize(): string {\n return this.cookies.map((cookie) => `${cookie.name}=${cookie.value}`).join(\"; \");\n }\n}\n\nfunction createSdkProtocolError(error: unknown, fallbackMessage: string): OpensteerProtocolError {\n const normalized = normalizeThrownOpensteerError(error, fallbackMessage);\n return new OpensteerProtocolError(normalized.code, normalized.message, {\n cause: error,\n retriable: normalized.retriable,\n ...(normalized.capability === undefined ? {} : { capability: normalized.capability }),\n ...(normalized.details === undefined ? {} : { details: normalized.details }),\n });\n}\n\nasync function wrapSdkError<T>(operation: string, fn: () => Promise<T>): Promise<T> {\n try {\n return await fn();\n } catch (error) {\n if (isOpensteerProtocolError(error)) {\n throw error;\n }\n throw createSdkProtocolError(error, `${operation} failed`);\n }\n}\n\nexport class Opensteer {\n private readonly runtime: OpensteerDisconnectableRuntime;\n private readonly browserManager: OpensteerBrowserManager | undefined;\n readonly browser: OpensteerBrowserController;\n readonly dom: OpensteerDomController;\n readonly network: OpensteerNetworkController;\n\n constructor(options: OpensteerOptions = {}) {\n try {\n const environment = resolveOpensteerEnvironment(options.rootDir);\n const { provider, engineName, ...runtimeOptions } = options;\n const runtimeConfig = resolveOpensteerRuntimeConfig({\n ...(provider === undefined ? {} : { provider }),\n environment,\n });\n\n if (runtimeConfig.provider.mode === \"cloud\") {\n this.browserManager = undefined;\n this.runtime = createOpensteerSemanticRuntime({\n ...(provider === undefined ? {} : { provider }),\n ...(engineName === undefined ? {} : { engine: engineName }),\n environment,\n runtimeOptions,\n });\n this.browser = createUnsupportedBrowserController();\n } else {\n this.browserManager = new OpensteerBrowserManager({\n ...(runtimeOptions.rootDir === undefined ? {} : { rootDir: runtimeOptions.rootDir }),\n ...(runtimeOptions.rootPath === undefined ? {} : { rootPath: runtimeOptions.rootPath }),\n ...(runtimeOptions.workspace === undefined\n ? {}\n : { workspace: runtimeOptions.workspace }),\n ...(engineName === undefined ? {} : { engineName }),\n environment,\n ...(runtimeOptions.browser === undefined ? {} : { browser: runtimeOptions.browser }),\n ...(runtimeOptions.launch === undefined ? {} : { launch: runtimeOptions.launch }),\n ...(runtimeOptions.context === undefined ? {} : { context: runtimeOptions.context }),\n });\n this.runtime = createOpensteerSemanticRuntime({\n ...(provider === undefined ? {} : { provider }),\n ...(engineName === undefined ? {} : { engine: engineName }),\n environment,\n runtimeOptions: {\n ...runtimeOptions,\n rootPath: this.browserManager.rootPath,\n cleanupRootOnClose: this.browserManager.cleanupRootOnDisconnect,\n },\n });\n this.browser = {\n status: () => wrapSdkError(\"browser.status\", () => this.browserManager!.status()),\n clone: (input) =>\n wrapSdkError(\"browser.clone\", () => this.browserManager!.clonePersistentBrowser(input)),\n reset: () => wrapSdkError(\"browser.reset\", () => this.browserManager!.reset()),\n delete: () => wrapSdkError(\"browser.delete\", () => this.browserManager!.delete()),\n };\n }\n\n this.dom = {\n click: (input) => this.click(input),\n hover: (input) => this.hover(input),\n input: (input) => this.input(input),\n scroll: (input) => this.scroll(input),\n };\n\n this.network = {\n query: (input = {}) =>\n wrapSdkError(\"network.query\", () => this.runtime.queryNetwork(input)),\n detail: (recordId, options) =>\n wrapSdkError(\"network.detail\", () =>\n this.runtime.getNetworkDetail({ recordId, ...options }),\n ),\n };\n } catch (error) {\n if (isOpensteerProtocolError(error)) {\n throw error;\n }\n throw createSdkProtocolError(error, \"Failed to initialize Opensteer\");\n }\n }\n\n async open(input: string | OpensteerOpenInput = {}): Promise<OpensteerOpenOutput> {\n return wrapSdkError(\"session.open\", () =>\n this.runtime.open(typeof input === \"string\" ? { url: input } : input),\n );\n }\n\n async info(): Promise<OpensteerSessionInfo> {\n return wrapSdkError(\"session.info\", () => this.runtime.info());\n }\n\n async listPages(input: OpensteerPageListInput = {}): Promise<OpensteerPageListOutput> {\n return wrapSdkError(\"page.list\", () => this.runtime.listPages(input));\n }\n\n async newPage(input: OpensteerPageNewInput = {}): Promise<OpensteerPageNewOutput> {\n return wrapSdkError(\"page.new\", () => this.runtime.newPage(input));\n }\n\n async activatePage(input: OpensteerPageActivateInput): Promise<OpensteerPageActivateOutput> {\n return wrapSdkError(\"page.activate\", () => this.runtime.activatePage(input));\n }\n\n async closePage(input: OpensteerPageCloseInput = {}): Promise<OpensteerPageCloseOutput> {\n return wrapSdkError(\"page.close\", () => this.runtime.closePage(input));\n }\n\n async goto(url: string, options: OpensteerGotoOptions = {}): Promise<OpensteerPageGotoOutput> {\n return wrapSdkError(\"page.goto\", () =>\n this.runtime.goto({\n url,\n ...options,\n }),\n );\n }\n\n async evaluate(\n input: string | OpensteerPageEvaluateInput,\n ): Promise<OpensteerPageEvaluateOutput[\"value\"]> {\n return wrapSdkError(\"page.evaluate\", async () => {\n const normalized =\n typeof input === \"string\"\n ? {\n script: input,\n }\n : input;\n return (await this.runtime.evaluate(normalized)).value;\n });\n }\n\n async addInitScript(\n input: string | OpensteerAddInitScriptInput,\n ): Promise<OpensteerAddInitScriptOutput> {\n return wrapSdkError(\"page.addInitScript\", () =>\n this.runtime.addInitScript(\n typeof input === \"string\"\n ? {\n script: input,\n }\n : input,\n ),\n );\n }\n\n async click(input: OpensteerClickOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.click\", () => {\n const { button, clickCount, modifiers, ...target } = input;\n return this.runtime.click({\n ...normalizeTargetOptions(target),\n ...(button === undefined ? {} : { button }),\n ...(clickCount === undefined ? {} : { clickCount }),\n ...(modifiers === undefined ? {} : { modifiers }),\n });\n });\n }\n\n async hover(input: OpensteerTargetOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.hover\", () => this.runtime.hover(normalizeTargetOptions(input)));\n }\n\n async input(input: OpensteerInputOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.input\", () =>\n this.runtime.input({\n ...normalizeTargetOptions(input),\n text: input.text,\n ...(input.pressEnter === undefined ? {} : { pressEnter: input.pressEnter }),\n }),\n );\n }\n\n async scroll(input: OpensteerScrollOptions): Promise<OpensteerActionResult> {\n return wrapSdkError(\"dom.scroll\", () =>\n this.runtime.scroll({\n ...normalizeTargetOptions(input),\n direction: input.direction,\n amount: input.amount,\n }),\n );\n }\n\n async extract(input: OpensteerExtractOptions): Promise<unknown> {\n return wrapSdkError(\"extract\", async () => (await this.runtime.extract(input)).data);\n }\n\n async waitForPage(\n input: OpensteerWaitForPageOptions = {},\n ): Promise<OpensteerPageListOutput[\"pages\"][number]> {\n return wrapSdkError(\"page.waitForPage\", async () => {\n const baseline = new Set((await this.runtime.listPages()).pages.map((page) => page.pageRef));\n const timeoutAt = Date.now() + (input.timeoutMs ?? 30_000);\n const pollIntervalMs = input.pollIntervalMs ?? 100;\n\n while (true) {\n const match = (await this.runtime.listPages()).pages.find((page) => {\n if (baseline.has(page.pageRef)) {\n return false;\n }\n if (input.openerPageRef !== undefined && page.openerPageRef !== input.openerPageRef) {\n return false;\n }\n if (input.urlIncludes !== undefined && !page.url.includes(input.urlIncludes)) {\n return false;\n }\n return true;\n });\n if (match !== undefined) {\n return match;\n }\n if (Date.now() >= timeoutAt) {\n throw new OpensteerProtocolError(\"timeout\", \"waitForPage timed out\");\n }\n await delay(pollIntervalMs);\n }\n });\n }\n\n async cookies(domain?: string): Promise<OpensteerCookieJar> {\n return wrapSdkError(\n \"session.cookies\",\n async () =>\n new SessionCookieJar(await this.runtime.getCookies(domain === undefined ? {} : { domain })),\n );\n }\n\n async storage(\n domain?: string,\n type: OpensteerStorageArea = \"local\",\n ): Promise<OpensteerStorageMap> {\n return wrapSdkError(\"session.storage\", async () => {\n const snapshot = await this.runtime.getStorageSnapshot(\n domain === undefined ? {} : { domain },\n );\n const domainSnapshot = pickStorageDomainSnapshot(snapshot, domain);\n if (domainSnapshot === undefined) {\n return {};\n }\n const entries =\n type === \"local\" ? domainSnapshot.localStorage : domainSnapshot.sessionStorage;\n return Object.fromEntries(entries.map((entry) => [entry.key, entry.value]));\n });\n }\n\n async state(domain?: string): Promise<OpensteerBrowserState> {\n return wrapSdkError(\"session.state\", () =>\n this.runtime.getBrowserState(domain === undefined ? {} : { domain }),\n );\n }\n\n async fetch(url: string, options: OpensteerFetchOptions = {}): Promise<Response> {\n return wrapSdkError(\"session.fetch\", async () => {\n const input = buildFetchInput(url, options);\n const result = await this.runtime.fetch(input);\n if (result.response === undefined) {\n throw new OpensteerProtocolError(\n \"operation-failed\",\n result.note ?? `session.fetch did not produce a response for ${url}`,\n );\n }\n return toResponse(result.response);\n });\n }\n\n async computerExecute(\n input: OpensteerComputerExecuteOptions,\n ): Promise<OpensteerComputerExecuteOutput> {\n return wrapSdkError(\"session.computerExecute\", () => this.runtime.computerExecute(input));\n }\n\n async route(input: OpensteerRouteOptions): Promise<OpensteerRouteRegistration> {\n return wrapSdkError(\"session.route\", () =>\n this.requireOwnedInstrumentationRuntime(\"route\").route(input),\n );\n }\n\n async interceptScript(\n input: OpensteerInterceptScriptOptions,\n ): Promise<OpensteerRouteRegistration> {\n return wrapSdkError(\"session.interceptScript\", () =>\n this.requireOwnedInstrumentationRuntime(\"interceptScript\").interceptScript(input),\n );\n }\n\n async close(): Promise<OpensteerSessionCloseOutput> {\n return wrapSdkError(\"session.close\", async () => {\n if (this.browserManager === undefined || this.browserManager.mode === \"temporary\") {\n return this.runtime.close();\n }\n\n const output = await this.runtime.close();\n await this.browserManager.close();\n return output;\n });\n }\n\n async disconnect(): Promise<void> {\n return wrapSdkError(\"session.disconnect\", () => this.runtime.disconnect());\n }\n\n private requireOwnedInstrumentationRuntime(\n method: \"route\" | \"interceptScript\",\n ): OpensteerInstrumentableRuntime {\n if (\n typeof (this.runtime as Partial<OpensteerInstrumentableRuntime>).route === \"function\" &&\n typeof (this.runtime as Partial<OpensteerInstrumentableRuntime>).interceptScript ===\n \"function\"\n ) {\n return this.runtime as OpensteerDisconnectableRuntime & OpensteerInstrumentableRuntime;\n }\n throw new OpensteerProtocolError(\n \"unsupported-operation\",\n `${method}() is not available for this session runtime.`,\n );\n }\n}\n\nfunction createUnsupportedBrowserController(): OpensteerBrowserController {\n const fail = async (): Promise<never> => {\n throw new OpensteerProtocolError(\n \"unsupported-operation\",\n \"browser.* helpers are only available in local mode.\",\n );\n };\n\n return {\n status: fail,\n clone: fail,\n reset: fail,\n delete: fail,\n };\n}\n\nfunction normalizeTargetOptions(input: OpensteerTargetOptions): {\n readonly target: OpensteerTargetInput;\n readonly persist?: string;\n readonly captureNetwork?: string;\n} {\n const hasElement = input.element !== undefined;\n const hasSelector = input.selector !== undefined;\n if (hasElement && hasSelector) {\n throw new OpensteerProtocolError(\n \"invalid-argument\",\n \"Specify exactly one of element, selector, or persist.\",\n );\n }\n\n if (hasElement) {\n return {\n target: {\n kind: \"element\",\n element: input.element,\n },\n ...(input.persist === undefined ? {} : { persist: input.persist }),\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n }\n\n if (hasSelector) {\n return {\n target: {\n kind: \"selector\",\n selector: input.selector,\n },\n ...(input.persist === undefined ? {} : { persist: input.persist }),\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n }\n\n if (input.persist === undefined) {\n throw new OpensteerProtocolError(\n \"invalid-argument\",\n \"Specify exactly one of element, selector, or persist.\",\n );\n }\n\n return {\n target: {\n kind: \"persist\",\n persist: input.persist,\n },\n ...(input.captureNetwork === undefined ? {} : { captureNetwork: input.captureNetwork }),\n };\n}\n\nfunction pickStorageDomainSnapshot(\n snapshot: {\n readonly domains: readonly OpensteerStorageDomainSnapshot[];\n },\n domain: string | undefined,\n): OpensteerStorageDomainSnapshot | undefined {\n if (snapshot.domains.length === 0) {\n return undefined;\n }\n if (domain === undefined) {\n return snapshot.domains[0];\n }\n return snapshot.domains.find((entry) => entry.domain === domain);\n}\n\nfunction buildFetchInput(url: string, options: OpensteerFetchOptions): OpensteerSessionFetchInput {\n const { body, ...rest } = options;\n return {\n url,\n ...rest,\n ...(body === undefined ? {} : { body: normalizeFetchBody(body, rest.headers) }),\n };\n}\n\nfunction normalizeFetchBody(\n body: string | OpensteerRequestBodyInput,\n headers: OpensteerSessionFetchInput[\"headers\"],\n): OpensteerRequestBodyInput {\n if (typeof body !== \"string\") {\n return body;\n }\n\n const contentType = findHeaderValue(headers, \"content-type\");\n return contentType === undefined ? { text: body } : { text: body, contentType };\n}\n\nfunction findHeaderValue(\n headers: OpensteerSessionFetchInput[\"headers\"],\n headerName: string,\n): string | undefined {\n if (headers === undefined) {\n return undefined;\n }\n\n const match = Object.entries(headers).find(\n ([name]) => name.toLowerCase() === headerName.toLowerCase(),\n );\n return match === undefined ? undefined : String(match[1]);\n}\n\nfunction toResponse(response: OpensteerRequestResponseResult): Response {\n return new Response(decodeBody(response), {\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.map((header) => [header.name, header.value])),\n });\n}\n\nfunction decodeBody(response: OpensteerRequestResponseResult): Uint8Array | undefined {\n if (response.body === undefined) {\n return undefined;\n }\n return Uint8Array.from(Buffer.from(response.body.data, \"base64\"));\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"]}