screenhand 0.2.0 → 0.3.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/README.md +165 -446
- package/bin/darwin-arm64/macos-bridge +0 -0
- package/dist/mcp-desktop.js +3615 -400
- package/dist/scripts/export-help-center.js +112 -0
- package/dist/scripts/marketing-loop.js +117 -0
- package/dist/scripts/observer-daemon.js +288 -0
- package/dist/scripts/orchestrator-daemon.js +399 -0
- package/dist/scripts/threads-campaign.js +208 -0
- package/dist/src/community/fetcher.js +109 -0
- package/dist/src/community/index.js +6 -0
- package/dist/src/community/publisher.js +191 -0
- package/dist/src/community/remote-api.js +121 -0
- package/dist/src/community/types.js +3 -0
- package/dist/src/community/validator.js +95 -0
- package/dist/src/context-tracker.js +489 -0
- package/dist/src/ingestion/coverage-auditor.js +233 -0
- package/dist/src/ingestion/doc-parser.js +164 -0
- package/dist/src/ingestion/index.js +8 -0
- package/dist/src/ingestion/menu-scanner.js +152 -0
- package/dist/src/ingestion/reference-merger.js +186 -0
- package/dist/src/ingestion/shortcut-extractor.js +180 -0
- package/dist/src/ingestion/tutorial-extractor.js +170 -0
- package/dist/src/ingestion/types.js +3 -0
- package/dist/src/jobs/manager.js +82 -14
- package/dist/src/jobs/runner.js +138 -15
- package/dist/src/learning/engine.js +356 -0
- package/dist/src/learning/index.js +9 -0
- package/dist/src/learning/locator-policy.js +120 -0
- package/dist/src/learning/pattern-policy.js +89 -0
- package/dist/src/learning/recovery-policy.js +116 -0
- package/dist/src/learning/sensor-policy.js +115 -0
- package/dist/src/learning/timing-model.js +204 -0
- package/dist/src/learning/topology-policy.js +90 -0
- package/dist/src/learning/types.js +9 -0
- package/dist/src/logging/timeline-logger.js +4 -1
- package/dist/src/memory/playbook-seeds.js +200 -0
- package/dist/src/memory/recall.js +60 -8
- package/dist/src/memory/service.js +30 -5
- package/dist/src/memory/store.js +34 -5
- package/dist/src/native/bridge-client.js +253 -31
- package/dist/src/observer/state.js +199 -0
- package/dist/src/observer/types.js +43 -0
- package/dist/src/orchestrator/state.js +68 -0
- package/dist/src/orchestrator/types.js +22 -0
- package/dist/src/perception/ax-source.js +162 -0
- package/dist/src/perception/cdp-source.js +162 -0
- package/dist/src/perception/coordinator.js +771 -0
- package/dist/src/perception/frame-differ.js +287 -0
- package/dist/src/perception/index.js +22 -0
- package/dist/src/perception/manager.js +199 -0
- package/dist/src/perception/types.js +47 -0
- package/dist/src/perception/vision-source.js +399 -0
- package/dist/src/planner/deterministic.js +298 -0
- package/dist/src/planner/executor.js +870 -0
- package/dist/src/planner/goal-store.js +92 -0
- package/dist/src/planner/index.js +21 -0
- package/dist/src/planner/planner.js +520 -0
- package/dist/src/planner/tool-registry.js +71 -0
- package/dist/src/planner/types.js +22 -0
- package/dist/src/platform/explorer.js +213 -0
- package/dist/src/platform/help-center-markdown.js +527 -0
- package/dist/src/platform/learner.js +257 -0
- package/dist/src/playbook/engine.js +296 -11
- package/dist/src/playbook/mcp-recorder.js +204 -0
- package/dist/src/playbook/recorder.js +3 -2
- package/dist/src/playbook/runner.js +1 -1
- package/dist/src/playbook/store.js +139 -10
- package/dist/src/recovery/detectors.js +156 -0
- package/dist/src/recovery/engine.js +327 -0
- package/dist/src/recovery/index.js +20 -0
- package/dist/src/recovery/strategies.js +274 -0
- package/dist/src/recovery/types.js +20 -0
- package/dist/src/runtime/accessibility-adapter.js +55 -18
- package/dist/src/runtime/applescript-adapter.js +8 -2
- package/dist/src/runtime/cdp-chrome-adapter.js +1 -1
- package/dist/src/runtime/executor.js +23 -3
- package/dist/src/runtime/locator-cache.js +24 -2
- package/dist/src/runtime/service.js +59 -15
- package/dist/src/runtime/session-manager.js +4 -1
- package/dist/src/runtime/vision-adapter.js +2 -1
- package/dist/src/state/app-map-types.js +72 -0
- package/dist/src/state/app-map.js +1974 -0
- package/dist/src/state/entity-tracker.js +108 -0
- package/dist/src/state/fusion.js +96 -0
- package/dist/src/state/index.js +21 -0
- package/dist/src/state/ladder-generator.js +236 -0
- package/dist/src/state/persistence.js +156 -0
- package/dist/src/state/types.js +17 -0
- package/dist/src/state/world-model.js +1456 -0
- package/dist/src/util/atomic-write.js +19 -4
- package/dist/src/util/sanitize.js +146 -0
- package/dist-app-maps/com.figma.Desktop.json +959 -0
- package/dist-app-maps/com.hnc.Discord.json +1146 -0
- package/dist-app-maps/notion.id.json +2831 -0
- package/dist-playbooks/canva-screenhand-carousel.json +445 -0
- package/dist-playbooks/codex-desktop.json +76 -0
- package/dist-playbooks/competitor-research-stack.json +122 -0
- package/dist-playbooks/davinci-color-grade.json +153 -0
- package/dist-playbooks/davinci-edit-timeline.json +162 -0
- package/dist-playbooks/davinci-render.json +114 -0
- package/dist-playbooks/devto.json +52 -0
- package/dist-playbooks/discord.json +41 -0
- package/dist-playbooks/google-flow-create-project.json +59 -0
- package/dist-playbooks/google-flow-edit-image.json +90 -0
- package/dist-playbooks/google-flow-edit-video.json +90 -0
- package/dist-playbooks/google-flow-generate-image.json +68 -0
- package/dist-playbooks/google-flow-generate-video.json +191 -0
- package/dist-playbooks/google-flow-open-project.json +48 -0
- package/dist-playbooks/google-flow-open-scenebuilder.json +64 -0
- package/dist-playbooks/google-flow-search-assets.json +64 -0
- package/dist-playbooks/instagram.json +57 -0
- package/dist-playbooks/linkedin.json +52 -0
- package/dist-playbooks/n8n.json +43 -0
- package/dist-playbooks/reddit.json +52 -0
- package/dist-playbooks/threads.json +59 -0
- package/dist-playbooks/x-twitter.json +59 -0
- package/dist-playbooks/youtube.json +59 -0
- package/dist-references/canva.json +646 -0
- package/dist-references/codex-desktop.json +305 -0
- package/dist-references/davinci-resolve-keyboard.json +594 -0
- package/dist-references/davinci-resolve-menu-map.json +1139 -0
- package/dist-references/davinci-resolve-menus-batch1.json +116 -0
- package/dist-references/davinci-resolve-menus-batch2.json +372 -0
- package/dist-references/davinci-resolve-menus-batch3.json +330 -0
- package/dist-references/davinci-resolve-menus-batch4.json +297 -0
- package/dist-references/davinci-resolve-shortcuts.json +333 -0
- package/dist-references/devpost.json +186 -0
- package/dist-references/devto.json +317 -0
- package/dist-references/discord.json +549 -0
- package/dist-references/figma.json +1186 -0
- package/dist-references/finder.json +146 -0
- package/dist-references/google-ads-transparency.json +95 -0
- package/dist-references/google-flow.json +649 -0
- package/dist-references/instagram.json +341 -0
- package/dist-references/linkedin.json +324 -0
- package/dist-references/meta-ad-library.json +86 -0
- package/dist-references/n8n.json +387 -0
- package/dist-references/notes.json +27 -0
- package/dist-references/notion.json +163 -0
- package/dist-references/reddit.json +341 -0
- package/dist-references/threads.json +337 -0
- package/dist-references/x-twitter.json +403 -0
- package/dist-references/youtube.json +373 -0
- package/native/macos-bridge/Package.swift +22 -0
- package/native/macos-bridge/Sources/AccessibilityBridge.swift +482 -0
- package/native/macos-bridge/Sources/AppManagement.swift +339 -0
- package/native/macos-bridge/Sources/CoreGraphicsBridge.swift +537 -0
- package/native/macos-bridge/Sources/ObserverBridge.swift +120 -0
- package/native/macos-bridge/Sources/StreamCapture.swift +136 -0
- package/native/macos-bridge/Sources/VisionBridge.swift +238 -0
- package/native/macos-bridge/Sources/main.swift +498 -0
- package/native/windows-bridge/AppManagement.cs +234 -0
- package/native/windows-bridge/InputBridge.cs +436 -0
- package/native/windows-bridge/Program.cs +270 -0
- package/native/windows-bridge/ScreenCapture.cs +453 -0
- package/native/windows-bridge/UIAutomationBridge.cs +571 -0
- package/native/windows-bridge/WindowsBridge.csproj +17 -0
- package/package.json +12 -1
- package/scripts/postinstall.cjs +127 -0
- package/dist/.audit-log.jsonl +0 -55
- package/dist/.screenhand/memory/.lock +0 -1
- package/dist/.screenhand/memory/actions.jsonl +0 -85
- package/dist/.screenhand/memory/errors.jsonl +0 -5
- package/dist/.screenhand/memory/errors.jsonl.bak +0 -4
- package/dist/.screenhand/memory/state.json +0 -35
- package/dist/.screenhand/memory/state.json.bak +0 -35
- package/dist/.screenhand/memory/strategies.jsonl +0 -12
- package/dist/agent/cli.js +0 -73
- package/dist/agent/loop.js +0 -258
- package/dist/config.js +0 -9
- package/dist/index.js +0 -56
- package/dist/logging/timeline-logger.js +0 -29
- package/dist/mcp/mcp-stdio-server.js +0 -448
- package/dist/mcp/server.js +0 -347
- package/dist/mcp-entry.js +0 -59
- package/dist/memory/recall.js +0 -160
- package/dist/memory/research.js +0 -98
- package/dist/memory/seeds.js +0 -89
- package/dist/memory/session.js +0 -161
- package/dist/memory/store.js +0 -391
- package/dist/memory/types.js +0 -4
- package/dist/monitor/codex-monitor.js +0 -377
- package/dist/monitor/task-queue.js +0 -84
- package/dist/monitor/types.js +0 -49
- package/dist/native/bridge-client.js +0 -174
- package/dist/native/macos-bridge-client.js +0 -5
- package/dist/npm-publish-helper.js +0 -117
- package/dist/npm-token-cdp.js +0 -113
- package/dist/npm-token-create.js +0 -135
- package/dist/npm-token-finish.js +0 -126
- package/dist/playbook/engine.js +0 -193
- package/dist/playbook/index.js +0 -4
- package/dist/playbook/recorder.js +0 -519
- package/dist/playbook/runner.js +0 -392
- package/dist/playbook/store.js +0 -166
- package/dist/playbook/types.js +0 -4
- package/dist/runtime/accessibility-adapter.js +0 -377
- package/dist/runtime/app-adapter.js +0 -48
- package/dist/runtime/applescript-adapter.js +0 -283
- package/dist/runtime/ax-role-map.js +0 -80
- package/dist/runtime/browser-adapter.js +0 -36
- package/dist/runtime/cdp-chrome-adapter.js +0 -505
- package/dist/runtime/composite-adapter.js +0 -205
- package/dist/runtime/executor.js +0 -250
- package/dist/runtime/locator-cache.js +0 -12
- package/dist/runtime/planning-loop.js +0 -47
- package/dist/runtime/service.js +0 -372
- package/dist/runtime/session-manager.js +0 -28
- package/dist/runtime/state-observer.js +0 -105
- package/dist/runtime/vision-adapter.js +0 -208
- package/dist/test-mcp-protocol.js +0 -138
- package/dist/types.js +0 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* postinstall script — copies the correct prebuilt native bridge binary
|
|
6
|
+
* into bin/ so the MCP server can find it at runtime.
|
|
7
|
+
*
|
|
8
|
+
* If no prebuilt binary exists for this platform+arch, falls back to
|
|
9
|
+
* building from source (requires Swift on macOS / .NET on Windows).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const { execSync } = require("child_process");
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const path = require("path");
|
|
15
|
+
|
|
16
|
+
const platform = process.platform; // "darwin" | "win32" | "linux"
|
|
17
|
+
const arch = process.arch; // "arm64" | "x64"
|
|
18
|
+
const root = path.resolve(__dirname, "..");
|
|
19
|
+
|
|
20
|
+
// Where prebuilt binaries live in the npm package
|
|
21
|
+
const prebuiltDir = path.join(root, "bin", `${platform}-${arch}`);
|
|
22
|
+
|
|
23
|
+
// Where the bridge-client expects to find the binary at runtime
|
|
24
|
+
const runtimeDir = path.join(root, "bin");
|
|
25
|
+
|
|
26
|
+
function log(msg) {
|
|
27
|
+
console.log(`[screenhand] ${msg}`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function hasBinary() {
|
|
31
|
+
if (platform === "win32") {
|
|
32
|
+
return fs.existsSync(path.join(prebuiltDir, "windows-bridge.exe"));
|
|
33
|
+
}
|
|
34
|
+
return fs.existsSync(path.join(prebuiltDir, "macos-bridge"));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function buildFromSource() {
|
|
38
|
+
if (platform === "darwin") {
|
|
39
|
+
const swiftProject = path.join(root, "native", "macos-bridge");
|
|
40
|
+
if (!fs.existsSync(path.join(swiftProject, "Package.swift"))) {
|
|
41
|
+
log("No Swift source found — skipping native build.");
|
|
42
|
+
log("Desktop automation tools will not be available.");
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
log("Building native bridge from source (Swift)...");
|
|
46
|
+
try {
|
|
47
|
+
execSync("swift build -c release", {
|
|
48
|
+
cwd: swiftProject,
|
|
49
|
+
stdio: "inherit",
|
|
50
|
+
timeout: 120_000,
|
|
51
|
+
});
|
|
52
|
+
// Copy built binary to bin/
|
|
53
|
+
const built = path.join(
|
|
54
|
+
swiftProject,
|
|
55
|
+
".build",
|
|
56
|
+
`${arch}-apple-macosx`,
|
|
57
|
+
"release",
|
|
58
|
+
"macos-bridge"
|
|
59
|
+
);
|
|
60
|
+
if (!fs.existsSync(built)) {
|
|
61
|
+
// Try the generic release path
|
|
62
|
+
const genericBuilt = path.join(swiftProject, ".build", "release", "macos-bridge");
|
|
63
|
+
if (fs.existsSync(genericBuilt)) {
|
|
64
|
+
fs.mkdirSync(prebuiltDir, { recursive: true });
|
|
65
|
+
fs.copyFileSync(genericBuilt, path.join(prebuiltDir, "macos-bridge"));
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
log("Build succeeded but binary not found at expected path.");
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
fs.mkdirSync(prebuiltDir, { recursive: true });
|
|
72
|
+
fs.copyFileSync(built, path.join(prebuiltDir, "macos-bridge"));
|
|
73
|
+
return true;
|
|
74
|
+
} catch {
|
|
75
|
+
log("Swift build failed. Install Xcode Command Line Tools: xcode-select --install");
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (platform === "win32") {
|
|
81
|
+
const dotnetProject = path.join(root, "native", "windows-bridge");
|
|
82
|
+
if (!fs.existsSync(path.join(dotnetProject, "windows-bridge.csproj"))) {
|
|
83
|
+
log("No .NET source found — skipping native build.");
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
log("Building native bridge from source (.NET)...");
|
|
87
|
+
try {
|
|
88
|
+
execSync("dotnet build -c Release", {
|
|
89
|
+
cwd: dotnetProject,
|
|
90
|
+
stdio: "inherit",
|
|
91
|
+
timeout: 120_000,
|
|
92
|
+
});
|
|
93
|
+
const built = path.join(
|
|
94
|
+
dotnetProject,
|
|
95
|
+
"bin",
|
|
96
|
+
"Release",
|
|
97
|
+
"net8.0-windows",
|
|
98
|
+
"windows-bridge.exe"
|
|
99
|
+
);
|
|
100
|
+
if (fs.existsSync(built)) {
|
|
101
|
+
fs.mkdirSync(prebuiltDir, { recursive: true });
|
|
102
|
+
fs.copyFileSync(built, path.join(prebuiltDir, "windows-bridge.exe"));
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
} catch {
|
|
107
|
+
log(".NET build failed. Install .NET 8 SDK: https://dotnet.microsoft.com/download/dotnet/8.0");
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
log(`Unsupported platform: ${platform}. ScreenHand supports macOS and Windows.`);
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Main
|
|
117
|
+
if (hasBinary()) {
|
|
118
|
+
log(`Prebuilt binary found for ${platform}-${arch}.`);
|
|
119
|
+
} else {
|
|
120
|
+
log(`No prebuilt binary for ${platform}-${arch}. Attempting build from source...`);
|
|
121
|
+
if (buildFromSource()) {
|
|
122
|
+
log("Native bridge built successfully.");
|
|
123
|
+
} else {
|
|
124
|
+
log("Could not build native bridge. Some tools will be unavailable.");
|
|
125
|
+
log("You can build manually: npm run build:native");
|
|
126
|
+
}
|
|
127
|
+
}
|
package/dist/.audit-log.jsonl
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{"timestamp":"2026-03-06T14:27:11.635Z","tool":"browser_js","params":{"code":"(async () => {\n const queries = [{\"category\":\"AI Agents\",\"term\":\"ai\"},{\"category\":\"AI Agents\",\"term\":\"ai agents\"},{\"category\":\"AI Agents\",\"term\":\"mcp\"},{\"category\":\"AI Agents\",\"term\":\"llm\"},{\"category\":\"AI Agents\",\"term\":\"chatgpt\"},{\"category\":\"AI Agents\",\"term\":\"openai\"},{\"category\":\"AI Agents\",\"term\":\"anthropic\"},{\"category\":\"AI Agents\",\"term\":\"claude\"},{\"category\":\"AI Agents\",\"term\":\"cursor\"},{\"category\":\"AI Agents\",\"term\":\"codex\"},{\"category\":\"Automation\",\"term\":\"automation\"},{\"category","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":37887}
|
|
2
|
-
{"timestamp":"2026-03-06T14:28:23.008Z","tool":"browser_js","params":{"code":"(async () => {\n const queries = [{\"category\":\"AI Agents\",\"term\":\"ai\"},{\"category\":\"AI Agents\",\"term\":\"ai agents\"},{\"category\":\"AI Agents\",\"term\":\"agentic ai\"},{\"category\":\"AI Agents\",\"term\":\"mcp\"},{\"category\":\"AI Agents\",\"term\":\"llm\"},{\"category\":\"AI Agents\",\"term\":\"chatgpt\"},{\"category\":\"AI Agents\",\"term\":\"openai\"},{\"category\":\"AI Agents\",\"term\":\"anthropic\"},{\"category\":\"AI Agents\",\"term\":\"claude\"},{\"category\":\"AI Agents\",\"term\":\"cursor\"},{\"category\":\"AI Agents\",\"term\":\"codex\"},{\"category\"","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38091}
|
|
3
|
-
{"timestamp":"2026-03-06T14:30:01.255Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"ai\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const us","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
4
|
-
{"timestamp":"2026-03-06T14:30:02.874Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"ai agents\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n c","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
5
|
-
{"timestamp":"2026-03-06T14:30:03.877Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"agentic ai\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
6
|
-
{"timestamp":"2026-03-06T14:30:04.675Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"mcp\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const u","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
7
|
-
{"timestamp":"2026-03-06T14:30:05.747Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"llm\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const u","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
8
|
-
{"timestamp":"2026-03-06T14:30:07.033Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"chatgpt\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n con","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
9
|
-
{"timestamp":"2026-03-06T14:30:08.047Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"openai\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
10
|
-
{"timestamp":"2026-03-06T14:30:09.523Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"anthropic\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n c","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
11
|
-
{"timestamp":"2026-03-06T14:30:10.564Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"claude\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
12
|
-
{"timestamp":"2026-03-06T14:30:11.680Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"cursor\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
13
|
-
{"timestamp":"2026-03-06T14:30:12.719Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"codex\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
14
|
-
{"timestamp":"2026-03-06T14:30:13.794Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"genai\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
15
|
-
{"timestamp":"2026-03-06T14:30:14.797Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
16
|
-
{"timestamp":"2026-03-06T14:30:15.685Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"browser automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
17
|
-
{"timestamp":"2026-03-06T14:30:16.505Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"desktop automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
18
|
-
{"timestamp":"2026-03-06T14:30:17.787Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"workflow automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
19
|
-
{"timestamp":"2026-03-06T14:30:18.698Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"no code automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
20
|
-
{"timestamp":"2026-03-06T14:30:19.964Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"qa automation\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
21
|
-
{"timestamp":"2026-03-06T14:30:20.919Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"automation engineer\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
22
|
-
{"timestamp":"2026-03-06T14:30:21.911Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"selenium\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n co","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
23
|
-
{"timestamp":"2026-03-06T14:30:22.940Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"playwright\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
24
|
-
{"timestamp":"2026-03-06T14:30:24.157Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"zapier\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
25
|
-
{"timestamp":"2026-03-06T14:30:25.252Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"developer\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n c","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
26
|
-
{"timestamp":"2026-03-06T14:30:26.221Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"coding\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
27
|
-
{"timestamp":"2026-03-06T14:30:27.442Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"programming\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
28
|
-
{"timestamp":"2026-03-06T14:30:28.344Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"software engineer\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
29
|
-
{"timestamp":"2026-03-06T14:30:29.592Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"devtools\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n co","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
30
|
-
{"timestamp":"2026-03-06T14:30:30.615Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"developer tools\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
31
|
-
{"timestamp":"2026-03-06T14:30:31.536Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"javascript\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
32
|
-
{"timestamp":"2026-03-06T14:30:32.664Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"python\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
33
|
-
{"timestamp":"2026-03-06T14:30:33.962Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"react\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
34
|
-
{"timestamp":"2026-03-06T14:30:35.428Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"web development\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
35
|
-
{"timestamp":"2026-03-06T14:30:36.452Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"app development\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
36
|
-
{"timestamp":"2026-03-06T14:30:37.782Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"opensource\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
37
|
-
{"timestamp":"2026-03-06T14:30:39.196Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"startup\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n con","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
38
|
-
{"timestamp":"2026-03-06T14:30:40.343Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"startup founder\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
39
|
-
{"timestamp":"2026-03-06T14:30:41.572Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"founder\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n con","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
40
|
-
{"timestamp":"2026-03-06T14:30:42.596Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"saas\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n const ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
41
|
-
{"timestamp":"2026-03-06T14:30:43.825Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"build in public\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
42
|
-
{"timestamp":"2026-03-06T14:30:44.952Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"indie hacker\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
43
|
-
{"timestamp":"2026-03-06T14:30:46.078Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"indie hackers\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
44
|
-
{"timestamp":"2026-03-06T14:30:47.199Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"productivity\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
45
|
-
{"timestamp":"2026-03-06T14:30:48.154Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"growth\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
46
|
-
{"timestamp":"2026-03-06T14:30:49.356Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"product manager\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
47
|
-
{"timestamp":"2026-03-06T14:30:50.451Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"ai tools\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n co","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
48
|
-
{"timestamp":"2026-03-06T14:30:52.023Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"machine learning\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
49
|
-
{"timestamp":"2026-03-06T14:30:53.144Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"generative ai\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
50
|
-
{"timestamp":"2026-03-06T14:30:54.376Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"prompt engineering\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
51
|
-
{"timestamp":"2026-03-06T14:30:55.232Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"automation tools\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
52
|
-
{"timestamp":"2026-03-06T14:30:57.638Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"artificial intelligence\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
53
|
-
{"timestamp":"2026-03-06T14:30:59.901Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"productivity tools\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n ","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
54
|
-
{"timestamp":"2026-03-06T14:31:00.844Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"nocode\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n cons","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
55
|
-
{"timestamp":"2026-03-06T14:31:01.949Z","tool":"browser_js","params":{"code":"(async () => {\n const term = \"low code\";\n const endpoints = [\n '/api/v1/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term),\n '/web/search/topsearch/?context=blended&count=50&query=' + encodeURIComponent(term)\n ];\n for (const url of endpoints) {\n try {\n const res = await fetch(url, { credentials: 'include' });\n if (!res.ok) continue;\n const data = await res.json();\n co","tabId":"50A0E3A47A679D689B43FDB9E35FF819"},"pid":38325}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
16806
|