@eko-ai/eko-nodejs 2.1.6-alpha.0 → 2.1.6-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.d.ts CHANGED
@@ -1,11 +1,16 @@
1
1
  import { AgentContext, BaseBrowserLabelsAgent } from "@eko-ai/eko";
2
2
  import { Browser, Page, BrowserContext } from "playwright";
3
3
  export default class BrowserAgent extends BaseBrowserLabelsAgent {
4
+ private cdpWsEndpoint?;
5
+ private userDataDir?;
6
+ private options?;
4
7
  protected browser: Browser | null;
5
8
  private browser_context;
6
9
  private current_page;
7
10
  private headless;
8
11
  setHeadless(headless: boolean): void;
12
+ setCdpWsEndpoint(cdpWsEndpoint: string): void;
13
+ setOptions(options?: Record<string, any>): void;
9
14
  protected screenshot(agentContext: AgentContext): Promise<{
10
15
  imageBase64: string;
11
16
  imageType: "image/jpeg" | "image/png";
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAEL,OAAO,EACP,IAAI,EAEJ,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,sBAAsB;IAC9D,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IACzC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAkB;IAE3B,WAAW,CAAC,QAAQ,EAAE,OAAO;cAIpB,UAAU,CACxB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAA;KAAE,CAAC;cAc1D,WAAW,CACzB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;cASc,YAAY,CAC1B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;cAiBhD,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;cAiBzC,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;cAcA,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAClC,OAAO,CAAC,IAAI,CAAC;cAaA,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cASA,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC9B,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,GAAG,CAAC;YAKD,QAAQ;cAuBN,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAW9B,WAAW;IA0BzB,OAAO,CAAC,KAAK;cAIG,iBAAiB;cAoBjB,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAqC3E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAEL,OAAO,EACP,IAAI,EAEJ,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,sBAAsB;IAC9D,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAsB;IACtC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IACzC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAkB;IAE3B,WAAW,CAAC,QAAQ,EAAE,OAAO;IAI7B,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;cAI/B,UAAU,CACxB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,YAAY,GAAG,WAAW,CAAA;KAAE,CAAC;cAc1D,WAAW,CACzB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;cASc,YAAY,CAC1B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;cAiBhD,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;cAiBzC,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;cAcA,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAClC,OAAO,CAAC,IAAI,CAAC;cAaA,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cASA,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC9B,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,GAAG,CAAC;YAKD,QAAQ;cAuBN,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAW9B,WAAW;IA0BzB,OAAO,CAAC,KAAK;cAIG,iBAAiB;cA6BjB,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAqC3E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -34,6 +34,14 @@ var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs$1);
34
34
  var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path$1);
35
35
  var actualFS__namespace = /*#__PURE__*/_interopNamespaceDefault(actualFS);
36
36
 
37
+ async function getCdpWsEndpoint(port) {
38
+ // Example => ws://localhost:9222/devtools/browser/{session-id}
39
+ const response = await fetch(`http://localhost:${port}/json/version`);
40
+ const browserInfo = await response.json();
41
+ eko.Log.info("browserInfo: ", browserInfo);
42
+ return browserInfo.webSocketDebuggerUrl;
43
+ }
44
+
37
45
  class BrowserAgent extends eko.BaseBrowserLabelsAgent {
38
46
  constructor() {
39
47
  super(...arguments);
@@ -45,6 +53,12 @@ class BrowserAgent extends eko.BaseBrowserLabelsAgent {
45
53
  setHeadless(headless) {
46
54
  this.headless = headless;
47
55
  }
56
+ setCdpWsEndpoint(cdpWsEndpoint) {
57
+ this.cdpWsEndpoint = cdpWsEndpoint;
58
+ }
59
+ setOptions(options) {
60
+ this.options = options;
61
+ }
48
62
  async screenshot(agentContext) {
49
63
  let page = await this.currentPage();
50
64
  let screenshotBuffer = await page.screenshot({
@@ -190,17 +204,28 @@ class BrowserAgent extends eko.BaseBrowserLabelsAgent {
190
204
  return new Promise((resolve) => setTimeout(() => resolve(), time));
191
205
  }
192
206
  async getBrowserContext() {
193
- if (!this.browser) {
194
- this.current_page = null;
195
- this.browser_context = null;
196
- this.browser = await playwright.chromium.launch({
197
- headless: this.headless,
198
- args: ["--no-sandbox"],
199
- });
200
- }
201
207
  if (!this.browser_context) {
202
208
  this.current_page = null;
203
- this.browser_context = await this.browser.newContext();
209
+ this.browser_context = null;
210
+ if (this.cdpWsEndpoint) {
211
+ this.browser = await playwright.chromium.connectOverCDP(this.cdpWsEndpoint, this.options);
212
+ this.browser_context = await this.browser.newContext();
213
+ }
214
+ else if (this.userDataDir) {
215
+ this.browser_context = await playwright.chromium.launchPersistentContext(this.userDataDir, {
216
+ headless: this.headless,
217
+ // channel: 'chrome',
218
+ ...this.options,
219
+ });
220
+ }
221
+ else {
222
+ this.browser = await playwright.chromium.launch({
223
+ headless: this.headless,
224
+ args: ["--no-sandbox"],
225
+ ...this.options,
226
+ });
227
+ this.browser_context = await this.browser.newContext();
228
+ }
204
229
  // Anti-crawling detection website:
205
230
  // https://bot.sannysoft.com/
206
231
  let init_script = await this.initScript();
@@ -8227,4 +8252,5 @@ class FileAgent extends eko.BaseFileAgent {
8227
8252
 
8228
8253
  exports.BrowserAgent = BrowserAgent;
8229
8254
  exports.FileAgent = FileAgent;
8255
+ exports.getCdpWsEndpoint = getCdpWsEndpoint;
8230
8256
  //# sourceMappingURL=index.cjs.js.map