github TypeScript re-analysis due

robhunter/agentdeals

github

MCP server aggregating free tiers, startup credits & developer tool deals. 4 tools, 54 categories, 1,525+ offers.

maintainer
robhunter
licence
MIT
first seen
2026-06-04
last seen
2026-09-17
releases · 30d
0
short id

Drift inferred · capture-to-capture

tool count over time

06-13 10:36 now
22t
4t
capabilities 5 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 5 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • compare_vendors
  • get_referral_code
  • plan_stack
  • search_deals
  • track_changes
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 6981e8e · analyzer v33 · 1w ago

skills & prompt files 4

danger signals2

code evidence vv0.3.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 564

filesystem 215

  • fs robhunter-agentdeals-6981e8e/packages/github-action/index.cjs :4 const fs = require("fs");
  • fs (weak) robhunter-agentdeals-6981e8e/packages/github-action/index.test.cjs :3 const fs = require("fs");
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/add-badge-subject-changes.js :2 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/add-badge-subject-records.js :2 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/aggregator-source-audit.js :3 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/backfill-change-date-sources.js :3 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/backfill-change-recorded-dates.js :3 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/bare-root-pricing-audit.js :3 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/baseline-report.js :3 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1067-tier-prices.mjs :1 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1124-rendered-reads.mjs :3 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1147.mjs :1 import fs from "node:fs";
show 28 more
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1235-surfaces.mjs :2 import { writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1282-resolution-markers.mjs :1 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1297-faq-absence-claims.mjs :1 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1301-free-tier-claims.mjs :1 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1421-lede-truncation.mjs :1 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1424-superseding-readings.mjs :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1495-removal-records.mjs :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1500-host-restated.mjs :3 import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/census-1517-retracted-rereads.mjs :3 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/change-log.js :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/change-refusals.js :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/change-summary-audit.js :3 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/check-change-log-staleness.js :3 import { appendFileSync, readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/check-liveness.js :3 import { readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/check-mutation-targets.mjs :1 import { readFileSync, readdirSync, existsSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/check-pricing-changes.js :3 import { readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/check-staleness.js :3 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/correct-1495-removal-records.mjs :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/curated-alternatives-queue.js :1 import { readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/demo-1327.mjs :2 import { copyFileSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1020.mjs :3 import { readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1039.mjs :4 import { readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1056.mjs :3 import { mkdtempSync, rmSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1074.mjs :3 import { mkdtempSync, rmSync, readFileSync, writeFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1087.mjs :3 import { mkdtempSync, writeFileSync, readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1101.mjs :3 import { mkdtempSync, writeFileSync, readFileSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1107.mjs :3 import { mkdtempSync, readFileSync, writeFileSync, rmSync } from "node:fs";
  • fs (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1109.mjs :3 import { mkdtempSync, readFileSync, writeFileSync, rmSync } from "node:fs";

175 more not shown — this panel samples each group; the count above is the real total.

shell / exec 200

  • shell (weak) robhunter-agentdeals-6981e8e/scripts/backfill-change-recorded-dates.js :4 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/census-1235-surfaces.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/census-1256-provenance.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/census-1308-citation-url.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/check-change-log-staleness.js :6 import { spawnSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/demo-1327.mjs :1 import { spawnSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1024.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1029.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1039.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1052-vendors.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1052.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1056.mjs :2 import { spawn } from "node:child_process";
show 28 more
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1074.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1087.mjs :6 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1098.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1101.mjs :6 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1121.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1122.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1145.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163-split.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1164.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1269.mjs :1 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/faq-figure-audit.js :4 import { spawn } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/ingest-startup-deals.ts :6 import { execSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1150-contracts.mjs :2 import { execSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1150.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1220-tests.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1220.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1264.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1327.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1335.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1343.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1405.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1407.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1409.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1412.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1415.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1434.mjs :2 import { execFileSync } from "node:child_process";
  • shell (weak) robhunter-agentdeals-6981e8e/scripts/mutate-1442.mjs :2 import { execFileSync } from "node:child_process";

160 more not shown — this panel samples each group; the count above is the real total.

network 196

  • net robhunter-agentdeals-6981e8e/packages/github-action/index.cjs :6 const https = require("https");
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1147.mjs :41 const res = await fetch(`${base}/vendor/${s}`, { redirect: "manual" });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1235-surfaces.mjs :34 const html = await (await fetch(`${base}/vendor/${slug}`)).text();
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1256-provenance.mjs :24 const init = await fetch(`${base}/mcp`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1282-resolution-markers.mjs :28 const res = await fetch(`${BASE}${p}`);
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1297-faq-absence-claims.mjs :22 const res = await fetch(`${BASE}${path}`, { headers: { "user-agent": "curl/8.0" } });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1301-free-tier-claims.mjs :13 const res = await fetch(base + pathname, { redirect: "follow" });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1308-citation-url.mjs :24 const init = await fetch(`${base}/mcp`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1421-lede-truncation.mjs :25 const res = await fetch(url, { redirect: "follow", headers: { "user-agent": "agentdeals-census" } });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1424-superseding-readings.mjs :64 const res = await fetch(url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/census-1495-removal-records.mjs :28 const response = await fetch(url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/check-liveness.js :57 const res = await fetch(url, {
show 28 more
  • net (weak) robhunter-agentdeals-6981e8e/scripts/check-pricing-changes.js :39 const res = await fetch(url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/check-search-nofollow.js :8 const res = await fetch(url, { headers: { "User-Agent": UA } });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1024.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1029.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1039.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1052-vendors.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1052.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1056.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1074.mjs :1 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1087.mjs :2 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1098.mjs :50 const response = await fetch(`${base}/mcp`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1101.mjs :2 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1121.mjs :82 const res = await fetch(`http://localhost:${port}${p}`, { redirect: "manual" });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1122.mjs :63 const res = await fetch(`http://localhost:${port}${p}`);
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1145.mjs :26 const res = await fetch(`http://localhost:${port}${route}`, { headers: { "user-agent": "agentdeals-internal/1.0 (sweep-1145)" } });
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163-split.mjs :2 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163.mjs :2 import { createServer } from "node:http";
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1164.mjs :41 fetch(`${base}${route}`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1166.mjs :13 const res = await fetch(`${BASE}${path}`);
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1185.mjs :7 const response = await fetch(`${base}${path}`);
  • net (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1269.mjs :39 const init = await fetch(`${base}/mcp`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/faq-figure-audit.js :57 const res = await fetch(`http://localhost:${port}${p}`);
  • net (weak) robhunter-agentdeals-6981e8e/scripts/ingest-startup-deals.ts :312 const resp = await fetch(entry.url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/monitor-pricing.js :41 const res = await fetch(url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/parse-free-for-dev.ts :241 const resp = await fetch(entry.url, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/prose-record-crosscheck.js :34 const body = await (await fetch(`${base}${sitemap}`)).text();
  • net (weak) robhunter-agentdeals-6981e8e/scripts/publish-llm-api-index.js :49 const response = await fetch(`${API}${route}`, {
  • net (weak) robhunter-agentdeals-6981e8e/scripts/report-quality-budgets.js :97 const html = await fetch(`http://localhost:${server.port}${page.path}`).then(r => r.text());

156 more not shown — this panel samples each group; the count above is the real total.

secrets 11

  • secrets robhunter-agentdeals-6981e8e/packages/github-action/index.cjs :227 const token = process.env.GITHUB_TOKEN;
  • secrets robhunter-agentdeals-6981e8e/src/serve.ts :150 const INDEXNOW_KEY = process.env.INDEXNOW_KEY ?? "";
  • secrets robhunter-agentdeals-6981e8e/src/stats.ts :60 return !!(process.env.UPSTASH_REDIS_REST_URL && process.env.UPSTASH_REDIS_REST_TOKEN);
  • secrets robhunter-agentdeals-6981e8e/src/vendor-series.ts :7 const expected = process.env.ANALYTICS_EXPORT_TOKEN;
  • secrets (weak) robhunter-agentdeals-6981e8e/test/session-series.test.ts :106 process.env.UPSTASH_REDIS_REST_TOKEN = "stub-token";
  • secrets (weak) robhunter-agentdeals-6981e8e/test/stats-telemetry.test.ts :72 process.env.UPSTASH_REDIS_REST_TOKEN = "stub-token";
  • secrets (weak) robhunter-agentdeals-6981e8e/test/stats.test.ts :298 const originalToken = process.env.UPSTASH_REDIS_REST_TOKEN;
  • secrets (weak) robhunter-agentdeals-6981e8e/test/telemetry-command-budget.test.ts :149 process.env.UPSTASH_REDIS_REST_TOKEN = "stub-token";
  • secrets (weak) robhunter-agentdeals-6981e8e/test/telemetry.test.ts :218 delete process.env.UPSTASH_REDIS_REST_TOKEN;
  • secrets (weak) robhunter-agentdeals-6981e8e/test/traffic-attribution.test.ts :127 process.env.UPSTASH_REDIS_REST_TOKEN = "stub-token";
  • secrets (weak) robhunter-agentdeals-6981e8e/test/vendor-series.test.ts :370 delete process.env.ANALYTICS_EXPORT_TOKEN;

tool registrations 10

  • search_deals robhunter-agentdeals-6981e8e/src/server-remote.ts :86
  • plan_stack robhunter-agentdeals-6981e8e/src/server-remote.ts :178
  • compare_vendors robhunter-agentdeals-6981e8e/src/server-remote.ts :220
  • track_changes robhunter-agentdeals-6981e8e/src/server-remote.ts :275
  • get_referral_code robhunter-agentdeals-6981e8e/src/server-remote.ts :338
  • search_deals robhunter-agentdeals-6981e8e/src/server.ts :62
  • plan_stack robhunter-agentdeals-6981e8e/src/server.ts :204
  • compare_vendors robhunter-agentdeals-6981e8e/src/server.ts :282
  • track_changes robhunter-agentdeals-6981e8e/src/server.ts :382
  • get_referral_code robhunter-agentdeals-6981e8e/src/server.ts :932

install hooks 1

  • prepublishOnly robhunter-agentdeals-6981e8e/package.json :29 npm run build && npm test

declared dependencies 8

  • @modelcontextprotocol/ext-apps@^1.5.0
  • @modelcontextprotocol/sdk@^1.29.0
  • swagger-ui-dist@^5.32.0
  • zod@^3.25.0
  • @anthropic-ai/mcpb@^2.1.2
  • @types/node@^22.0.0
  • ts-node@^10.9.0
  • typescript@^5.7.0

obfuscation 5

  • dynamic require()/import() robhunter-agentdeals-6981e8e/scripts/census-1297-faq-absence-claims.mjs :7 const { vendorSlugMap } = await import(`${REPO}/dist/vendor-slug.js`);
  • dynamic require()/import() robhunter-agentdeals-6981e8e/scripts/census-1424-superseding-readings.mjs :6 const { quotesTheStoredTermsAsPrevious, readingBehindTheChange } = await import(`${root}/dist/superseded-description.js`);
  • dynamic require()/import() robhunter-agentdeals-6981e8e/scripts/census-1495-removal-records.mjs :6 const { freePlanStatedOn, readablePartsOf } = await import(`${root}/dist/page-free-plan.js`);
  • dynamic require()/import() robhunter-agentdeals-6981e8e/scripts/llm-api-index-render.js :17 const { excludedByReason, readmeCensus, readmeSelection, renderReadme } = await import(`${ROOT}/dist/llm-api-readme.js`);
  • dynamic require()/import() robhunter-agentdeals-6981e8e/scripts/publish-llm-api-index.js :11 } = await import(`${ROOT}/dist/llm-api-index-publication.js`);

perm:untrusted 73

  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/census-1235-surfaces.mjs :34 const html = await (await fetch(`${base}/vendor/${slug}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1024.mjs :122 fetch(url("/api/signals"), { headers: { Authorization: `Bearer ${OPERATOR_CREDENTIAL}` } }).then(r => r.json());
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1039.mjs :167 const published = await (await fetch(url("/api/query-log?limit=200"))).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1052.mjs :178 return (await fetch(`${base}/api/stats`, { headers: UA })).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1056.mjs :276 const signals = await (await fetch(`${coldBase}/api/signals`, { headers: UA })).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163-split.mjs :141 const stats = await (await fetch(`${base}/api/stats`)).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1163.mjs :139 const statsA = await (await fetch(`${baseA}/api/stats`)).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1164.mjs :121 const developers = await (await fetch(`${base}/developers`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/e2e-1269.mjs :117 const spec = await (await fetch(`${base}/api/openapi.json`)).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/prose-record-crosscheck.js :34 const body = await (await fetch(`${base}${sitemap}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/report-quality-budgets.js :97 const html = await fetch(`http://localhost:${server.port}${page.path}`).then(r => r.text());
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/sweep-1161.mjs :46 const index = await (await fetch(`${base}/sitemap.xml`)).text();
show 28 more
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/sweep-bodies.mjs :32 const index = await (await fetch(`${base}/sitemap.xml`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/scripts/sweep-paths.mjs :32 const index = await (await fetch(`${base}/sitemap.xml`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/agent-submitted-codes-withheld.test.ts :90 const body = await (await fetch(`http://localhost:${serverPort}/api/referral-codes?source=agent`)).json();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/alternatives-crawl-space.test.ts :72 const sitemap = await (await fetch(`http://localhost:${serverPort}/sitemap-pages.xml`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/baas-comparison-figures.test.ts :61 pages[slug] = readableText(await (await fetch(`${base}/${slug}`)).text());
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/badge-verdicts.ts :36 return await (await fetch(`http://localhost:${port}/badges`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/category-gate-lede.test.ts :133 const body = await (await fetch(`http://localhost:${port}${pathname}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/category-retirement.test.ts :194 const directory = await (await fetch(`http://localhost:${port}/api/categories`)).json() as {
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/category-url-stability.test.ts :73 const merged = await (await fetch(`http://localhost:${port}/api/offers?category=Startup%20Programs&limit=5`)).json() as { total: number; offers: { category: string }[] };
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-date-provenance.test.ts :438 const datedRes = await (await fetch(`http://localhost:${datedPort}/api/changes`)).json() as any;
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-entry-date-provenance.test.ts :268 const index = await (await fetch(`http://localhost:${discovered.port}/sitemap.xml`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-feed-provenance.test.ts :161 perChange = await (await fetch(`http://localhost:${port}${PER_CHANGE_FEED.path}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-lineup.test.ts :176 const get = async (p: string) => (await fetch(`http://localhost:${serverPort}${p}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-log-citation.test.ts :93 const body = await (await fetch(`http://localhost:${port}${pathname}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-log-only-vendors.test.ts :84 const sitemap = await (await fetch(`${base}/sitemap-pages.xml`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-resolution-totals.test.ts :313 const page = visibleText(await (await fetch(`http://localhost:${port}/state-of-free-tiers`)).text());
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-resolution.test.ts :385 const get = async (p: string) => (await fetch(`http://localhost:${serverPort}${p}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-row-citation.test.ts :160 const body = await (await fetch(`http://localhost:${port}${pathname}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/change-structured-data.test.ts :115 bodies.set(route, await (await fetch(`http://localhost:${started.port}${route}`)).text());
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/changes-pagination.test.ts :130 const page = await (await fetch(`${base}/developers`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/comparison-source-citation.test.ts :236 rendered.set(page, await fetch(`${server.base}${page}`).then(r => r.text()));
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/compiled-comparison-figures.test.ts :97 const body = await (await fetch(`http://localhost:${port}${pathname}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/conversion-auth.test.ts :346 const html = await (await fetch(`http://localhost:${port}/developers`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/copilot-billing-unit.test.ts :33 const get = async (p: string) => (await fetch(`http://localhost:${serverPort}${p}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/discovery-date-surfaces.test.ts :128 const body = await (await fetch(`http://localhost:${absent.port}${route}`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/documented-route-citation.test.ts :126 hub = await (await fetch(`${base}/developers`)).text();
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/durable-identity.test.ts :482 const statsBefore = await (await fetch(`http://localhost:${started.port}/api/stats`)).json() as {
  • untrusted (weak) robhunter-agentdeals-6981e8e/test/email-comparison-figures.test.ts :54 page = readableText(await (await fetch(`${base}/email-comparison-2026`)).text());

33 more not shown — this panel samples each group; the count above is the real total.