unbrowse 6.2.4 → 6.2.6

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/cli.js CHANGED
@@ -31,7 +31,7 @@ var __promiseAll = (args) => Promise.all(args);
31
31
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
32
32
 
33
33
  // ../../src/build-info.generated.ts
34
- var BUILD_RELEASE_VERSION = "6.2.4", BUILD_GIT_SHA = "99ac8cb34838", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
34
+ var BUILD_RELEASE_VERSION = "6.2.6", BUILD_GIT_SHA = "8d412404ebd4", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjYiLCJnaXRfc2hhIjoiOGQ0MTI0MDRlYmQ0IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA4ZDQxMjQwNGViZDQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAzOjI4OjE4Ljk0NloifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "Otgiy3edVGT28Wb-c-n31uyBsZGKK_p7wnGc0YPoClM", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
35
35
 
36
36
  // ../../src/version.ts
37
37
  import { createHash } from "crypto";
package/dist/mcp.js CHANGED
@@ -226,11 +226,11 @@ import { dirname, join, parse } from "path";
226
226
  import { fileURLToPath as fileURLToPath2 } from "url";
227
227
 
228
228
  // ../../src/build-info.generated.ts
229
- var BUILD_RELEASE_VERSION = "6.2.4";
230
- var BUILD_GIT_SHA = "99ac8cb34838";
229
+ var BUILD_RELEASE_VERSION = "6.2.6";
230
+ var BUILD_GIT_SHA = "8d412404ebd4";
231
231
  var BUILD_CODE_HASH = "5d9ebf619c61";
232
- var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ";
233
- var BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI";
232
+ var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjYiLCJnaXRfc2hhIjoiOGQ0MTI0MDRlYmQ0IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA4ZDQxMjQwNGViZDQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAzOjI4OjE4Ljk0NloifQ";
233
+ var BUILD_RELEASE_MANIFEST_SIGNATURE = "Otgiy3edVGT28Wb-c-n31uyBsZGKK_p7wnGc0YPoClM";
234
234
  var BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
235
235
 
236
236
  // ../../src/version.ts
package/dist/server.js CHANGED
@@ -7285,7 +7285,7 @@ var init_capture = __esm(async () => {
7285
7285
  });
7286
7286
 
7287
7287
  // ../../src/build-info.generated.ts
7288
- var BUILD_RELEASE_VERSION = "6.2.4", BUILD_GIT_SHA = "99ac8cb34838", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7288
+ var BUILD_RELEASE_VERSION = "6.2.6", BUILD_GIT_SHA = "8d412404ebd4", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjYiLCJnaXRfc2hhIjoiOGQ0MTI0MDRlYmQ0IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA4ZDQxMjQwNGViZDQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAzOjI4OjE4Ljk0NloifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "Otgiy3edVGT28Wb-c-n31uyBsZGKK_p7wnGc0YPoClM", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7289
7289
 
7290
7290
  // ../../src/version.ts
7291
7291
  import { createHash as createHash2 } from "crypto";
@@ -17817,8 +17817,21 @@ async function executeEndpoint(skill, endpoint, params = {}, projection, options
17817
17817
  } catch {}
17818
17818
  }
17819
17819
  result = await triggerAndIntercept(triggerUrl, endpoint.url_template, cookies, authHeaders);
17820
- strategy = "trigger-intercept";
17821
- workflowChosenStrategy = "trigger-intercept";
17820
+ const isSelfFetchableFirst = endpoint.method === "GET" && /\.(json)(\?|$)|\/api\//i.test(url);
17821
+ if (result.status === 0 && isSelfFetchableFirst) {
17822
+ log("exec", `trigger-intercept timed out; trying serverFetch for self-fetchable ${url}`);
17823
+ result = await serverFetch(workflowBindings?.extraHeaders, workflowBindings?.bodyOverride);
17824
+ if (result.status >= 200 && result.status < 400) {
17825
+ strategy = "server";
17826
+ workflowChosenStrategy = "server";
17827
+ } else {
17828
+ strategy = "trigger-intercept";
17829
+ workflowChosenStrategy = "trigger-intercept";
17830
+ }
17831
+ } else {
17832
+ strategy = "trigger-intercept";
17833
+ workflowChosenStrategy = "trigger-intercept";
17834
+ }
17822
17835
  } else {
17823
17836
  result = await withRetry(browserCall, (r) => isRetryableStatus(r.status));
17824
17837
  strategy = "browser";
@@ -17848,8 +17861,18 @@ async function executeEndpoint(skill, endpoint, params = {}, projection, options
17848
17861
  }
17849
17862
  log("exec", `using learned strategy trigger-intercept via ${triggerUrl}`);
17850
17863
  result = await triggerAndIntercept(triggerUrl, endpoint.url_template, cookies, authHeaders);
17851
- strategy = "trigger-intercept";
17852
- workflowChosenStrategy = "trigger-intercept";
17864
+ const isSelfFetchable = endpoint.method === "GET" && /\.(json)(\?|$)|\/api\//i.test(url);
17865
+ if (result.status === 0 && isSelfFetchable) {
17866
+ log("exec", `trigger-intercept timed out; trying serverFetch for self-fetchable ${url}`);
17867
+ result = await serverFetch(workflowBindings?.extraHeaders, workflowBindings?.bodyOverride);
17868
+ if (result.status >= 200 && result.status < 400) {
17869
+ strategy = "server";
17870
+ workflowChosenStrategy = "server";
17871
+ }
17872
+ } else {
17873
+ strategy = "trigger-intercept";
17874
+ workflowChosenStrategy = "trigger-intercept";
17875
+ }
17853
17876
  } else if (endpointStrategy === "browser") {
17854
17877
  if (shouldIgnoreLearnedBrowserStrategy(endpoint, url)) {
17855
17878
  result = await serverFetch(workflowBindings?.extraHeaders, workflowBindings?.bodyOverride);
@@ -17883,7 +17906,12 @@ async function executeEndpoint(skill, endpoint, params = {}, projection, options
17883
17906
  }
17884
17907
  } else {
17885
17908
  log("exec", `server fetch returned ${result.status}, falling back`);
17886
- if (endpoint.trigger_url && isSafe) {
17909
+ const isSelfFetchableNS = endpoint.method === "GET" && /\.(json)(\?|$)|\/api\//i.test(url);
17910
+ if (isSelfFetchableNS) {
17911
+ log("exec", `self-fetchable URL — keeping ${result.status} instead of waiting on trigger-intercept`);
17912
+ strategy = "server";
17913
+ workflowChosenStrategy = "server";
17914
+ } else if (endpoint.trigger_url && isSafe) {
17887
17915
  let triggerUrl = endpoint.trigger_url;
17888
17916
  if (Object.keys(mergedParams).length > 0) {
17889
17917
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unbrowse",
3
- "version": "6.2.4",
3
+ "version": "6.2.6",
4
4
  "description": "Reverse-engineer any website into reusable API skills. Zero-dep single binary with embedded browser engine.",
5
5
  "type": "module",
6
6
  "bin": {