mcp-scraper 0.66.1 → 0.66.2

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +1 -1
  3. package/dist/bin/api-server.cjs +983 -1791
  4. package/dist/bin/api-server.js +3 -3
  5. package/dist/bin/mcp-scraper-cli.cjs +1 -1
  6. package/dist/bin/mcp-scraper-cli.js +1 -1
  7. package/dist/bin/mcp-scraper-install.cjs +2 -2
  8. package/dist/bin/mcp-scraper-install.js +2 -2
  9. package/dist/bin/mcp-stdio-server.cjs +58 -90
  10. package/dist/bin/mcp-stdio-server.js +6 -6
  11. package/dist/bin/paa-harvest.js +3 -3
  12. package/dist/{chunk-4OT7BAIE.js → chunk-3EYALCYK.js} +1 -1
  13. package/dist/{chunk-TNLGHNLX.js → chunk-3TKKJQB4.js} +1 -1
  14. package/dist/{chunk-GTGSD4YS.js → chunk-55B3T5L2.js} +21 -26
  15. package/dist/{chunk-TNJIPV74.js → chunk-ABYBPODM.js} +1 -1
  16. package/dist/{chunk-VRJ7CO6L.js → chunk-ALEBMPOW.js} +1 -1
  17. package/dist/{chunk-NS754CRS.js → chunk-CETDPNMZ.js} +23 -23
  18. package/dist/{chunk-75VW7CWE.js → chunk-DBWWIK7O.js} +1 -1
  19. package/dist/{chunk-4P3PHFPQ.js → chunk-K7Y27ND3.js} +2 -12
  20. package/dist/{chunk-3PIXKLGZ.js → chunk-KXRWY7DZ.js} +1 -1
  21. package/dist/{chunk-WID3MFRS.js → chunk-OZDCTNUV.js} +1 -1
  22. package/dist/{chunk-AQKJOSIB.js → chunk-PMCT2YQM.js} +1 -1
  23. package/dist/{chunk-E4LMY5OJ.js → chunk-YKL3O7IU.js} +134 -94
  24. package/dist/{db-PO7N7ZP3.js → db-4RVZ3NYZ.js} +9 -9
  25. package/dist/{extract-bundle-SIBFUA6I.js → extract-bundle-EA5URLXN.js} +3 -3
  26. package/dist/index.js +3 -3
  27. package/dist/{lead-list-enrichment-repository-OTAUQONJ.js → lead-list-enrichment-repository-IBXNWM6H.js} +2 -2
  28. package/dist/{location-data-repository-RM2KJ3H5.js → location-data-repository-WHHQUCUI.js} +2 -2
  29. package/dist/{server-ELEJNRRE.js → server-Q7VYGSGQ.js} +413 -1249
  30. package/dist/{site-extract-repository-ASYEJO7Z.js → site-extract-repository-NTM4MDQN.js} +2 -2
  31. package/dist/{worker-MAVYYWM7.js → worker-UTBUWEXQ.js} +5 -5
  32. package/package.json +2 -1
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-PGJQDMC2.js";
9
9
  import {
10
10
  sanitizeOutboundDiagnostics
11
- } from "./chunk-4OT7BAIE.js";
11
+ } from "./chunk-3EYALCYK.js";
12
12
  import {
13
13
  browserServiceProfileName,
14
14
  browserServiceProfileSaveChanges,
15
15
  recordVendorUsage,
16
16
  vendorCostUsd
17
- } from "./chunk-TNLGHNLX.js";
17
+ } from "./chunk-3TKKJQB4.js";
18
18
  import {
19
19
  buildSerpEmailQuery,
20
20
  classifyEmailScope,
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-VXLU74YZ.js";
26
26
  import {
27
27
  PACKAGE_VERSION
28
- } from "./chunk-VRJ7CO6L.js";
28
+ } from "./chunk-ALEBMPOW.js";
29
29
  import {
30
30
  createPrivateArtifact,
31
31
  privateArtifactOwnerId,
@@ -45,7 +45,7 @@ import {
45
45
  normalizePublicErrorCode,
46
46
  publicErrorMessage,
47
47
  sanitizeVendorName
48
- } from "./chunk-GTGSD4YS.js";
48
+ } from "./chunk-55B3T5L2.js";
49
49
 
50
50
  // src/harvest-timeout.ts
