hermoso 0.1.243 → 0.1.245
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/mcp/tools.mjs +6 -6
- package/package.json +1 -1
package/mcp/tools.mjs
CHANGED
|
@@ -4720,8 +4720,8 @@ function buildTools(rawServer, opts = {}, sink = null) {
|
|
|
4720
4720
|
durationMinutes: z.number().optional().describe('5 to 10080 minutes (7 days); default 1440 = one day'),
|
|
4721
4721
|
}).optional().describe('run a poll on the post. X does not allow a poll and media on the same post, and a poll cannot ride on a thread.'),
|
|
4722
4722
|
replySettings: z.enum(['following', 'mentionedUsers', 'subscribers', 'verified']).optional().describe('restrict who can reply — omit for everyone, which is the right default for a brand post'),
|
|
4723
|
-
replyToId: z.string().optional().describe('numeric id of an existing X post to reply to'),
|
|
4724
|
-
quotePostId: z.string().optional().describe('numeric id of a post to QUOTE \u2014 X renders the quoted post inside yours. This is NOT replyToId: a reply sits under the original in its thread, a quote stands alone on your own timeline with the original embedded, which is the one you want for commentary. X makes a quote mutually exclusive with media and with a poll (their own schema), and a quote is billed at the higher LINK rate because X appends the quoted post\u2019s t.co URL whatever your text says.'),
|
|
4723
|
+
replyToId: z.string().optional().describe('numeric id of an existing X post to reply to. X ONLY ACCEPTS AN API REPLY TO A POST THAT MENTIONS THIS ACCOUNT OR THAT THIS ACCOUNT WROTE (X policy since Feb 2026, every tier below Enterprise): a cold reply under a stranger\'s post is refused by X with "You can only reply to or quote posts where you are mentioned or are the author" and nothing is posted. Reply to those from x.com itself; use this for replies in your own threads and to people who tagged you.'),
|
|
4724
|
+
quotePostId: z.string().optional().describe('numeric id of a post to QUOTE \u2014 X renders the quoted post inside yours. This is NOT replyToId: a reply sits under the original in its thread, a quote stands alone on your own timeline with the original embedded, which is the one you want for commentary. X makes a quote mutually exclusive with media and with a poll (their own schema), and a quote is billed at the higher LINK rate because X appends the quoted post\u2019s t.co URL whatever your text says. Same X rule as replyToId: a quote of a post that does not mention this account is refused by X.'),
|
|
4725
4725
|
communityId: z.string().optional().describe('publish into an X COMMUNITY instead of the main timeline \u2014 the number in the community\u2019s own URL (x.com/i/communities/<id>). The connected account must be a MEMBER of it; X answers a non-member and a non-existent id with the same refusal and does not separate them.'),
|
|
4726
4726
|
paidPartnership: z.boolean().optional().describe('label the post a PAID PARTNERSHIP on X \u2014 the same disclosure Hermoso already ships for TikTok. OPT-IN ONLY: set it when the post is sponsored, gifted or otherwise paid for, and never assume it on the user\u2019s behalf.'),
|
|
4727
4727
|
},
|
|
@@ -18558,12 +18558,12 @@ function memoryNoteVerdict(text) {
|
|
|
18558
18558
|
|
|
18559
18559
|
server.registerTool('upscale_video', {
|
|
18560
18560
|
title: 'Upscale video',
|
|
18561
|
-
description: "Upscale a video to higher resolution (2x) for final delivery. Paid render; returns the served URL.",
|
|
18562
|
-
inputSchema: { video: z.string().describe('the source video URL') },
|
|
18561
|
+
description: "Upscale a video to higher resolution (2x) for final delivery. Paid render; returns the served URL. Two engines: the default (Topaz) is the safe precision upscaler; engine:'flux' is the FLUX 3 video upscaler (1080p/2K/4K) with an optional mode:'creative' detail-enhancement pass — pick it when the user asks for the FLUX upscaler or wants added detail rather than a faithful enlargement.",
|
|
18562
|
+
inputSchema: { video: z.string().describe('the source video URL'), engine: z.enum(['topaz', 'flux']).optional().describe("default topaz. 'flux' = the FLUX 3 video upscaler"), mode: z.enum(['precise', 'creative']).optional().describe("FLUX only — 'creative' turns on its detail-enhancement pass; default precise") },
|
|
18563
18563
|
outputSchema: { ...JOB_OUT },
|
|
18564
18564
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
18565
|
-
}, wrap(async ({ video }) => {
|
|
18566
|
-
const r = await renderJob('upscale', { video, factor: 2 }, 'Upscale 2x');
|
|
18565
|
+
}, wrap(async ({ video, engine, mode }) => {
|
|
18566
|
+
const r = await renderJob('upscale', { video, factor: 2, ...(engine ? { engine } : {}), ...(mode ? { mode } : {}) }, engine === 'flux' ? 'Upscale 2x · FLUX' : 'Upscale 2x');
|
|
18567
18567
|
return okVideo(`Upscaled video: ${r.url}`, r);
|
|
18568
18568
|
}));
|
|
18569
18569
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hermoso",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.245",
|
|
4
4
|
"mcpName": "io.github.hermoso-ai/hermoso",
|
|
5
5
|
"description": "AI ad studio and marketing MCP server with 838 tools. Research the ads already running in any market, generate finished image, video and UGC avatar ads, publish and schedule them to your own channels, build and manage the ad campaigns behind them, and read what they achieved. AD PLATFORMS: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads, Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads and ChatGPT Ads, plus product feeds in Google Merchant Center. PUBLISHING AND SCHEDULING: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram. AD RESEARCH: the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Threads and Reddit. ANALYTICS: Google Analytics 4, Google Search Console and every connected platform's own post and campaign insights. Also brand onboarding, 50+ image and video generation models, ad scoring, competitor teardowns, Google Drive and OneDrive, a CLI and installable Claude skills.",
|
|
6
6
|
"type": "module",
|