hermoso 0.1.443 → 0.1.444

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/README.md CHANGED
@@ -5,7 +5,7 @@ scripts. Research the ads already winning in a market, generate image & video ad
5
5
  composited in, copy + CTA included), publish them to your own social channels, and build & manage the ad
6
6
  campaigns behind them, all over [MCP](https://modelcontextprotocol.io) tools, a CLI, or installable Claude skills.
7
7
 
8
- **931 tools.** `tools/list` is always the authoritative set; `hermoso_capabilities` (free) returns the live model
8
+ **932 tools.** `tools/list` is always the authoritative set; `hermoso_capabilities` (free) returns the live model
9
9
  catalog with exact per-render credit costs plus the full capability map.
10
10
 
11
11
  **No markup on models.** Stop overpaying markups on AI models. Plans: [hermoso.ai/pricing](https://hermoso.ai/pricing).
@@ -242,7 +242,7 @@ block entirely if you signed in above; it is there for CI, where the process can
242
242
 
243
243
  Then ask your agent: *“Generate an image ad with Hermoso.”*
244
244
 
245
- ### What the 931 tools cover
245
+ ### What the 932 tools cover
246
246
 
247
247
  **Ad spy / research** — `find_competitors`, `competitor_teardown`, `pull_competitor_ads`, `research_ads`; the
248
248
  Meta / Google / LinkedIn ad libraries (`search_meta_ads`, `search_google_ads`, `search_linkedin_ads`); organic
package/mcp/tools.mjs CHANGED
@@ -2850,7 +2850,7 @@ export const WITHHELD_FROM_DIRECTORY = new Set([
2850
2850
  'buy_credits', 'upgrade_plan', 'set_auto_reload',
2851
2851
  'generate_image', 'generate_video', 'generate_avatar', 'generate_voice', 'render_ad', 'plan_ad', 'plan_variations',
2852
2852
  'make_thumbnail', 'make_explainer', 'product_sizzle', 'dub_video', 'change_voice', 'edit_video', 'recast_motion',
2853
- 'upscale_video', 'reframe_video', 'multiply_ad', 'clone_static', 'remix_static', 'stitch_video', 'fix_beat',
2853
+ 'upscale_video', 'reframe_video', 'insert_scene', 'multiply_ad', 'clone_static', 'remix_static', 'stitch_video', 'fix_beat',
2854
2854
  'hook_variants',
2855
2855
  // 2026-09-25, after the directory review named "30+ model ids" and the prompt-only mode: the model catalog, the
2856
2856
  // saved cast (it exists to star a person in a render) and mine_angles (its `next` is a render call) point at the
@@ -22111,6 +22111,28 @@ function memoryNoteVerdict(text) {
22111
22111
  return okVideo(`Reframed video (${aspectRatio}): ${r.url}`, r);
22112
22112
  }));
22113
22113
 
22114
+ // INSERT A NEW SCENE (2026-10-26, server workInsertScene + lib/insert-scene.mjs): H3 Max insert-video adds a NEW scene
22115
+ // between two points of a clip and returns the whole video. Every vendor rule is checked before anything is charged.
22116
+ server.registerTool('insert_scene', {
22117
+ title: 'Insert a new scene into a video',
22118
+ description: "INSERT a newly generated scene into a clip you already have: the video plays up to startTime, the new scene (5 to 13 seconds) plays, then the original picks up again at resumeTime. Use for a product close-up, a reaction, a reveal or a missing beat in the middle of an ad without re-rendering the rest. resumeTime = startTime keeps every second of the original; a later resumeTime also cuts the footage in between. Describe the scene in prompt and/or attach up to 4 reference pictures (refImages) or 1 reference clip (refVideos). Clips up to 60 seconds; both times between 1.625 and 60 seconds. Paid render (billed per second of NEW scene); returns the whole video's URL.",
22119
+ inputSchema: {
22120
+ video: z.string().describe('the source video URL (a render, job result or list_library item)'),
22121
+ startTime: z.number().describe('seconds into the clip where the new scene starts (1.625-60)'),
22122
+ resumeTime: z.number().describe('seconds into the ORIGINAL clip where it picks up again after the new scene (2.625-60, at or after startTime)'),
22123
+ prompt: z.string().optional().describe('what happens in the new scene: the action, the subject, the camera'),
22124
+ seconds: z.number().optional().describe('length of the new scene, 5-13 seconds (default 5)'),
22125
+ refImages: z.array(z.string()).optional().describe('up to 4 picture URLs of what should appear (the product, a person, a place)'),
22126
+ refVideos: z.array(z.string()).optional().describe('up to 1 clip URL whose look or motion the scene follows'),
22127
+ resolution: z.enum(['480p', '720p']).optional().describe("default 720p (rendered at 768p); '480p' is cheaper"),
22128
+ },
22129
+ outputSchema: { ...JOB_OUT },
22130
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
22131
+ }, wrap(async ({ video, startTime, resumeTime, prompt, seconds, refImages, refVideos, resolution }) => {
22132
+ const r = await renderJob('insertscene', { video, startTime, resumeTime, ...(prompt ? { prompt } : {}), ...(seconds != null ? { seconds } : {}), ...(refImages && refImages.length ? { refImages } : {}), ...(refVideos && refVideos.length ? { refVideos } : {}), ...(resolution ? { resolution } : {}) }, `Insert a scene at ${startTime}s`);
22133
+ return okVideo(`Video with the new scene inserted at ${startTime}s: ${r.url}`, r);
22134
+ }));
22135
+
22114
22136
  server.registerTool('upscale_video', {
22115
22137
  title: 'Upscale video',
22116
22138
  description: "Upscale a video to higher resolution (2x) for final delivery. Paid render; returns the served URL. A 480p Seedance 2.5 draft: finish_draft (same take, native 1080p). Two engines: the default ('standard') 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.",
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "hermoso",
3
- "version": "0.1.443",
3
+ "version": "0.1.444",
4
4
  "mcpName": "io.github.hermoso-ai/hermoso",
5
- "description": "AI marketing agent and AI ad generator, run from your own AI agent. 931 tools. No markup on models. Publishing, scheduling, ad campaign management, comments, DMs and analytics are free on every plan. AD PLATFORMS: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads, Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads, ChatGPT Ads and AppLovin Ads, plus product feeds in Google Merchant Center. PUBLISHING AND SCHEDULING: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram and Google Business Profile. INSTAGRAM DM AUTOMATIONS: a keyword comment, a DM, a story reply or an ig.me link gets an automatic private reply from the brand. 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.",
5
+ "description": "AI marketing agent and AI ad generator, run from your own AI agent. 932 tools. No markup on models. Publishing, scheduling, ad campaign management, comments, DMs and analytics are free on every plan. AD PLATFORMS: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads, Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads, ChatGPT Ads and AppLovin Ads, plus product feeds in Google Merchant Center. PUBLISHING AND SCHEDULING: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram and Google Business Profile. INSTAGRAM DM AUTOMATIONS: a keyword comment, a DM, a story reply or an ig.me link gets an automatic private reply from the brand. 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",
7
7
  "bin": {
8
8
  "hermoso": "bin/hermoso.mjs"