unbrowse 10.1.4 → 10.1.5
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/package.json +1 -1
- package/runtime/cli.js +72 -5
- package/runtime/mcp.js +76 -6
package/package.json
CHANGED
package/runtime/cli.js
CHANGED
|
@@ -64923,7 +64923,7 @@ var init_telemetry = __esm(() => {
|
|
|
64923
64923
|
});
|
|
64924
64924
|
|
|
64925
64925
|
// .tmp-runtime-src/build-info.generated.ts
|
|
64926
|
-
var BUILD_RELEASE_VERSION = "10.1.
|
|
64926
|
+
var BUILD_RELEASE_VERSION = "10.1.5", BUILD_GIT_SHA = "8eceb88fcef6", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMTAuMS41IiwiZ2l0X3NoYSI6IjhlY2ViODhmY2VmNiIsImNvZGVfaGFzaCI6IjVkOWViZjYxOWM2MSIsInRyYWNlX3ZlcnNpb24iOiI1ZDllYmY2MTljNjFAOGVjZWI4OGZjZWY2IiwiaXNzdWVkX2F0IjoiMjAyNi0wNi0yM1QxMDo1MTo0OC45MThaIn0", BUILD_RELEASE_MANIFEST_SIGNATURE = "O20RJ_2xTauDd3yWJFVqNsYakrh0Cfd67uJvkSxypBQ", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai", BUILD_DEFAULT_PROFILE = "";
|
|
64927
64927
|
|
|
64928
64928
|
// .tmp-runtime-src/version.ts
|
|
64929
64929
|
import { createHash as createHash8 } from "crypto";
|
|
@@ -199855,6 +199855,7 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
199855
199855
|
return null;
|
|
199856
199856
|
};
|
|
199857
199857
|
let directFetchCookieHeader = "";
|
|
199858
|
+
let directFetchCookiesAttached = 0;
|
|
199858
199859
|
try {
|
|
199859
199860
|
const dfHost = new URL(ctxUrl).hostname.replace(/^www\./, "");
|
|
199860
199861
|
const { extractBrowserCookies: extractBrowserCookies2 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
|
|
@@ -199865,6 +199866,7 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
199865
199866
|
return `${c.name}=${v}`;
|
|
199866
199867
|
}).filter((pair) => !pair.endsWith("=")).join("; ");
|
|
199867
199868
|
if (directFetchCookieHeader) {
|
|
199869
|
+
directFetchCookiesAttached = directFetchCookieHeader.split("; ").filter(Boolean).length;
|
|
199868
199870
|
console.log(`[direct-fetch] ${ctxUrl} attaching ${dfCookies.length} browser cookie(s) for ${dfHost} on native fetch`);
|
|
199869
199871
|
}
|
|
199870
199872
|
}
|
|
@@ -199986,7 +199988,8 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
199986
199988
|
trace: trace2,
|
|
199987
199989
|
source: "direct-fetch",
|
|
199988
199990
|
skill: undefined,
|
|
199989
|
-
timing: t
|
|
199991
|
+
timing: t,
|
|
199992
|
+
...directFetchCookiesAttached > 0 ? { cookies_injected: directFetchCookiesAttached } : {}
|
|
199990
199993
|
};
|
|
199991
199994
|
}
|
|
199992
199995
|
} else if (directRes.status === 403 || directRes.status === 429 || directRes.status === 503) {
|
|
@@ -293992,6 +293995,7 @@ async function handler14(parsed, opts) {
|
|
|
293992
293995
|
const conn = wsEndpoint ? await attach(wsEndpoint) : await spawnChrome({ headless: true, perContextProxy: false, persist: true });
|
|
293993
293996
|
const target = await createTarget(conn, url, {});
|
|
293994
293997
|
let cookiesInjected = 0;
|
|
293998
|
+
let injectedCookies = [];
|
|
293995
293999
|
try {
|
|
293996
294000
|
const { shouldImportBrowserCookies: shouldImportBrowserCookies2 } = await init_auth().then(() => exports_auth);
|
|
293997
294001
|
if (shouldImportBrowserCookies2()) {
|
|
@@ -293999,6 +294003,7 @@ async function handler14(parsed, opts) {
|
|
|
293999
294003
|
const { findBestBrowserSession: findBestBrowserSession3, extractBrowserCookies: extractBrowserCookies3 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
|
|
294000
294004
|
const best = findBestBrowserSession3(host);
|
|
294001
294005
|
const cookies = best?.cookies ?? extractBrowserCookies3(host).cookies;
|
|
294006
|
+
injectedCookies = cookies.map((c) => ({ name: c.name, value: c.value }));
|
|
294002
294007
|
if (cookies.length > 0) {
|
|
294003
294008
|
const toCdpSameSite = (s) => {
|
|
294004
294009
|
const v = (s ?? "").toLowerCase();
|
|
@@ -294052,6 +294057,44 @@ async function handler14(parsed, opts) {
|
|
|
294052
294057
|
process.stderr.write(`[page] act go: body read skipped: ${readErr instanceof Error ? readErr.message : String(readErr)}
|
|
294053
294058
|
`);
|
|
294054
294059
|
}
|
|
294060
|
+
const decodesToJsonRecord = (s) => {
|
|
294061
|
+
if (!s)
|
|
294062
|
+
return false;
|
|
294063
|
+
const t = s.trim();
|
|
294064
|
+
if (!(t.startsWith("{") || t.startsWith("[")))
|
|
294065
|
+
return false;
|
|
294066
|
+
try {
|
|
294067
|
+
const v = JSON.parse(t);
|
|
294068
|
+
return v !== null && typeof v === "object";
|
|
294069
|
+
} catch {
|
|
294070
|
+
return false;
|
|
294071
|
+
}
|
|
294072
|
+
};
|
|
294073
|
+
if (!decodesToJsonRecord(pageText) && injectedCookies.length > 0) {
|
|
294074
|
+
try {
|
|
294075
|
+
const cookieHeader = injectedCookies.map((c) => {
|
|
294076
|
+
const v = c.value.startsWith('"') && c.value.endsWith('"') ? c.value.slice(1, -1) : c.value;
|
|
294077
|
+
return `${c.name}=${v}`;
|
|
294078
|
+
}).join("; ");
|
|
294079
|
+
const ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
|
294080
|
+
const res = await fetch(url, {
|
|
294081
|
+
headers: { Cookie: cookieHeader, "User-Agent": ua, Accept: "application/json" },
|
|
294082
|
+
signal: AbortSignal.timeout(1e4)
|
|
294083
|
+
});
|
|
294084
|
+
const directBody = await res.text();
|
|
294085
|
+
if (decodesToJsonRecord(directBody)) {
|
|
294086
|
+
pageText = directBody.slice(0, 200000);
|
|
294087
|
+
process.stderr.write(`[auth] act go: navigated body unstructured/walled; supplemented page.text from authenticated direct fetch (status ${res.status}, ${directBody.length} bytes)
|
|
294088
|
+
`);
|
|
294089
|
+
} else {
|
|
294090
|
+
process.stderr.write(`[auth] act go: direct-fetch supplement skipped — body not a JSON record (status ${res.status})
|
|
294091
|
+
`);
|
|
294092
|
+
}
|
|
294093
|
+
} catch (directErr) {
|
|
294094
|
+
process.stderr.write(`[auth] act go: direct-fetch supplement failed: ${directErr instanceof Error ? directErr.message : String(directErr)}
|
|
294095
|
+
`);
|
|
294096
|
+
}
|
|
294097
|
+
}
|
|
294055
294098
|
let captcha;
|
|
294056
294099
|
if (parsed.flags.solve === true || process.env.UNBROWSE_AUTO_SOLVE === "1") {
|
|
294057
294100
|
const { clearCaptchaInRender: clearCaptchaInRender2 } = await Promise.resolve().then(() => (init_captcha_render(), exports_captcha_render));
|
|
@@ -304859,6 +304902,30 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
304859
304902
|
run_plan: runPlan
|
|
304860
304903
|
};
|
|
304861
304904
|
}
|
|
304905
|
+
const isActGoNavigateVariant = (() => {
|
|
304906
|
+
const i = (intent ?? "").trim().toLowerCase();
|
|
304907
|
+
return i === "act go" || i === "go" || i === "act read" || i === "read";
|
|
304908
|
+
})();
|
|
304909
|
+
function mirrorNavigateBodyToPage(result) {
|
|
304910
|
+
if (!isActGoNavigateVariant)
|
|
304911
|
+
return result;
|
|
304912
|
+
if ("page" in result)
|
|
304913
|
+
return result;
|
|
304914
|
+
if (result.source !== "direct-fetch")
|
|
304915
|
+
return result;
|
|
304916
|
+
const body = result.result;
|
|
304917
|
+
if (body === null || typeof body !== "object")
|
|
304918
|
+
return result;
|
|
304919
|
+
let text3;
|
|
304920
|
+
try {
|
|
304921
|
+
text3 = JSON.stringify(body);
|
|
304922
|
+
} catch {
|
|
304923
|
+
return result;
|
|
304924
|
+
}
|
|
304925
|
+
if (!text3)
|
|
304926
|
+
return result;
|
|
304927
|
+
return { ...result, page: { text: text3.slice(0, 200000) } };
|
|
304928
|
+
}
|
|
304862
304929
|
function endpointsDiscovered(result) {
|
|
304863
304930
|
if (typeof result.endpoints_discovered === "number")
|
|
304864
304931
|
return result.endpoints_discovered;
|
|
@@ -304969,11 +305036,11 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
304969
305036
|
return;
|
|
304970
305037
|
}
|
|
304971
305038
|
if (isResolveSuccessResult(result)) {
|
|
304972
|
-
output(decorate(result), !!flags.pretty);
|
|
305039
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
304973
305040
|
return;
|
|
304974
305041
|
}
|
|
304975
305042
|
if (!shouldIndexFallback(result)) {
|
|
304976
|
-
output(decorate(result), !!flags.pretty);
|
|
305043
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
304977
305044
|
return;
|
|
304978
305045
|
}
|
|
304979
305046
|
if (flags["no-index"]) {
|
|
@@ -304999,7 +305066,7 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
304999
305066
|
if (!captureLooksThin(capture)) {
|
|
305000
305067
|
result = await resolveStep("after_index");
|
|
305001
305068
|
if (isResolveSuccessResult(result)) {
|
|
305002
|
-
output(decorate(result), !!flags.pretty);
|
|
305069
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
305003
305070
|
return;
|
|
305004
305071
|
}
|
|
305005
305072
|
if (resolveResultError(result) === "auth_required") {
|
package/runtime/mcp.js
CHANGED
|
@@ -101443,7 +101443,7 @@ async function mergedAuthHeaders(key, signer) {
|
|
|
101443
101443
|
var AUTH_DOMAIN = "unbrowse-auth:v1";
|
|
101444
101444
|
|
|
101445
101445
|
// .tmp-runtime-src/build-info.generated.ts
|
|
101446
|
-
var BUILD_RELEASE_VERSION = "10.1.
|
|
101446
|
+
var BUILD_RELEASE_VERSION = "10.1.5", BUILD_GIT_SHA = "8eceb88fcef6", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMTAuMS41IiwiZ2l0X3NoYSI6IjhlY2ViODhmY2VmNiIsImNvZGVfaGFzaCI6IjVkOWViZjYxOWM2MSIsInRyYWNlX3ZlcnNpb24iOiI1ZDllYmY2MTljNjFAOGVjZWI4OGZjZWY2IiwiaXNzdWVkX2F0IjoiMjAyNi0wNi0yM1QxMDo1MTo0OC45MThaIn0", BUILD_RELEASE_MANIFEST_SIGNATURE = "O20RJ_2xTauDd3yWJFVqNsYakrh0Cfd67uJvkSxypBQ", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai", BUILD_DEFAULT_PROFILE = "";
|
|
101447
101447
|
|
|
101448
101448
|
// .tmp-runtime-src/version.ts
|
|
101449
101449
|
import { createHash as createHash6 } from "crypto";
|
|
@@ -196992,6 +196992,7 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
196992
196992
|
return null;
|
|
196993
196993
|
};
|
|
196994
196994
|
let directFetchCookieHeader = "";
|
|
196995
|
+
let directFetchCookiesAttached = 0;
|
|
196995
196996
|
try {
|
|
196996
196997
|
const dfHost = new URL(ctxUrl).hostname.replace(/^www\./, "");
|
|
196997
196998
|
const { extractBrowserCookies: extractBrowserCookies2 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
|
|
@@ -197002,6 +197003,7 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
197002
197003
|
return `${c.name}=${v}`;
|
|
197003
197004
|
}).filter((pair) => !pair.endsWith("=")).join("; ");
|
|
197004
197005
|
if (directFetchCookieHeader) {
|
|
197006
|
+
directFetchCookiesAttached = directFetchCookieHeader.split("; ").filter(Boolean).length;
|
|
197005
197007
|
console.log(`[direct-fetch] ${ctxUrl} attaching ${dfCookies.length} browser cookie(s) for ${dfHost} on native fetch`);
|
|
197006
197008
|
}
|
|
197007
197009
|
}
|
|
@@ -197123,7 +197125,8 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
|
|
|
197123
197125
|
trace: trace2,
|
|
197124
197126
|
source: "direct-fetch",
|
|
197125
197127
|
skill: undefined,
|
|
197126
|
-
timing: t
|
|
197128
|
+
timing: t,
|
|
197129
|
+
...directFetchCookiesAttached > 0 ? { cookies_injected: directFetchCookiesAttached } : {}
|
|
197127
197130
|
};
|
|
197128
197131
|
}
|
|
197129
197132
|
} else if (directRes.status === 403 || directRes.status === 429 || directRes.status === 503) {
|
|
@@ -286020,6 +286023,7 @@ async function handler14(parsed, opts) {
|
|
|
286020
286023
|
const conn = wsEndpoint ? await attach(wsEndpoint) : await spawnChrome({ headless: true, perContextProxy: false, persist: true });
|
|
286021
286024
|
const target = await createTarget(conn, url, {});
|
|
286022
286025
|
let cookiesInjected = 0;
|
|
286026
|
+
let injectedCookies = [];
|
|
286023
286027
|
try {
|
|
286024
286028
|
const { shouldImportBrowserCookies: shouldImportBrowserCookies2 } = await init_auth().then(() => exports_auth);
|
|
286025
286029
|
if (shouldImportBrowserCookies2()) {
|
|
@@ -286027,6 +286031,7 @@ async function handler14(parsed, opts) {
|
|
|
286027
286031
|
const { findBestBrowserSession: findBestBrowserSession2, extractBrowserCookies: extractBrowserCookies2 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
|
|
286028
286032
|
const best = findBestBrowserSession2(host);
|
|
286029
286033
|
const cookies = best?.cookies ?? extractBrowserCookies2(host).cookies;
|
|
286034
|
+
injectedCookies = cookies.map((c) => ({ name: c.name, value: c.value }));
|
|
286030
286035
|
if (cookies.length > 0) {
|
|
286031
286036
|
const toCdpSameSite = (s) => {
|
|
286032
286037
|
const v = (s ?? "").toLowerCase();
|
|
@@ -286080,6 +286085,44 @@ async function handler14(parsed, opts) {
|
|
|
286080
286085
|
process.stderr.write(`[page] act go: body read skipped: ${readErr instanceof Error ? readErr.message : String(readErr)}
|
|
286081
286086
|
`);
|
|
286082
286087
|
}
|
|
286088
|
+
const decodesToJsonRecord = (s) => {
|
|
286089
|
+
if (!s)
|
|
286090
|
+
return false;
|
|
286091
|
+
const t = s.trim();
|
|
286092
|
+
if (!(t.startsWith("{") || t.startsWith("[")))
|
|
286093
|
+
return false;
|
|
286094
|
+
try {
|
|
286095
|
+
const v = JSON.parse(t);
|
|
286096
|
+
return v !== null && typeof v === "object";
|
|
286097
|
+
} catch {
|
|
286098
|
+
return false;
|
|
286099
|
+
}
|
|
286100
|
+
};
|
|
286101
|
+
if (!decodesToJsonRecord(pageText) && injectedCookies.length > 0) {
|
|
286102
|
+
try {
|
|
286103
|
+
const cookieHeader = injectedCookies.map((c) => {
|
|
286104
|
+
const v = c.value.startsWith('"') && c.value.endsWith('"') ? c.value.slice(1, -1) : c.value;
|
|
286105
|
+
return `${c.name}=${v}`;
|
|
286106
|
+
}).join("; ");
|
|
286107
|
+
const ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
|
286108
|
+
const res = await fetch(url, {
|
|
286109
|
+
headers: { Cookie: cookieHeader, "User-Agent": ua, Accept: "application/json" },
|
|
286110
|
+
signal: AbortSignal.timeout(1e4)
|
|
286111
|
+
});
|
|
286112
|
+
const directBody = await res.text();
|
|
286113
|
+
if (decodesToJsonRecord(directBody)) {
|
|
286114
|
+
pageText = directBody.slice(0, 200000);
|
|
286115
|
+
process.stderr.write(`[auth] act go: navigated body unstructured/walled; supplemented page.text from authenticated direct fetch (status ${res.status}, ${directBody.length} bytes)
|
|
286116
|
+
`);
|
|
286117
|
+
} else {
|
|
286118
|
+
process.stderr.write(`[auth] act go: direct-fetch supplement skipped — body not a JSON record (status ${res.status})
|
|
286119
|
+
`);
|
|
286120
|
+
}
|
|
286121
|
+
} catch (directErr) {
|
|
286122
|
+
process.stderr.write(`[auth] act go: direct-fetch supplement failed: ${directErr instanceof Error ? directErr.message : String(directErr)}
|
|
286123
|
+
`);
|
|
286124
|
+
}
|
|
286125
|
+
}
|
|
286083
286126
|
let captcha;
|
|
286084
286127
|
if (parsed.flags.solve === true || process.env.UNBROWSE_AUTO_SOLVE === "1") {
|
|
286085
286128
|
const { clearCaptchaInRender: clearCaptchaInRender2 } = await Promise.resolve().then(() => (init_captcha_render(), exports_captcha_render));
|
|
@@ -297050,6 +297093,30 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
297050
297093
|
run_plan: runPlan
|
|
297051
297094
|
};
|
|
297052
297095
|
}
|
|
297096
|
+
const isActGoNavigateVariant = (() => {
|
|
297097
|
+
const i = (intent ?? "").trim().toLowerCase();
|
|
297098
|
+
return i === "act go" || i === "go" || i === "act read" || i === "read";
|
|
297099
|
+
})();
|
|
297100
|
+
function mirrorNavigateBodyToPage(result) {
|
|
297101
|
+
if (!isActGoNavigateVariant)
|
|
297102
|
+
return result;
|
|
297103
|
+
if ("page" in result)
|
|
297104
|
+
return result;
|
|
297105
|
+
if (result.source !== "direct-fetch")
|
|
297106
|
+
return result;
|
|
297107
|
+
const body = result.result;
|
|
297108
|
+
if (body === null || typeof body !== "object")
|
|
297109
|
+
return result;
|
|
297110
|
+
let text3;
|
|
297111
|
+
try {
|
|
297112
|
+
text3 = JSON.stringify(body);
|
|
297113
|
+
} catch {
|
|
297114
|
+
return result;
|
|
297115
|
+
}
|
|
297116
|
+
if (!text3)
|
|
297117
|
+
return result;
|
|
297118
|
+
return { ...result, page: { text: text3.slice(0, 200000) } };
|
|
297119
|
+
}
|
|
297053
297120
|
function endpointsDiscovered(result) {
|
|
297054
297121
|
if (typeof result.endpoints_discovered === "number")
|
|
297055
297122
|
return result.endpoints_discovered;
|
|
@@ -297160,11 +297227,11 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
297160
297227
|
return;
|
|
297161
297228
|
}
|
|
297162
297229
|
if (isResolveSuccessResult(result)) {
|
|
297163
|
-
output(decorate(result), !!flags.pretty);
|
|
297230
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
297164
297231
|
return;
|
|
297165
297232
|
}
|
|
297166
297233
|
if (!shouldIndexFallback(result)) {
|
|
297167
|
-
output(decorate(result), !!flags.pretty);
|
|
297234
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
297168
297235
|
return;
|
|
297169
297236
|
}
|
|
297170
297237
|
if (flags["no-index"]) {
|
|
@@ -297190,7 +297257,7 @@ async function cmdRun(args, flags, verb = "run") {
|
|
|
297190
297257
|
if (!captureLooksThin(capture)) {
|
|
297191
297258
|
result = await resolveStep("after_index");
|
|
297192
297259
|
if (isResolveSuccessResult(result)) {
|
|
297193
|
-
output(decorate(result), !!flags.pretty);
|
|
297260
|
+
output(decorate(mirrorNavigateBodyToPage(result)), !!flags.pretty);
|
|
297194
297261
|
return;
|
|
297195
297262
|
}
|
|
297196
297263
|
if (resolveResultError(result) === "auth_required") {
|
|
@@ -304279,6 +304346,7 @@ async function resolveAndExecute2(intent, params = {}, context, projection, opti
|
|
|
304279
304346
|
return null;
|
|
304280
304347
|
};
|
|
304281
304348
|
let directFetchCookieHeader = "";
|
|
304349
|
+
let directFetchCookiesAttached = 0;
|
|
304282
304350
|
try {
|
|
304283
304351
|
const dfHost = new URL(ctxUrl).hostname.replace(/^www\./, "");
|
|
304284
304352
|
const { extractBrowserCookies: extractBrowserCookies3 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
|
|
@@ -304289,6 +304357,7 @@ async function resolveAndExecute2(intent, params = {}, context, projection, opti
|
|
|
304289
304357
|
return `${c.name}=${v}`;
|
|
304290
304358
|
}).filter((pair) => !pair.endsWith("=")).join("; ");
|
|
304291
304359
|
if (directFetchCookieHeader) {
|
|
304360
|
+
directFetchCookiesAttached = directFetchCookieHeader.split("; ").filter(Boolean).length;
|
|
304292
304361
|
console.log(`[direct-fetch] ${ctxUrl} attaching ${dfCookies.length} browser cookie(s) for ${dfHost} on native fetch`);
|
|
304293
304362
|
}
|
|
304294
304363
|
}
|
|
@@ -304410,7 +304479,8 @@ async function resolveAndExecute2(intent, params = {}, context, projection, opti
|
|
|
304410
304479
|
trace: trace2,
|
|
304411
304480
|
source: "direct-fetch",
|
|
304412
304481
|
skill: undefined,
|
|
304413
|
-
timing: t
|
|
304482
|
+
timing: t,
|
|
304483
|
+
...directFetchCookiesAttached > 0 ? { cookies_injected: directFetchCookiesAttached } : {}
|
|
304414
304484
|
};
|
|
304415
304485
|
}
|
|
304416
304486
|
} else if (directRes.status === 403 || directRes.status === 429 || directRes.status === 503) {
|