beplus-mcp 0.29.0 → 0.30.0
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/dist/index.js +39 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -22141,7 +22141,9 @@ var IMAGE_MODELS = [
|
|
|
22141
22141
|
"midjourney"
|
|
22142
22142
|
];
|
|
22143
22143
|
var SEEDREAM_LITE_SIZES = ["2K", "3K", "4K"];
|
|
22144
|
-
var SEEDREAM_PRO_SIZES = ["1K", "2K"];
|
|
22144
|
+
var SEEDREAM_PRO_SIZES = ["1K", "1.5K", "2K"];
|
|
22145
|
+
var SEEDREAM_PRO_PIXELS = { min: 921600, max: 4624220 };
|
|
22146
|
+
var SEEDREAM_PRO_MAX_IMAGES = 4;
|
|
22145
22147
|
var VIDEO_MODELS = [
|
|
22146
22148
|
"bytedance/seedance-2.5",
|
|
22147
22149
|
"bytedance/seedance-2.0",
|
|
@@ -22263,17 +22265,25 @@ function registerGenerationTools(server, client, cfg) {
|
|
|
22263
22265
|
// que o modelo aceita (Seedream/nano-banana não têm limite publicado).
|
|
22264
22266
|
prompt: external_exports.string().min(1).describe("Descri\xE7\xE3o da imagem desejada."),
|
|
22265
22267
|
model: external_exports.enum(IMAGE_MODELS).default(DEFAULTS.imageModel).describe(
|
|
22266
|
-
"nano-banana-2 = barato/r\xE1pido; nano-banana-pro = melhor qualidade; gpt-image-2 = OpenAI; gpt-image-1 = OpenAI, \xDANICO que faz fundo transparente de verdade (PNG/WebP com alpha) \u2014 o gpt-image-2 N\xC3O faz, use este pra recorte/sticker; seedream-5.0-lite = mais barato do cat\xE1logo, \xFAnico que chega a 4K, gera s\xE9ries e mant\xE9m o ESTILO da imagem de refer\xEAncia; seedream-5.0-pro = acabamento fotorrealista, s\xF3 at\xE9 2K \u2014 preserva o personagem da refer\xEAncia mas costuma reinterpretar o estilo (um vetor flat volta em 3D)."
|
|
22268
|
+
"nano-banana-2 = barato/r\xE1pido; nano-banana-pro = melhor qualidade; gpt-image-2 = OpenAI; gpt-image-1 = OpenAI, \xDANICO que faz fundo transparente de verdade (PNG/WebP com alpha) \u2014 o gpt-image-2 N\xC3O faz, use este pra recorte/sticker; seedream-5.0-lite = mais barato do cat\xE1logo, \xFAnico que chega a 4K, gera s\xE9ries e mant\xE9m o ESTILO da imagem de refer\xEAncia; seedream-5.0-pro = acabamento fotorrealista, s\xF3 at\xE9 2K (1K/1.5K/2K, propor\xE7\xE3o, tamanho livre e at\xE9 4 imagens por pedido) \u2014 preserva o personagem da refer\xEAncia mas costuma reinterpretar o estilo (um vetor flat volta em 3D)."
|
|
22269
|
+
),
|
|
22270
|
+
aspect_ratio: external_exports.enum(ASPECT_RATIOS).optional().describe(
|
|
22271
|
+
"Propor\xE7\xE3o. nano-banana: padr\xE3o 1:1. Seedream Pro: combina com size (1K/1.5K/2K) e vira LARGURAxALTURA no backend; sem ela o modelo escolhe o formato pelo prompt."
|
|
22267
22272
|
),
|
|
22268
|
-
aspect_ratio: external_exports.enum(ASPECT_RATIOS).optional().describe("Propor\xE7\xE3o (nano-banana). Padr\xE3o 1:1."),
|
|
22269
22273
|
resolution: external_exports.enum(IMAGE_RESOLUTIONS).optional().describe("Resolu\xE7\xE3o (nano-banana): 1K/2K/4K. Padr\xE3o 1K."),
|
|
22270
22274
|
reference_images: external_exports.array(external_exports.string().min(1)).max(16).optional().describe(
|
|
22271
22275
|
"Imagens de refer\xEAncia (image-to-image): URL p\xFAblica OU caminho de arquivo local (o MCP faz upload pro R2 automaticamente). At\xE9 14 (nano-banana) / 16 (gpt-image-1/2)."
|
|
22272
22276
|
),
|
|
22273
22277
|
google_search: external_exports.boolean().optional().describe("nano-banana-2: aterra a imagem em busca web do Google (fatos atuais). Padr\xE3o false."),
|
|
22274
22278
|
image_search: external_exports.boolean().optional().describe("nano-banana-2: usa busca de imagens do Google como refer\xEAncia visual. Padr\xE3o false."),
|
|
22275
|
-
size: external_exports.
|
|
22276
|
-
"
|
|
22279
|
+
size: external_exports.union([
|
|
22280
|
+
external_exports.enum(["1024x1024", "1536x1024", "1024x1536", "auto", "1K", "1.5K", "2K", "3K", "4K"]),
|
|
22281
|
+
external_exports.string().regex(/^\d{3,5}x\d{3,5}$/, "use LARGURAxALTURA, ex.: 2048x1152")
|
|
22282
|
+
]).optional().describe(
|
|
22283
|
+
"Tamanho. gpt-image-1/2: 1024x1024/1536x1024/1024x1536/auto. Seedream Lite: 2K/3K/4K (padr\xE3o 2K). Seedream Pro: 1K/1.5K/2K ou LARGURAxALTURA livre (\xE1rea entre 921.600 e 4.624.220 pixels, propor\xE7\xE3o de 1:16 a 16:1). O Pro N\xC3O faz 3K/4K."
|
|
22284
|
+
),
|
|
22285
|
+
num_images: external_exports.number().int().min(1).max(SEEDREAM_PRO_MAX_IMAGES).optional().describe(
|
|
22286
|
+
"Seedream 5.0 PRO apenas: quantas imagens gerar no mesmo pedido (1-4), em chamadas paralelas. Cada imagem \xE9 cobrada; as que falharem s\xE3o estornadas."
|
|
22277
22287
|
),
|
|
22278
22288
|
batch_images: external_exports.number().int().min(2).max(15).optional().describe(
|
|
22279
22289
|
"Seedream 5.0 LITE apenas: gera uma s\xE9rie de imagens relacionadas numa chamada (2-15). Cada imagem \xE9 cobrada. O Seedream Pro N\xC3O suporta \u2014 passar aqui devolve erro."
|
|
@@ -22314,7 +22324,19 @@ function registerGenerationTools(server, client, cfg) {
|
|
|
22314
22324
|
const isSeedream = isSeedreamLite || isSeedreamPro;
|
|
22315
22325
|
if (isSeedream) {
|
|
22316
22326
|
const allowed = isSeedreamPro ? SEEDREAM_PRO_SIZES : SEEDREAM_LITE_SIZES;
|
|
22317
|
-
|
|
22327
|
+
const free = args.size?.match(/^(\d+)x(\d+)$/);
|
|
22328
|
+
if (isSeedreamPro && free) {
|
|
22329
|
+
const w = Number(free[1]);
|
|
22330
|
+
const h = Number(free[2]);
|
|
22331
|
+
if (w * h < SEEDREAM_PRO_PIXELS.min || w * h > SEEDREAM_PRO_PIXELS.max) {
|
|
22332
|
+
return errorResult(
|
|
22333
|
+
`size ${args.size} d\xE1 ${w * h} pixels; o Pro aceita entre ${SEEDREAM_PRO_PIXELS.min} e ${SEEDREAM_PRO_PIXELS.max} (ex.: 1280x720 a 2048x2048).`
|
|
22334
|
+
);
|
|
22335
|
+
}
|
|
22336
|
+
if (w / h > 16 || h / w > 16) {
|
|
22337
|
+
return errorResult(`size ${args.size}: a propor\xE7\xE3o precisa ficar entre 1:16 e 16:1.`);
|
|
22338
|
+
}
|
|
22339
|
+
} else if (args.size && !allowed.includes(args.size)) {
|
|
22318
22340
|
return errorResult(
|
|
22319
22341
|
`${args.model} aceita size ${allowed.join("/")} (voc\xEA pediu ${args.size}). ` + (isSeedreamPro ? "O Pro n\xE3o faz 3K/4K \u2014 use o seedream-5.0-lite para resolu\xE7\xF5es maiores." : "O Lite n\xE3o faz 1K \u2014 use o seedream-5.0-pro se quiser a resolu\xE7\xE3o menor.")
|
|
22320
22342
|
);
|
|
@@ -22336,6 +22358,11 @@ function registerGenerationTools(server, client, cfg) {
|
|
|
22336
22358
|
} else if (args.batch_images) {
|
|
22337
22359
|
return errorResult("batch_images s\xF3 existe no bytedance/seedream-5.0-lite.");
|
|
22338
22360
|
}
|
|
22361
|
+
if (args.num_images && args.num_images > 1 && !isSeedreamPro) {
|
|
22362
|
+
return errorResult(
|
|
22363
|
+
"num_images s\xF3 existe no bytedance/seedream-5.0-pro. No seedream-5.0-lite use batch_images; nos outros modelos, chame generate_image mais vezes."
|
|
22364
|
+
);
|
|
22365
|
+
}
|
|
22339
22366
|
if (args.background === "transparent") {
|
|
22340
22367
|
if (args.model !== "openai/gpt-image-1") {
|
|
22341
22368
|
return errorResult(
|
|
@@ -22365,6 +22392,7 @@ function registerGenerationTools(server, client, cfg) {
|
|
|
22365
22392
|
// amigável exposto aqui.
|
|
22366
22393
|
sequential_image_generation: isSeedreamLite && args.batch_images ? "auto" : void 0,
|
|
22367
22394
|
max_images: isSeedreamLite && args.batch_images ? args.batch_images : void 0,
|
|
22395
|
+
num_images: isSeedreamPro && args.num_images && args.num_images > 1 ? args.num_images : void 0,
|
|
22368
22396
|
quality: isMidjourney ? args.mj_quality : args.quality,
|
|
22369
22397
|
background: args.background,
|
|
22370
22398
|
moderation: args.moderation,
|
|
@@ -23671,6 +23699,8 @@ Limites simult\xE2neos por usu\xE1rio: imagem=${m.limits.perUserMaxImage}, v\xED
|
|
|
23671
23699
|
mode: external_exports.string().optional(),
|
|
23672
23700
|
size: external_exports.string().optional(),
|
|
23673
23701
|
quality: external_exports.string().optional(),
|
|
23702
|
+
aspect_ratio: external_exports.string().optional().describe("Seedream Pro: a propor\xE7\xE3o muda os pixels e a faixa de pre\xE7o."),
|
|
23703
|
+
num_images: external_exports.number().int().min(1).optional().describe("Seedream Pro: imagens por pedido; cada uma \xE9 cobrada."),
|
|
23674
23704
|
// Upscale: o preço não sai de uma chave fixa — vem das medidas do
|
|
23675
23705
|
// arquivo (megapixel de saída na imagem, bloco de 10s no vídeo). Sem
|
|
23676
23706
|
// elas o backend responde pelo padrão de 1024²/10s, que não é o preço
|
|
@@ -23712,6 +23742,8 @@ Limites simult\xE2neos por usu\xE1rio: imagem=${m.limits.perUserMaxImage}, v\xED
|
|
|
23712
23742
|
mode: args.mode,
|
|
23713
23743
|
size: args.size,
|
|
23714
23744
|
quality: args.quality,
|
|
23745
|
+
aspect_ratio: args.aspect_ratio,
|
|
23746
|
+
num_images: args.num_images,
|
|
23715
23747
|
upscale_factor: args.upscale_factor,
|
|
23716
23748
|
model_variant: args.model_variant,
|
|
23717
23749
|
source_width: width2,
|
|
@@ -26459,7 +26491,7 @@ N\xF3s: ${Object.entries(ids).map(([k, v]) => `${k}=${v}`).join(" \xB7 ")}` : ""
|
|
|
26459
26491
|
import { createRequire } from "module";
|
|
26460
26492
|
var require2 = createRequire(import.meta.url);
|
|
26461
26493
|
function readVersion() {
|
|
26462
|
-
if ("0.
|
|
26494
|
+
if ("0.30.0") return "0.30.0";
|
|
26463
26495
|
try {
|
|
26464
26496
|
const pkg = require2("../package.json");
|
|
26465
26497
|
return pkg.version ?? "0.0.0-unknown";
|