mcp-scraper 0.66.0 → 0.66.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +2 -2
- package/dist/{analytics-repository-IKE53S3E.js → analytics-repository-RUXBFSFX.js} +1 -2
- package/dist/bin/api-server.cjs +1648 -17
- 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 +1618 -14
- 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-5PIO7QBG.js → chunk-3PIXKLGZ.js} +3 -4
- package/dist/{chunk-VIWT35S6.js → chunk-4OT7BAIE.js} +1 -2
- package/dist/{chunk-AJ4YGHG2.js → chunk-4P3PHFPQ.js} +3 -4
- package/dist/{chunk-P7YFUNKR.js → chunk-75VW7CWE.js} +3 -4
- package/dist/{chunk-FG6LJGJ7.js → chunk-77LQV73B.js} +0 -1
- package/dist/{chunk-DKIG2TEE.js → chunk-AQKJOSIB.js} +2 -3
- package/dist/{chunk-2XUXVKT4.js → chunk-AYJHI2FK.js} +0 -1
- package/dist/{chunk-5BEPOFKG.js → chunk-CNLLTD5B.js} +0 -1
- package/dist/{chunk-EKJ65E3Z.js → chunk-DNM65UCK.js} +0 -1
- package/dist/{chunk-SRRI2HJL.js → chunk-E4LMY5OJ.js} +1617 -19
- package/dist/{chunk-3YSEJTMC.js → chunk-GGZEC22A.js} +0 -1
- package/dist/{chunk-4VG3NUUY.js → chunk-GTGSD4YS.js} +2 -2
- package/dist/{chunk-XPFRP5QT.js → chunk-KBTUPRTF.js} +3 -4
- package/dist/{chunk-AAGVOPP5.js → chunk-NS754CRS.js} +2 -3
- package/dist/{chunk-BIUQ6O2Y.js → chunk-OZJMVCDK.js} +0 -1
- package/dist/{chunk-X7UG2JCF.js → chunk-PGJQDMC2.js} +1 -2
- package/dist/{chunk-G3P3ZDB4.js → chunk-RJ7JVYKU.js} +0 -1
- package/dist/{chunk-N54JS5WP.js → chunk-TNJIPV74.js} +1 -2
- package/dist/{chunk-4LINSJNI.js → chunk-TNLGHNLX.js} +1 -2
- package/dist/chunk-VRJ7CO6L.js +6 -0
- package/dist/{chunk-WD73OFL3.js → chunk-VXLU74YZ.js} +1 -2
- package/dist/{chunk-DCWXVAQT.js → chunk-WID3MFRS.js} +6 -2
- package/dist/{db-BRI465XQ.js → db-PO7N7ZP3.js} +1 -2
- package/dist/{extract-bundle-QAI7JYV2.js → extract-bundle-SIBFUA6I.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-OTAUQONJ.js} +2 -3
- package/dist/{location-data-repository-67MMEVZQ.js → location-data-repository-RM2KJ3H5.js} +3 -4
- package/dist/{server-MTKWBSAR.js → server-ELEJNRRE.js} +57 -35
- package/dist/{site-extract-repository-J3RH3MOS.js → site-extract-repository-ASYEJO7Z.js} +4 -5
- package/dist/{worker-K7MPPQ7I.js → worker-MAVYYWM7.js} +8 -9
- package/package.json +3 -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
package/dist/bin/api-server.cjs
CHANGED
|
@@ -46,7 +46,7 @@ var init_harvest_timeout = __esm({
|
|
|
46
46
|
"src/harvest-timeout.ts"() {
|
|
47
47
|
"use strict";
|
|
48
48
|
SCRAPE_FUNCTION_MAX_MS = 8e5;
|
|
49
|
-
DEFAULT_TOOL_CLIENT_TIMEOUT_MS =
|
|
49
|
+
DEFAULT_TOOL_CLIENT_TIMEOUT_MS = 59e4;
|
|
50
50
|
CLIENT_OVER_SERVER_MARGIN_MS = 15e3;
|
|
51
51
|
}
|
|
52
52
|
});
|
|
@@ -186,8 +186,9 @@ function publicErrorMessage(code) {
|
|
|
186
186
|
case "proxy_unavailable":
|
|
187
187
|
return "The web request could not establish a working connection. Please retry later.";
|
|
188
188
|
case "harvest_timeout":
|
|
189
|
-
case "mcp_request_timeout":
|
|
190
189
|
return "The request timed out before it completed. Please retry with a smaller request.";
|
|
190
|
+
case "mcp_request_timeout":
|
|
191
|
+
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.";
|
|
191
192
|
case "concurrency_limit_exceeded":
|
|
192
193
|
return "The service is available, but this account has reached its parallel-operation limit. Wait for an active operation to finish or add capacity.";
|
|
193
194
|
case "unauthorized":
|
|
@@ -50536,7 +50537,7 @@ var PACKAGE_VERSION;
|
|
|
50536
50537
|
var init_version = __esm({
|
|
50537
50538
|
"src/version.ts"() {
|
|
50538
50539
|
"use strict";
|
|
50539
|
-
PACKAGE_VERSION = "0.66.
|
|
50540
|
+
PACKAGE_VERSION = "0.66.1";
|
|
50540
50541
|
}
|
|
50541
50542
|
});
|
|
50542
50543
|
|
|
@@ -55717,7 +55718,7 @@ function decodeTaskHandle(taskId, secret2, ownerId2) {
|
|
|
55717
55718
|
decipher.update(ciphertext),
|
|
55718
55719
|
decipher.final()
|
|
55719
55720
|
]).toString("utf8"));
|
|
55720
|
-
if (parsed.v !== 1 || parsed.ownerId !== ownerId2 || !["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");
|
|
55721
|
+
if (parsed.v !== 1 || parsed.ownerId !== ownerId2 || !["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");
|
|
55721
55722
|
if (Date.now() > parsed.expiresAtMs) {
|
|
55722
55723
|
throw new import_server.ProtocolError(TASK_INVALID_PARAMS, "Failed to retrieve task: Task has expired");
|
|
55723
55724
|
}
|
|
@@ -55730,9 +55731,25 @@ function decodeTaskHandle(taskId, secret2, ownerId2) {
|
|
|
55730
55731
|
function objectValue(value) {
|
|
55731
55732
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
55732
55733
|
}
|
|
55733
|
-
function
|
|
55734
|
+
function resultValue(result) {
|
|
55734
55735
|
const structured = objectValue(result.structuredContent);
|
|
55736
|
+
if (structured) return structured;
|
|
55737
|
+
const block = result.content.find((item) => item.type === "text");
|
|
55738
|
+
if (!block || block.type !== "text") return void 0;
|
|
55739
|
+
try {
|
|
55740
|
+
return objectValue(JSON.parse(block.text));
|
|
55741
|
+
} catch {
|
|
55742
|
+
return void 0;
|
|
55743
|
+
}
|
|
55744
|
+
}
|
|
55745
|
+
function taskSeed(kind, result) {
|
|
55746
|
+
const structured = resultValue(result);
|
|
55735
55747
|
if (!structured || result.isError === true) return void 0;
|
|
55748
|
+
if (kind === "paa_harvest") {
|
|
55749
|
+
const operationId2 = structured.job_id ?? structured.jobId;
|
|
55750
|
+
if (typeof operationId2 !== "string" || !["pending", "running"].includes(String(structured.status))) return void 0;
|
|
55751
|
+
return { kind, operationId: operationId2, statusMessage: "PAA harvest started. Progress will be preserved while the client polls this Task." };
|
|
55752
|
+
}
|
|
55736
55753
|
if (kind === "site_export") {
|
|
55737
55754
|
const operationId2 = structured.jobId;
|
|
55738
55755
|
if (typeof operationId2 !== "string" || structured.status !== "pending") return void 0;
|
|
@@ -55763,10 +55780,13 @@ function taskBase(payload, taskId) {
|
|
|
55763
55780
|
};
|
|
55764
55781
|
}
|
|
55765
55782
|
function statusFrom(result) {
|
|
55766
|
-
const status =
|
|
55783
|
+
const status = resultValue(result)?.status;
|
|
55767
55784
|
return typeof status === "string" ? status : void 0;
|
|
55768
55785
|
}
|
|
55769
55786
|
async function pollTask(executor, payload) {
|
|
55787
|
+
if (payload.kind === "paa_harvest") {
|
|
55788
|
+
return executor.harvestPaaStatus({ jobId: payload.operationId });
|
|
55789
|
+
}
|
|
55770
55790
|
if (payload.kind === "site_export") {
|
|
55771
55791
|
return executor.checkSiteExport({ jobId: payload.operationId });
|
|
55772
55792
|
}
|
|
@@ -55778,6 +55798,30 @@ async function pollTask(executor, payload) {
|
|
|
55778
55798
|
}
|
|
55779
55799
|
return executor.videoFrameAnalysisStatus({ runId: payload.operationId });
|
|
55780
55800
|
}
|
|
55801
|
+
function taskProgressMessage(kind, result, status) {
|
|
55802
|
+
const value = resultValue(result) ?? {};
|
|
55803
|
+
if (kind === "paa_harvest") {
|
|
55804
|
+
const resultRecord = objectValue(value.result) ?? {};
|
|
55805
|
+
const progress = objectValue(resultRecord.progress) ?? {};
|
|
55806
|
+
const records = Array.isArray(progress.records) ? progress.records.length : 0;
|
|
55807
|
+
const attempts = Array.isArray(value.attempts) ? value.attempts.length : 0;
|
|
55808
|
+
const pieces = [records > 0 ? `${records} questions preserved` : null, attempts > 0 ? `${attempts} attempts recorded` : null].filter(Boolean);
|
|
55809
|
+
return pieces.length > 0 ? `PAA harvest is ${status ?? "running"}: ${pieces.join(", ")}.` : `PAA harvest is ${status ?? "running"}; no question checkpoint has been persisted yet.`;
|
|
55810
|
+
}
|
|
55811
|
+
if (kind === "lead_list_enrichment") {
|
|
55812
|
+
const progress = objectValue(value.progress) ?? {};
|
|
55813
|
+
const completed = typeof progress.completedRows === "number" ? progress.completedRows : null;
|
|
55814
|
+
const total = typeof progress.totalRows === "number" ? progress.totalRows : null;
|
|
55815
|
+
if (completed !== null && total !== null) return `Lead list enrichment is ${status ?? "running"}: ${completed}/${total} rows completed.`;
|
|
55816
|
+
}
|
|
55817
|
+
if (kind === "directory_workflow") {
|
|
55818
|
+
const progress = objectValue(value.progress) ?? {};
|
|
55819
|
+
const completed = typeof progress.completedCities === "number" ? progress.completedCities : null;
|
|
55820
|
+
const total = typeof progress.totalCities === "number" ? progress.totalCities : null;
|
|
55821
|
+
if (completed !== null && total !== null) return `Directory workflow is ${status ?? "running"}: ${completed}/${total} markets completed.`;
|
|
55822
|
+
}
|
|
55823
|
+
return status ? `Underlying operation status: ${status}.` : "Underlying operation is running.";
|
|
55824
|
+
}
|
|
55781
55825
|
async function cancelTask(executor, payload) {
|
|
55782
55826
|
if (payload.kind !== "lead_list_enrichment") return;
|
|
55783
55827
|
const result = await executor.leadListEnrichCancel({ jobId: payload.operationId });
|
|
@@ -55794,7 +55838,7 @@ async function detailedTask(executor, taskId, options) {
|
|
|
55794
55838
|
return {
|
|
55795
55839
|
...base,
|
|
55796
55840
|
status: "working",
|
|
55797
|
-
statusMessage:
|
|
55841
|
+
statusMessage: taskProgressMessage(payload.kind, result, status)
|
|
55798
55842
|
};
|
|
55799
55843
|
}
|
|
55800
55844
|
if (payload.kind === "lead_list_enrichment" && status === "failed") {
|
|
@@ -55805,6 +55849,22 @@ async function detailedTask(executor, taskId, options) {
|
|
|
55805
55849
|
result
|
|
55806
55850
|
};
|
|
55807
55851
|
}
|
|
55852
|
+
if (payload.kind === "paa_harvest" && status === "failed") {
|
|
55853
|
+
return {
|
|
55854
|
+
...base,
|
|
55855
|
+
status: "failed",
|
|
55856
|
+
statusMessage: "PAA harvest failed; persisted attempts and billing state are included in the result.",
|
|
55857
|
+
result
|
|
55858
|
+
};
|
|
55859
|
+
}
|
|
55860
|
+
if (payload.kind === "paa_harvest" && status === "cancelled") {
|
|
55861
|
+
return {
|
|
55862
|
+
...base,
|
|
55863
|
+
status: "cancelled",
|
|
55864
|
+
statusMessage: "PAA harvest was cancelled.",
|
|
55865
|
+
result
|
|
55866
|
+
};
|
|
55867
|
+
}
|
|
55808
55868
|
if (payload.kind === "lead_list_enrichment" && status === "cancelled") {
|
|
55809
55869
|
return {
|
|
55810
55870
|
...base,
|
|
@@ -55821,6 +55881,7 @@ async function detailedTask(executor, taskId, options) {
|
|
|
55821
55881
|
};
|
|
55822
55882
|
}
|
|
55823
55883
|
function isWorking(kind, status) {
|
|
55884
|
+
if (kind === "paa_harvest") return status === "pending" || status === "running";
|
|
55824
55885
|
if (kind === "site_export") return status === "pending" || status === "running";
|
|
55825
55886
|
if (kind === "directory_workflow") return status === "queued" || status === "running";
|
|
55826
55887
|
if (kind === "lead_list_enrichment") return status === "queued" || status === "running";
|
|
@@ -55852,6 +55913,9 @@ function registerMcpTasksExtension(server, executor, options) {
|
|
|
55852
55913
|
return {};
|
|
55853
55914
|
});
|
|
55854
55915
|
return {
|
|
55916
|
+
supportsTasks() {
|
|
55917
|
+
return hasTasksCapability(server.server.getClientCapabilities());
|
|
55918
|
+
},
|
|
55855
55919
|
taskify(kind, result) {
|
|
55856
55920
|
if (!hasTasksCapability(server.server.getClientCapabilities())) return result;
|
|
55857
55921
|
const seed = taskSeed(kind, result);
|
|
@@ -56408,7 +56472,12 @@ function registerPaaExtractorMcpTools(server, executor, options = {}) {
|
|
|
56408
56472
|
inputSchema: harvestPaaInputSchema,
|
|
56409
56473
|
outputSchema: recordOutputSchema("harvest_paa", HarvestPaaOutputSchema),
|
|
56410
56474
|
annotations: liveWebToolAnnotations("Google PAA + SERP Harvest")
|
|
56411
|
-
}, async (input) =>
|
|
56475
|
+
}, async (input, requestContext) => {
|
|
56476
|
+
if (tasks.supportsTasks()) {
|
|
56477
|
+
return tasks.taskify("paa_harvest", await executor.startHarvestPaa(input), requestContext);
|
|
56478
|
+
}
|
|
56479
|
+
return formatHarvestPaa(await executor.harvestPaa(input), input);
|
|
56480
|
+
});
|
|
56412
56481
|
server.registerTool("search_serp", {
|
|
56413
56482
|
title: "Google SERP Lookup",
|
|
56414
56483
|
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.`,
|
|
@@ -57409,7 +57478,7 @@ var init_http_mcp_tool_executor = __esm({
|
|
|
57409
57478
|
retryable: true,
|
|
57410
57479
|
path: path6,
|
|
57411
57480
|
timeoutMs,
|
|
57412
|
-
message: `MCP Scraper
|
|
57481
|
+
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}`
|
|
57413
57482
|
})
|
|
57414
57483
|
}],
|
|
57415
57484
|
isError: true
|
|
@@ -57495,6 +57564,13 @@ var init_http_mcp_tool_executor = __esm({
|
|
|
57495
57564
|
const headers = input.idempotencyKey ? { "Idempotency-Key": input.idempotencyKey } : {};
|
|
57496
57565
|
return this.call("/harvest/sync", input, timeoutMs, "POST", headers, true);
|
|
57497
57566
|
}
|
|
57567
|
+
startHarvestPaa(input) {
|
|
57568
|
+
const headers = input.idempotencyKey ? { "Idempotency-Key": input.idempotencyKey } : {};
|
|
57569
|
+
return this.call("/harvest", input, this.timeoutMs, "POST", headers, true);
|
|
57570
|
+
}
|
|
57571
|
+
harvestPaaStatus(input) {
|
|
57572
|
+
return this.getJson(`/jobs/${encodeURIComponent(input.jobId)}`);
|
|
57573
|
+
}
|
|
57498
57574
|
searchSerp(input) {
|
|
57499
57575
|
const timeoutMs = this.httpTimeoutOverrideMs ?? harvestTimeoutBudget(0, true).clientMs;
|
|
57500
57576
|
const headers = input.idempotencyKey ? { "Idempotency-Key": input.idempotencyKey } : {};
|
|
@@ -59727,6 +59803,1539 @@ var init_browser_agent_mcp_server = __esm({
|
|
|
59727
59803
|
}
|
|
59728
59804
|
});
|
|
59729
59805
|
|
|
59806
|
+
// src/mcp/memory-image-tool-schemas.generated.ts
|
|
59807
|
+
var MEMORY_IMAGE_TOOL_SCHEMAS;
|
|
59808
|
+
var init_memory_image_tool_schemas_generated = __esm({
|
|
59809
|
+
"src/mcp/memory-image-tool-schemas.generated.ts"() {
|
|
59810
|
+
"use strict";
|
|
59811
|
+
MEMORY_IMAGE_TOOL_SCHEMAS = [
|
|
59812
|
+
{
|
|
59813
|
+
"id": "image_project_create",
|
|
59814
|
+
"upstreamName": "image_project_create",
|
|
59815
|
+
"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.",
|
|
59816
|
+
"inputJsonSchema": {
|
|
59817
|
+
"type": "object",
|
|
59818
|
+
"properties": {
|
|
59819
|
+
"vault": {
|
|
59820
|
+
"type": "string",
|
|
59821
|
+
"description": "Writable logical Memory vault. Defaults to the active vault."
|
|
59822
|
+
},
|
|
59823
|
+
"name": {
|
|
59824
|
+
"type": "string",
|
|
59825
|
+
"minLength": 1,
|
|
59826
|
+
"maxLength": 120
|
|
59827
|
+
},
|
|
59828
|
+
"description": {
|
|
59829
|
+
"type": "string",
|
|
59830
|
+
"maxLength": 2e3
|
|
59831
|
+
}
|
|
59832
|
+
},
|
|
59833
|
+
"required": [
|
|
59834
|
+
"name"
|
|
59835
|
+
],
|
|
59836
|
+
"additionalProperties": false,
|
|
59837
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
59838
|
+
},
|
|
59839
|
+
"outputJsonSchema": {
|
|
59840
|
+
"type": "object",
|
|
59841
|
+
"properties": {
|
|
59842
|
+
"ok": {
|
|
59843
|
+
"type": "boolean",
|
|
59844
|
+
"enum": [
|
|
59845
|
+
true,
|
|
59846
|
+
false
|
|
59847
|
+
]
|
|
59848
|
+
},
|
|
59849
|
+
"project": {
|
|
59850
|
+
"type": "object",
|
|
59851
|
+
"properties": {
|
|
59852
|
+
"id": {
|
|
59853
|
+
"type": "string"
|
|
59854
|
+
},
|
|
59855
|
+
"name": {
|
|
59856
|
+
"type": "string"
|
|
59857
|
+
},
|
|
59858
|
+
"description": {
|
|
59859
|
+
"type": [
|
|
59860
|
+
"string",
|
|
59861
|
+
"null"
|
|
59862
|
+
]
|
|
59863
|
+
},
|
|
59864
|
+
"createdAt": {
|
|
59865
|
+
"type": "string"
|
|
59866
|
+
}
|
|
59867
|
+
},
|
|
59868
|
+
"required": [
|
|
59869
|
+
"id",
|
|
59870
|
+
"name",
|
|
59871
|
+
"description",
|
|
59872
|
+
"createdAt"
|
|
59873
|
+
],
|
|
59874
|
+
"additionalProperties": false
|
|
59875
|
+
},
|
|
59876
|
+
"code": {
|
|
59877
|
+
"type": "string"
|
|
59878
|
+
},
|
|
59879
|
+
"error": {
|
|
59880
|
+
"type": "string"
|
|
59881
|
+
}
|
|
59882
|
+
},
|
|
59883
|
+
"required": [
|
|
59884
|
+
"ok"
|
|
59885
|
+
],
|
|
59886
|
+
"additionalProperties": false,
|
|
59887
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
59888
|
+
},
|
|
59889
|
+
"annotations": {
|
|
59890
|
+
"title": "Create Image Project",
|
|
59891
|
+
"readOnlyHint": false,
|
|
59892
|
+
"destructiveHint": false,
|
|
59893
|
+
"idempotentHint": false,
|
|
59894
|
+
"openWorldHint": false
|
|
59895
|
+
}
|
|
59896
|
+
},
|
|
59897
|
+
{
|
|
59898
|
+
"id": "image_project_list",
|
|
59899
|
+
"upstreamName": "image_project_list",
|
|
59900
|
+
"description": "List image projects in an accessible hosted Memory vault. Returns organization metadata only, never object-store keys.",
|
|
59901
|
+
"inputJsonSchema": {
|
|
59902
|
+
"type": "object",
|
|
59903
|
+
"properties": {
|
|
59904
|
+
"vault": {
|
|
59905
|
+
"type": "string"
|
|
59906
|
+
}
|
|
59907
|
+
},
|
|
59908
|
+
"additionalProperties": false,
|
|
59909
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
59910
|
+
},
|
|
59911
|
+
"outputJsonSchema": {
|
|
59912
|
+
"type": "object",
|
|
59913
|
+
"properties": {
|
|
59914
|
+
"ok": {
|
|
59915
|
+
"type": "boolean",
|
|
59916
|
+
"enum": [
|
|
59917
|
+
true,
|
|
59918
|
+
false
|
|
59919
|
+
]
|
|
59920
|
+
},
|
|
59921
|
+
"projects": {
|
|
59922
|
+
"type": "array",
|
|
59923
|
+
"items": {
|
|
59924
|
+
"type": "object",
|
|
59925
|
+
"properties": {
|
|
59926
|
+
"id": {
|
|
59927
|
+
"type": "string"
|
|
59928
|
+
},
|
|
59929
|
+
"name": {
|
|
59930
|
+
"type": "string"
|
|
59931
|
+
},
|
|
59932
|
+
"description": {
|
|
59933
|
+
"type": [
|
|
59934
|
+
"string",
|
|
59935
|
+
"null"
|
|
59936
|
+
]
|
|
59937
|
+
},
|
|
59938
|
+
"status": {
|
|
59939
|
+
"type": "string"
|
|
59940
|
+
},
|
|
59941
|
+
"createdAt": {
|
|
59942
|
+
"type": "string"
|
|
59943
|
+
},
|
|
59944
|
+
"updatedAt": {
|
|
59945
|
+
"type": "string"
|
|
59946
|
+
}
|
|
59947
|
+
},
|
|
59948
|
+
"required": [
|
|
59949
|
+
"id",
|
|
59950
|
+
"name",
|
|
59951
|
+
"description",
|
|
59952
|
+
"status",
|
|
59953
|
+
"createdAt",
|
|
59954
|
+
"updatedAt"
|
|
59955
|
+
],
|
|
59956
|
+
"additionalProperties": false
|
|
59957
|
+
}
|
|
59958
|
+
},
|
|
59959
|
+
"code": {
|
|
59960
|
+
"type": "string"
|
|
59961
|
+
},
|
|
59962
|
+
"error": {
|
|
59963
|
+
"type": "string"
|
|
59964
|
+
}
|
|
59965
|
+
},
|
|
59966
|
+
"required": [
|
|
59967
|
+
"ok"
|
|
59968
|
+
],
|
|
59969
|
+
"additionalProperties": false,
|
|
59970
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
59971
|
+
},
|
|
59972
|
+
"annotations": {
|
|
59973
|
+
"title": "List Image Projects",
|
|
59974
|
+
"readOnlyHint": true,
|
|
59975
|
+
"destructiveHint": false,
|
|
59976
|
+
"idempotentHint": true,
|
|
59977
|
+
"openWorldHint": false
|
|
59978
|
+
}
|
|
59979
|
+
},
|
|
59980
|
+
{
|
|
59981
|
+
"id": "image_folder_create",
|
|
59982
|
+
"upstreamName": "image_folder_create",
|
|
59983
|
+
"description": "Create a nested image folder inside one writable Memory image project. Maximum nesting depth is eight; this changes logical organization only.",
|
|
59984
|
+
"inputJsonSchema": {
|
|
59985
|
+
"type": "object",
|
|
59986
|
+
"properties": {
|
|
59987
|
+
"vault": {
|
|
59988
|
+
"type": "string"
|
|
59989
|
+
},
|
|
59990
|
+
"projectId": {
|
|
59991
|
+
"type": "string",
|
|
59992
|
+
"minLength": 1
|
|
59993
|
+
},
|
|
59994
|
+
"parentId": {
|
|
59995
|
+
"type": "string",
|
|
59996
|
+
"minLength": 1
|
|
59997
|
+
},
|
|
59998
|
+
"name": {
|
|
59999
|
+
"type": "string",
|
|
60000
|
+
"minLength": 1,
|
|
60001
|
+
"maxLength": 120
|
|
60002
|
+
}
|
|
60003
|
+
},
|
|
60004
|
+
"required": [
|
|
60005
|
+
"projectId",
|
|
60006
|
+
"name"
|
|
60007
|
+
],
|
|
60008
|
+
"additionalProperties": false,
|
|
60009
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60010
|
+
},
|
|
60011
|
+
"outputJsonSchema": {
|
|
60012
|
+
"type": "object",
|
|
60013
|
+
"properties": {
|
|
60014
|
+
"ok": {
|
|
60015
|
+
"type": "boolean",
|
|
60016
|
+
"enum": [
|
|
60017
|
+
true,
|
|
60018
|
+
false
|
|
60019
|
+
]
|
|
60020
|
+
},
|
|
60021
|
+
"folder": {
|
|
60022
|
+
"type": "object",
|
|
60023
|
+
"properties": {
|
|
60024
|
+
"id": {
|
|
60025
|
+
"type": "string"
|
|
60026
|
+
},
|
|
60027
|
+
"projectId": {
|
|
60028
|
+
"type": "string"
|
|
60029
|
+
},
|
|
60030
|
+
"parentId": {
|
|
60031
|
+
"type": [
|
|
60032
|
+
"string",
|
|
60033
|
+
"null"
|
|
60034
|
+
]
|
|
60035
|
+
},
|
|
60036
|
+
"name": {
|
|
60037
|
+
"type": "string"
|
|
60038
|
+
},
|
|
60039
|
+
"depth": {
|
|
60040
|
+
"type": "number"
|
|
60041
|
+
},
|
|
60042
|
+
"createdAt": {
|
|
60043
|
+
"type": "string"
|
|
60044
|
+
}
|
|
60045
|
+
},
|
|
60046
|
+
"required": [
|
|
60047
|
+
"id",
|
|
60048
|
+
"projectId",
|
|
60049
|
+
"parentId",
|
|
60050
|
+
"name",
|
|
60051
|
+
"depth",
|
|
60052
|
+
"createdAt"
|
|
60053
|
+
],
|
|
60054
|
+
"additionalProperties": false
|
|
60055
|
+
},
|
|
60056
|
+
"code": {
|
|
60057
|
+
"type": "string"
|
|
60058
|
+
},
|
|
60059
|
+
"error": {
|
|
60060
|
+
"type": "string"
|
|
60061
|
+
}
|
|
60062
|
+
},
|
|
60063
|
+
"required": [
|
|
60064
|
+
"ok"
|
|
60065
|
+
],
|
|
60066
|
+
"additionalProperties": false,
|
|
60067
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60068
|
+
},
|
|
60069
|
+
"annotations": {
|
|
60070
|
+
"title": "Create Image Folder",
|
|
60071
|
+
"readOnlyHint": false,
|
|
60072
|
+
"destructiveHint": false,
|
|
60073
|
+
"idempotentHint": false,
|
|
60074
|
+
"openWorldHint": false
|
|
60075
|
+
}
|
|
60076
|
+
},
|
|
60077
|
+
{
|
|
60078
|
+
"id": "image_folder_list",
|
|
60079
|
+
"upstreamName": "image_folder_list",
|
|
60080
|
+
"description": "List the bounded folder tree for one accessible Memory image project.",
|
|
60081
|
+
"inputJsonSchema": {
|
|
60082
|
+
"type": "object",
|
|
60083
|
+
"properties": {
|
|
60084
|
+
"vault": {
|
|
60085
|
+
"type": "string"
|
|
60086
|
+
},
|
|
60087
|
+
"projectId": {
|
|
60088
|
+
"type": "string",
|
|
60089
|
+
"minLength": 1
|
|
60090
|
+
}
|
|
60091
|
+
},
|
|
60092
|
+
"required": [
|
|
60093
|
+
"projectId"
|
|
60094
|
+
],
|
|
60095
|
+
"additionalProperties": false,
|
|
60096
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60097
|
+
},
|
|
60098
|
+
"outputJsonSchema": {
|
|
60099
|
+
"type": "object",
|
|
60100
|
+
"properties": {
|
|
60101
|
+
"ok": {
|
|
60102
|
+
"type": "boolean",
|
|
60103
|
+
"enum": [
|
|
60104
|
+
true,
|
|
60105
|
+
false
|
|
60106
|
+
]
|
|
60107
|
+
},
|
|
60108
|
+
"folders": {
|
|
60109
|
+
"type": "array",
|
|
60110
|
+
"items": {
|
|
60111
|
+
"type": "object",
|
|
60112
|
+
"properties": {
|
|
60113
|
+
"id": {
|
|
60114
|
+
"type": "string"
|
|
60115
|
+
},
|
|
60116
|
+
"projectId": {
|
|
60117
|
+
"type": "string"
|
|
60118
|
+
},
|
|
60119
|
+
"parentId": {
|
|
60120
|
+
"type": [
|
|
60121
|
+
"string",
|
|
60122
|
+
"null"
|
|
60123
|
+
]
|
|
60124
|
+
},
|
|
60125
|
+
"name": {
|
|
60126
|
+
"type": "string"
|
|
60127
|
+
},
|
|
60128
|
+
"depth": {
|
|
60129
|
+
"type": "number"
|
|
60130
|
+
},
|
|
60131
|
+
"createdAt": {
|
|
60132
|
+
"type": "string"
|
|
60133
|
+
},
|
|
60134
|
+
"updatedAt": {
|
|
60135
|
+
"type": "string"
|
|
60136
|
+
}
|
|
60137
|
+
},
|
|
60138
|
+
"required": [
|
|
60139
|
+
"id",
|
|
60140
|
+
"projectId",
|
|
60141
|
+
"parentId",
|
|
60142
|
+
"name",
|
|
60143
|
+
"depth",
|
|
60144
|
+
"createdAt",
|
|
60145
|
+
"updatedAt"
|
|
60146
|
+
],
|
|
60147
|
+
"additionalProperties": false
|
|
60148
|
+
}
|
|
60149
|
+
},
|
|
60150
|
+
"code": {
|
|
60151
|
+
"type": "string"
|
|
60152
|
+
},
|
|
60153
|
+
"error": {
|
|
60154
|
+
"type": "string"
|
|
60155
|
+
}
|
|
60156
|
+
},
|
|
60157
|
+
"required": [
|
|
60158
|
+
"ok"
|
|
60159
|
+
],
|
|
60160
|
+
"additionalProperties": false,
|
|
60161
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60162
|
+
},
|
|
60163
|
+
"annotations": {
|
|
60164
|
+
"title": "List Image Folders",
|
|
60165
|
+
"readOnlyHint": true,
|
|
60166
|
+
"destructiveHint": false,
|
|
60167
|
+
"idempotentHint": true,
|
|
60168
|
+
"openWorldHint": false
|
|
60169
|
+
}
|
|
60170
|
+
},
|
|
60171
|
+
{
|
|
60172
|
+
"id": "image_asset_save",
|
|
60173
|
+
"upstreamName": "image_asset_save",
|
|
60174
|
+
"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.",
|
|
60175
|
+
"inputJsonSchema": {
|
|
60176
|
+
"type": "object",
|
|
60177
|
+
"properties": {
|
|
60178
|
+
"vault": {
|
|
60179
|
+
"type": "string"
|
|
60180
|
+
},
|
|
60181
|
+
"projectId": {
|
|
60182
|
+
"type": "string",
|
|
60183
|
+
"minLength": 1
|
|
60184
|
+
},
|
|
60185
|
+
"folderId": {
|
|
60186
|
+
"type": "string",
|
|
60187
|
+
"minLength": 1
|
|
60188
|
+
},
|
|
60189
|
+
"sourceUrl": {
|
|
60190
|
+
"type": "string",
|
|
60191
|
+
"format": "uri",
|
|
60192
|
+
"description": "Public HTTPS image URL. Private-network and redirect targets are rejected."
|
|
60193
|
+
},
|
|
60194
|
+
"artifactId": {
|
|
60195
|
+
"type": "string",
|
|
60196
|
+
"minLength": 1,
|
|
60197
|
+
"description": "Owned MCP Scraper artifact ID. Available through the aggregate MCP handoff."
|
|
60198
|
+
},
|
|
60199
|
+
"imageBase64": {
|
|
60200
|
+
"type": "string",
|
|
60201
|
+
"minLength": 1,
|
|
60202
|
+
"description": "Bounded base64 image for clients without an upload transport; maximum decoded size is 20 MiB."
|
|
60203
|
+
},
|
|
60204
|
+
"title": {
|
|
60205
|
+
"type": "string",
|
|
60206
|
+
"minLength": 1,
|
|
60207
|
+
"maxLength": 240
|
|
60208
|
+
},
|
|
60209
|
+
"description": {
|
|
60210
|
+
"type": "string",
|
|
60211
|
+
"maxLength": 4e3
|
|
60212
|
+
},
|
|
60213
|
+
"altText": {
|
|
60214
|
+
"type": "string",
|
|
60215
|
+
"maxLength": 2e3
|
|
60216
|
+
},
|
|
60217
|
+
"tags": {
|
|
60218
|
+
"type": "array",
|
|
60219
|
+
"items": {
|
|
60220
|
+
"type": "string",
|
|
60221
|
+
"minLength": 1,
|
|
60222
|
+
"maxLength": 80
|
|
60223
|
+
},
|
|
60224
|
+
"maxItems": 20
|
|
60225
|
+
},
|
|
60226
|
+
"sourceRef": {
|
|
60227
|
+
"type": "object",
|
|
60228
|
+
"additionalProperties": {
|
|
60229
|
+
"anyOf": [
|
|
60230
|
+
{
|
|
60231
|
+
"type": "string",
|
|
60232
|
+
"maxLength": 1e3
|
|
60233
|
+
},
|
|
60234
|
+
{
|
|
60235
|
+
"type": "number"
|
|
60236
|
+
},
|
|
60237
|
+
{
|
|
60238
|
+
"type": "boolean"
|
|
60239
|
+
},
|
|
60240
|
+
{
|
|
60241
|
+
"type": "null"
|
|
60242
|
+
}
|
|
60243
|
+
]
|
|
60244
|
+
}
|
|
60245
|
+
},
|
|
60246
|
+
"idempotencyKey": {
|
|
60247
|
+
"type": "string",
|
|
60248
|
+
"minLength": 8,
|
|
60249
|
+
"maxLength": 200,
|
|
60250
|
+
"description": "Stable key for this logical save. Retrying the same request returns the same asset without another write."
|
|
60251
|
+
}
|
|
60252
|
+
},
|
|
60253
|
+
"required": [
|
|
60254
|
+
"title",
|
|
60255
|
+
"idempotencyKey"
|
|
60256
|
+
],
|
|
60257
|
+
"additionalProperties": false,
|
|
60258
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60259
|
+
},
|
|
60260
|
+
"outputJsonSchema": {
|
|
60261
|
+
"type": "object",
|
|
60262
|
+
"properties": {
|
|
60263
|
+
"ok": {
|
|
60264
|
+
"type": "boolean",
|
|
60265
|
+
"enum": [
|
|
60266
|
+
true,
|
|
60267
|
+
false
|
|
60268
|
+
]
|
|
60269
|
+
},
|
|
60270
|
+
"asset": {
|
|
60271
|
+
"type": "object",
|
|
60272
|
+
"properties": {
|
|
60273
|
+
"assetId": {
|
|
60274
|
+
"type": "string"
|
|
60275
|
+
},
|
|
60276
|
+
"title": {
|
|
60277
|
+
"type": "string"
|
|
60278
|
+
},
|
|
60279
|
+
"description": {
|
|
60280
|
+
"type": [
|
|
60281
|
+
"string",
|
|
60282
|
+
"null"
|
|
60283
|
+
]
|
|
60284
|
+
},
|
|
60285
|
+
"altText": {
|
|
60286
|
+
"type": [
|
|
60287
|
+
"string",
|
|
60288
|
+
"null"
|
|
60289
|
+
]
|
|
60290
|
+
},
|
|
60291
|
+
"sourceUrl": {
|
|
60292
|
+
"type": [
|
|
60293
|
+
"string",
|
|
60294
|
+
"null"
|
|
60295
|
+
]
|
|
60296
|
+
},
|
|
60297
|
+
"sourceKind": {
|
|
60298
|
+
"type": "string"
|
|
60299
|
+
},
|
|
60300
|
+
"mimeType": {
|
|
60301
|
+
"type": "string"
|
|
60302
|
+
},
|
|
60303
|
+
"bytes": {
|
|
60304
|
+
"type": "number"
|
|
60305
|
+
},
|
|
60306
|
+
"width": {
|
|
60307
|
+
"type": "number"
|
|
60308
|
+
},
|
|
60309
|
+
"height": {
|
|
60310
|
+
"type": "number"
|
|
60311
|
+
},
|
|
60312
|
+
"projectId": {
|
|
60313
|
+
"type": [
|
|
60314
|
+
"string",
|
|
60315
|
+
"null"
|
|
60316
|
+
]
|
|
60317
|
+
},
|
|
60318
|
+
"folderId": {
|
|
60319
|
+
"type": [
|
|
60320
|
+
"string",
|
|
60321
|
+
"null"
|
|
60322
|
+
]
|
|
60323
|
+
},
|
|
60324
|
+
"tags": {
|
|
60325
|
+
"type": "array",
|
|
60326
|
+
"items": {
|
|
60327
|
+
"type": "string"
|
|
60328
|
+
}
|
|
60329
|
+
},
|
|
60330
|
+
"status": {
|
|
60331
|
+
"type": "string"
|
|
60332
|
+
},
|
|
60333
|
+
"embeddingStatus": {
|
|
60334
|
+
"type": "string"
|
|
60335
|
+
},
|
|
60336
|
+
"createdAt": {
|
|
60337
|
+
"type": "string"
|
|
60338
|
+
},
|
|
60339
|
+
"updatedAt": {
|
|
60340
|
+
"type": "string"
|
|
60341
|
+
},
|
|
60342
|
+
"preview": {
|
|
60343
|
+
"type": "object",
|
|
60344
|
+
"properties": {
|
|
60345
|
+
"url": {
|
|
60346
|
+
"type": "string",
|
|
60347
|
+
"format": "uri"
|
|
60348
|
+
},
|
|
60349
|
+
"expiresAt": {
|
|
60350
|
+
"type": "string",
|
|
60351
|
+
"format": "date-time"
|
|
60352
|
+
},
|
|
60353
|
+
"mimeType": {
|
|
60354
|
+
"type": "string",
|
|
60355
|
+
"const": "image/webp"
|
|
60356
|
+
}
|
|
60357
|
+
},
|
|
60358
|
+
"required": [
|
|
60359
|
+
"url",
|
|
60360
|
+
"expiresAt",
|
|
60361
|
+
"mimeType"
|
|
60362
|
+
],
|
|
60363
|
+
"additionalProperties": false
|
|
60364
|
+
}
|
|
60365
|
+
},
|
|
60366
|
+
"required": [
|
|
60367
|
+
"assetId",
|
|
60368
|
+
"title",
|
|
60369
|
+
"description",
|
|
60370
|
+
"altText",
|
|
60371
|
+
"sourceUrl",
|
|
60372
|
+
"sourceKind",
|
|
60373
|
+
"mimeType",
|
|
60374
|
+
"bytes",
|
|
60375
|
+
"width",
|
|
60376
|
+
"height",
|
|
60377
|
+
"projectId",
|
|
60378
|
+
"folderId",
|
|
60379
|
+
"tags",
|
|
60380
|
+
"status",
|
|
60381
|
+
"embeddingStatus",
|
|
60382
|
+
"createdAt",
|
|
60383
|
+
"updatedAt"
|
|
60384
|
+
],
|
|
60385
|
+
"additionalProperties": false
|
|
60386
|
+
},
|
|
60387
|
+
"reusedObject": {
|
|
60388
|
+
"type": "boolean"
|
|
60389
|
+
},
|
|
60390
|
+
"nextAction": {
|
|
60391
|
+
"type": "string"
|
|
60392
|
+
},
|
|
60393
|
+
"code": {
|
|
60394
|
+
"type": "string"
|
|
60395
|
+
},
|
|
60396
|
+
"error": {
|
|
60397
|
+
"type": "string"
|
|
60398
|
+
}
|
|
60399
|
+
},
|
|
60400
|
+
"required": [
|
|
60401
|
+
"ok"
|
|
60402
|
+
],
|
|
60403
|
+
"additionalProperties": false,
|
|
60404
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60405
|
+
},
|
|
60406
|
+
"annotations": {
|
|
60407
|
+
"title": "Save Image Asset",
|
|
60408
|
+
"readOnlyHint": false,
|
|
60409
|
+
"destructiveHint": false,
|
|
60410
|
+
"idempotentHint": true,
|
|
60411
|
+
"openWorldHint": true
|
|
60412
|
+
}
|
|
60413
|
+
},
|
|
60414
|
+
{
|
|
60415
|
+
"id": "image_asset_get",
|
|
60416
|
+
"upstreamName": "image_asset_get",
|
|
60417
|
+
"description": "Read one authorized private image asset and optionally mint a five-minute preview URL. The URL is never persisted; call again after expiry.",
|
|
60418
|
+
"inputJsonSchema": {
|
|
60419
|
+
"type": "object",
|
|
60420
|
+
"properties": {
|
|
60421
|
+
"vault": {
|
|
60422
|
+
"type": "string"
|
|
60423
|
+
},
|
|
60424
|
+
"assetId": {
|
|
60425
|
+
"type": "string",
|
|
60426
|
+
"minLength": 1
|
|
60427
|
+
},
|
|
60428
|
+
"includePreview": {
|
|
60429
|
+
"type": "boolean",
|
|
60430
|
+
"default": true
|
|
60431
|
+
}
|
|
60432
|
+
},
|
|
60433
|
+
"required": [
|
|
60434
|
+
"assetId"
|
|
60435
|
+
],
|
|
60436
|
+
"additionalProperties": false,
|
|
60437
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60438
|
+
},
|
|
60439
|
+
"outputJsonSchema": {
|
|
60440
|
+
"type": "object",
|
|
60441
|
+
"properties": {
|
|
60442
|
+
"ok": {
|
|
60443
|
+
"type": "boolean",
|
|
60444
|
+
"enum": [
|
|
60445
|
+
true,
|
|
60446
|
+
false
|
|
60447
|
+
]
|
|
60448
|
+
},
|
|
60449
|
+
"asset": {
|
|
60450
|
+
"type": "object",
|
|
60451
|
+
"properties": {
|
|
60452
|
+
"assetId": {
|
|
60453
|
+
"type": "string"
|
|
60454
|
+
},
|
|
60455
|
+
"title": {
|
|
60456
|
+
"type": "string"
|
|
60457
|
+
},
|
|
60458
|
+
"description": {
|
|
60459
|
+
"type": [
|
|
60460
|
+
"string",
|
|
60461
|
+
"null"
|
|
60462
|
+
]
|
|
60463
|
+
},
|
|
60464
|
+
"altText": {
|
|
60465
|
+
"type": [
|
|
60466
|
+
"string",
|
|
60467
|
+
"null"
|
|
60468
|
+
]
|
|
60469
|
+
},
|
|
60470
|
+
"sourceUrl": {
|
|
60471
|
+
"type": [
|
|
60472
|
+
"string",
|
|
60473
|
+
"null"
|
|
60474
|
+
]
|
|
60475
|
+
},
|
|
60476
|
+
"sourceKind": {
|
|
60477
|
+
"type": "string"
|
|
60478
|
+
},
|
|
60479
|
+
"mimeType": {
|
|
60480
|
+
"type": "string"
|
|
60481
|
+
},
|
|
60482
|
+
"bytes": {
|
|
60483
|
+
"type": "number"
|
|
60484
|
+
},
|
|
60485
|
+
"width": {
|
|
60486
|
+
"type": "number"
|
|
60487
|
+
},
|
|
60488
|
+
"height": {
|
|
60489
|
+
"type": "number"
|
|
60490
|
+
},
|
|
60491
|
+
"projectId": {
|
|
60492
|
+
"type": [
|
|
60493
|
+
"string",
|
|
60494
|
+
"null"
|
|
60495
|
+
]
|
|
60496
|
+
},
|
|
60497
|
+
"folderId": {
|
|
60498
|
+
"type": [
|
|
60499
|
+
"string",
|
|
60500
|
+
"null"
|
|
60501
|
+
]
|
|
60502
|
+
},
|
|
60503
|
+
"tags": {
|
|
60504
|
+
"type": "array",
|
|
60505
|
+
"items": {
|
|
60506
|
+
"type": "string"
|
|
60507
|
+
}
|
|
60508
|
+
},
|
|
60509
|
+
"status": {
|
|
60510
|
+
"type": "string"
|
|
60511
|
+
},
|
|
60512
|
+
"embeddingStatus": {
|
|
60513
|
+
"type": "string"
|
|
60514
|
+
},
|
|
60515
|
+
"createdAt": {
|
|
60516
|
+
"type": "string"
|
|
60517
|
+
},
|
|
60518
|
+
"updatedAt": {
|
|
60519
|
+
"type": "string"
|
|
60520
|
+
},
|
|
60521
|
+
"preview": {
|
|
60522
|
+
"type": "object",
|
|
60523
|
+
"properties": {
|
|
60524
|
+
"url": {
|
|
60525
|
+
"type": "string",
|
|
60526
|
+
"format": "uri"
|
|
60527
|
+
},
|
|
60528
|
+
"expiresAt": {
|
|
60529
|
+
"type": "string",
|
|
60530
|
+
"format": "date-time"
|
|
60531
|
+
},
|
|
60532
|
+
"mimeType": {
|
|
60533
|
+
"type": "string",
|
|
60534
|
+
"const": "image/webp"
|
|
60535
|
+
}
|
|
60536
|
+
},
|
|
60537
|
+
"required": [
|
|
60538
|
+
"url",
|
|
60539
|
+
"expiresAt",
|
|
60540
|
+
"mimeType"
|
|
60541
|
+
],
|
|
60542
|
+
"additionalProperties": false
|
|
60543
|
+
}
|
|
60544
|
+
},
|
|
60545
|
+
"required": [
|
|
60546
|
+
"assetId",
|
|
60547
|
+
"title",
|
|
60548
|
+
"description",
|
|
60549
|
+
"altText",
|
|
60550
|
+
"sourceUrl",
|
|
60551
|
+
"sourceKind",
|
|
60552
|
+
"mimeType",
|
|
60553
|
+
"bytes",
|
|
60554
|
+
"width",
|
|
60555
|
+
"height",
|
|
60556
|
+
"projectId",
|
|
60557
|
+
"folderId",
|
|
60558
|
+
"tags",
|
|
60559
|
+
"status",
|
|
60560
|
+
"embeddingStatus",
|
|
60561
|
+
"createdAt",
|
|
60562
|
+
"updatedAt"
|
|
60563
|
+
],
|
|
60564
|
+
"additionalProperties": false
|
|
60565
|
+
},
|
|
60566
|
+
"code": {
|
|
60567
|
+
"type": "string"
|
|
60568
|
+
},
|
|
60569
|
+
"error": {
|
|
60570
|
+
"type": "string"
|
|
60571
|
+
}
|
|
60572
|
+
},
|
|
60573
|
+
"required": [
|
|
60574
|
+
"ok"
|
|
60575
|
+
],
|
|
60576
|
+
"additionalProperties": false,
|
|
60577
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60578
|
+
},
|
|
60579
|
+
"annotations": {
|
|
60580
|
+
"title": "Get Image Asset",
|
|
60581
|
+
"readOnlyHint": true,
|
|
60582
|
+
"destructiveHint": false,
|
|
60583
|
+
"idempotentHint": true,
|
|
60584
|
+
"openWorldHint": false
|
|
60585
|
+
}
|
|
60586
|
+
},
|
|
60587
|
+
{
|
|
60588
|
+
"id": "image_asset_list",
|
|
60589
|
+
"upstreamName": "image_asset_list",
|
|
60590
|
+
"description": "List authorized private image metadata with exact location, provenance, media, tag, and creation-time filters. Use image_asset_search for semantic retrieval.",
|
|
60591
|
+
"inputJsonSchema": {
|
|
60592
|
+
"type": "object",
|
|
60593
|
+
"properties": {
|
|
60594
|
+
"vault": {
|
|
60595
|
+
"type": "string"
|
|
60596
|
+
},
|
|
60597
|
+
"projectId": {
|
|
60598
|
+
"type": "string"
|
|
60599
|
+
},
|
|
60600
|
+
"folderId": {
|
|
60601
|
+
"type": "string"
|
|
60602
|
+
},
|
|
60603
|
+
"sourceKind": {
|
|
60604
|
+
"type": "string",
|
|
60605
|
+
"enum": [
|
|
60606
|
+
"upload",
|
|
60607
|
+
"scrape",
|
|
60608
|
+
"screenshot",
|
|
60609
|
+
"instagram",
|
|
60610
|
+
"external_url",
|
|
60611
|
+
"import"
|
|
60612
|
+
]
|
|
60613
|
+
},
|
|
60614
|
+
"sourceHost": {
|
|
60615
|
+
"type": "string",
|
|
60616
|
+
"minLength": 1,
|
|
60617
|
+
"maxLength": 253
|
|
60618
|
+
},
|
|
60619
|
+
"mimeType": {
|
|
60620
|
+
"type": "string",
|
|
60621
|
+
"enum": [
|
|
60622
|
+
"image/jpeg",
|
|
60623
|
+
"image/png",
|
|
60624
|
+
"image/webp",
|
|
60625
|
+
"image/gif"
|
|
60626
|
+
]
|
|
60627
|
+
},
|
|
60628
|
+
"tags": {
|
|
60629
|
+
"type": "array",
|
|
60630
|
+
"items": {
|
|
60631
|
+
"type": "string",
|
|
60632
|
+
"minLength": 1,
|
|
60633
|
+
"maxLength": 80
|
|
60634
|
+
},
|
|
60635
|
+
"maxItems": 20
|
|
60636
|
+
},
|
|
60637
|
+
"createdAfter": {
|
|
60638
|
+
"type": "string",
|
|
60639
|
+
"format": "date-time"
|
|
60640
|
+
},
|
|
60641
|
+
"createdBefore": {
|
|
60642
|
+
"type": "string",
|
|
60643
|
+
"format": "date-time"
|
|
60644
|
+
},
|
|
60645
|
+
"limit": {
|
|
60646
|
+
"type": "integer",
|
|
60647
|
+
"minimum": 1,
|
|
60648
|
+
"maximum": 100,
|
|
60649
|
+
"default": 30
|
|
60650
|
+
}
|
|
60651
|
+
},
|
|
60652
|
+
"additionalProperties": false,
|
|
60653
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60654
|
+
},
|
|
60655
|
+
"outputJsonSchema": {
|
|
60656
|
+
"type": "object",
|
|
60657
|
+
"properties": {
|
|
60658
|
+
"ok": {
|
|
60659
|
+
"type": "boolean",
|
|
60660
|
+
"enum": [
|
|
60661
|
+
true,
|
|
60662
|
+
false
|
|
60663
|
+
]
|
|
60664
|
+
},
|
|
60665
|
+
"assets": {
|
|
60666
|
+
"type": "array",
|
|
60667
|
+
"items": {
|
|
60668
|
+
"type": "object",
|
|
60669
|
+
"properties": {
|
|
60670
|
+
"assetId": {
|
|
60671
|
+
"type": "string"
|
|
60672
|
+
},
|
|
60673
|
+
"title": {
|
|
60674
|
+
"type": "string"
|
|
60675
|
+
},
|
|
60676
|
+
"description": {
|
|
60677
|
+
"type": [
|
|
60678
|
+
"string",
|
|
60679
|
+
"null"
|
|
60680
|
+
]
|
|
60681
|
+
},
|
|
60682
|
+
"altText": {
|
|
60683
|
+
"type": [
|
|
60684
|
+
"string",
|
|
60685
|
+
"null"
|
|
60686
|
+
]
|
|
60687
|
+
},
|
|
60688
|
+
"sourceUrl": {
|
|
60689
|
+
"type": [
|
|
60690
|
+
"string",
|
|
60691
|
+
"null"
|
|
60692
|
+
]
|
|
60693
|
+
},
|
|
60694
|
+
"sourceKind": {
|
|
60695
|
+
"type": "string"
|
|
60696
|
+
},
|
|
60697
|
+
"mimeType": {
|
|
60698
|
+
"type": "string"
|
|
60699
|
+
},
|
|
60700
|
+
"bytes": {
|
|
60701
|
+
"type": "number"
|
|
60702
|
+
},
|
|
60703
|
+
"width": {
|
|
60704
|
+
"type": "number"
|
|
60705
|
+
},
|
|
60706
|
+
"height": {
|
|
60707
|
+
"type": "number"
|
|
60708
|
+
},
|
|
60709
|
+
"projectId": {
|
|
60710
|
+
"type": [
|
|
60711
|
+
"string",
|
|
60712
|
+
"null"
|
|
60713
|
+
]
|
|
60714
|
+
},
|
|
60715
|
+
"folderId": {
|
|
60716
|
+
"type": [
|
|
60717
|
+
"string",
|
|
60718
|
+
"null"
|
|
60719
|
+
]
|
|
60720
|
+
},
|
|
60721
|
+
"tags": {
|
|
60722
|
+
"type": "array",
|
|
60723
|
+
"items": {
|
|
60724
|
+
"type": "string"
|
|
60725
|
+
}
|
|
60726
|
+
},
|
|
60727
|
+
"status": {
|
|
60728
|
+
"type": "string"
|
|
60729
|
+
},
|
|
60730
|
+
"embeddingStatus": {
|
|
60731
|
+
"type": "string"
|
|
60732
|
+
},
|
|
60733
|
+
"createdAt": {
|
|
60734
|
+
"type": "string"
|
|
60735
|
+
},
|
|
60736
|
+
"updatedAt": {
|
|
60737
|
+
"type": "string"
|
|
60738
|
+
},
|
|
60739
|
+
"preview": {
|
|
60740
|
+
"type": "object",
|
|
60741
|
+
"properties": {
|
|
60742
|
+
"url": {
|
|
60743
|
+
"type": "string",
|
|
60744
|
+
"format": "uri"
|
|
60745
|
+
},
|
|
60746
|
+
"expiresAt": {
|
|
60747
|
+
"type": "string",
|
|
60748
|
+
"format": "date-time"
|
|
60749
|
+
},
|
|
60750
|
+
"mimeType": {
|
|
60751
|
+
"type": "string",
|
|
60752
|
+
"const": "image/webp"
|
|
60753
|
+
}
|
|
60754
|
+
},
|
|
60755
|
+
"required": [
|
|
60756
|
+
"url",
|
|
60757
|
+
"expiresAt",
|
|
60758
|
+
"mimeType"
|
|
60759
|
+
],
|
|
60760
|
+
"additionalProperties": false
|
|
60761
|
+
}
|
|
60762
|
+
},
|
|
60763
|
+
"required": [
|
|
60764
|
+
"assetId",
|
|
60765
|
+
"title",
|
|
60766
|
+
"description",
|
|
60767
|
+
"altText",
|
|
60768
|
+
"sourceUrl",
|
|
60769
|
+
"sourceKind",
|
|
60770
|
+
"mimeType",
|
|
60771
|
+
"bytes",
|
|
60772
|
+
"width",
|
|
60773
|
+
"height",
|
|
60774
|
+
"projectId",
|
|
60775
|
+
"folderId",
|
|
60776
|
+
"tags",
|
|
60777
|
+
"status",
|
|
60778
|
+
"embeddingStatus",
|
|
60779
|
+
"createdAt",
|
|
60780
|
+
"updatedAt"
|
|
60781
|
+
],
|
|
60782
|
+
"additionalProperties": false
|
|
60783
|
+
}
|
|
60784
|
+
},
|
|
60785
|
+
"count": {
|
|
60786
|
+
"type": "number"
|
|
60787
|
+
},
|
|
60788
|
+
"code": {
|
|
60789
|
+
"type": "string"
|
|
60790
|
+
},
|
|
60791
|
+
"error": {
|
|
60792
|
+
"type": "string"
|
|
60793
|
+
}
|
|
60794
|
+
},
|
|
60795
|
+
"required": [
|
|
60796
|
+
"ok"
|
|
60797
|
+
],
|
|
60798
|
+
"additionalProperties": false,
|
|
60799
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60800
|
+
},
|
|
60801
|
+
"annotations": {
|
|
60802
|
+
"title": "List Image Assets",
|
|
60803
|
+
"readOnlyHint": true,
|
|
60804
|
+
"destructiveHint": false,
|
|
60805
|
+
"idempotentHint": true,
|
|
60806
|
+
"openWorldHint": false
|
|
60807
|
+
}
|
|
60808
|
+
},
|
|
60809
|
+
{
|
|
60810
|
+
"id": "image_asset_search",
|
|
60811
|
+
"upstreamName": "image_asset_search",
|
|
60812
|
+
"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.",
|
|
60813
|
+
"inputJsonSchema": {
|
|
60814
|
+
"type": "object",
|
|
60815
|
+
"properties": {
|
|
60816
|
+
"vault": {
|
|
60817
|
+
"type": "string"
|
|
60818
|
+
},
|
|
60819
|
+
"queryText": {
|
|
60820
|
+
"type": "string",
|
|
60821
|
+
"minLength": 1,
|
|
60822
|
+
"maxLength": 4e3
|
|
60823
|
+
},
|
|
60824
|
+
"queryAssetId": {
|
|
60825
|
+
"type": "string",
|
|
60826
|
+
"minLength": 1
|
|
60827
|
+
},
|
|
60828
|
+
"queryUrl": {
|
|
60829
|
+
"type": "string",
|
|
60830
|
+
"format": "uri"
|
|
60831
|
+
},
|
|
60832
|
+
"queryImageBase64": {
|
|
60833
|
+
"type": "string",
|
|
60834
|
+
"minLength": 1
|
|
60835
|
+
},
|
|
60836
|
+
"projectId": {
|
|
60837
|
+
"type": "string"
|
|
60838
|
+
},
|
|
60839
|
+
"folderId": {
|
|
60840
|
+
"type": "string"
|
|
60841
|
+
},
|
|
60842
|
+
"sourceKind": {
|
|
60843
|
+
"type": "string",
|
|
60844
|
+
"enum": [
|
|
60845
|
+
"upload",
|
|
60846
|
+
"scrape",
|
|
60847
|
+
"screenshot",
|
|
60848
|
+
"instagram",
|
|
60849
|
+
"external_url",
|
|
60850
|
+
"import"
|
|
60851
|
+
]
|
|
60852
|
+
},
|
|
60853
|
+
"sourceHost": {
|
|
60854
|
+
"type": "string",
|
|
60855
|
+
"minLength": 1,
|
|
60856
|
+
"maxLength": 253
|
|
60857
|
+
},
|
|
60858
|
+
"mimeType": {
|
|
60859
|
+
"type": "string",
|
|
60860
|
+
"enum": [
|
|
60861
|
+
"image/jpeg",
|
|
60862
|
+
"image/png",
|
|
60863
|
+
"image/webp",
|
|
60864
|
+
"image/gif"
|
|
60865
|
+
]
|
|
60866
|
+
},
|
|
60867
|
+
"tags": {
|
|
60868
|
+
"type": "array",
|
|
60869
|
+
"items": {
|
|
60870
|
+
"type": "string",
|
|
60871
|
+
"minLength": 1,
|
|
60872
|
+
"maxLength": 80
|
|
60873
|
+
},
|
|
60874
|
+
"maxItems": 20
|
|
60875
|
+
},
|
|
60876
|
+
"createdAfter": {
|
|
60877
|
+
"type": "string",
|
|
60878
|
+
"format": "date-time"
|
|
60879
|
+
},
|
|
60880
|
+
"createdBefore": {
|
|
60881
|
+
"type": "string",
|
|
60882
|
+
"format": "date-time"
|
|
60883
|
+
},
|
|
60884
|
+
"limit": {
|
|
60885
|
+
"type": "integer",
|
|
60886
|
+
"minimum": 1,
|
|
60887
|
+
"maximum": 30,
|
|
60888
|
+
"default": 10
|
|
60889
|
+
},
|
|
60890
|
+
"includePreview": {
|
|
60891
|
+
"type": "boolean",
|
|
60892
|
+
"default": false
|
|
60893
|
+
}
|
|
60894
|
+
},
|
|
60895
|
+
"additionalProperties": false,
|
|
60896
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
60897
|
+
},
|
|
60898
|
+
"outputJsonSchema": {
|
|
60899
|
+
"type": "object",
|
|
60900
|
+
"properties": {
|
|
60901
|
+
"ok": {
|
|
60902
|
+
"type": "boolean",
|
|
60903
|
+
"enum": [
|
|
60904
|
+
true,
|
|
60905
|
+
false
|
|
60906
|
+
]
|
|
60907
|
+
},
|
|
60908
|
+
"results": {
|
|
60909
|
+
"type": "array",
|
|
60910
|
+
"items": {
|
|
60911
|
+
"type": "object",
|
|
60912
|
+
"properties": {
|
|
60913
|
+
"asset": {
|
|
60914
|
+
"type": "object",
|
|
60915
|
+
"properties": {
|
|
60916
|
+
"assetId": {
|
|
60917
|
+
"type": "string"
|
|
60918
|
+
},
|
|
60919
|
+
"title": {
|
|
60920
|
+
"type": "string"
|
|
60921
|
+
},
|
|
60922
|
+
"description": {
|
|
60923
|
+
"type": [
|
|
60924
|
+
"string",
|
|
60925
|
+
"null"
|
|
60926
|
+
]
|
|
60927
|
+
},
|
|
60928
|
+
"altText": {
|
|
60929
|
+
"type": [
|
|
60930
|
+
"string",
|
|
60931
|
+
"null"
|
|
60932
|
+
]
|
|
60933
|
+
},
|
|
60934
|
+
"sourceUrl": {
|
|
60935
|
+
"type": [
|
|
60936
|
+
"string",
|
|
60937
|
+
"null"
|
|
60938
|
+
]
|
|
60939
|
+
},
|
|
60940
|
+
"sourceKind": {
|
|
60941
|
+
"type": "string"
|
|
60942
|
+
},
|
|
60943
|
+
"mimeType": {
|
|
60944
|
+
"type": "string"
|
|
60945
|
+
},
|
|
60946
|
+
"bytes": {
|
|
60947
|
+
"type": "number"
|
|
60948
|
+
},
|
|
60949
|
+
"width": {
|
|
60950
|
+
"type": "number"
|
|
60951
|
+
},
|
|
60952
|
+
"height": {
|
|
60953
|
+
"type": "number"
|
|
60954
|
+
},
|
|
60955
|
+
"projectId": {
|
|
60956
|
+
"type": [
|
|
60957
|
+
"string",
|
|
60958
|
+
"null"
|
|
60959
|
+
]
|
|
60960
|
+
},
|
|
60961
|
+
"folderId": {
|
|
60962
|
+
"type": [
|
|
60963
|
+
"string",
|
|
60964
|
+
"null"
|
|
60965
|
+
]
|
|
60966
|
+
},
|
|
60967
|
+
"tags": {
|
|
60968
|
+
"type": "array",
|
|
60969
|
+
"items": {
|
|
60970
|
+
"type": "string"
|
|
60971
|
+
}
|
|
60972
|
+
},
|
|
60973
|
+
"status": {
|
|
60974
|
+
"type": "string"
|
|
60975
|
+
},
|
|
60976
|
+
"embeddingStatus": {
|
|
60977
|
+
"type": "string"
|
|
60978
|
+
},
|
|
60979
|
+
"createdAt": {
|
|
60980
|
+
"type": "string"
|
|
60981
|
+
},
|
|
60982
|
+
"updatedAt": {
|
|
60983
|
+
"type": "string"
|
|
60984
|
+
},
|
|
60985
|
+
"preview": {
|
|
60986
|
+
"type": "object",
|
|
60987
|
+
"properties": {
|
|
60988
|
+
"url": {
|
|
60989
|
+
"type": "string",
|
|
60990
|
+
"format": "uri"
|
|
60991
|
+
},
|
|
60992
|
+
"expiresAt": {
|
|
60993
|
+
"type": "string",
|
|
60994
|
+
"format": "date-time"
|
|
60995
|
+
},
|
|
60996
|
+
"mimeType": {
|
|
60997
|
+
"type": "string",
|
|
60998
|
+
"const": "image/webp"
|
|
60999
|
+
}
|
|
61000
|
+
},
|
|
61001
|
+
"required": [
|
|
61002
|
+
"url",
|
|
61003
|
+
"expiresAt",
|
|
61004
|
+
"mimeType"
|
|
61005
|
+
],
|
|
61006
|
+
"additionalProperties": false
|
|
61007
|
+
}
|
|
61008
|
+
},
|
|
61009
|
+
"required": [
|
|
61010
|
+
"assetId",
|
|
61011
|
+
"title",
|
|
61012
|
+
"description",
|
|
61013
|
+
"altText",
|
|
61014
|
+
"sourceUrl",
|
|
61015
|
+
"sourceKind",
|
|
61016
|
+
"mimeType",
|
|
61017
|
+
"bytes",
|
|
61018
|
+
"width",
|
|
61019
|
+
"height",
|
|
61020
|
+
"projectId",
|
|
61021
|
+
"folderId",
|
|
61022
|
+
"tags",
|
|
61023
|
+
"status",
|
|
61024
|
+
"embeddingStatus",
|
|
61025
|
+
"createdAt",
|
|
61026
|
+
"updatedAt"
|
|
61027
|
+
],
|
|
61028
|
+
"additionalProperties": false
|
|
61029
|
+
},
|
|
61030
|
+
"score": {
|
|
61031
|
+
"type": "number"
|
|
61032
|
+
},
|
|
61033
|
+
"matchRepresentations": {
|
|
61034
|
+
"type": "array",
|
|
61035
|
+
"items": {
|
|
61036
|
+
"type": "string",
|
|
61037
|
+
"enum": [
|
|
61038
|
+
"visual",
|
|
61039
|
+
"fused"
|
|
61040
|
+
]
|
|
61041
|
+
}
|
|
61042
|
+
},
|
|
61043
|
+
"embeddingModel": {
|
|
61044
|
+
"type": "string"
|
|
61045
|
+
}
|
|
61046
|
+
},
|
|
61047
|
+
"required": [
|
|
61048
|
+
"asset",
|
|
61049
|
+
"score",
|
|
61050
|
+
"matchRepresentations",
|
|
61051
|
+
"embeddingModel"
|
|
61052
|
+
],
|
|
61053
|
+
"additionalProperties": false
|
|
61054
|
+
}
|
|
61055
|
+
},
|
|
61056
|
+
"count": {
|
|
61057
|
+
"type": "number"
|
|
61058
|
+
},
|
|
61059
|
+
"code": {
|
|
61060
|
+
"type": "string"
|
|
61061
|
+
},
|
|
61062
|
+
"error": {
|
|
61063
|
+
"type": "string"
|
|
61064
|
+
}
|
|
61065
|
+
},
|
|
61066
|
+
"required": [
|
|
61067
|
+
"ok"
|
|
61068
|
+
],
|
|
61069
|
+
"additionalProperties": false,
|
|
61070
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61071
|
+
},
|
|
61072
|
+
"annotations": {
|
|
61073
|
+
"title": "Search Image Assets",
|
|
61074
|
+
"readOnlyHint": true,
|
|
61075
|
+
"destructiveHint": false,
|
|
61076
|
+
"idempotentHint": true,
|
|
61077
|
+
"openWorldHint": true
|
|
61078
|
+
}
|
|
61079
|
+
},
|
|
61080
|
+
{
|
|
61081
|
+
"id": "image_asset_move",
|
|
61082
|
+
"upstreamName": "image_asset_move",
|
|
61083
|
+
"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.",
|
|
61084
|
+
"inputJsonSchema": {
|
|
61085
|
+
"type": "object",
|
|
61086
|
+
"properties": {
|
|
61087
|
+
"vault": {
|
|
61088
|
+
"type": "string"
|
|
61089
|
+
},
|
|
61090
|
+
"assetId": {
|
|
61091
|
+
"type": "string",
|
|
61092
|
+
"minLength": 1
|
|
61093
|
+
},
|
|
61094
|
+
"projectId": {
|
|
61095
|
+
"anyOf": [
|
|
61096
|
+
{
|
|
61097
|
+
"type": "string",
|
|
61098
|
+
"minLength": 1
|
|
61099
|
+
},
|
|
61100
|
+
{
|
|
61101
|
+
"type": "null"
|
|
61102
|
+
}
|
|
61103
|
+
]
|
|
61104
|
+
},
|
|
61105
|
+
"folderId": {
|
|
61106
|
+
"anyOf": [
|
|
61107
|
+
{
|
|
61108
|
+
"type": "string",
|
|
61109
|
+
"minLength": 1
|
|
61110
|
+
},
|
|
61111
|
+
{
|
|
61112
|
+
"type": "null"
|
|
61113
|
+
}
|
|
61114
|
+
]
|
|
61115
|
+
}
|
|
61116
|
+
},
|
|
61117
|
+
"required": [
|
|
61118
|
+
"assetId"
|
|
61119
|
+
],
|
|
61120
|
+
"additionalProperties": false,
|
|
61121
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61122
|
+
},
|
|
61123
|
+
"outputJsonSchema": {
|
|
61124
|
+
"type": "object",
|
|
61125
|
+
"properties": {
|
|
61126
|
+
"ok": {
|
|
61127
|
+
"type": "boolean",
|
|
61128
|
+
"enum": [
|
|
61129
|
+
true,
|
|
61130
|
+
false
|
|
61131
|
+
]
|
|
61132
|
+
},
|
|
61133
|
+
"asset": {
|
|
61134
|
+
"type": "object",
|
|
61135
|
+
"properties": {
|
|
61136
|
+
"assetId": {
|
|
61137
|
+
"type": "string"
|
|
61138
|
+
},
|
|
61139
|
+
"title": {
|
|
61140
|
+
"type": "string"
|
|
61141
|
+
},
|
|
61142
|
+
"description": {
|
|
61143
|
+
"type": [
|
|
61144
|
+
"string",
|
|
61145
|
+
"null"
|
|
61146
|
+
]
|
|
61147
|
+
},
|
|
61148
|
+
"altText": {
|
|
61149
|
+
"type": [
|
|
61150
|
+
"string",
|
|
61151
|
+
"null"
|
|
61152
|
+
]
|
|
61153
|
+
},
|
|
61154
|
+
"sourceUrl": {
|
|
61155
|
+
"type": [
|
|
61156
|
+
"string",
|
|
61157
|
+
"null"
|
|
61158
|
+
]
|
|
61159
|
+
},
|
|
61160
|
+
"sourceKind": {
|
|
61161
|
+
"type": "string"
|
|
61162
|
+
},
|
|
61163
|
+
"mimeType": {
|
|
61164
|
+
"type": "string"
|
|
61165
|
+
},
|
|
61166
|
+
"bytes": {
|
|
61167
|
+
"type": "number"
|
|
61168
|
+
},
|
|
61169
|
+
"width": {
|
|
61170
|
+
"type": "number"
|
|
61171
|
+
},
|
|
61172
|
+
"height": {
|
|
61173
|
+
"type": "number"
|
|
61174
|
+
},
|
|
61175
|
+
"projectId": {
|
|
61176
|
+
"type": [
|
|
61177
|
+
"string",
|
|
61178
|
+
"null"
|
|
61179
|
+
]
|
|
61180
|
+
},
|
|
61181
|
+
"folderId": {
|
|
61182
|
+
"type": [
|
|
61183
|
+
"string",
|
|
61184
|
+
"null"
|
|
61185
|
+
]
|
|
61186
|
+
},
|
|
61187
|
+
"tags": {
|
|
61188
|
+
"type": "array",
|
|
61189
|
+
"items": {
|
|
61190
|
+
"type": "string"
|
|
61191
|
+
}
|
|
61192
|
+
},
|
|
61193
|
+
"status": {
|
|
61194
|
+
"type": "string"
|
|
61195
|
+
},
|
|
61196
|
+
"embeddingStatus": {
|
|
61197
|
+
"type": "string"
|
|
61198
|
+
},
|
|
61199
|
+
"createdAt": {
|
|
61200
|
+
"type": "string"
|
|
61201
|
+
},
|
|
61202
|
+
"updatedAt": {
|
|
61203
|
+
"type": "string"
|
|
61204
|
+
},
|
|
61205
|
+
"preview": {
|
|
61206
|
+
"type": "object",
|
|
61207
|
+
"properties": {
|
|
61208
|
+
"url": {
|
|
61209
|
+
"type": "string",
|
|
61210
|
+
"format": "uri"
|
|
61211
|
+
},
|
|
61212
|
+
"expiresAt": {
|
|
61213
|
+
"type": "string",
|
|
61214
|
+
"format": "date-time"
|
|
61215
|
+
},
|
|
61216
|
+
"mimeType": {
|
|
61217
|
+
"type": "string",
|
|
61218
|
+
"const": "image/webp"
|
|
61219
|
+
}
|
|
61220
|
+
},
|
|
61221
|
+
"required": [
|
|
61222
|
+
"url",
|
|
61223
|
+
"expiresAt",
|
|
61224
|
+
"mimeType"
|
|
61225
|
+
],
|
|
61226
|
+
"additionalProperties": false
|
|
61227
|
+
}
|
|
61228
|
+
},
|
|
61229
|
+
"required": [
|
|
61230
|
+
"assetId",
|
|
61231
|
+
"title",
|
|
61232
|
+
"description",
|
|
61233
|
+
"altText",
|
|
61234
|
+
"sourceUrl",
|
|
61235
|
+
"sourceKind",
|
|
61236
|
+
"mimeType",
|
|
61237
|
+
"bytes",
|
|
61238
|
+
"width",
|
|
61239
|
+
"height",
|
|
61240
|
+
"projectId",
|
|
61241
|
+
"folderId",
|
|
61242
|
+
"tags",
|
|
61243
|
+
"status",
|
|
61244
|
+
"embeddingStatus",
|
|
61245
|
+
"createdAt",
|
|
61246
|
+
"updatedAt"
|
|
61247
|
+
],
|
|
61248
|
+
"additionalProperties": false
|
|
61249
|
+
},
|
|
61250
|
+
"code": {
|
|
61251
|
+
"type": "string"
|
|
61252
|
+
},
|
|
61253
|
+
"error": {
|
|
61254
|
+
"type": "string"
|
|
61255
|
+
}
|
|
61256
|
+
},
|
|
61257
|
+
"required": [
|
|
61258
|
+
"ok"
|
|
61259
|
+
],
|
|
61260
|
+
"additionalProperties": false,
|
|
61261
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61262
|
+
},
|
|
61263
|
+
"annotations": {
|
|
61264
|
+
"title": "Move Image Asset",
|
|
61265
|
+
"readOnlyHint": false,
|
|
61266
|
+
"destructiveHint": false,
|
|
61267
|
+
"idempotentHint": true,
|
|
61268
|
+
"openWorldHint": false
|
|
61269
|
+
}
|
|
61270
|
+
},
|
|
61271
|
+
{
|
|
61272
|
+
"id": "image_asset_delete",
|
|
61273
|
+
"upstreamName": "image_asset_delete",
|
|
61274
|
+
"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.",
|
|
61275
|
+
"inputJsonSchema": {
|
|
61276
|
+
"type": "object",
|
|
61277
|
+
"properties": {
|
|
61278
|
+
"vault": {
|
|
61279
|
+
"type": "string"
|
|
61280
|
+
},
|
|
61281
|
+
"assetId": {
|
|
61282
|
+
"type": "string",
|
|
61283
|
+
"minLength": 1
|
|
61284
|
+
},
|
|
61285
|
+
"confirmDelete": {
|
|
61286
|
+
"type": "boolean",
|
|
61287
|
+
"const": true,
|
|
61288
|
+
"description": "Must be true after the caller has confirmed deletion."
|
|
61289
|
+
}
|
|
61290
|
+
},
|
|
61291
|
+
"required": [
|
|
61292
|
+
"assetId",
|
|
61293
|
+
"confirmDelete"
|
|
61294
|
+
],
|
|
61295
|
+
"additionalProperties": false,
|
|
61296
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61297
|
+
},
|
|
61298
|
+
"outputJsonSchema": {
|
|
61299
|
+
"type": "object",
|
|
61300
|
+
"properties": {
|
|
61301
|
+
"ok": {
|
|
61302
|
+
"type": "boolean",
|
|
61303
|
+
"enum": [
|
|
61304
|
+
true,
|
|
61305
|
+
false
|
|
61306
|
+
]
|
|
61307
|
+
},
|
|
61308
|
+
"deleted": {
|
|
61309
|
+
"type": "boolean"
|
|
61310
|
+
},
|
|
61311
|
+
"assetId": {
|
|
61312
|
+
"type": "string"
|
|
61313
|
+
},
|
|
61314
|
+
"code": {
|
|
61315
|
+
"type": "string"
|
|
61316
|
+
},
|
|
61317
|
+
"error": {
|
|
61318
|
+
"type": "string"
|
|
61319
|
+
}
|
|
61320
|
+
},
|
|
61321
|
+
"required": [
|
|
61322
|
+
"ok"
|
|
61323
|
+
],
|
|
61324
|
+
"additionalProperties": false,
|
|
61325
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
61326
|
+
},
|
|
61327
|
+
"annotations": {
|
|
61328
|
+
"title": "Delete Image Asset",
|
|
61329
|
+
"readOnlyHint": false,
|
|
61330
|
+
"destructiveHint": true,
|
|
61331
|
+
"idempotentHint": true,
|
|
61332
|
+
"openWorldHint": false
|
|
61333
|
+
}
|
|
61334
|
+
}
|
|
61335
|
+
];
|
|
61336
|
+
}
|
|
61337
|
+
});
|
|
61338
|
+
|
|
59730
61339
|
// src/mcp/memory-tool-schemas.ts
|
|
59731
61340
|
var import_zod50, AcceptShareSchema, ApproveSenderSchema, DeclineShareSchema, GetChatLinkSchema, GetVaultAppLinkSchema, InboxSettingsSchema, InviteAccountSchema, issueKeyTool_scopeShape, IssueKeySchema, ListApprovedSendersSchema, ListKeysSchema, NoteInboxSchema, RemoveApprovedSenderSchema, RevokeChatLinkSchema, RevokeKeySchema, RevokeShareSchema, RevokeVaultAppLinkSchema, SetAgentIdentitySchema, SetScopeSchema, ShareNoteSchema, ShareVaultSchema, SwapVaultSchema, SwitchAccountSchema, UnlinkShareSchema, memoryCaptureTool_notePropsSchema, MemoryCaptureSchema, MemoryQuestionsSchema, PrepareMemoryWriteSchema, validateMemoryWriteTool_notePropsSchema, ValidateMemoryWriteSchema, CreateChannelSchema, GetMessageNoteSchema, ListChannelMembersSchema, ListChannelMessagesSchema, MyMentionsSchema, PollChannelSchema, PostMessageSchema, ReactMessageSchema, RemoveChannelMemberSchema, ReplyMessageSchema, factHistoryTool_entryShape, FactHistorySchema, recordFactTool_factShape, RecordFactSchema, NoteBacklinksSchema, GraphPathSchema, GraphUniverseSchema, LibraryIngestSchema, bulkDeleteNotesTool_FilterSchema, BulkDeleteNotesSchema, DeleteNoteSchema, ExportSchema, getTool_notePropsSchema, GetSchema, listNoteSchema, ListSchema, putTool_notePropsSchema, PutSchema, searchTool_primitiveValue, SearchSchema, SuggestSchema, UploadSchema, TemporalRecallSchema, ScheduledArtifactSelectionSchema2, CreateScheduledActionSchema, UpdateScheduledActionSchema, DeleteScheduledActionSchema, GetScheduleLinkSchema, GetScheduleStatusSchema, ListScheduledActionsSchema, PauseScheduledActionSchema, ProposeScheduledActionSchema, ResumeScheduledActionSchema, RevokeScheduleLinkSchema, SetScheduleDefaultsSchema, SetScheduleEntitlementSchema, CostUsageSchema, StorageUsageSchema, CreateTableSchema, deleteTableRowsTool_FilterSchema, DeleteTableRowsSchema, DescribeTableSchema, DropTableSchema, InsertTableRowsSchema, ListTablesSchema, queryTableTool_FilterSchema, QueryTableSchema, ListTagsSchema, MergeTagsSchema, ResolveTagsSchema, UpsertTagSchema, AddVaultSchema, CreateSecureVaultSchema, DeleteVaultSchema, GetVaultContractSchema, ListSharedWithMeSchema, ListVaultsSchema, ProvisionDefaultsSchema, RouteMemorySchema, VideoAnalyzeStartSchema, VideoAnalyzeStatusSchema, CreateWebhookSchema, ListWebhooksSchema, RevokeWebhookSchema, MEMORY_TOOL_SCHEMAS;
|
|
59732
61341
|
var init_memory_tool_schemas = __esm({
|
|
@@ -62256,11 +63865,11 @@ var init_memory_tool_schemas = __esm({
|
|
|
62256
63865
|
});
|
|
62257
63866
|
|
|
62258
63867
|
// src/mcp/memory-tool-registry.ts
|
|
62259
|
-
var
|
|
63868
|
+
var MEMORY_TOOL_DESCRIPTION_OVERRIDES, MEMORY_TOOL_REGISTRY;
|
|
62260
63869
|
var init_memory_tool_registry = __esm({
|
|
62261
63870
|
"src/mcp/memory-tool-registry.ts"() {
|
|
62262
63871
|
"use strict";
|
|
62263
|
-
|
|
63872
|
+
init_memory_image_tool_schemas_generated();
|
|
62264
63873
|
init_memory_tool_schemas();
|
|
62265
63874
|
MEMORY_TOOL_DESCRIPTION_OVERRIDES = {
|
|
62266
63875
|
"access-swap-vault": "Set the account's persisted active vault so later memory calls may omit vault and use it by default across stateless requests. The vault must be entitled to the key and the key must hold 'swap' scope."
|
|
@@ -62270,7 +63879,7 @@ var init_memory_tool_registry = __esm({
|
|
|
62270
63879
|
...schema,
|
|
62271
63880
|
description: MEMORY_TOOL_DESCRIPTION_OVERRIDES[schema.id] ?? schema.description
|
|
62272
63881
|
})),
|
|
62273
|
-
...
|
|
63882
|
+
...MEMORY_IMAGE_TOOL_SCHEMAS
|
|
62274
63883
|
];
|
|
62275
63884
|
}
|
|
62276
63885
|
});
|
|
@@ -87558,8 +89167,6 @@ var init_server = __esm({
|
|
|
87558
89167
|
if (checked.error) return c.json({ error: checked.error }, 400);
|
|
87559
89168
|
body.callback_url = checked.parsed?.href;
|
|
87560
89169
|
}
|
|
87561
|
-
const limitErr = await checkHarvestLimits(user, c.req.header("x-mcp-scraper-concurrency-lock"));
|
|
87562
|
-
if (limitErr) return c.json(limitErr, 429, { "Retry-After": "30" });
|
|
87563
89170
|
const options = {
|
|
87564
89171
|
query: body.query.trim(),
|
|
87565
89172
|
location: body.location,
|
|
@@ -87581,6 +89188,26 @@ var init_server = __esm({
|
|
|
87581
89188
|
includeAiOverview: body.includeAiOverview ?? false,
|
|
87582
89189
|
includeWhatPeopleSaying: body.includeWhatPeopleSaying ?? false
|
|
87583
89190
|
};
|
|
89191
|
+
const suppliedIdempotencyKey = c.req.header("idempotency-key") ?? c.req.header("x-idempotency-key");
|
|
89192
|
+
let derivedJobId = null;
|
|
89193
|
+
let requestFingerprint3 = null;
|
|
89194
|
+
if (!options.serpOnly && suppliedIdempotencyKey != null) {
|
|
89195
|
+
const trimmedKey = suppliedIdempotencyKey.trim();
|
|
89196
|
+
if (!trimmedKey || trimmedKey.length > 200) {
|
|
89197
|
+
return c.json({ error: "Idempotency-Key must contain 1-200 characters.", errorCode: "invalid_idempotency_key", retryable: false }, 400);
|
|
89198
|
+
}
|
|
89199
|
+
derivedJobId = `paa-${sha256Hex(`${user.id}\0${trimmedKey}`).slice(0, 24)}`;
|
|
89200
|
+
requestFingerprint3 = sha256Hex(JSON.stringify({ options, callbackUrl: body.callback_url ?? null }));
|
|
89201
|
+
const existing = await getJob(derivedJobId, user.id);
|
|
89202
|
+
if (existing) {
|
|
89203
|
+
if (existing.options.requestFingerprint !== requestFingerprint3) {
|
|
89204
|
+
return c.json({ error: "Idempotency-Key was already used for a different asynchronous harvest_paa call.", errorCode: "idempotency_conflict", retryable: false }, 409);
|
|
89205
|
+
}
|
|
89206
|
+
return c.json({ job_id: existing.id, status: existing.status, replayed: true }, ["done", "failed", "cancelled"].includes(existing.status) ? 200 : 202);
|
|
89207
|
+
}
|
|
89208
|
+
}
|
|
89209
|
+
const limitErr = await checkHarvestLimits(user, c.req.header("x-mcp-scraper-concurrency-lock"));
|
|
89210
|
+
if (limitErr) return c.json(limitErr, 429, { "Retry-After": "30" });
|
|
87584
89211
|
const harvestCost = options.serpOnly ? MC_COSTS.serp_headful : paaCostForQuestionCount2(options.maxQuestions);
|
|
87585
89212
|
let jobId2;
|
|
87586
89213
|
if (options.serpOnly) {
|
|
@@ -87593,7 +89220,7 @@ var init_server = __esm({
|
|
|
87593
89220
|
if (!harvestOk) return c.json(insufficientBalanceResponse(harvestBal, harvestCost), 402);
|
|
87594
89221
|
jobId2 = await createJob(user.id, options.query, { ...options, billingHoldMc: harvestCost }, body.callback_url);
|
|
87595
89222
|
} else {
|
|
87596
|
-
jobId2 = (0, import_node_crypto72.randomUUID)();
|
|
89223
|
+
jobId2 = derivedJobId ?? (0, import_node_crypto72.randomUUID)();
|
|
87597
89224
|
const billingDebitKey = `paa-harvest:${jobId2}:hold`;
|
|
87598
89225
|
const description = `PAA harvest: ${options.query}`.slice(0, 500);
|
|
87599
89226
|
const hold = await debitMcIdempotent(
|
|
@@ -87609,9 +89236,14 @@ var init_server = __esm({
|
|
|
87609
89236
|
...options,
|
|
87610
89237
|
executionOwner: "inngest",
|
|
87611
89238
|
billingHoldMc: harvestCost,
|
|
87612
|
-
billingDebitKey
|
|
89239
|
+
billingDebitKey,
|
|
89240
|
+
...requestFingerprint3 ? { requestFingerprint: requestFingerprint3 } : {}
|
|
87613
89241
|
}, body.callback_url);
|
|
87614
89242
|
} catch (error) {
|
|
89243
|
+
const existing = derivedJobId ? await getJob(derivedJobId, user.id).catch(() => null) : null;
|
|
89244
|
+
if (existing && existing.options.requestFingerprint === requestFingerprint3) {
|
|
89245
|
+
return c.json({ job_id: existing.id, status: existing.status, replayed: true }, 202);
|
|
89246
|
+
}
|
|
87615
89247
|
await settleDebitMcIdempotent(
|
|
87616
89248
|
user.id,
|
|
87617
89249
|
billingDebitKey,
|
|
@@ -89424,4 +91056,3 @@ async function main() {
|
|
|
89424
91056
|
}
|
|
89425
91057
|
}
|
|
89426
91058
|
void main();
|
|
89427
|
-
//# sourceMappingURL=api-server.cjs.map
|