51
51
  var SCRAPE_FUNCTION_MAX_MS = 8e5;
@@ -5006,60 +5006,10 @@ ${rows}` : ""
5006
5006
  }
5007
5007
 
5008
5008
  // src/mcp/output-schema-registry.ts
5009
- var ESSENTIAL_OUTPUT_SCHEMA_TOOLS = /* @__PURE__ */ new Set([
5010
- "extract_url",
5011
- "extract_site",
5012
- "analyze_site_similarity",
5013
- "audit_site",
5014
- "check_site_export",
5015
- "site_export_read",
5016
- "site_export_image",
5017
- "archive_read",
5018
- "report_artifact_read",
5019
- "directory_workflow",
5020
- "directory_workflow_status",
5021
- "lead_list_upload_start",
5022
- "lead_list_import",
5023
- "lead_list_enrich",
5024
- "lead_list_enrich_status",
5025
- "video_frame_analysis",
5026
- "video_frame_analysis_status",
5027
- "workflow_run",
5028
- "workflow_step",
5029
- "workflow_status",
5030
- "workflow_artifact_read",
5031
- "export_connected_service_data",
5032
- "export_search_console_table_data",
5033
- "renew_connected_data_download",
5034
- "browser_open",
5035
- "browser_screenshot",
5036
- "browser_replay_start",
5037
- "browser_replay_stop",
5038
- "browser_replay_download",
5039
- "create_scheduled_run_view_link",
5040
- "get_scheduled_run",
5041
- "library-ingest",
5042
- "image_project_create",
5043
- "image_project_list",
5044
- "image_folder_create",
5045
- "image_folder_list",
5046
- "image_asset_save",
5047
- "image_asset_get",
5048
- "image_asset_list",
5049
- "image_asset_search",
5050
- "image_asset_move",
5051
- "image_asset_delete"
5052
- ]);
5053
- function resolveOutputSchemaMode(env = process.env) {
5054
- const explicit = env.MCP_SCRAPER_OUTPUT_SCHEMA_MODE?.trim().toLowerCase();
5055
- if (explicit === "none" || explicit === "essential" || explicit === "all") return explicit;
5056
- return env.MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS === "true" ? "all" : "none";
5057
- }
5058
- var OUTPUT_SCHEMA_MODE = resolveOutputSchemaMode();
5059
5009
  var OUTPUT_SCHEMAS = {};
5060
5010
  function recordOutputSchema(name, schema) {
5061
5011
  OUTPUT_SCHEMAS[name] = schema;
5062
- return OUTPUT_SCHEMA_MODE === "all" || OUTPUT_SCHEMA_MODE === "essential" && ESSENTIAL_OUTPUT_SCHEMA_TOOLS.has(name) ? schema : void 0;
5012
+ return schema;
5063
5013
  }
5064
5014
 
5065
5015
  // src/mcp/meta-ad-creative-media.ts
@@ -7160,7 +7110,7 @@ var HarvestPaaInputSchema = {
7160
7110
  gl: z6.string().length(2).default("us").describe("Google country code inferred from location or user language."),
7161
7111
  hl: z6.string().default("en").describe("Google interface/content language inferred from the user request."),
7162
7112
  device: z6.enum(["desktop", "mobile"]).default("desktop").describe("SERP device context. Use mobile only for mobile rankings."),
7163
- idempotencyKey: z6.string().trim().min(8).max(200).optional().describe("Retry key: reuse after a timeout to avoid re-billing. New key per harvest."),
7113
+ idempotencyKey: z6.string().trim().min(8).max(200).optional().describe("Optional duplicate-start key. Reuse it only after an uncertain or lost response to the same logical call; use a new key for an intentional retry after a terminal failure. This is not the run identifier."),
7164
7114
  serpIdentity: z6.string().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/).optional().describe("Optional persistent SERP identity created with serp_identity_create. Reuses the same saved browser state and fixed network address across calls."),
7165
7115
  includeAllSerpFeatures: z6.boolean().default(false).describe("Capture every optional same-page SERP surface: local pack, forums, videos, AI Overview/AI Mode, and What People Are Saying."),
7166
7116
  includeLocalPack: z6.boolean().default(false).describe("Include Google local/map-pack businesses and merge their entity IDs."),
@@ -7170,6 +7120,9 @@ var HarvestPaaInputSchema = {
7170
7120
  includeWhatPeopleSaying: z6.boolean().default(false).describe("Include the What People Are Saying social surface when present."),
7171
7121
  debug: z6.boolean().default(false).describe("Include sanitized diagnostics for debugging.")
7172
7122
  };
7123
+ var HarvestPaaHostedInputSchema = Object.fromEntries(
7124
+ Object.entries(HarvestPaaInputSchema).filter(([name]) => name !== "debug")
7125
+ );
7173
7126
  var ExtractUrlBaseInputSchema = {
7174
7127
  url: z6.string().url().describe("Public http/https URL to extract."),
7175
7128
  screenshot: z6.boolean().default(false).describe("Capture a full-page screenshot. Large captures may be offloaded to an owned artifact."),
@@ -10378,6 +10331,15 @@ var TASK_TTL_MS = 24 * 60 * 60 * 1e3;
10378
10331
  var TASK_POLL_INTERVAL_MS = 5e3;
10379
10332
  var TASK_INVALID_PARAMS = -32602;
10380
10333
  var TASK_MISSING_CAPABILITY = -32003;
10334
+ var TASK_START_TOOL_NAMES = /* @__PURE__ */ new Set([
10335
+ "harvest_paa",
10336
+ "extract_site",
10337
+ "analyze_site_similarity",
10338
+ "audit_site",
10339
+ "video_frame_analysis",
10340
+ "directory_workflow",
10341
+ "lead_list_enrich"
10342
+ ]);
10381
10343
  function hasTasksCapability(capabilityValue) {
10382
10344
  const capabilities = objectValue(capabilityValue);
10383
10345
  const extensions = objectValue(capabilities?.extensions);
@@ -10471,6 +10433,73 @@ function taskSeed(kind, result) {
10471
10433
  if (structured.ok !== true || !["queued", "running", "processing", "pending"].includes(String(structured.status))) return void 0;
10472
10434
  return { kind, operationId, statusMessage: "Video analysis is running." };
10473
10435
  }
10436
+ function createTaskResult(kind, result, options) {
10437
+ const seed = taskSeed(kind, result);
10438
+ if (!seed) return result;
10439
+ const createdAtMs = Date.now();
10440
+ const payload = {
10441
+ v: 1,
10442
+ ownerId: options.ownerId,
10443
+ kind: seed.kind,
10444
+ operationId: seed.operationId,
10445
+ createdAtMs,
10446
+ expiresAtMs: createdAtMs + TASK_TTL_MS
10447
+ };
10448
+ return {
10449
+ resultType: "task",
10450
+ taskId: encodeTaskHandle(payload, options.secret),
10451
+ status: "working",
10452
+ statusMessage: seed.statusMessage,
10453
+ createdAt: new Date(createdAtMs).toISOString(),
10454
+ lastUpdatedAt: new Date(createdAtMs).toISOString(),
10455
+ ttlMs: TASK_TTL_MS,
10456
+ pollIntervalMs: TASK_POLL_INTERVAL_MS,
10457
+ // The registered SDK path validates structuredContent against the tool's
10458
+ // terminal output schema before it can serialize a Task envelope. Retain
10459
+ // the bounded start receipt for that path; the hosted HTTP Task seam runs
10460
+ // before terminal-output serialization.
10461
+ ...result.structuredContent ? { structuredContent: result.structuredContent } : {}
10462
+ };
10463
+ }
10464
+ async function startTaskTool(executor, toolName, rawArguments) {
10465
+ const args = objectValue(rawArguments) ?? {};
10466
+ if (toolName === "harvest_paa") {
10467
+ const parsed = z7.object(HarvestPaaHostedInputSchema).strict().safeParse(args);
10468
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid harvest_paa arguments");
10469
+ return { kind: "paa_harvest", result: await executor.startHarvestPaa({ ...parsed.data, debug: false }) };
10470
+ }
10471
+ if (toolName === "extract_site") {
10472
+ const parsed = z7.object(ExtractSiteInputSchema).safeParse(args);
10473
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid extract_site arguments");
10474
+ return { kind: "site_export", result: await executor.extractSite(parsed.data) };
10475
+ }
10476
+ if (toolName === "analyze_site_similarity") {
10477
+ const parsed = z7.object(AnalyzeSiteSimilarityInputSchema).safeParse(args);
10478
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid analyze_site_similarity arguments");
10479
+ return { kind: "site_export", result: await executor.analyzeSiteSimilarity(parsed.data) };
10480
+ }
10481
+ if (toolName === "audit_site") {
10482
+ const parsed = z7.object(AuditSiteInputSchema).safeParse(args);
10483
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid audit_site arguments");
10484
+ return { kind: "site_export", result: await executor.auditSite(parsed.data) };
10485
+ }
10486
+ if (toolName === "video_frame_analysis") {
10487
+ const parsed = z7.object(VideoFrameAnalysisInputSchema).safeParse(args);
10488
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid video_frame_analysis arguments");
10489
+ return { kind: "video_frame_analysis", result: await executor.videoFrameAnalysis(parsed.data) };
10490
+ }
10491
+ if (toolName === "directory_workflow") {
10492
+ const parsed = z7.object(DirectoryWorkflowInputSchema).safeParse(args);
10493
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid directory_workflow arguments");
10494
+ return { kind: "directory_workflow", result: await executor.directoryWorkflow(parsed.data) };
10495
+ }
10496
+ if (toolName === "lead_list_enrich") {
10497
+ const parsed = z7.object(LeadListEnrichInputSchema).safeParse(args);
10498
+ if (!parsed.success) throw new ProtocolError(TASK_INVALID_PARAMS, parsed.error.issues[0]?.message ?? "Invalid lead_list_enrich arguments");
10499
+ return { kind: "lead_list_enrichment", result: await executor.leadListEnrich(parsed.data) };
10500
+ }
10501
+ throw new ProtocolError(TASK_INVALID_PARAMS, `Unsupported Task-start tool: ${toolName}`);
10502
+ }
10474
10503
  function taskBase(payload, taskId) {
10475
10504
  return {
10476
10505
  taskId,
@@ -10589,6 +10618,13 @@ function isWorking(kind, status) {
10589
10618
  return status === "queued" || status === "running" || status === "processing" || status === "pending";
10590
10619
  }
10591
10620
  function registerMcpTasksExtension(server, executor, options) {
10621
+ const enabled = options.enableTaskStarts !== false;
10622
+ if (!enabled) {
10623
+ return {
10624
+ supportsTasks: () => false,
10625
+ taskify: (_kind, result) => result
10626
+ };
10627
+ }
10592
10628
  server.server.registerCapabilities({
10593
10629
  extensions: { [MCP_TASKS_EXTENSION_ID]: {} }
10594
10630
  });
@@ -10619,32 +10655,7 @@ function registerMcpTasksExtension(server, executor, options) {
10619
10655
  },
10620
10656
  taskify(kind, result) {
10621
10657
  if (!hasTasksCapability(server.server.getClientCapabilities())) return result;
10622
- const seed = taskSeed(kind, result);
10623
- if (!seed) return result;
10624
- const createdAtMs = Date.now();
10625
- const payload = {
10626
- v: 1,
10627
- ownerId: options.ownerId,
10628
- kind: seed.kind,
10629
- operationId: seed.operationId,
10630
- createdAtMs,
10631
- expiresAtMs: createdAtMs + TASK_TTL_MS
10632
- };
10633
- const taskId = encodeTaskHandle(payload, options.secret);
10634
- return {
10635
- resultType: "task",
10636
- taskId,
10637
- status: "working",
10638
- statusMessage: seed.statusMessage,
10639
- createdAt: new Date(createdAtMs).toISOString(),
10640
- lastUpdatedAt: new Date(createdAtMs).toISOString(),
10641
- ttlMs: TASK_TTL_MS,
10642
- pollIntervalMs: TASK_POLL_INTERVAL_MS,
10643
- // The SDK validates advertised outputSchema before serializing the
10644
- // Task envelope. Preserve the already-bounded start receipt so typed
10645
- // tools remain task-capable when essential output schemas are on.
10646
- ...result.structuredContent ? { structuredContent: result.structuredContent } : {}
10647
- };
10658
+ return createTaskResult(kind, result, options);
10648
10659
  }
10649
10660
  };
10650
10661
  }
@@ -10657,10 +10668,12 @@ function taskHttpError(id, error) {
10657
10668
  }
10658
10669
  async function handleMcpTasksHttpRequest(request, executor, options) {
10659
10670
  const routedMethod = request.headers.get("mcp-method");
10660
- if (!["tasks/get", "tasks/update", "tasks/cancel"].includes(routedMethod ?? "")) return void 0;
10671
+ const routedToolName = request.headers.get("mcp-name");
10672
+ const taskStartCall = routedMethod === "tools/call" && TASK_START_TOOL_NAMES.has(routedToolName ?? "");
10673
+ if (!taskStartCall && !["tasks/get", "tasks/update", "tasks/cancel"].includes(routedMethod ?? "")) return void 0;
10661
10674
  let payload;
10662
10675
  try {
10663
- payload = await request.json();
10676
+ payload = await request.clone().json();
10664
10677
  } catch {
10665
10678
  return taskHttpError(null, new ProtocolError(-32700, "Parse error"));
10666
10679
  }
@@ -10673,6 +10686,28 @@ async function handleMcpTasksHttpRequest(request, executor, options) {
10673
10686
  throw new ProtocolError(-32020, "Mcp-Method header does not match the JSON-RPC method");
10674
10687
  }
10675
10688
  const params = objectValue(payload.params);
10689
+ if (taskStartCall) {
10690
+ if (params?.name !== routedToolName || typeof routedToolName !== "string") {
10691
+ throw new ProtocolError(-32020, "Mcp-Name header must match params.name");
10692
+ }
10693
+ const meta2 = objectValue(params?._meta);
10694
+ if (!hasTasksCapability(meta2?.["io.modelcontextprotocol/clientCapabilities"])) return void 0;
10695
+ if (routedToolName === "harvest_paa" && objectValue(params?.arguments)?.serpIdentity !== void 0) {
10696
+ return void 0;
10697
+ }
10698
+ const started = await startTaskTool(executor, routedToolName, params?.arguments);
10699
+ const task = createTaskResult(started.kind, started.result, options);
10700
+ const taskObject = task;
10701
+ return new Response(JSON.stringify({
10702
+ jsonrpc: "2.0",
10703
+ id,
10704
+ result: {
10705
+ ...taskObject,
10706
+ resultType: taskObject.resultType === "task" ? "task" : "complete",
10707
+ _meta: { "io.modelcontextprotocol/serverInfo": options.serverInfo }
10708
+ }
10709
+ }), { status: 200, headers: { "content-type": "application/json" } });
10710
+ }
10676
10711
  const taskId = params?.taskId;
10677
10712
  if (typeof taskId !== "string" || !taskId) throw new ProtocolError(TASK_INVALID_PARAMS, "Invalid taskId");
10678
10713
  if (request.headers.get("mcp-name") !== taskId) {
@@ -11119,19 +11154,21 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
11119
11154
  const fileBehavior = (local, hosted) => savesReports ? local : hosted;
11120
11155
  const ownerId = options.ownerId ?? "local";
11121
11156
  const ctx = { hosted: !savesReports, ownerId };
11157
+ const transportProfile = options.transportProfile ?? (savesReports ? "stdio" : "hosted_http");
11122
11158
  registerAnalyticsMcpTools(server, executor);
11123
11159
  const exposesLocalNetworkAccess = options.localNetworkAccess ?? permitsLocalNetworkAccess({
11124
11160
  deploymentProfile: options.deploymentProfile ?? "production",
11125
- transportProfile: options.transportProfile ?? (savesReports ? "stdio" : "hosted_http"),
11161
+ transportProfile,
11126
11162
  baseUrl: options.baseUrl
11127
11163
  });
11128
11164
  const exposesDevelopmentDiagnostics = options.deploymentProfile === "development" || options.deploymentProfile === "test";
11129
11165
  const tasks = registerMcpTasksExtension(server, executor, {
11130
11166
  ownerId,
11131
- secret: options.taskHandleSecret ?? `local:${ownerId}`
11167
+ secret: options.taskHandleSecret ?? `local:${ownerId}`,
11168
+ enableTaskStarts: transportProfile === "hosted_http"
11132
11169
  });
11133
11170
  const privateSearchFields = exposesDevelopmentDiagnostics ? [] : ["debug"];
11134
- const harvestPaaInputSchema = schemaWithoutFields(HarvestPaaInputSchema, privateSearchFields);
11171
+ const harvestPaaInputSchema = exposesDevelopmentDiagnostics ? HarvestPaaInputSchema : HarvestPaaHostedInputSchema;
11135
11172
  const searchSerpInputSchema = schemaWithoutFields(SearchSerpInputSchema, privateSearchFields);
11136
11173
  const mapsSearchInputSchema = schemaWithoutFields(MapsSearchInputSchema, privateSearchFields);
11137
11174
  const directoryWorkflowInputSchema = schemaWithoutFields(
@@ -11146,10 +11183,11 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
11146
11183
  outputSchema: recordOutputSchema("harvest_paa", HarvestPaaOutputSchema),
11147
11184
  annotations: liveWebToolAnnotations("Google PAA + SERP Harvest")
11148
11185
  }, async (input, requestContext) => {
11149
- if (tasks.supportsTasks()) {
11150
- return tasks.taskify("paa_harvest", await executor.startHarvestPaa(input), requestContext);
11186
+ const executionInput = { ...input, debug: input.debug === true };
11187
+ if (tasks.supportsTasks() && !executionInput.serpIdentity) {
11188
+ return tasks.taskify("paa_harvest", await executor.startHarvestPaa(executionInput), requestContext);
11151
11189
  }
11152
- return formatHarvestPaa(await executor.harvestPaa(input), input);
11190
+ return formatHarvestPaa(await executor.harvestPaa(executionInput), executionInput);
11153
11191
  });
11154
11192
  server.registerTool("search_serp", {
11155
11193
  title: "Google SERP Lookup",
@@ -12198,12 +12236,14 @@ var HttpMcpToolExecutor = class {
12198
12236
  }
12199
12237
  harvestPaa(input) {
12200
12238
  const timeoutMs = this.httpTimeoutOverrideMs ?? harvestTimeoutBudget(input.maxQuestions ?? 30).clientMs;
12201
- const headers = input.idempotencyKey ? { "Idempotency-Key": input.idempotencyKey } : {};
12202
- return this.call("/harvest/sync", input, timeoutMs, "POST", headers, true);
12239
+ const { idempotencyKey, ...body } = input;
12240
+ const headers = idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {};
12241
+ return this.call("/harvest/sync", body, timeoutMs, "POST", headers, true);
12203
12242
  }
12204
12243
  startHarvestPaa(input) {
12205
- const headers = input.idempotencyKey ? { "Idempotency-Key": input.idempotencyKey } : {};
12206
- return this.call("/harvest", input, this.timeoutMs, "POST", headers, true);
12244
+ const { idempotencyKey, ...body } = input;
12245
+ const headers = idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {};
12246
+ return this.call("/harvest", body, this.timeoutMs, "POST", headers, true);
12207
12247
  }
12208
12248
  harvestPaaStatus(input) {
12209
12249
  return this.getJson(`/jobs/${encodeURIComponent(input.jobId)}`);
@@ -10,7 +10,7 @@ import {
10
10
  cancelJob,
11
11
  checkRateLimit,
12
12
  checkpointJob,
13
- claimInngestPaaJob,
13
+ claimDurablePaaJob,
14
14
  claimMonthlyFreeRefresh,
15
15
  claimPendingJob,
16
16
  claimPendingKpoJob,
@@ -40,6 +40,7 @@ import {
40
40
  expireOldLots,
41
41
  failJob,
42
42
  failKpoJob,
43
+ failRunningJob,
43
44
  failStripeEvent,
44
45
  failWorkflowRunRecord,
45
46
  finishHarvestAttempt,
@@ -79,10 +80,9 @@ import {
79
80
  listInboxMessages,
80
81
  listJobs,
81
82
  listKpoJobs,
82
- listPendingInngestPaaJobs,
83
- listRecentTerminalInngestPaaJobs,
83
+ listRecentTerminalDurablePaaJobs,
84
84
  listRequestEvents,
85
- listStaleRunningInngestPaaJobs,
85
+ listStaleRunningDurablePaaJobs,
86
86
  listUsers,
87
87
  listUsersDueForConnectedAccountBillingReconciliation,
88
88
  listWorkflowArtifacts,
@@ -126,7 +126,7 @@ import {
126
126
  updateKpoJobState,
127
127
  upsertPageSnapshot,
128
128
  verifyPassword
129
- } from "./chunk-GTGSD4YS.js";
129
+ } from "./chunk-55B3T5L2.js";
130
130
  export {
131
131
  CORE_SCHEMA_VERSION,
132
132
  CREDIT_LOTS_EPOCH,
@@ -139,7 +139,7 @@ export {
139
139
  cancelJob,
140
140
  checkRateLimit,
141
141
  checkpointJob,
142
- claimInngestPaaJob,
142
+ claimDurablePaaJob,
143
143
  claimMonthlyFreeRefresh,
144
144
  claimPendingJob,
145
145
  claimPendingKpoJob,
@@ -169,6 +169,7 @@ export {
169
169
  expireOldLots,
170
170
  failJob,
171
171
  failKpoJob,
172
+ failRunningJob,
172
173
  failStripeEvent,
173
174
  failWorkflowRunRecord,
174
175
  finishHarvestAttempt,
@@ -208,10 +209,9 @@ export {
208
209
  listInboxMessages,
209
210
  listJobs,
210
211
  listKpoJobs,
211
- listPendingInngestPaaJobs,
212
- listRecentTerminalInngestPaaJobs,
212
+ listRecentTerminalDurablePaaJobs,
213
213
  listRequestEvents,
214
- listStaleRunningInngestPaaJobs,
214
+ listStaleRunningDurablePaaJobs,
215
215
  listUsers,
216
216
  listUsersDueForConnectedAccountBillingReconciliation,
217
217
  listWorkflowArtifacts,
@@ -4,7 +4,7 @@ import {
4
4
  downloadAsset,
5
5
  embedCommonsTexts,
6
6
  publicizeExtractionFailure
7
- } from "./chunk-75VW7CWE.js";
7
+ } from "./chunk-DBWWIK7O.js";
8
8
  import "./chunk-OZJMVCDK.js";
9
9
  import {
10
10
  computeIssues,
@@ -18,12 +18,12 @@ import {
18
18
  createSiteExtractContentReader,
19
19
  createSiteExtractImageArtifact,
20
20
  extractJobLimitInfo
21
- } from "./chunk-3PIXKLGZ.js";
21
+ } from "./chunk-KXRWY7DZ.js";
22
22
  import "./chunk-DNM65UCK.js";
23
23
  import "./chunk-AYJHI2FK.js";
24
24
  import {
25
25
  getDb
26
- } from "./chunk-GTGSD4YS.js";
26
+ } from "./chunk-55B3T5L2.js";
27
27
 
28
28
  // src/api/extract-bundle.ts
29
29
  import { createWriteStream, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "fs";
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  harvest
3
- } from "./chunk-4P3PHFPQ.js";
3
+ } from "./chunk-K7Y27ND3.js";
4
4
  import {
5
5
  recordVendorUsage
6
- } from "./chunk-TNLGHNLX.js";
6
+ } from "./chunk-3TKKJQB4.js";
7
7
  import "./chunk-77LQV73B.js";
8
- import "./chunk-GTGSD4YS.js";
8
+ import "./chunk-55B3T5L2.js";
9
9
 
10
10
  // src/video/VideoGenerator.ts
11
11
  import { execSync as execSync2 } from "child_process";
@@ -30,8 +30,8 @@ import {
30
30
  saveLeadListEnrichmentRowResult,
31
31
  setInitializingLeadListEnrichmentConcurrencyLock,
32
32
  stableCanonicalJson
33
- } from "./chunk-TNJIPV74.js";
34
- import "./chunk-GTGSD4YS.js";
33
+ } from "./chunk-ABYBPODM.js";
34
+ import "./chunk-55B3T5L2.js";
35
35
  export {
36
36
  LEAD_LIST_MAX_DISPATCH_ATTEMPTS,
37
37
  LEAD_LIST_RUNNING_STALE_MINUTES,
@@ -13,9 +13,9 @@ import {
13
13
  parseHostedCensusPlacesCsv,
14
14
  parseHostedZipGroupsCsv,
15
15
  queryHostedLocationMarkets
16
- } from "./chunk-AQKJOSIB.js";
16
+ } from "./chunk-PMCT2YQM.js";
17
17
  import "./chunk-RJ7JVYKU.js";
18
- import "./chunk-GTGSD4YS.js";
18
+ import "./chunk-55B3T5L2.js";
19
19
  export {
20
20
  HOSTED_CENSUS_DATASET_PREFIX,
21
21
  HOSTED_ZIP_DATASET_KIND,