mcp-scraper 0.66.0 → 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.
- package/CHANGELOG.md +32 -1
- package/README.md +2 -2
- package/dist/{analytics-repository-IKE53S3E.js → analytics-repository-RUXBFSFX.js} +1 -2
- package/dist/bin/api-server.cjs +2898 -2075
- package/dist/bin/api-server.js +4 -5
- package/dist/bin/mcp-scraper-cli.cjs +1 -2
- package/dist/bin/mcp-scraper-cli.js +6 -7
- package/dist/bin/mcp-scraper-install.cjs +7 -3
- package/dist/bin/mcp-scraper-install.js +2 -3
- package/dist/bin/mcp-stdio-server.cjs +1669 -97
- package/dist/bin/mcp-stdio-server.js +11 -12
- package/dist/bin/paa-harvest.cjs +0 -1
- package/dist/bin/paa-harvest.js +4 -5
- package/dist/{chunk-VIWT35S6.js → chunk-3EYALCYK.js} +1 -2
- package/dist/{chunk-4LINSJNI.js → chunk-3TKKJQB4.js} +1 -2
- package/dist/{chunk-4VG3NUUY.js → chunk-55B3T5L2.js} +23 -28
- package/dist/{chunk-FG6LJGJ7.js → chunk-77LQV73B.js} +0 -1
- package/dist/{chunk-N54JS5WP.js → chunk-ABYBPODM.js} +1 -2
- package/dist/chunk-ALEBMPOW.js +6 -0
- package/dist/{chunk-2XUXVKT4.js → chunk-AYJHI2FK.js} +0 -1
- package/dist/{chunk-AAGVOPP5.js → chunk-CETDPNMZ.js} +24 -25
- package/dist/{chunk-5BEPOFKG.js → chunk-CNLLTD5B.js} +0 -1
- package/dist/{chunk-P7YFUNKR.js → chunk-DBWWIK7O.js} +3 -4
- package/dist/{chunk-EKJ65E3Z.js → chunk-DNM65UCK.js} +0 -1
- package/dist/{chunk-3YSEJTMC.js → chunk-GGZEC22A.js} +0 -1
- package/dist/{chunk-AJ4YGHG2.js → chunk-K7Y27ND3.js} +3 -14
- package/dist/{chunk-XPFRP5QT.js → chunk-KBTUPRTF.js} +3 -4
- package/dist/{chunk-5PIO7QBG.js → chunk-KXRWY7DZ.js} +3 -4
- package/dist/{chunk-DCWXVAQT.js → chunk-OZDCTNUV.js} +6 -2
- package/dist/{chunk-BIUQ6O2Y.js → chunk-OZJMVCDK.js} +0 -1
- package/dist/{chunk-X7UG2JCF.js → chunk-PGJQDMC2.js} +1 -2
- package/dist/{chunk-DKIG2TEE.js → chunk-PMCT2YQM.js} +2 -3
- package/dist/{chunk-G3P3ZDB4.js → chunk-RJ7JVYKU.js} +0 -1
- package/dist/{chunk-WD73OFL3.js → chunk-VXLU74YZ.js} +1 -2
- package/dist/{chunk-SRRI2HJL.js → chunk-YKL3O7IU.js} +1742 -104
- package/dist/{db-BRI465XQ.js → db-4RVZ3NYZ.js} +9 -10
- package/dist/{extract-bundle-QAI7JYV2.js → extract-bundle-EA5URLXN.js} +8 -9
- package/dist/index.cjs +0 -1
- package/dist/index.js +4 -5
- package/dist/{lead-list-enrichment-repository-ODWGRVCQ.js → lead-list-enrichment-repository-IBXNWM6H.js} +2 -3
- package/dist/{location-data-repository-67MMEVZQ.js → location-data-repository-WHHQUCUI.js} +3 -4
- package/dist/{server-MTKWBSAR.js → server-Q7VYGSGQ.js} +450 -1264
- package/dist/{site-extract-repository-J3RH3MOS.js → site-extract-repository-NTM4MDQN.js} +4 -5
- package/dist/{worker-K7MPPQ7I.js → worker-UTBUWEXQ.js} +8 -9
- package/package.json +4 -1
- package/dist/analytics-repository-IKE53S3E.js.map +0 -1
- package/dist/bin/api-server.cjs.map +0 -1
- package/dist/bin/api-server.js.map +0 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +0 -1
- package/dist/bin/mcp-scraper-cli.js.map +0 -1
- package/dist/bin/mcp-scraper-install.cjs.map +0 -1
- package/dist/bin/mcp-scraper-install.js.map +0 -1
- package/dist/bin/mcp-stdio-server.cjs.map +0 -1
- package/dist/bin/mcp-stdio-server.js.map +0 -1
- package/dist/bin/paa-harvest.cjs.map +0 -1
- package/dist/bin/paa-harvest.js.map +0 -1
- package/dist/chunk-2XUXVKT4.js.map +0 -1
- package/dist/chunk-3YSEJTMC.js.map +0 -1
- package/dist/chunk-4LINSJNI.js.map +0 -1
- package/dist/chunk-4VG3NUUY.js.map +0 -1
- package/dist/chunk-5BEPOFKG.js.map +0 -1
- package/dist/chunk-5PIO7QBG.js.map +0 -1
- package/dist/chunk-AAGVOPP5.js.map +0 -1
- package/dist/chunk-AJ4YGHG2.js.map +0 -1
- package/dist/chunk-BIUQ6O2Y.js.map +0 -1
- package/dist/chunk-DCWXVAQT.js.map +0 -1
- package/dist/chunk-DKIG2TEE.js.map +0 -1
- package/dist/chunk-EKJ65E3Z.js.map +0 -1
- package/dist/chunk-FG6LJGJ7.js.map +0 -1
- package/dist/chunk-G3P3ZDB4.js.map +0 -1
- package/dist/chunk-HDYOVGC6.js +0 -7
- package/dist/chunk-HDYOVGC6.js.map +0 -1
- package/dist/chunk-N54JS5WP.js.map +0 -1
- package/dist/chunk-P7YFUNKR.js.map +0 -1
- package/dist/chunk-SRRI2HJL.js.map +0 -1
- package/dist/chunk-VIWT35S6.js.map +0 -1
- package/dist/chunk-WD73OFL3.js.map +0 -1
- package/dist/chunk-X7UG2JCF.js.map +0 -1
- package/dist/chunk-XPFRP5QT.js.map +0 -1
- package/dist/db-BRI465XQ.js.map +0 -1
- package/dist/extract-bundle-QAI7JYV2.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lead-list-enrichment-repository-ODWGRVCQ.js.map +0 -1
- package/dist/location-data-repository-67MMEVZQ.js.map +0 -1
- package/dist/server-MTKWBSAR.js.map +0 -1
- package/dist/site-extract-repository-J3RH3MOS.js.map +0 -1
- package/dist/worker-K7MPPQ7I.js.map +0 -1
|
@@ -35,7 +35,7 @@ var import_node_crypto = require("crypto");
|
|
|
35
35
|
|
|
36
36
|
// src/harvest-timeout.ts
|
|
37
37
|
var SCRAPE_FUNCTION_MAX_MS = 8e5;
|
|
38
|
-
var DEFAULT_TOOL_CLIENT_TIMEOUT_MS =
|
|
38
|
+
var DEFAULT_TOOL_CLIENT_TIMEOUT_MS = 59e4;
|
|
39
39
|
var CLIENT_OVER_SERVER_MARGIN_MS = 15e3;
|
|
40
40
|
function harvestTimeoutBudget(maxQuestions, serpOnly = false) {
|
|
41
41
|
const requested = Number.isFinite(maxQuestions) && maxQuestions > 0 ? Math.trunc(maxQuestions) : 30;
|
|
@@ -213,8 +213,9 @@ function publicErrorMessage(code) {
|
|
|
213
213
|
case "proxy_unavailable":
|
|
214
214
|
return "The web request could not establish a working connection. Please retry later.";
|
|
215
215
|
case "harvest_timeout":
|
|
216
|
-
case "mcp_request_timeout":
|
|
217
216
|
return "The request timed out before it completed. Please retry with a smaller request.";
|
|
217
|
+
case "mcp_request_timeout":
|
|
218
|
+
return "The MCP caller stopped waiting before a final response arrived. Durable work may still be running; continue with the returned Task or job handle instead of restarting it.";
|
|
218
219
|
case "concurrency_limit_exceeded":
|
|
219
220
|
return "The service is available, but this account has reached its parallel-operation limit. Wait for an active operation to finish or add capacity.";
|
|
220
221
|
case "unauthorized":
|
|
@@ -515,7 +516,7 @@ var HttpMcpToolExecutor = class {
|
|
|
515
516
|
retryable: true,
|
|
516
517
|
path,
|
|
517
518
|
timeoutMs,
|
|
518
|
-
message: `MCP Scraper
|
|
519
|
+
message: `MCP Scraper stopped waiting after ${Math.round(timeoutMs / 1e3)}s. This does not prove server-side work stopped: the operation may still be running or may have already completed and been billed. Prefer the returned Task or job handle for long work. ${timeoutGuidance}`
|
|
519
520
|
})
|
|
520
521
|
}],
|
|
521
522
|
isError: true
|
|
@@ -598,8 +599,17 @@ var HttpMcpToolExecutor = class {
|
|
|
598
599
|
}
|
|
599
600
|
harvestPaa(input) {
|
|
600
601
|
const timeoutMs = this.httpTimeoutOverrideMs ?? harvestTimeoutBudget(input.maxQuestions ?? 30).clientMs;
|
|
601
|
-
const
|
|
602
|
-
|
|
602
|
+
const { idempotencyKey, ...body } = input;
|
|
603
|
+
const headers = idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {};
|
|
604
|
+
return this.call("/harvest/sync", body, timeoutMs, "POST", headers, true);
|
|
605
|
+
}
|
|
606
|
+
startHarvestPaa(input) {
|
|
607
|
+
const { idempotencyKey, ...body } = input;
|
|
608
|
+
const headers = idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {};
|
|
609
|
+
return this.call("/harvest", body, this.timeoutMs, "POST", headers, true);
|
|
610
|
+
}
|
|
611
|
+
harvestPaaStatus(input) {
|
|
612
|
+
return this.getJson(`/jobs/${encodeURIComponent(input.jobId)}`);
|
|
603
613
|
}
|
|
604
614
|
searchSerp(input) {
|
|
605
615
|
const timeoutMs = this.httpTimeoutOverrideMs ?? harvestTimeoutBudget(0, true).clientMs;
|
|
@@ -1222,7 +1232,7 @@ render();
|
|
|
1222
1232
|
}
|
|
1223
1233
|
|
|
1224
1234
|
// src/version.ts
|
|
1225
|
-
var PACKAGE_VERSION = "0.66.
|
|
1235
|
+
var PACKAGE_VERSION = "0.66.2";
|
|
1226
1236
|
|
|
1227
1237
|
// src/mcp/input-field-descriptions.ts
|
|
1228
1238
|
var import_zod = require("zod");
|
|
@@ -2227,60 +2237,10 @@ async function annotateReplayVideo(inputFilePath, outputFilePath, options) {
|
|
|
2227
2237
|
}
|
|
2228
2238
|
|
|
2229
2239
|
// src/mcp/output-schema-registry.ts
|
|
2230
|
-
var ESSENTIAL_OUTPUT_SCHEMA_TOOLS = /* @__PURE__ */ new Set([
|
|
2231
|
-
"extract_url",
|
|
2232
|
-
"extract_site",
|
|
2233
|
-
"analyze_site_similarity",
|
|
2234
|
-
"audit_site",
|
|
2235
|
-
"check_site_export",
|
|
2236
|
-
"site_export_read",
|
|
2237
|
-
"site_export_image",
|
|
2238
|
-
"archive_read",
|
|
2239
|
-
"report_artifact_read",
|
|
2240
|
-
"directory_workflow",
|
|
2241
|
-
"directory_workflow_status",
|
|
2242
|
-
"lead_list_upload_start",
|
|
2243
|
-
"lead_list_import",
|
|
2244
|
-
"lead_list_enrich",
|
|
2245
|
-
"lead_list_enrich_status",
|
|
2246
|
-
"video_frame_analysis",
|
|
2247
|
-
"video_frame_analysis_status",
|
|
2248
|
-
"workflow_run",
|
|
2249
|
-
"workflow_step",
|
|
2250
|
-
"workflow_status",
|
|
2251
|
-
"workflow_artifact_read",
|
|
2252
|
-
"export_connected_service_data",
|
|
2253
|
-
"export_search_console_table_data",
|
|
2254
|
-
"renew_connected_data_download",
|
|
2255
|
-
"browser_open",
|
|
2256
|
-
"browser_screenshot",
|
|
2257
|
-
"browser_replay_start",
|
|
2258
|
-
"browser_replay_stop",
|
|
2259
|
-
"browser_replay_download",
|
|
2260
|
-
"create_scheduled_run_view_link",
|
|
2261
|
-
"get_scheduled_run",
|
|
2262
|
-
"library-ingest",
|
|
2263
|
-
"image_project_create",
|
|
2264
|
-
"image_project_list",
|
|
2265
|
-
"image_folder_create",
|
|
2266
|
-
"image_folder_list",
|
|
2267
|
-
"image_asset_save",
|
|
2268
|
-
"image_asset_get",
|
|
2269
|
-
"image_asset_list",
|
|
2270
|
-
"image_asset_search",
|
|
2271
|
-
"image_asset_move",
|
|
2272
|
-
"image_asset_delete"
|
|
2273
|
-
]);
|
|
2274
|
-
function resolveOutputSchemaMode(env = process.env) {
|
|
2275
|
-
const explicit = env.MCP_SCRAPER_OUTPUT_SCHEMA_MODE?.trim().toLowerCase();
|
|
2276
|
-
if (explicit === "none" || explicit === "essential" || explicit === "all") return explicit;
|
|
2277
|
-
return env.MCP_SCRAPER_ADVERTISE_OUTPUT_SCHEMAS === "true" ? "all" : "none";
|
|
2278
|
-
}
|
|
2279
|
-
var OUTPUT_SCHEMA_MODE = resolveOutputSchemaMode();
|
|
2280
2240
|
var OUTPUT_SCHEMAS = {};
|
|
2281
2241
|
function recordOutputSchema(name, schema) {
|
|
2282
2242
|
OUTPUT_SCHEMAS[name] = schema;
|
|
2283
|
-
return
|
|
2243
|
+
return schema;
|
|
2284
2244
|
}
|
|
2285
2245
|
|
|
2286
2246
|
// src/mcp/browser-agent-mcp-server.ts
|
|
@@ -9772,7 +9732,7 @@ var HarvestPaaInputSchema = {
|
|
|
9772
9732
|
gl: import_zod8.z.string().length(2).default("us").describe("Google country code inferred from location or user language."),
|
|
9773
9733
|
hl: import_zod8.z.string().default("en").describe("Google interface/content language inferred from the user request."),
|
|
9774
9734
|
device: import_zod8.z.enum(["desktop", "mobile"]).default("desktop").describe("SERP device context. Use mobile only for mobile rankings."),
|
|
9775
|
-
idempotencyKey: import_zod8.z.string().trim().min(8).max(200).optional().describe("
|
|
9735
|
+
idempotencyKey: import_zod8.z.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."),
|
|
9776
9736
|
serpIdentity: import_zod8.z.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."),
|
|
9777
9737
|
includeAllSerpFeatures: import_zod8.z.boolean().default(false).describe("Capture every optional same-page SERP surface: local pack, forums, videos, AI Overview/AI Mode, and What People Are Saying."),
|
|
9778
9738
|
includeLocalPack: import_zod8.z.boolean().default(false).describe("Include Google local/map-pack businesses and merge their entity IDs."),
|
|
@@ -9782,6 +9742,9 @@ var HarvestPaaInputSchema = {
|
|
|
9782
9742
|
includeWhatPeopleSaying: import_zod8.z.boolean().default(false).describe("Include the What People Are Saying social surface when present."),
|
|
9783
9743
|
debug: import_zod8.z.boolean().default(false).describe("Include sanitized diagnostics for debugging.")
|
|
9784
9744
|
};
|
|
9745
|
+
var HarvestPaaHostedInputSchema = Object.fromEntries(
|
|
9746
|
+
Object.entries(HarvestPaaInputSchema).filter(([name]) => name !== "debug")
|
|
9747
|
+
);
|
|
9785
9748
|
var ExtractUrlBaseInputSchema = {
|
|
9786
9749
|
url: import_zod8.z.string().url().describe("Public http/https URL to extract."),
|
|
9787
9750
|
screenshot: import_zod8.z.boolean().default(false).describe("Capture a full-page screenshot. Large captures may be offloaded to an owned artifact."),
|
|
@@ -13043,7 +13006,7 @@ function decodeTaskHandle(taskId, secret, ownerId) {
|
|
|
13043
13006
|
decipher.update(ciphertext),
|
|
13044
13007
|
decipher.final()
|
|
13045
13008
|
]).toString("utf8"));
|
|
13046
|
-
if (parsed.v !== 1 || parsed.ownerId !== ownerId || !["site_export", "directory_workflow", "video_frame_analysis", "lead_list_enrichment"].includes(String(parsed.kind)) || typeof parsed.operationId !== "string" || !parsed.operationId || typeof parsed.createdAtMs !== "number" || typeof parsed.expiresAtMs !== "number") throw new Error("invalid payload");
|
|
13009
|
+
if (parsed.v !== 1 || parsed.ownerId !== ownerId || !["paa_harvest", "site_export", "directory_workflow", "video_frame_analysis", "lead_list_enrichment"].includes(String(parsed.kind)) || typeof parsed.operationId !== "string" || !parsed.operationId || typeof parsed.createdAtMs !== "number" || typeof parsed.expiresAtMs !== "number") throw new Error("invalid payload");
|
|
13047
13010
|
if (Date.now() > parsed.expiresAtMs) {
|
|
13048
13011
|
throw new import_server2.ProtocolError(TASK_INVALID_PARAMS, "Failed to retrieve task: Task has expired");
|
|
13049
13012
|
}
|
|
@@ -13056,9 +13019,25 @@ function decodeTaskHandle(taskId, secret, ownerId) {
|
|
|
13056
13019
|
function objectValue(value) {
|
|
13057
13020
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
13058
13021
|
}
|
|
13059
|
-
function
|
|
13022
|
+
function resultValue(result) {
|
|
13060
13023
|
const structured = objectValue(result.structuredContent);
|
|
13024
|
+
if (structured) return structured;
|
|
13025
|
+
const block = result.content.find((item) => item.type === "text");
|
|
13026
|
+
if (!block || block.type !== "text") return void 0;
|
|
13027
|
+
try {
|
|
13028
|
+
return objectValue(JSON.parse(block.text));
|
|
13029
|
+
} catch {
|
|
13030
|
+
return void 0;
|
|
13031
|
+
}
|
|
13032
|
+
}
|
|
13033
|
+
function taskSeed(kind, result) {
|
|
13034
|
+
const structured = resultValue(result);
|
|
13061
13035
|
if (!structured || result.isError === true) return void 0;
|
|
13036
|
+
if (kind === "paa_harvest") {
|
|
13037
|
+
const operationId2 = structured.job_id ?? structured.jobId;
|
|
13038
|
+
if (typeof operationId2 !== "string" || !["pending", "running"].includes(String(structured.status))) return void 0;
|
|
13039
|
+
return { kind, operationId: operationId2, statusMessage: "PAA harvest started. Progress will be preserved while the client polls this Task." };
|
|
13040
|
+
}
|
|
13062
13041
|
if (kind === "site_export") {
|
|
13063
13042
|
const operationId2 = structured.jobId;
|
|
13064
13043
|
if (typeof operationId2 !== "string" || structured.status !== "pending") return void 0;
|
|
@@ -13079,6 +13058,34 @@ function taskSeed(kind, result) {
|
|
|
13079
13058
|
if (structured.ok !== true || !["queued", "running", "processing", "pending"].includes(String(structured.status))) return void 0;
|
|
13080
13059
|
return { kind, operationId, statusMessage: "Video analysis is running." };
|
|
13081
13060
|
}
|
|
13061
|
+
function createTaskResult(kind, result, options) {
|
|
13062
|
+
const seed = taskSeed(kind, result);
|
|
13063
|
+
if (!seed) return result;
|
|
13064
|
+
const createdAtMs2 = Date.now();
|
|
13065
|
+
const payload = {
|
|
13066
|
+
v: 1,
|
|
13067
|
+
ownerId: options.ownerId,
|
|
13068
|
+
kind: seed.kind,
|
|
13069
|
+
operationId: seed.operationId,
|
|
13070
|
+
createdAtMs: createdAtMs2,
|
|
13071
|
+
expiresAtMs: createdAtMs2 + TASK_TTL_MS
|
|
13072
|
+
};
|
|
13073
|
+
return {
|
|
13074
|
+
resultType: "task",
|
|
13075
|
+
taskId: encodeTaskHandle(payload, options.secret),
|
|
13076
|
+
status: "working",
|
|
13077
|
+
statusMessage: seed.statusMessage,
|
|
13078
|
+
createdAt: new Date(createdAtMs2).toISOString(),
|
|
13079
|
+
lastUpdatedAt: new Date(createdAtMs2).toISOString(),
|
|
13080
|
+
ttlMs: TASK_TTL_MS,
|
|
13081
|
+
pollIntervalMs: TASK_POLL_INTERVAL_MS,
|
|
13082
|
+
// The registered SDK path validates structuredContent against the tool's
|
|
13083
|
+
// terminal output schema before it can serialize a Task envelope. Retain
|
|
13084
|
+
// the bounded start receipt for that path; the hosted HTTP Task seam runs
|
|
13085
|
+
// before terminal-output serialization.
|
|
13086
|
+
...result.structuredContent ? { structuredContent: result.structuredContent } : {}
|
|
13087
|
+
};
|
|
13088
|
+
}
|
|
13082
13089
|
function taskBase(payload, taskId) {
|
|
13083
13090
|
return {
|
|
13084
13091
|
taskId,
|
|
@@ -13089,10 +13096,13 @@ function taskBase(payload, taskId) {
|
|
|
13089
13096
|
};
|
|
13090
13097
|
}
|
|
13091
13098
|
function statusFrom(result) {
|
|
13092
|
-
const status =
|
|
13099
|
+
const status = resultValue(result)?.status;
|
|
13093
13100
|
return typeof status === "string" ? status : void 0;
|
|
13094
13101
|
}
|
|
13095
13102
|
async function pollTask(executor, payload) {
|
|
13103
|
+
if (payload.kind === "paa_harvest") {
|
|
13104
|
+
return executor.harvestPaaStatus({ jobId: payload.operationId });
|
|
13105
|
+
}
|
|
13096
13106
|
if (payload.kind === "site_export") {
|
|
13097
13107
|
return executor.checkSiteExport({ jobId: payload.operationId });
|
|
13098
13108
|
}
|
|
@@ -13104,6 +13114,30 @@ async function pollTask(executor, payload) {
|
|
|
13104
13114
|
}
|
|
13105
13115
|
return executor.videoFrameAnalysisStatus({ runId: payload.operationId });
|
|
13106
13116
|
}
|
|
13117
|
+
function taskProgressMessage(kind, result, status) {
|
|
13118
|
+
const value = resultValue(result) ?? {};
|
|
13119
|
+
if (kind === "paa_harvest") {
|
|
13120
|
+
const resultRecord = objectValue(value.result) ?? {};
|
|
13121
|
+
const progress = objectValue(resultRecord.progress) ?? {};
|
|
13122
|
+
const records = Array.isArray(progress.records) ? progress.records.length : 0;
|
|
13123
|
+
const attempts = Array.isArray(value.attempts) ? value.attempts.length : 0;
|
|
13124
|
+
const pieces = [records > 0 ? `${records} questions preserved` : null, attempts > 0 ? `${attempts} attempts recorded` : null].filter(Boolean);
|
|
13125
|
+
return pieces.length > 0 ? `PAA harvest is ${status ?? "running"}: ${pieces.join(", ")}.` : `PAA harvest is ${status ?? "running"}; no question checkpoint has been persisted yet.`;
|
|
13126
|
+
}
|
|
13127
|
+
if (kind === "lead_list_enrichment") {
|
|
13128
|
+
const progress = objectValue(value.progress) ?? {};
|
|
13129
|
+
const completed = typeof progress.completedRows === "number" ? progress.completedRows : null;
|
|
13130
|
+
const total = typeof progress.totalRows === "number" ? progress.totalRows : null;
|
|
13131
|
+
if (completed !== null && total !== null) return `Lead list enrichment is ${status ?? "running"}: ${completed}/${total} rows completed.`;
|
|
13132
|
+
}
|
|
13133
|
+
if (kind === "directory_workflow") {
|
|
13134
|
+
const progress = objectValue(value.progress) ?? {};
|
|
13135
|
+
const completed = typeof progress.completedCities === "number" ? progress.completedCities : null;
|
|
13136
|
+
const total = typeof progress.totalCities === "number" ? progress.totalCities : null;
|
|
13137
|
+
if (completed !== null && total !== null) return `Directory workflow is ${status ?? "running"}: ${completed}/${total} markets completed.`;
|
|
13138
|
+
}
|
|
13139
|
+
return status ? `Underlying operation status: ${status}.` : "Underlying operation is running.";
|
|
13140
|
+
}
|
|
13107
13141
|
async function cancelTask(executor, payload) {
|
|
13108
13142
|
if (payload.kind !== "lead_list_enrichment") return;
|
|
13109
13143
|
const result = await executor.leadListEnrichCancel({ jobId: payload.operationId });
|
|
@@ -13120,7 +13154,7 @@ async function detailedTask(executor, taskId, options) {
|
|
|
13120
13154
|
return {
|
|
13121
13155
|
...base,
|
|
13122
13156
|
status: "working",
|
|
13123
|
-
statusMessage:
|
|
13157
|
+
statusMessage: taskProgressMessage(payload.kind, result, status)
|
|
13124
13158
|
};
|
|
13125
13159
|
}
|
|
13126
13160
|
if (payload.kind === "lead_list_enrichment" && status === "failed") {
|
|
@@ -13131,6 +13165,22 @@ async function detailedTask(executor, taskId, options) {
|
|
|
13131
13165
|
result
|
|
13132
13166
|
};
|
|
13133
13167
|
}
|
|
13168
|
+
if (payload.kind === "paa_harvest" && status === "failed") {
|
|
13169
|
+
return {
|
|
13170
|
+
...base,
|
|
13171
|
+
status: "failed",
|
|
13172
|
+
statusMessage: "PAA harvest failed; persisted attempts and billing state are included in the result.",
|
|
13173
|
+
result
|
|
13174
|
+
};
|
|
13175
|
+
}
|
|
13176
|
+
if (payload.kind === "paa_harvest" && status === "cancelled") {
|
|
13177
|
+
return {
|
|
13178
|
+
...base,
|
|
13179
|
+
status: "cancelled",
|
|
13180
|
+
statusMessage: "PAA harvest was cancelled.",
|
|
13181
|
+
result
|
|
13182
|
+
};
|
|
13183
|
+
}
|
|
13134
13184
|
if (payload.kind === "lead_list_enrichment" && status === "cancelled") {
|
|
13135
13185
|
return {
|
|
13136
13186
|
...base,
|
|
@@ -13147,12 +13197,20 @@ async function detailedTask(executor, taskId, options) {
|
|
|
13147
13197
|
};
|
|
13148
13198
|
}
|
|
13149
13199
|
function isWorking(kind, status) {
|
|
13200
|
+
if (kind === "paa_harvest") return status === "pending" || status === "running";
|
|
13150
13201
|
if (kind === "site_export") return status === "pending" || status === "running";
|
|
13151
13202
|
if (kind === "directory_workflow") return status === "queued" || status === "running";
|
|
13152
13203
|
if (kind === "lead_list_enrichment") return status === "queued" || status === "running";
|
|
13153
13204
|
return status === "queued" || status === "running" || status === "processing" || status === "pending";
|
|
13154
13205
|
}
|
|
13155
13206
|
function registerMcpTasksExtension(server, executor, options) {
|
|
13207
|
+
const enabled = options.enableTaskStarts !== false;
|
|
13208
|
+
if (!enabled) {
|
|
13209
|
+
return {
|
|
13210
|
+
supportsTasks: () => false,
|
|
13211
|
+
taskify: (_kind, result) => result
|
|
13212
|
+
};
|
|
13213
|
+
}
|
|
13156
13214
|
server.server.registerCapabilities({
|
|
13157
13215
|
extensions: { [MCP_TASKS_EXTENSION_ID]: {} }
|
|
13158
13216
|
});
|
|
@@ -13178,34 +13236,12 @@ function registerMcpTasksExtension(server, executor, options) {
|
|
|
13178
13236
|
return {};
|
|
13179
13237
|
});
|
|
13180
13238
|
return {
|
|
13239
|
+
supportsTasks() {
|
|
13240
|
+
return hasTasksCapability(server.server.getClientCapabilities());
|
|
13241
|
+
},
|
|
13181
13242
|
taskify(kind, result) {
|
|
13182
13243
|
if (!hasTasksCapability(server.server.getClientCapabilities())) return result;
|
|
13183
|
-
|
|
13184
|
-
if (!seed) return result;
|
|
13185
|
-
const createdAtMs2 = Date.now();
|
|
13186
|
-
const payload = {
|
|
13187
|
-
v: 1,
|
|
13188
|
-
ownerId: options.ownerId,
|
|
13189
|
-
kind: seed.kind,
|
|
13190
|
-
operationId: seed.operationId,
|
|
13191
|
-
createdAtMs: createdAtMs2,
|
|
13192
|
-
expiresAtMs: createdAtMs2 + TASK_TTL_MS
|
|
13193
|
-
};
|
|
13194
|
-
const taskId = encodeTaskHandle(payload, options.secret);
|
|
13195
|
-
return {
|
|
13196
|
-
resultType: "task",
|
|
13197
|
-
taskId,
|
|
13198
|
-
status: "working",
|
|
13199
|
-
statusMessage: seed.statusMessage,
|
|
13200
|
-
createdAt: new Date(createdAtMs2).toISOString(),
|
|
13201
|
-
lastUpdatedAt: new Date(createdAtMs2).toISOString(),
|
|
13202
|
-
ttlMs: TASK_TTL_MS,
|
|
13203
|
-
pollIntervalMs: TASK_POLL_INTERVAL_MS,
|
|
13204
|
-
// The SDK validates advertised outputSchema before serializing the
|
|
13205
|
-
// Task envelope. Preserve the already-bounded start receipt so typed
|
|
13206
|
-
// tools remain task-capable when essential output schemas are on.
|
|
13207
|
-
...result.structuredContent ? { structuredContent: result.structuredContent } : {}
|
|
13208
|
-
};
|
|
13244
|
+
return createTaskResult(kind, result, options);
|
|
13209
13245
|
}
|
|
13210
13246
|
};
|
|
13211
13247
|
}
|
|
@@ -13609,19 +13645,21 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
13609
13645
|
const fileBehavior = (local, hosted) => savesReports ? local : hosted;
|
|
13610
13646
|
const ownerId = options.ownerId ?? "local";
|
|
13611
13647
|
const ctx = { hosted: !savesReports, ownerId };
|
|
13648
|
+
const transportProfile = options.transportProfile ?? (savesReports ? "stdio" : "hosted_http");
|
|
13612
13649
|
registerAnalyticsMcpTools(server, executor);
|
|
13613
13650
|
const exposesLocalNetworkAccess = options.localNetworkAccess ?? permitsLocalNetworkAccess({
|
|
13614
13651
|
deploymentProfile: options.deploymentProfile ?? "production",
|
|
13615
|
-
transportProfile
|
|
13652
|
+
transportProfile,
|
|
13616
13653
|
baseUrl: options.baseUrl
|
|
13617
13654
|
});
|
|
13618
13655
|
const exposesDevelopmentDiagnostics = options.deploymentProfile === "development" || options.deploymentProfile === "test";
|
|
13619
13656
|
const tasks = registerMcpTasksExtension(server, executor, {
|
|
13620
13657
|
ownerId,
|
|
13621
|
-
secret: options.taskHandleSecret ?? `local:${ownerId}
|
|
13658
|
+
secret: options.taskHandleSecret ?? `local:${ownerId}`,
|
|
13659
|
+
enableTaskStarts: transportProfile === "hosted_http"
|
|
13622
13660
|
});
|
|
13623
13661
|
const privateSearchFields = exposesDevelopmentDiagnostics ? [] : ["debug"];
|
|
13624
|
-
const harvestPaaInputSchema =
|
|
13662
|
+
const harvestPaaInputSchema = exposesDevelopmentDiagnostics ? HarvestPaaInputSchema : HarvestPaaHostedInputSchema;
|
|
13625
13663
|
const searchSerpInputSchema = schemaWithoutFields(SearchSerpInputSchema, privateSearchFields);
|
|
13626
13664
|
const mapsSearchInputSchema = schemaWithoutFields(MapsSearchInputSchema, privateSearchFields);
|
|
13627
13665
|
const directoryWorkflowInputSchema = schemaWithoutFields(
|
|
@@ -13635,7 +13673,13 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
13635
13673
|
inputSchema: harvestPaaInputSchema,
|
|
13636
13674
|
outputSchema: recordOutputSchema("harvest_paa", HarvestPaaOutputSchema),
|
|
13637
13675
|
annotations: liveWebToolAnnotations("Google PAA + SERP Harvest")
|
|
13638
|
-
}, async (input) =>
|
|
13676
|
+
}, async (input, requestContext) => {
|
|
13677
|
+
const executionInput = { ...input, debug: input.debug === true };
|
|
13678
|
+
if (tasks.supportsTasks() && !executionInput.serpIdentity) {
|
|
13679
|
+
return tasks.taskify("paa_harvest", await executor.startHarvestPaa(executionInput), requestContext);
|
|
13680
|
+
}
|
|
13681
|
+
return formatHarvestPaa(await executor.harvestPaa(executionInput), executionInput);
|
|
13682
|
+
});
|
|
13639
13683
|
server.registerTool("search_serp", {
|
|
13640
13684
|
title: "Google SERP Lookup",
|
|
13641
13685
|
description: `Google SERP lookup without PAA expansion. Defaults to organic rankings and Google entity IDs; request local pack, forums, videos, AI surfaces, and What People Are Saying with individual include flags or includeAllSerpFeatures at the same product price. Use gl for country and location only when city or regional context matters. Costs ${SERP_SEARCH_CREDITS} Credits per search. Call credits_info for current pricing and balance.`,
|
|
@@ -14453,8 +14497,1532 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
14453
14497
|
// src/mcp/memory-mcp-server.ts
|
|
14454
14498
|
var import_server4 = require("@modelcontextprotocol/server");
|
|
14455
14499
|
|
|
14456
|
-
// src/mcp/memory-tool-
|
|
14457
|
-
var
|
|
14500
|
+
// src/mcp/memory-image-tool-schemas.generated.ts
|
|
14501
|
+
var MEMORY_IMAGE_TOOL_SCHEMAS = [
|
|
14502
|
+
{
|
|
14503
|
+
"id": "image_project_create",
|
|
14504
|
+
"upstreamName": "image_project_create",
|
|
14505
|
+
"description": "Create a stable image project inside a writable hosted Memory vault. Projects organize governed private image assets; they do not create local folders or change object keys.",
|
|
14506
|
+
"inputJsonSchema": {
|
|
14507
|
+
"type": "object",
|
|
14508
|
+
"properties": {
|
|
14509
|
+
"vault": {
|
|
14510
|
+
"type": "string",
|
|
14511
|
+
"description": "Writable logical Memory vault. Defaults to the active vault."
|
|
14512
|
+
},
|
|
14513
|
+
"name": {
|
|
14514
|
+
"type": "string",
|
|
14515
|
+
"minLength": 1,
|
|
14516
|
+
"maxLength": 120
|
|
14517
|
+
},
|
|
14518
|
+
"description": {
|
|
14519
|
+
"type": "string",
|
|
14520
|
+
"maxLength": 2e3
|
|
14521
|
+
}
|
|
14522
|
+
},
|
|
14523
|
+
"required": [
|
|
14524
|
+
"name"
|
|
14525
|
+
],
|
|
14526
|
+
"additionalProperties": false,
|
|
14527
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14528
|
+
},
|
|
14529
|
+
"outputJsonSchema": {
|
|
14530
|
+
"type": "object",
|
|
14531
|
+
"properties": {
|
|
14532
|
+
"ok": {
|
|
14533
|
+
"type": "boolean",
|
|
14534
|
+
"enum": [
|
|
14535
|
+
true,
|
|
14536
|
+
false
|
|
14537
|
+
]
|
|
14538
|
+
},
|
|
14539
|
+
"project": {
|
|
14540
|
+
"type": "object",
|
|
14541
|
+
"properties": {
|
|
14542
|
+
"id": {
|
|
14543
|
+
"type": "string"
|
|
14544
|
+
},
|
|
14545
|
+
"name": {
|
|
14546
|
+
"type": "string"
|
|
14547
|
+
},
|
|
14548
|
+
"description": {
|
|
14549
|
+
"type": [
|
|
14550
|
+
"string",
|
|
14551
|
+
"null"
|
|
14552
|
+
]
|
|
14553
|
+
},
|
|
14554
|
+
"createdAt": {
|
|
14555
|
+
"type": "string"
|
|
14556
|
+
}
|
|
14557
|
+
},
|
|
14558
|
+
"required": [
|
|
14559
|
+
"id",
|
|
14560
|
+
"name",
|
|
14561
|
+
"description",
|
|
14562
|
+
"createdAt"
|
|
14563
|
+
],
|
|
14564
|
+
"additionalProperties": false
|
|
14565
|
+
},
|
|
14566
|
+
"code": {
|
|
14567
|
+
"type": "string"
|
|
14568
|
+
},
|
|
14569
|
+
"error": {
|
|
14570
|
+
"type": "string"
|
|
14571
|
+
}
|
|
14572
|
+
},
|
|
14573
|
+
"required": [
|
|
14574
|
+
"ok"
|
|
14575
|
+
],
|
|
14576
|
+
"additionalProperties": false,
|
|
14577
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14578
|
+
},
|
|
14579
|
+
"annotations": {
|
|
14580
|
+
"title": "Create Image Project",
|
|
14581
|
+
"readOnlyHint": false,
|
|
14582
|
+
"destructiveHint": false,
|
|
14583
|
+
"idempotentHint": false,
|
|
14584
|
+
"openWorldHint": false
|
|
14585
|
+
}
|
|
14586
|
+
},
|
|
14587
|
+
{
|
|
14588
|
+
"id": "image_project_list",
|
|
14589
|
+
"upstreamName": "image_project_list",
|
|
14590
|
+
"description": "List image projects in an accessible hosted Memory vault. Returns organization metadata only, never object-store keys.",
|
|
14591
|
+
"inputJsonSchema": {
|
|
14592
|
+
"type": "object",
|
|
14593
|
+
"properties": {
|
|
14594
|
+
"vault": {
|
|
14595
|
+
"type": "string"
|
|
14596
|
+
}
|
|
14597
|
+
},
|
|
14598
|
+
"additionalProperties": false,
|
|
14599
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14600
|
+
},
|
|
14601
|
+
"outputJsonSchema": {
|
|
14602
|
+
"type": "object",
|
|
14603
|
+
"properties": {
|
|
14604
|
+
"ok": {
|
|
14605
|
+
"type": "boolean",
|
|
14606
|
+
"enum": [
|
|
14607
|
+
true,
|
|
14608
|
+
false
|
|
14609
|
+
]
|
|
14610
|
+
},
|
|
14611
|
+
"projects": {
|
|
14612
|
+
"type": "array",
|
|
14613
|
+
"items": {
|
|
14614
|
+
"type": "object",
|
|
14615
|
+
"properties": {
|
|
14616
|
+
"id": {
|
|
14617
|
+
"type": "string"
|
|
14618
|
+
},
|
|
14619
|
+
"name": {
|
|
14620
|
+
"type": "string"
|
|
14621
|
+
},
|
|
14622
|
+
"description": {
|
|
14623
|
+
"type": [
|
|
14624
|
+
"string",
|
|
14625
|
+
"null"
|
|
14626
|
+
]
|
|
14627
|
+
},
|
|
14628
|
+
"status": {
|
|
14629
|
+
"type": "string"
|
|
14630
|
+
},
|
|
14631
|
+
"createdAt": {
|
|
14632
|
+
"type": "string"
|
|
14633
|
+
},
|
|
14634
|
+
"updatedAt": {
|
|
14635
|
+
"type": "string"
|
|
14636
|
+
}
|
|
14637
|
+
},
|
|
14638
|
+
"required": [
|
|
14639
|
+
"id",
|
|
14640
|
+
"name",
|
|
14641
|
+
"description",
|
|
14642
|
+
"status",
|
|
14643
|
+
"createdAt",
|
|
14644
|
+
"updatedAt"
|
|
14645
|
+
],
|
|
14646
|
+
"additionalProperties": false
|
|
14647
|
+
}
|
|
14648
|
+
},
|
|
14649
|
+
"code": {
|
|
14650
|
+
"type": "string"
|
|
14651
|
+
},
|
|
14652
|
+
"error": {
|
|
14653
|
+
"type": "string"
|
|
14654
|
+
}
|
|
14655
|
+
},
|
|
14656
|
+
"required": [
|
|
14657
|
+
"ok"
|
|
14658
|
+
],
|
|
14659
|
+
"additionalProperties": false,
|
|
14660
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14661
|
+
},
|
|
14662
|
+
"annotations": {
|
|
14663
|
+
"title": "List Image Projects",
|
|
14664
|
+
"readOnlyHint": true,
|
|
14665
|
+
"destructiveHint": false,
|
|
14666
|
+
"idempotentHint": true,
|
|
14667
|
+
"openWorldHint": false
|
|
14668
|
+
}
|
|
14669
|
+
},
|
|
14670
|
+
{
|
|
14671
|
+
"id": "image_folder_create",
|
|
14672
|
+
"upstreamName": "image_folder_create",
|
|
14673
|
+
"description": "Create a nested image folder inside one writable Memory image project. Maximum nesting depth is eight; this changes logical organization only.",
|
|
14674
|
+
"inputJsonSchema": {
|
|
14675
|
+
"type": "object",
|
|
14676
|
+
"properties": {
|
|
14677
|
+
"vault": {
|
|
14678
|
+
"type": "string"
|
|
14679
|
+
},
|
|
14680
|
+
"projectId": {
|
|
14681
|
+
"type": "string",
|
|
14682
|
+
"minLength": 1
|
|
14683
|
+
},
|
|
14684
|
+
"parentId": {
|
|
14685
|
+
"type": "string",
|
|
14686
|
+
"minLength": 1
|
|
14687
|
+
},
|
|
14688
|
+
"name": {
|
|
14689
|
+
"type": "string",
|
|
14690
|
+
"minLength": 1,
|
|
14691
|
+
"maxLength": 120
|
|
14692
|
+
}
|
|
14693
|
+
},
|
|
14694
|
+
"required": [
|
|
14695
|
+
"projectId",
|
|
14696
|
+
"name"
|
|
14697
|
+
],
|
|
14698
|
+
"additionalProperties": false,
|
|
14699
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14700
|
+
},
|
|
14701
|
+
"outputJsonSchema": {
|
|
14702
|
+
"type": "object",
|
|
14703
|
+
"properties": {
|
|
14704
|
+
"ok": {
|
|
14705
|
+
"type": "boolean",
|
|
14706
|
+
"enum": [
|
|
14707
|
+
true,
|
|
14708
|
+
false
|
|
14709
|
+
]
|
|
14710
|
+
},
|
|
14711
|
+
"folder": {
|
|
14712
|
+
"type": "object",
|
|
14713
|
+
"properties": {
|
|
14714
|
+
"id": {
|
|
14715
|
+
"type": "string"
|
|
14716
|
+
},
|
|
14717
|
+
"projectId": {
|
|
14718
|
+
"type": "string"
|
|
14719
|
+
},
|
|
14720
|
+
"parentId": {
|
|
14721
|
+
"type": [
|
|
14722
|
+
"string",
|
|
14723
|
+
"null"
|
|
14724
|
+
]
|
|
14725
|
+
},
|
|
14726
|
+
"name": {
|
|
14727
|
+
"type": "string"
|
|
14728
|
+
},
|
|
14729
|
+
"depth": {
|
|
14730
|
+
"type": "number"
|
|
14731
|
+
},
|
|
14732
|
+
"createdAt": {
|
|
14733
|
+
"type": "string"
|
|
14734
|
+
}
|
|
14735
|
+
},
|
|
14736
|
+
"required": [
|
|
14737
|
+
"id",
|
|
14738
|
+
"projectId",
|
|
14739
|
+
"parentId",
|
|
14740
|
+
"name",
|
|
14741
|
+
"depth",
|
|
14742
|
+
"createdAt"
|
|
14743
|
+
],
|
|
14744
|
+
"additionalProperties": false
|
|
14745
|
+
},
|
|
14746
|
+
"code": {
|
|
14747
|
+
"type": "string"
|
|
14748
|
+
},
|
|
14749
|
+
"error": {
|
|
14750
|
+
"type": "string"
|
|
14751
|
+
}
|
|
14752
|
+
},
|
|
14753
|
+
"required": [
|
|
14754
|
+
"ok"
|
|
14755
|
+
],
|
|
14756
|
+
"additionalProperties": false,
|
|
14757
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14758
|
+
},
|
|
14759
|
+
"annotations": {
|
|
14760
|
+
"title": "Create Image Folder",
|
|
14761
|
+
"readOnlyHint": false,
|
|
14762
|
+
"destructiveHint": false,
|
|
14763
|
+
"idempotentHint": false,
|
|
14764
|
+
"openWorldHint": false
|
|
14765
|
+
}
|
|
14766
|
+
},
|
|
14767
|
+
{
|
|
14768
|
+
"id": "image_folder_list",
|
|
14769
|
+
"upstreamName": "image_folder_list",
|
|
14770
|
+
"description": "List the bounded folder tree for one accessible Memory image project.",
|
|
14771
|
+
"inputJsonSchema": {
|
|
14772
|
+
"type": "object",
|
|
14773
|
+
"properties": {
|
|
14774
|
+
"vault": {
|
|
14775
|
+
"type": "string"
|
|
14776
|
+
},
|
|
14777
|
+
"projectId": {
|
|
14778
|
+
"type": "string",
|
|
14779
|
+
"minLength": 1
|
|
14780
|
+
}
|
|
14781
|
+
},
|
|
14782
|
+
"required": [
|
|
14783
|
+
"projectId"
|
|
14784
|
+
],
|
|
14785
|
+
"additionalProperties": false,
|
|
14786
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14787
|
+
},
|
|
14788
|
+
"outputJsonSchema": {
|
|
14789
|
+
"type": "object",
|
|
14790
|
+
"properties": {
|
|
14791
|
+
"ok": {
|
|
14792
|
+
"type": "boolean",
|
|
14793
|
+
"enum": [
|
|
14794
|
+
true,
|
|
14795
|
+
false
|
|
14796
|
+
]
|
|
14797
|
+
},
|
|
14798
|
+
"folders": {
|
|
14799
|
+
"type": "array",
|
|
14800
|
+
"items": {
|
|
14801
|
+
"type": "object",
|
|
14802
|
+
"properties": {
|
|
14803
|
+
"id": {
|
|
14804
|
+
"type": "string"
|
|
14805
|
+
},
|
|
14806
|
+
"projectId": {
|
|
14807
|
+
"type": "string"
|
|
14808
|
+
},
|
|
14809
|
+
"parentId": {
|
|
14810
|
+
"type": [
|
|
14811
|
+
"string",
|
|
14812
|
+
"null"
|
|
14813
|
+
]
|
|
14814
|
+
},
|
|
14815
|
+
"name": {
|
|
14816
|
+
"type": "string"
|
|
14817
|
+
},
|
|
14818
|
+
"depth": {
|
|
14819
|
+
"type": "number"
|
|
14820
|
+
},
|
|
14821
|
+
"createdAt": {
|
|
14822
|
+
"type": "string"
|
|
14823
|
+
},
|
|
14824
|
+
"updatedAt": {
|
|
14825
|
+
"type": "string"
|
|
14826
|
+
}
|
|
14827
|
+
},
|
|
14828
|
+
"required": [
|
|
14829
|
+
"id",
|
|
14830
|
+
"projectId",
|
|
14831
|
+
"parentId",
|
|
14832
|
+
"name",
|
|
14833
|
+
"depth",
|
|
14834
|
+
"createdAt",
|
|
14835
|
+
"updatedAt"
|
|
14836
|
+
],
|
|
14837
|
+
"additionalProperties": false
|
|
14838
|
+
}
|
|
14839
|
+
},
|
|
14840
|
+
"code": {
|
|
14841
|
+
"type": "string"
|
|
14842
|
+
},
|
|
14843
|
+
"error": {
|
|
14844
|
+
"type": "string"
|
|
14845
|
+
}
|
|
14846
|
+
},
|
|
14847
|
+
"required": [
|
|
14848
|
+
"ok"
|
|
14849
|
+
],
|
|
14850
|
+
"additionalProperties": false,
|
|
14851
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14852
|
+
},
|
|
14853
|
+
"annotations": {
|
|
14854
|
+
"title": "List Image Folders",
|
|
14855
|
+
"readOnlyHint": true,
|
|
14856
|
+
"destructiveHint": false,
|
|
14857
|
+
"idempotentHint": true,
|
|
14858
|
+
"openWorldHint": false
|
|
14859
|
+
}
|
|
14860
|
+
},
|
|
14861
|
+
{
|
|
14862
|
+
"id": "image_asset_save",
|
|
14863
|
+
"upstreamName": "image_asset_save",
|
|
14864
|
+
"description": "Opt in to preserving one image in hosted Memory. Saves immutable private bytes, creates a sanitized preview, consumes storage/embedding quota, and queues visual plus useful fused embeddings. Use for durable image recall; do not use merely to view a transient scrape result.",
|
|
14865
|
+
"inputJsonSchema": {
|
|
14866
|
+
"type": "object",
|
|
14867
|
+
"properties": {
|
|
14868
|
+
"vault": {
|
|
14869
|
+
"type": "string"
|
|
14870
|
+
},
|
|
14871
|
+
"projectId": {
|
|
14872
|
+
"type": "string",
|
|
14873
|
+
"minLength": 1
|
|
14874
|
+
},
|
|
14875
|
+
"folderId": {
|
|
14876
|
+
"type": "string",
|
|
14877
|
+
"minLength": 1
|
|
14878
|
+
},
|
|
14879
|
+
"sourceUrl": {
|
|
14880
|
+
"type": "string",
|
|
14881
|
+
"format": "uri",
|
|
14882
|
+
"description": "Public HTTPS image URL. Private-network and redirect targets are rejected."
|
|
14883
|
+
},
|
|
14884
|
+
"artifactId": {
|
|
14885
|
+
"type": "string",
|
|
14886
|
+
"minLength": 1,
|
|
14887
|
+
"description": "Owned MCP Scraper artifact ID. Available through the aggregate MCP handoff."
|
|
14888
|
+
},
|
|
14889
|
+
"imageBase64": {
|
|
14890
|
+
"type": "string",
|
|
14891
|
+
"minLength": 1,
|
|
14892
|
+
"description": "Bounded base64 image for clients without an upload transport; maximum decoded size is 20 MiB."
|
|
14893
|
+
},
|
|
14894
|
+
"title": {
|
|
14895
|
+
"type": "string",
|
|
14896
|
+
"minLength": 1,
|
|
14897
|
+
"maxLength": 240
|
|
14898
|
+
},
|
|
14899
|
+
"description": {
|
|
14900
|
+
"type": "string",
|
|
14901
|
+
"maxLength": 4e3
|
|
14902
|
+
},
|
|
14903
|
+
"altText": {
|
|
14904
|
+
"type": "string",
|
|
14905
|
+
"maxLength": 2e3
|
|
14906
|
+
},
|
|
14907
|
+
"tags": {
|
|
14908
|
+
"type": "array",
|
|
14909
|
+
"items": {
|
|
14910
|
+
"type": "string",
|
|
14911
|
+
"minLength": 1,
|
|
14912
|
+
"maxLength": 80
|
|
14913
|
+
},
|
|
14914
|
+
"maxItems": 20
|
|
14915
|
+
},
|
|
14916
|
+
"sourceRef": {
|
|
14917
|
+
"type": "object",
|
|
14918
|
+
"additionalProperties": {
|
|
14919
|
+
"anyOf": [
|
|
14920
|
+
{
|
|
14921
|
+
"type": "string",
|
|
14922
|
+
"maxLength": 1e3
|
|
14923
|
+
},
|
|
14924
|
+
{
|
|
14925
|
+
"type": "number"
|
|
14926
|
+
},
|
|
14927
|
+
{
|
|
14928
|
+
"type": "boolean"
|
|
14929
|
+
},
|
|
14930
|
+
{
|
|
14931
|
+
"type": "null"
|
|
14932
|
+
}
|
|
14933
|
+
]
|
|
14934
|
+
}
|
|
14935
|
+
},
|
|
14936
|
+
"idempotencyKey": {
|
|
14937
|
+
"type": "string",
|
|
14938
|
+
"minLength": 8,
|
|
14939
|
+
"maxLength": 200,
|
|
14940
|
+
"description": "Stable key for this logical save. Retrying the same request returns the same asset without another write."
|
|
14941
|
+
}
|
|
14942
|
+
},
|
|
14943
|
+
"required": [
|
|
14944
|
+
"title",
|
|
14945
|
+
"idempotencyKey"
|
|
14946
|
+
],
|
|
14947
|
+
"additionalProperties": false,
|
|
14948
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
14949
|
+
},
|
|
14950
|
+
"outputJsonSchema": {
|
|
14951
|
+
"type": "object",
|
|
14952
|
+
"properties": {
|
|
14953
|
+
"ok": {
|
|
14954
|
+
"type": "boolean",
|
|
14955
|
+
"enum": [
|
|
14956
|
+
true,
|
|
14957
|
+
false
|
|
14958
|
+
]
|
|
14959
|
+
},
|
|
14960
|
+
"asset": {
|
|
14961
|
+
"type": "object",
|
|
14962
|
+
"properties": {
|
|
14963
|
+
"assetId": {
|
|
14964
|
+
"type": "string"
|
|
14965
|
+
},
|
|
14966
|
+
"title": {
|
|
14967
|
+
"type": "string"
|
|
14968
|
+
},
|
|
14969
|
+
"description": {
|
|
14970
|
+
"type": [
|
|
14971
|
+
"string",
|
|
14972
|
+
"null"
|
|
14973
|
+
]
|
|
14974
|
+
},
|
|
14975
|
+
"altText": {
|
|
14976
|
+
"type": [
|
|
14977
|
+
"string",
|
|
14978
|
+
"null"
|
|
14979
|
+
]
|
|
14980
|
+
},
|
|
14981
|
+
"sourceUrl": {
|
|
14982
|
+
"type": [
|
|
14983
|
+
"string",
|
|
14984
|
+
"null"
|
|
14985
|
+
]
|
|
14986
|
+
},
|
|
14987
|
+
"sourceKind": {
|
|
14988
|
+
"type": "string"
|
|
14989
|
+
},
|
|
14990
|
+
"mimeType": {
|
|
14991
|
+
"type": "string"
|
|
14992
|
+
},
|
|
14993
|
+
"bytes": {
|
|
14994
|
+
"type": "number"
|
|
14995
|
+
},
|
|
14996
|
+
"width": {
|
|
14997
|
+
"type": "number"
|
|
14998
|
+
},
|
|
14999
|
+
"height": {
|
|
15000
|
+
"type": "number"
|
|
15001
|
+
},
|
|
15002
|
+
"projectId": {
|
|
15003
|
+
"type": [
|
|
15004
|
+
"string",
|
|
15005
|
+
"null"
|
|
15006
|
+
]
|
|
15007
|
+
},
|
|
15008
|
+
"folderId": {
|
|
15009
|
+
"type": [
|
|
15010
|
+
"string",
|
|
15011
|
+
"null"
|
|
15012
|
+
]
|
|
15013
|
+
},
|
|
15014
|
+
"tags": {
|
|
15015
|
+
"type": "array",
|
|
15016
|
+
"items": {
|
|
15017
|
+
"type": "string"
|
|
15018
|
+
}
|
|
15019
|
+
},
|
|
15020
|
+
"status": {
|
|
15021
|
+
"type": "string"
|
|
15022
|
+
},
|
|
15023
|
+
"embeddingStatus": {
|
|
15024
|
+
"type": "string"
|
|
15025
|
+
},
|
|
15026
|
+
"createdAt": {
|
|
15027
|
+
"type": "string"
|
|
15028
|
+
},
|
|
15029
|
+
"updatedAt": {
|
|
15030
|
+
"type": "string"
|
|
15031
|
+
},
|
|
15032
|
+
"preview": {
|
|
15033
|
+
"type": "object",
|
|
15034
|
+
"properties": {
|
|
15035
|
+
"url": {
|
|
15036
|
+
"type": "string",
|
|
15037
|
+
"format": "uri"
|
|
15038
|
+
},
|
|
15039
|
+
"expiresAt": {
|
|
15040
|
+
"type": "string",
|
|
15041
|
+
"format": "date-time"
|
|
15042
|
+
},
|
|
15043
|
+
"mimeType": {
|
|
15044
|
+
"type": "string",
|
|
15045
|
+
"const": "image/webp"
|
|
15046
|
+
}
|
|
15047
|
+
},
|
|
15048
|
+
"required": [
|
|
15049
|
+
"url",
|
|
15050
|
+
"expiresAt",
|
|
15051
|
+
"mimeType"
|
|
15052
|
+
],
|
|
15053
|
+
"additionalProperties": false
|
|
15054
|
+
}
|
|
15055
|
+
},
|
|
15056
|
+
"required": [
|
|
15057
|
+
"assetId",
|
|
15058
|
+
"title",
|
|
15059
|
+
"description",
|
|
15060
|
+
"altText",
|
|
15061
|
+
"sourceUrl",
|
|
15062
|
+
"sourceKind",
|
|
15063
|
+
"mimeType",
|
|
15064
|
+
"bytes",
|
|
15065
|
+
"width",
|
|
15066
|
+
"height",
|
|
15067
|
+
"projectId",
|
|
15068
|
+
"folderId",
|
|
15069
|
+
"tags",
|
|
15070
|
+
"status",
|
|
15071
|
+
"embeddingStatus",
|
|
15072
|
+
"createdAt",
|
|
15073
|
+
"updatedAt"
|
|
15074
|
+
],
|
|
15075
|
+
"additionalProperties": false
|
|
15076
|
+
},
|
|
15077
|
+
"reusedObject": {
|
|
15078
|
+
"type": "boolean"
|
|
15079
|
+
},
|
|
15080
|
+
"nextAction": {
|
|
15081
|
+
"type": "string"
|
|
15082
|
+
},
|
|
15083
|
+
"code": {
|
|
15084
|
+
"type": "string"
|
|
15085
|
+
},
|
|
15086
|
+
"error": {
|
|
15087
|
+
"type": "string"
|
|
15088
|
+
}
|
|
15089
|
+
},
|
|
15090
|
+
"required": [
|
|
15091
|
+
"ok"
|
|
15092
|
+
],
|
|
15093
|
+
"additionalProperties": false,
|
|
15094
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15095
|
+
},
|
|
15096
|
+
"annotations": {
|
|
15097
|
+
"title": "Save Image Asset",
|
|
15098
|
+
"readOnlyHint": false,
|
|
15099
|
+
"destructiveHint": false,
|
|
15100
|
+
"idempotentHint": true,
|
|
15101
|
+
"openWorldHint": true
|
|
15102
|
+
}
|
|
15103
|
+
},
|
|
15104
|
+
{
|
|
15105
|
+
"id": "image_asset_get",
|
|
15106
|
+
"upstreamName": "image_asset_get",
|
|
15107
|
+
"description": "Read one authorized private image asset and optionally mint a five-minute preview URL. The URL is never persisted; call again after expiry.",
|
|
15108
|
+
"inputJsonSchema": {
|
|
15109
|
+
"type": "object",
|
|
15110
|
+
"properties": {
|
|
15111
|
+
"vault": {
|
|
15112
|
+
"type": "string"
|
|
15113
|
+
},
|
|
15114
|
+
"assetId": {
|
|
15115
|
+
"type": "string",
|
|
15116
|
+
"minLength": 1
|
|
15117
|
+
},
|
|
15118
|
+
"includePreview": {
|
|
15119
|
+
"type": "boolean",
|
|
15120
|
+
"default": true
|
|
15121
|
+
}
|
|
15122
|
+
},
|
|
15123
|
+
"required": [
|
|
15124
|
+
"assetId"
|
|
15125
|
+
],
|
|
15126
|
+
"additionalProperties": false,
|
|
15127
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15128
|
+
},
|
|
15129
|
+
"outputJsonSchema": {
|
|
15130
|
+
"type": "object",
|
|
15131
|
+
"properties": {
|
|
15132
|
+
"ok": {
|
|
15133
|
+
"type": "boolean",
|
|
15134
|
+
"enum": [
|
|
15135
|
+
true,
|
|
15136
|
+
false
|
|
15137
|
+
]
|
|
15138
|
+
},
|
|
15139
|
+
"asset": {
|
|
15140
|
+
"type": "object",
|
|
15141
|
+
"properties": {
|
|
15142
|
+
"assetId": {
|
|
15143
|
+
"type": "string"
|
|
15144
|
+
},
|
|
15145
|
+
"title": {
|
|
15146
|
+
"type": "string"
|
|
15147
|
+
},
|
|
15148
|
+
"description": {
|
|
15149
|
+
"type": [
|
|
15150
|
+
"string",
|
|
15151
|
+
"null"
|
|
15152
|
+
]
|
|
15153
|
+
},
|
|
15154
|
+
"altText": {
|
|
15155
|
+
"type": [
|
|
15156
|
+
"string",
|
|
15157
|
+
"null"
|
|
15158
|
+
]
|
|
15159
|
+
},
|
|
15160
|
+
"sourceUrl": {
|
|
15161
|
+
"type": [
|
|
15162
|
+
"string",
|
|
15163
|
+
"null"
|
|
15164
|
+
]
|
|
15165
|
+
},
|
|
15166
|
+
"sourceKind": {
|
|
15167
|
+
"type": "string"
|
|
15168
|
+
},
|
|
15169
|
+
"mimeType": {
|
|
15170
|
+
"type": "string"
|
|
15171
|
+
},
|
|
15172
|
+
"bytes": {
|
|
15173
|
+
"type": "number"
|
|
15174
|
+
},
|
|
15175
|
+
"width": {
|
|
15176
|
+
"type": "number"
|
|
15177
|
+
},
|
|
15178
|
+
"height": {
|
|
15179
|
+
"type": "number"
|
|
15180
|
+
},
|
|
15181
|
+
"projectId": {
|
|
15182
|
+
"type": [
|
|
15183
|
+
"string",
|
|
15184
|
+
"null"
|
|
15185
|
+
]
|
|
15186
|
+
},
|
|
15187
|
+
"folderId": {
|
|
15188
|
+
"type": [
|
|
15189
|
+
"string",
|
|
15190
|
+
"null"
|
|
15191
|
+
]
|
|
15192
|
+
},
|
|
15193
|
+
"tags": {
|
|
15194
|
+
"type": "array",
|
|
15195
|
+
"items": {
|
|
15196
|
+
"type": "string"
|
|
15197
|
+
}
|
|
15198
|
+
},
|
|
15199
|
+
"status": {
|
|
15200
|
+
"type": "string"
|
|
15201
|
+
},
|
|
15202
|
+
"embeddingStatus": {
|
|
15203
|
+
"type": "string"
|
|
15204
|
+
},
|
|
15205
|
+
"createdAt": {
|
|
15206
|
+
"type": "string"
|
|
15207
|
+
},
|
|
15208
|
+
"updatedAt": {
|
|
15209
|
+
"type": "string"
|
|
15210
|
+
},
|
|
15211
|
+
"preview": {
|
|
15212
|
+
"type": "object",
|
|
15213
|
+
"properties": {
|
|
15214
|
+
"url": {
|
|
15215
|
+
"type": "string",
|
|
15216
|
+
"format": "uri"
|
|
15217
|
+
},
|
|
15218
|
+
"expiresAt": {
|
|
15219
|
+
"type": "string",
|
|
15220
|
+
"format": "date-time"
|
|
15221
|
+
},
|
|
15222
|
+
"mimeType": {
|
|
15223
|
+
"type": "string",
|
|
15224
|
+
"const": "image/webp"
|
|
15225
|
+
}
|
|
15226
|
+
},
|
|
15227
|
+
"required": [
|
|
15228
|
+
"url",
|
|
15229
|
+
"expiresAt",
|
|
15230
|
+
"mimeType"
|
|
15231
|
+
],
|
|
15232
|
+
"additionalProperties": false
|
|
15233
|
+
}
|
|
15234
|
+
},
|
|
15235
|
+
"required": [
|
|
15236
|
+
"assetId",
|
|
15237
|
+
"title",
|
|
15238
|
+
"description",
|
|
15239
|
+
"altText",
|
|
15240
|
+
"sourceUrl",
|
|
15241
|
+
"sourceKind",
|
|
15242
|
+
"mimeType",
|
|
15243
|
+
"bytes",
|
|
15244
|
+
"width",
|
|
15245
|
+
"height",
|
|
15246
|
+
"projectId",
|
|
15247
|
+
"folderId",
|
|
15248
|
+
"tags",
|
|
15249
|
+
"status",
|
|
15250
|
+
"embeddingStatus",
|
|
15251
|
+
"createdAt",
|
|
15252
|
+
"updatedAt"
|
|
15253
|
+
],
|
|
15254
|
+
"additionalProperties": false
|
|
15255
|
+
},
|
|
15256
|
+
"code": {
|
|
15257
|
+
"type": "string"
|
|
15258
|
+
},
|
|
15259
|
+
"error": {
|
|
15260
|
+
"type": "string"
|
|
15261
|
+
}
|
|
15262
|
+
},
|
|
15263
|
+
"required": [
|
|
15264
|
+
"ok"
|
|
15265
|
+
],
|
|
15266
|
+
"additionalProperties": false,
|
|
15267
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15268
|
+
},
|
|
15269
|
+
"annotations": {
|
|
15270
|
+
"title": "Get Image Asset",
|
|
15271
|
+
"readOnlyHint": true,
|
|
15272
|
+
"destructiveHint": false,
|
|
15273
|
+
"idempotentHint": true,
|
|
15274
|
+
"openWorldHint": false
|
|
15275
|
+
}
|
|
15276
|
+
},
|
|
15277
|
+
{
|
|
15278
|
+
"id": "image_asset_list",
|
|
15279
|
+
"upstreamName": "image_asset_list",
|
|
15280
|
+
"description": "List authorized private image metadata with exact location, provenance, media, tag, and creation-time filters. Use image_asset_search for semantic retrieval.",
|
|
15281
|
+
"inputJsonSchema": {
|
|
15282
|
+
"type": "object",
|
|
15283
|
+
"properties": {
|
|
15284
|
+
"vault": {
|
|
15285
|
+
"type": "string"
|
|
15286
|
+
},
|
|
15287
|
+
"projectId": {
|
|
15288
|
+
"type": "string"
|
|
15289
|
+
},
|
|
15290
|
+
"folderId": {
|
|
15291
|
+
"type": "string"
|
|
15292
|
+
},
|
|
15293
|
+
"sourceKind": {
|
|
15294
|
+
"type": "string",
|
|
15295
|
+
"enum": [
|
|
15296
|
+
"upload",
|
|
15297
|
+
"scrape",
|
|
15298
|
+
"screenshot",
|
|
15299
|
+
"instagram",
|
|
15300
|
+
"external_url",
|
|
15301
|
+
"import"
|
|
15302
|
+
]
|
|
15303
|
+
},
|
|
15304
|
+
"sourceHost": {
|
|
15305
|
+
"type": "string",
|
|
15306
|
+
"minLength": 1,
|
|
15307
|
+
"maxLength": 253
|
|
15308
|
+
},
|
|
15309
|
+
"mimeType": {
|
|
15310
|
+
"type": "string",
|
|
15311
|
+
"enum": [
|
|
15312
|
+
"image/jpeg",
|
|
15313
|
+
"image/png",
|
|
15314
|
+
"image/webp",
|
|
15315
|
+
"image/gif"
|
|
15316
|
+
]
|
|
15317
|
+
},
|
|
15318
|
+
"tags": {
|
|
15319
|
+
"type": "array",
|
|
15320
|
+
"items": {
|
|
15321
|
+
"type": "string",
|
|
15322
|
+
"minLength": 1,
|
|
15323
|
+
"maxLength": 80
|
|
15324
|
+
},
|
|
15325
|
+
"maxItems": 20
|
|
15326
|
+
},
|
|
15327
|
+
"createdAfter": {
|
|
15328
|
+
"type": "string",
|
|
15329
|
+
"format": "date-time"
|
|
15330
|
+
},
|
|
15331
|
+
"createdBefore": {
|
|
15332
|
+
"type": "string",
|
|
15333
|
+
"format": "date-time"
|
|
15334
|
+
},
|
|
15335
|
+
"limit": {
|
|
15336
|
+
"type": "integer",
|
|
15337
|
+
"minimum": 1,
|
|
15338
|
+
"maximum": 100,
|
|
15339
|
+
"default": 30
|
|
15340
|
+
}
|
|
15341
|
+
},
|
|
15342
|
+
"additionalProperties": false,
|
|
15343
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15344
|
+
},
|
|
15345
|
+
"outputJsonSchema": {
|
|
15346
|
+
"type": "object",
|
|
15347
|
+
"properties": {
|
|
15348
|
+
"ok": {
|
|
15349
|
+
"type": "boolean",
|
|
15350
|
+
"enum": [
|
|
15351
|
+
true,
|
|
15352
|
+
false
|
|
15353
|
+
]
|
|
15354
|
+
},
|
|
15355
|
+
"assets": {
|
|
15356
|
+
"type": "array",
|
|
15357
|
+
"items": {
|
|
15358
|
+
"type": "object",
|
|
15359
|
+
"properties": {
|
|
15360
|
+
"assetId": {
|
|
15361
|
+
"type": "string"
|
|
15362
|
+
},
|
|
15363
|
+
"title": {
|
|
15364
|
+
"type": "string"
|
|
15365
|
+
},
|
|
15366
|
+
"description": {
|
|
15367
|
+
"type": [
|
|
15368
|
+
"string",
|
|
15369
|
+
"null"
|
|
15370
|
+
]
|
|
15371
|
+
},
|
|
15372
|
+
"altText": {
|
|
15373
|
+
"type": [
|
|
15374
|
+
"string",
|
|
15375
|
+
"null"
|
|
15376
|
+
]
|
|
15377
|
+
},
|
|
15378
|
+
"sourceUrl": {
|
|
15379
|
+
"type": [
|
|
15380
|
+
"string",
|
|
15381
|
+
"null"
|
|
15382
|
+
]
|
|
15383
|
+
},
|
|
15384
|
+
"sourceKind": {
|
|
15385
|
+
"type": "string"
|
|
15386
|
+
},
|
|
15387
|
+
"mimeType": {
|
|
15388
|
+
"type": "string"
|
|
15389
|
+
},
|
|
15390
|
+
"bytes": {
|
|
15391
|
+
"type": "number"
|
|
15392
|
+
},
|
|
15393
|
+
"width": {
|
|
15394
|
+
"type": "number"
|
|
15395
|
+
},
|
|
15396
|
+
"height": {
|
|
15397
|
+
"type": "number"
|
|
15398
|
+
},
|
|
15399
|
+
"projectId": {
|
|
15400
|
+
"type": [
|
|
15401
|
+
"string",
|
|
15402
|
+
"null"
|
|
15403
|
+
]
|
|
15404
|
+
},
|
|
15405
|
+
"folderId": {
|
|
15406
|
+
"type": [
|
|
15407
|
+
"string",
|
|
15408
|
+
"null"
|
|
15409
|
+
]
|
|
15410
|
+
},
|
|
15411
|
+
"tags": {
|
|
15412
|
+
"type": "array",
|
|
15413
|
+
"items": {
|
|
15414
|
+
"type": "string"
|
|
15415
|
+
}
|
|
15416
|
+
},
|
|
15417
|
+
"status": {
|
|
15418
|
+
"type": "string"
|
|
15419
|
+
},
|
|
15420
|
+
"embeddingStatus": {
|
|
15421
|
+
"type": "string"
|
|
15422
|
+
},
|
|
15423
|
+
"createdAt": {
|
|
15424
|
+
"type": "string"
|
|
15425
|
+
},
|
|
15426
|
+
"updatedAt": {
|
|
15427
|
+
"type": "string"
|
|
15428
|
+
},
|
|
15429
|
+
"preview": {
|
|
15430
|
+
"type": "object",
|
|
15431
|
+
"properties": {
|
|
15432
|
+
"url": {
|
|
15433
|
+
"type": "string",
|
|
15434
|
+
"format": "uri"
|
|
15435
|
+
},
|
|
15436
|
+
"expiresAt": {
|
|
15437
|
+
"type": "string",
|
|
15438
|
+
"format": "date-time"
|
|
15439
|
+
},
|
|
15440
|
+
"mimeType": {
|
|
15441
|
+
"type": "string",
|
|
15442
|
+
"const": "image/webp"
|
|
15443
|
+
}
|
|
15444
|
+
},
|
|
15445
|
+
"required": [
|
|
15446
|
+
"url",
|
|
15447
|
+
"expiresAt",
|
|
15448
|
+
"mimeType"
|
|
15449
|
+
],
|
|
15450
|
+
"additionalProperties": false
|
|
15451
|
+
}
|
|
15452
|
+
},
|
|
15453
|
+
"required": [
|
|
15454
|
+
"assetId",
|
|
15455
|
+
"title",
|
|
15456
|
+
"description",
|
|
15457
|
+
"altText",
|
|
15458
|
+
"sourceUrl",
|
|
15459
|
+
"sourceKind",
|
|
15460
|
+
"mimeType",
|
|
15461
|
+
"bytes",
|
|
15462
|
+
"width",
|
|
15463
|
+
"height",
|
|
15464
|
+
"projectId",
|
|
15465
|
+
"folderId",
|
|
15466
|
+
"tags",
|
|
15467
|
+
"status",
|
|
15468
|
+
"embeddingStatus",
|
|
15469
|
+
"createdAt",
|
|
15470
|
+
"updatedAt"
|
|
15471
|
+
],
|
|
15472
|
+
"additionalProperties": false
|
|
15473
|
+
}
|
|
15474
|
+
},
|
|
15475
|
+
"count": {
|
|
15476
|
+
"type": "number"
|
|
15477
|
+
},
|
|
15478
|
+
"code": {
|
|
15479
|
+
"type": "string"
|
|
15480
|
+
},
|
|
15481
|
+
"error": {
|
|
15482
|
+
"type": "string"
|
|
15483
|
+
}
|
|
15484
|
+
},
|
|
15485
|
+
"required": [
|
|
15486
|
+
"ok"
|
|
15487
|
+
],
|
|
15488
|
+
"additionalProperties": false,
|
|
15489
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15490
|
+
},
|
|
15491
|
+
"annotations": {
|
|
15492
|
+
"title": "List Image Assets",
|
|
15493
|
+
"readOnlyHint": true,
|
|
15494
|
+
"destructiveHint": false,
|
|
15495
|
+
"idempotentHint": true,
|
|
15496
|
+
"openWorldHint": false
|
|
15497
|
+
}
|
|
15498
|
+
},
|
|
15499
|
+
{
|
|
15500
|
+
"id": "image_asset_search",
|
|
15501
|
+
"upstreamName": "image_asset_search",
|
|
15502
|
+
"description": "Semantically search authorized private image Memory using text, a stored asset, a public HTTPS image, or bounded base64. Text plus one image performs a fused query. This consumes query-embedding usage.",
|
|
15503
|
+
"inputJsonSchema": {
|
|
15504
|
+
"type": "object",
|
|
15505
|
+
"properties": {
|
|
15506
|
+
"vault": {
|
|
15507
|
+
"type": "string"
|
|
15508
|
+
},
|
|
15509
|
+
"queryText": {
|
|
15510
|
+
"type": "string",
|
|
15511
|
+
"minLength": 1,
|
|
15512
|
+
"maxLength": 4e3
|
|
15513
|
+
},
|
|
15514
|
+
"queryAssetId": {
|
|
15515
|
+
"type": "string",
|
|
15516
|
+
"minLength": 1
|
|
15517
|
+
},
|
|
15518
|
+
"queryUrl": {
|
|
15519
|
+
"type": "string",
|
|
15520
|
+
"format": "uri"
|
|
15521
|
+
},
|
|
15522
|
+
"queryImageBase64": {
|
|
15523
|
+
"type": "string",
|
|
15524
|
+
"minLength": 1
|
|
15525
|
+
},
|
|
15526
|
+
"projectId": {
|
|
15527
|
+
"type": "string"
|
|
15528
|
+
},
|
|
15529
|
+
"folderId": {
|
|
15530
|
+
"type": "string"
|
|
15531
|
+
},
|
|
15532
|
+
"sourceKind": {
|
|
15533
|
+
"type": "string",
|
|
15534
|
+
"enum": [
|
|
15535
|
+
"upload",
|
|
15536
|
+
"scrape",
|
|
15537
|
+
"screenshot",
|
|
15538
|
+
"instagram",
|
|
15539
|
+
"external_url",
|
|
15540
|
+
"import"
|
|
15541
|
+
]
|
|
15542
|
+
},
|
|
15543
|
+
"sourceHost": {
|
|
15544
|
+
"type": "string",
|
|
15545
|
+
"minLength": 1,
|
|
15546
|
+
"maxLength": 253
|
|
15547
|
+
},
|
|
15548
|
+
"mimeType": {
|
|
15549
|
+
"type": "string",
|
|
15550
|
+
"enum": [
|
|
15551
|
+
"image/jpeg",
|
|
15552
|
+
"image/png",
|
|
15553
|
+
"image/webp",
|
|
15554
|
+
"image/gif"
|
|
15555
|
+
]
|
|
15556
|
+
},
|
|
15557
|
+
"tags": {
|
|
15558
|
+
"type": "array",
|
|
15559
|
+
"items": {
|
|
15560
|
+
"type": "string",
|
|
15561
|
+
"minLength": 1,
|
|
15562
|
+
"maxLength": 80
|
|
15563
|
+
},
|
|
15564
|
+
"maxItems": 20
|
|
15565
|
+
},
|
|
15566
|
+
"createdAfter": {
|
|
15567
|
+
"type": "string",
|
|
15568
|
+
"format": "date-time"
|
|
15569
|
+
},
|
|
15570
|
+
"createdBefore": {
|
|
15571
|
+
"type": "string",
|
|
15572
|
+
"format": "date-time"
|
|
15573
|
+
},
|
|
15574
|
+
"limit": {
|
|
15575
|
+
"type": "integer",
|
|
15576
|
+
"minimum": 1,
|
|
15577
|
+
"maximum": 30,
|
|
15578
|
+
"default": 10
|
|
15579
|
+
},
|
|
15580
|
+
"includePreview": {
|
|
15581
|
+
"type": "boolean",
|
|
15582
|
+
"default": false
|
|
15583
|
+
}
|
|
15584
|
+
},
|
|
15585
|
+
"additionalProperties": false,
|
|
15586
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15587
|
+
},
|
|
15588
|
+
"outputJsonSchema": {
|
|
15589
|
+
"type": "object",
|
|
15590
|
+
"properties": {
|
|
15591
|
+
"ok": {
|
|
15592
|
+
"type": "boolean",
|
|
15593
|
+
"enum": [
|
|
15594
|
+
true,
|
|
15595
|
+
false
|
|
15596
|
+
]
|
|
15597
|
+
},
|
|
15598
|
+
"results": {
|
|
15599
|
+
"type": "array",
|
|
15600
|
+
"items": {
|
|
15601
|
+
"type": "object",
|
|
15602
|
+
"properties": {
|
|
15603
|
+
"asset": {
|
|
15604
|
+
"type": "object",
|
|
15605
|
+
"properties": {
|
|
15606
|
+
"assetId": {
|
|
15607
|
+
"type": "string"
|
|
15608
|
+
},
|
|
15609
|
+
"title": {
|
|
15610
|
+
"type": "string"
|
|
15611
|
+
},
|
|
15612
|
+
"description": {
|
|
15613
|
+
"type": [
|
|
15614
|
+
"string",
|
|
15615
|
+
"null"
|
|
15616
|
+
]
|
|
15617
|
+
},
|
|
15618
|
+
"altText": {
|
|
15619
|
+
"type": [
|
|
15620
|
+
"string",
|
|
15621
|
+
"null"
|
|
15622
|
+
]
|
|
15623
|
+
},
|
|
15624
|
+
"sourceUrl": {
|
|
15625
|
+
"type": [
|
|
15626
|
+
"string",
|
|
15627
|
+
"null"
|
|
15628
|
+
]
|
|
15629
|
+
},
|
|
15630
|
+
"sourceKind": {
|
|
15631
|
+
"type": "string"
|
|
15632
|
+
},
|
|
15633
|
+
"mimeType": {
|
|
15634
|
+
"type": "string"
|
|
15635
|
+
},
|
|
15636
|
+
"bytes": {
|
|
15637
|
+
"type": "number"
|
|
15638
|
+
},
|
|
15639
|
+
"width": {
|
|
15640
|
+
"type": "number"
|
|
15641
|
+
},
|
|
15642
|
+
"height": {
|
|
15643
|
+
"type": "number"
|
|
15644
|
+
},
|
|
15645
|
+
"projectId": {
|
|
15646
|
+
"type": [
|
|
15647
|
+
"string",
|
|
15648
|
+
"null"
|
|
15649
|
+
]
|
|
15650
|
+
},
|
|
15651
|
+
"folderId": {
|
|
15652
|
+
"type": [
|
|
15653
|
+
"string",
|
|
15654
|
+
"null"
|
|
15655
|
+
]
|
|
15656
|
+
},
|
|
15657
|
+
"tags": {
|
|
15658
|
+
"type": "array",
|
|
15659
|
+
"items": {
|
|
15660
|
+
"type": "string"
|
|
15661
|
+
}
|
|
15662
|
+
},
|
|
15663
|
+
"status": {
|
|
15664
|
+
"type": "string"
|
|
15665
|
+
},
|
|
15666
|
+
"embeddingStatus": {
|
|
15667
|
+
"type": "string"
|
|
15668
|
+
},
|
|
15669
|
+
"createdAt": {
|
|
15670
|
+
"type": "string"
|
|
15671
|
+
},
|
|
15672
|
+
"updatedAt": {
|
|
15673
|
+
"type": "string"
|
|
15674
|
+
},
|
|
15675
|
+
"preview": {
|
|
15676
|
+
"type": "object",
|
|
15677
|
+
"properties": {
|
|
15678
|
+
"url": {
|
|
15679
|
+
"type": "string",
|
|
15680
|
+
"format": "uri"
|
|
15681
|
+
},
|
|
15682
|
+
"expiresAt": {
|
|
15683
|
+
"type": "string",
|
|
15684
|
+
"format": "date-time"
|
|
15685
|
+
},
|
|
15686
|
+
"mimeType": {
|
|
15687
|
+
"type": "string",
|
|
15688
|
+
"const": "image/webp"
|
|
15689
|
+
}
|
|
15690
|
+
},
|
|
15691
|
+
"required": [
|
|
15692
|
+
"url",
|
|
15693
|
+
"expiresAt",
|
|
15694
|
+
"mimeType"
|
|
15695
|
+
],
|
|
15696
|
+
"additionalProperties": false
|
|
15697
|
+
}
|
|
15698
|
+
},
|
|
15699
|
+
"required": [
|
|
15700
|
+
"assetId",
|
|
15701
|
+
"title",
|
|
15702
|
+
"description",
|
|
15703
|
+
"altText",
|
|
15704
|
+
"sourceUrl",
|
|
15705
|
+
"sourceKind",
|
|
15706
|
+
"mimeType",
|
|
15707
|
+
"bytes",
|
|
15708
|
+
"width",
|
|
15709
|
+
"height",
|
|
15710
|
+
"projectId",
|
|
15711
|
+
"folderId",
|
|
15712
|
+
"tags",
|
|
15713
|
+
"status",
|
|
15714
|
+
"embeddingStatus",
|
|
15715
|
+
"createdAt",
|
|
15716
|
+
"updatedAt"
|
|
15717
|
+
],
|
|
15718
|
+
"additionalProperties": false
|
|
15719
|
+
},
|
|
15720
|
+
"score": {
|
|
15721
|
+
"type": "number"
|
|
15722
|
+
},
|
|
15723
|
+
"matchRepresentations": {
|
|
15724
|
+
"type": "array",
|
|
15725
|
+
"items": {
|
|
15726
|
+
"type": "string",
|
|
15727
|
+
"enum": [
|
|
15728
|
+
"visual",
|
|
15729
|
+
"fused"
|
|
15730
|
+
]
|
|
15731
|
+
}
|
|
15732
|
+
},
|
|
15733
|
+
"embeddingModel": {
|
|
15734
|
+
"type": "string"
|
|
15735
|
+
}
|
|
15736
|
+
},
|
|
15737
|
+
"required": [
|
|
15738
|
+
"asset",
|
|
15739
|
+
"score",
|
|
15740
|
+
"matchRepresentations",
|
|
15741
|
+
"embeddingModel"
|
|
15742
|
+
],
|
|
15743
|
+
"additionalProperties": false
|
|
15744
|
+
}
|
|
15745
|
+
},
|
|
15746
|
+
"count": {
|
|
15747
|
+
"type": "number"
|
|
15748
|
+
},
|
|
15749
|
+
"code": {
|
|
15750
|
+
"type": "string"
|
|
15751
|
+
},
|
|
15752
|
+
"error": {
|
|
15753
|
+
"type": "string"
|
|
15754
|
+
}
|
|
15755
|
+
},
|
|
15756
|
+
"required": [
|
|
15757
|
+
"ok"
|
|
15758
|
+
],
|
|
15759
|
+
"additionalProperties": false,
|
|
15760
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15761
|
+
},
|
|
15762
|
+
"annotations": {
|
|
15763
|
+
"title": "Search Image Assets",
|
|
15764
|
+
"readOnlyHint": true,
|
|
15765
|
+
"destructiveHint": false,
|
|
15766
|
+
"idempotentHint": true,
|
|
15767
|
+
"openWorldHint": true
|
|
15768
|
+
}
|
|
15769
|
+
},
|
|
15770
|
+
{
|
|
15771
|
+
"id": "image_asset_move",
|
|
15772
|
+
"upstreamName": "image_asset_move",
|
|
15773
|
+
"description": "Move an image asset between project/folder locations in the same writable Memory vault. This updates metadata only and never copies private image bytes.",
|
|
15774
|
+
"inputJsonSchema": {
|
|
15775
|
+
"type": "object",
|
|
15776
|
+
"properties": {
|
|
15777
|
+
"vault": {
|
|
15778
|
+
"type": "string"
|
|
15779
|
+
},
|
|
15780
|
+
"assetId": {
|
|
15781
|
+
"type": "string",
|
|
15782
|
+
"minLength": 1
|
|
15783
|
+
},
|
|
15784
|
+
"projectId": {
|
|
15785
|
+
"anyOf": [
|
|
15786
|
+
{
|
|
15787
|
+
"type": "string",
|
|
15788
|
+
"minLength": 1
|
|
15789
|
+
},
|
|
15790
|
+
{
|
|
15791
|
+
"type": "null"
|
|
15792
|
+
}
|
|
15793
|
+
]
|
|
15794
|
+
},
|
|
15795
|
+
"folderId": {
|
|
15796
|
+
"anyOf": [
|
|
15797
|
+
{
|
|
15798
|
+
"type": "string",
|
|
15799
|
+
"minLength": 1
|
|
15800
|
+
},
|
|
15801
|
+
{
|
|
15802
|
+
"type": "null"
|
|
15803
|
+
}
|
|
15804
|
+
]
|
|
15805
|
+
}
|
|
15806
|
+
},
|
|
15807
|
+
"required": [
|
|
15808
|
+
"assetId"
|
|
15809
|
+
],
|
|
15810
|
+
"additionalProperties": false,
|
|
15811
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15812
|
+
},
|
|
15813
|
+
"outputJsonSchema": {
|
|
15814
|
+
"type": "object",
|
|
15815
|
+
"properties": {
|
|
15816
|
+
"ok": {
|
|
15817
|
+
"type": "boolean",
|
|
15818
|
+
"enum": [
|
|
15819
|
+
true,
|
|
15820
|
+
false
|
|
15821
|
+
]
|
|
15822
|
+
},
|
|
15823
|
+
"asset": {
|
|
15824
|
+
"type": "object",
|
|
15825
|
+
"properties": {
|
|
15826
|
+
"assetId": {
|
|
15827
|
+
"type": "string"
|
|
15828
|
+
},
|
|
15829
|
+
"title": {
|
|
15830
|
+
"type": "string"
|
|
15831
|
+
},
|
|
15832
|
+
"description": {
|
|
15833
|
+
"type": [
|
|
15834
|
+
"string",
|
|
15835
|
+
"null"
|
|
15836
|
+
]
|
|
15837
|
+
},
|
|
15838
|
+
"altText": {
|
|
15839
|
+
"type": [
|
|
15840
|
+
"string",
|
|
15841
|
+
"null"
|
|
15842
|
+
]
|
|
15843
|
+
},
|
|
15844
|
+
"sourceUrl": {
|
|
15845
|
+
"type": [
|
|
15846
|
+
"string",
|
|
15847
|
+
"null"
|
|
15848
|
+
]
|
|
15849
|
+
},
|
|
15850
|
+
"sourceKind": {
|
|
15851
|
+
"type": "string"
|
|
15852
|
+
},
|
|
15853
|
+
"mimeType": {
|
|
15854
|
+
"type": "string"
|
|
15855
|
+
},
|
|
15856
|
+
"bytes": {
|
|
15857
|
+
"type": "number"
|
|
15858
|
+
},
|
|
15859
|
+
"width": {
|
|
15860
|
+
"type": "number"
|
|
15861
|
+
},
|
|
15862
|
+
"height": {
|
|
15863
|
+
"type": "number"
|
|
15864
|
+
},
|
|
15865
|
+
"projectId": {
|
|
15866
|
+
"type": [
|
|
15867
|
+
"string",
|
|
15868
|
+
"null"
|
|
15869
|
+
]
|
|
15870
|
+
},
|
|
15871
|
+
"folderId": {
|
|
15872
|
+
"type": [
|
|
15873
|
+
"string",
|
|
15874
|
+
"null"
|
|
15875
|
+
]
|
|
15876
|
+
},
|
|
15877
|
+
"tags": {
|
|
15878
|
+
"type": "array",
|
|
15879
|
+
"items": {
|
|
15880
|
+
"type": "string"
|
|
15881
|
+
}
|
|
15882
|
+
},
|
|
15883
|
+
"status": {
|
|
15884
|
+
"type": "string"
|
|
15885
|
+
},
|
|
15886
|
+
"embeddingStatus": {
|
|
15887
|
+
"type": "string"
|
|
15888
|
+
},
|
|
15889
|
+
"createdAt": {
|
|
15890
|
+
"type": "string"
|
|
15891
|
+
},
|
|
15892
|
+
"updatedAt": {
|
|
15893
|
+
"type": "string"
|
|
15894
|
+
},
|
|
15895
|
+
"preview": {
|
|
15896
|
+
"type": "object",
|
|
15897
|
+
"properties": {
|
|
15898
|
+
"url": {
|
|
15899
|
+
"type": "string",
|
|
15900
|
+
"format": "uri"
|
|
15901
|
+
},
|
|
15902
|
+
"expiresAt": {
|
|
15903
|
+
"type": "string",
|
|
15904
|
+
"format": "date-time"
|
|
15905
|
+
},
|
|
15906
|
+
"mimeType": {
|
|
15907
|
+
"type": "string",
|
|
15908
|
+
"const": "image/webp"
|
|
15909
|
+
}
|
|
15910
|
+
},
|
|
15911
|
+
"required": [
|
|
15912
|
+
"url",
|
|
15913
|
+
"expiresAt",
|
|
15914
|
+
"mimeType"
|
|
15915
|
+
],
|
|
15916
|
+
"additionalProperties": false
|
|
15917
|
+
}
|
|
15918
|
+
},
|
|
15919
|
+
"required": [
|
|
15920
|
+
"assetId",
|
|
15921
|
+
"title",
|
|
15922
|
+
"description",
|
|
15923
|
+
"altText",
|
|
15924
|
+
"sourceUrl",
|
|
15925
|
+
"sourceKind",
|
|
15926
|
+
"mimeType",
|
|
15927
|
+
"bytes",
|
|
15928
|
+
"width",
|
|
15929
|
+
"height",
|
|
15930
|
+
"projectId",
|
|
15931
|
+
"folderId",
|
|
15932
|
+
"tags",
|
|
15933
|
+
"status",
|
|
15934
|
+
"embeddingStatus",
|
|
15935
|
+
"createdAt",
|
|
15936
|
+
"updatedAt"
|
|
15937
|
+
],
|
|
15938
|
+
"additionalProperties": false
|
|
15939
|
+
},
|
|
15940
|
+
"code": {
|
|
15941
|
+
"type": "string"
|
|
15942
|
+
},
|
|
15943
|
+
"error": {
|
|
15944
|
+
"type": "string"
|
|
15945
|
+
}
|
|
15946
|
+
},
|
|
15947
|
+
"required": [
|
|
15948
|
+
"ok"
|
|
15949
|
+
],
|
|
15950
|
+
"additionalProperties": false,
|
|
15951
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15952
|
+
},
|
|
15953
|
+
"annotations": {
|
|
15954
|
+
"title": "Move Image Asset",
|
|
15955
|
+
"readOnlyHint": false,
|
|
15956
|
+
"destructiveHint": false,
|
|
15957
|
+
"idempotentHint": true,
|
|
15958
|
+
"openWorldHint": false
|
|
15959
|
+
}
|
|
15960
|
+
},
|
|
15961
|
+
{
|
|
15962
|
+
"id": "image_asset_delete",
|
|
15963
|
+
"upstreamName": "image_asset_delete",
|
|
15964
|
+
"description": "DESTRUCTIVE: delete one governed image asset, remove its semantic vectors, and purge private bytes when no other logical asset uses them. Retry with the same assetId if an earlier response was lost.",
|
|
15965
|
+
"inputJsonSchema": {
|
|
15966
|
+
"type": "object",
|
|
15967
|
+
"properties": {
|
|
15968
|
+
"vault": {
|
|
15969
|
+
"type": "string"
|
|
15970
|
+
},
|
|
15971
|
+
"assetId": {
|
|
15972
|
+
"type": "string",
|
|
15973
|
+
"minLength": 1
|
|
15974
|
+
},
|
|
15975
|
+
"confirmDelete": {
|
|
15976
|
+
"type": "boolean",
|
|
15977
|
+
"const": true,
|
|
15978
|
+
"description": "Must be true after the caller has confirmed deletion."
|
|
15979
|
+
}
|
|
15980
|
+
},
|
|
15981
|
+
"required": [
|
|
15982
|
+
"assetId",
|
|
15983
|
+
"confirmDelete"
|
|
15984
|
+
],
|
|
15985
|
+
"additionalProperties": false,
|
|
15986
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15987
|
+
},
|
|
15988
|
+
"outputJsonSchema": {
|
|
15989
|
+
"type": "object",
|
|
15990
|
+
"properties": {
|
|
15991
|
+
"ok": {
|
|
15992
|
+
"type": "boolean",
|
|
15993
|
+
"enum": [
|
|
15994
|
+
true,
|
|
15995
|
+
false
|
|
15996
|
+
]
|
|
15997
|
+
},
|
|
15998
|
+
"deleted": {
|
|
15999
|
+
"type": "boolean"
|
|
16000
|
+
},
|
|
16001
|
+
"assetId": {
|
|
16002
|
+
"type": "string"
|
|
16003
|
+
},
|
|
16004
|
+
"code": {
|
|
16005
|
+
"type": "string"
|
|
16006
|
+
},
|
|
16007
|
+
"error": {
|
|
16008
|
+
"type": "string"
|
|
16009
|
+
}
|
|
16010
|
+
},
|
|
16011
|
+
"required": [
|
|
16012
|
+
"ok"
|
|
16013
|
+
],
|
|
16014
|
+
"additionalProperties": false,
|
|
16015
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
16016
|
+
},
|
|
16017
|
+
"annotations": {
|
|
16018
|
+
"title": "Delete Image Asset",
|
|
16019
|
+
"readOnlyHint": false,
|
|
16020
|
+
"destructiveHint": true,
|
|
16021
|
+
"idempotentHint": true,
|
|
16022
|
+
"openWorldHint": false
|
|
16023
|
+
}
|
|
16024
|
+
}
|
|
16025
|
+
];
|
|
14458
16026
|
|
|
14459
16027
|
// src/mcp/memory-tool-schemas.ts
|
|
14460
16028
|
var import_zod12 = require("zod");
|
|
@@ -16987,7 +18555,7 @@ var MEMORY_TOOL_REGISTRY = [
|
|
|
16987
18555
|
...schema,
|
|
16988
18556
|
description: MEMORY_TOOL_DESCRIPTION_OVERRIDES[schema.id] ?? schema.description
|
|
16989
18557
|
})),
|
|
16990
|
-
...
|
|
18558
|
+
...MEMORY_IMAGE_TOOL_SCHEMAS
|
|
16991
18559
|
];
|
|
16992
18560
|
|
|
16993
18561
|
// src/mcp/memory-mcp-server.ts
|
|
@@ -17069,6 +18637,11 @@ var HostedMemoryMcpToolExecutor = class {
|
|
|
17069
18637
|
}
|
|
17070
18638
|
};
|
|
17071
18639
|
|
|
18640
|
+
// release-message.json
|
|
18641
|
+
var release_message_default = {
|
|
18642
|
+
message: "PAA work now starts immediately on the direct runtime, and every MCP Scraper install exposes the same complete typed tool contract."
|
|
18643
|
+
};
|
|
18644
|
+
|
|
17072
18645
|
// src/install-terminal.ts
|
|
17073
18646
|
var CODES = {
|
|
17074
18647
|
reset: "\x1B[0m",
|
|
@@ -17119,7 +18692,7 @@ function renderInstallTerminal(options) {
|
|
|
17119
18692
|
colorize(ascii, "amber", color),
|
|
17120
18693
|
`${colorize("MCP Scraper Agent", "cyan", color)} . v${options.version} . mcpscraper.dev`,
|
|
17121
18694
|
"1/1 install surfaces ready",
|
|
17122
|
-
colorize(
|
|
18695
|
+
colorize(`Newest in v${options.version}: ${release_message_default.message}`, "lime", color),
|
|
17123
18696
|
"",
|
|
17124
18697
|
`${colorize("Tools", "cyan", color)} ${colorize("(259 MCP tools)", "muted", color)}`,
|
|
17125
18698
|
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
@@ -17905,4 +19478,3 @@ function buildStdioServer() {
|
|
|
17905
19478
|
`);
|
|
17906
19479
|
}
|
|
17907
19480
|
});
|
|
17908
|
-
//# sourceMappingURL=mcp-stdio-server.cjs.map
|