unbrowse 3.6.0 → 3.7.0

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 = "3.6.0", BUILD_GIT_SHA = "d598e34517f7", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy42LjAiLCJnaXRfc2hhIjoiZDU5OGUzNDUxN2Y3IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBkNTk4ZTM0NTE3ZjciLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDIyOjU0OjE2LjkyNVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "QYlGIFDhKbCtaXoeeGCG8eJde-VnRFlXyNOJanZJ1Mk", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
34
+ var BUILD_RELEASE_VERSION = "3.7.0", BUILD_GIT_SHA = "051ddb5b3add", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy43LjAiLCJnaXRfc2hhIjoiMDUxZGRiNWIzYWRkIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUAwNTFkZGI1YjNhZGQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTEwVDAzOjA3OjU1Ljg4MloifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "TKsUZaH-T1iT7XTgsV8ykdoZDHQj05PQkkmGr0Yf3dQ", 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
@@ -225,11 +225,11 @@ import { dirname, join, parse } from "path";
225
225
  import { fileURLToPath as fileURLToPath2 } from "url";
226
226
 
227
227
  // ../../src/build-info.generated.ts
228
- var BUILD_RELEASE_VERSION = "3.6.0";
229
- var BUILD_GIT_SHA = "d598e34517f7";
228
+ var BUILD_RELEASE_VERSION = "3.7.0";
229
+ var BUILD_GIT_SHA = "051ddb5b3add";
230
230
  var BUILD_CODE_HASH = "5d9ebf619c61";
231
- var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy42LjAiLCJnaXRfc2hhIjoiZDU5OGUzNDUxN2Y3IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBkNTk4ZTM0NTE3ZjciLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDIyOjU0OjE2LjkyNVoifQ";
232
- var BUILD_RELEASE_MANIFEST_SIGNATURE = "QYlGIFDhKbCtaXoeeGCG8eJde-VnRFlXyNOJanZJ1Mk";
231
+ var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy43LjAiLCJnaXRfc2hhIjoiMDUxZGRiNWIzYWRkIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUAwNTFkZGI1YjNhZGQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTEwVDAzOjA3OjU1Ljg4MloifQ";
232
+ var BUILD_RELEASE_MANIFEST_SIGNATURE = "TKsUZaH-T1iT7XTgsV8ykdoZDHQj05PQkkmGr0Yf3dQ";
233
233
  var BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
234
234
 
235
235
  // ../../src/version.ts
package/dist/server.js CHANGED
@@ -7096,7 +7096,7 @@ var init_capture = __esm(async () => {
7096
7096
  });
7097
7097
 
7098
7098
  // ../../src/build-info.generated.ts
7099
- var BUILD_RELEASE_VERSION = "3.6.0", BUILD_GIT_SHA = "d598e34517f7", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy42LjAiLCJnaXRfc2hhIjoiZDU5OGUzNDUxN2Y3IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBkNTk4ZTM0NTE3ZjciLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDIyOjU0OjE2LjkyNVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "QYlGIFDhKbCtaXoeeGCG8eJde-VnRFlXyNOJanZJ1Mk", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7099
+ var BUILD_RELEASE_VERSION = "3.7.0", BUILD_GIT_SHA = "051ddb5b3add", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy43LjAiLCJnaXRfc2hhIjoiMDUxZGRiNWIzYWRkIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUAwNTFkZGI1YjNhZGQiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTEwVDAzOjA3OjU1Ljg4MloifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "TKsUZaH-T1iT7XTgsV8ykdoZDHQj05PQkkmGr0Yf3dQ", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7100
7100
 
7101
7101
  // ../../src/version.ts
7102
7102
  import { createHash } from "crypto";
@@ -19928,7 +19928,12 @@ function withContextReplayEndpoint(skill, intent, contextUrl) {
19928
19928
  ...skill,
19929
19929
  endpoints: [canonical, ...skill.endpoints]
19930
19930
  };
19931
- cachePublishedSkill(augmented);
19931
+ try {
19932
+ const existing = findExistingSkillForDomain(skill.domain);
19933
+ if (!existing || !existing.endpoints.some((ep) => ep.endpoint_id === canonical.endpoint_id)) {
19934
+ cachePublishedSkill(augmented);
19935
+ }
19936
+ } catch {}
19932
19937
  return augmented;
19933
19938
  }
19934
19939
  function isSearchLikeIntent(intent, contextUrl) {
@@ -22152,7 +22157,15 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
22152
22157
  continue;
22153
22158
  let endpointId = extractEndpointId(c.metadata) ?? undefined;
22154
22159
  if (endpointId && !skill.endpoints.some((ep) => ep.endpoint_id === endpointId)) {
22155
- endpointId = undefined;
22160
+ const vecUrl = c.metadata?.url_template;
22161
+ const urlMatch = vecUrl ? skill.endpoints.find((ep) => ep.url_template === vecUrl) : undefined;
22162
+ if (urlMatch) {
22163
+ console.log(`[marketplace] vecdb endpoint ${endpointId} stale → recovered via URL match: ${urlMatch.endpoint_id}`);
22164
+ endpointId = urlMatch.endpoint_id;
22165
+ } else {
22166
+ console.log(`[marketplace] vecdb endpoint ${endpointId} not found on skill ${skillId} — dropping to skill-level match`);
22167
+ endpointId = undefined;
22168
+ }
22156
22169
  }
22157
22170
  ranked.push({
22158
22171
  candidate: c,
@@ -27584,7 +27597,7 @@ var init_routes = __esm(async () => {
27584
27597
  ]);
27585
27598
  BETA_API_URL = process.env.UNBROWSE_BACKEND_URL || DEFAULT_BACKEND_URL;
27586
27599
  TRACES_DIR = process.env.TRACES_DIR ?? join17(process.cwd(), "traces");
27587
- BROWSE_BROKER_MAX = Math.max(1, Number(process.env.KURI_MULTI_BROKER_MAX ?? "2"));
27600
+ BROWSE_BROKER_MAX = Math.max(1, Number(process.env.KURI_MULTI_BROKER_MAX ?? "1"));
27588
27601
  BROWSE_BROKER_BASE_PORT = Number(process.env.KURI_PORT ?? "7700");
27589
27602
  browseSessions = new Map;
27590
27603
  STATS_CACHE_TTL = 5 * 60 * 1000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unbrowse",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
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": {
@@ -29,6 +29,8 @@
29
29
  "@fastify/rate-limit": "^10.3.0",
30
30
  "@cascade-fyi/splits-sdk": "^0.11.1",
31
31
  "@solana/kit": "^6.6.0",
32
+ "@x402/fetch": "^2.9.0",
33
+ "agentmail": "^0.4.18",
32
34
  "bs58": "^6.0.0",
33
35
  "cheerio": "^1.2.0",
34
36
  "dotenv": "^17.3.1",