hermoso 0.1.152 → 0.1.157

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,13 +5,14 @@ scripts. Research the ads already winning in a market, generate finished image &
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
- **709 tools.** `tools/list` is always the authoritative set; `hermoso_capabilities` (free) returns the live model
8
+ **714 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
  **What it connects to.** Ad platforms: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads,
12
12
  Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads and ChatGPT Ads, plus product feeds in
13
- Google Merchant Center. Publishing and scheduling: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn,
14
- Pinterest, Bluesky and Telegram. Ad research: the Meta, Google and LinkedIn ad libraries plus organic TikTok,
13
+ Google Merchant Center. Publishing and scheduling — **ten** channels: Facebook, Instagram, Threads, TikTok,
14
+ YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram. Messaging: WhatsApp (you message a person, so it is not an
15
+ eleventh publishing channel). Ad research: the Meta, Google and LinkedIn ad libraries plus organic TikTok,
15
16
  Instagram, YouTube, Threads and Reddit. Analytics: Google Analytics 4, Google Search Console and every
16
17
  connected platform's own post and campaign insights. Files: Google Drive, Sheets, Docs and OneDrive.
17
18
 
@@ -36,7 +37,7 @@ Two shapes, and the right one is decided by **what your client can do**, not by
36
37
  | | tools in range | loaded per session |
37
38
  | --- | --- | --- |
38
39
  | Hosted connector, default roster | 291 | **166,043 tokens** |
39
- | Hosted connector, `?tools=all` | 703 | **456,392 tokens** |
40
+ | Hosted connector, `?tools=all` | 706 | **456,392 tokens** |
40
41
  | stdio server (`npx -y hermoso mcp`) | 269 | **153,257 tokens** |
41
42
  | **CLI** | **all 681** | **0** |
42
43
 
@@ -118,7 +119,7 @@ block entirely if you signed in above; it is there for CI, where the process can
118
119
 
119
120
  Then ask your agent: *“Generate an image ad with Hermoso.”*
120
121
 
121
- ### What the 709 tools cover
122
+ ### What the 714 tools cover
122
123
 
123
124
  **Ad spy / research** — `find_competitors`, `competitor_teardown`, `pull_competitor_ads`, `research_ads`; the
124
125
  Meta / Google / LinkedIn ad libraries (`search_meta_ads`, `search_google_ads`, `search_linkedin_ads`); organic
@@ -145,14 +146,28 @@ routed by a narrower auto-pool.
145
146
  per-render credit cost) with no ad framing: `generate_image` / `generate_video` with `useBrand:false`,
146
147
  `generate_voice`, `generate_text`.
147
148
 
148
- **Publish to your own channels** — Facebook, Instagram and Threads (`post_to_meta`), TikTok (`post_to_tiktok`),
149
- YouTube (`post_to_youtube` + `update_youtube_video`, `youtube_video_insights`, comments read/reply), X
150
- (`post_to_x`, `x_post_metrics`, `x_post_insights`, `x_mentions`), LinkedIn profile **and** company Pages
151
- (`post_to_linkedin`, `post_to_linkedin_page`), Pinterest (`post_to_pinterest` + boards), and Google Business
152
- Profile (`post_to_google_business` Google grants this API per project, so access must be approved before Posts
153
- publish). `schedule_post` / `list_scheduled` / `cancel_scheduled` give you one content calendar across channels.
154
- `upload_file` brings in any external or local media, not just Hermoso renders.
149
+ **Publish to your own channels** — **ten** of them: Facebook, Instagram and Threads (`post_to_meta`), TikTok
150
+ (`post_to_tiktok`), YouTube (`post_to_youtube` + `update_youtube_video`, `youtube_video_insights`, comments
151
+ read/reply), X (`post_to_x`, `x_post_metrics`, `x_post_insights`, `x_mentions`, `list_x_dms`, `send_x_dm`),
152
+ LinkedIn profile **and** company Pages (`post_to_linkedin`, `post_to_linkedin_page`), Pinterest
153
+ (`post_to_pinterest` + boards), Bluesky (`post_to_bluesky`, `delete_bluesky_post`, `bluesky_post_metrics`, plus
154
+ `list_bluesky_convos` / `read_bluesky_dm` / `send_bluesky_dm`) and Telegram (`post_to_telegram`,
155
+ `delete_telegram_message`, `list_telegram_chats`). `schedule_post` / `list_scheduled` / `cancel_scheduled` give
156
+ you one content calendar over exactly that set. `upload_file` brings in any external or local media, not just
157
+ Hermoso renders.
155
158
  *X posting bills credits per API call (X charges per request); a post containing a link costs 13× one without.*
159
+ *Held back, and named rather than hidden:* **Google Business Profile** is built (`post_to_google_business`,
160
+ reviews, Q&A, insights) and is not offered — Google allowlists that API per project and ours reads 0 QPM, so
161
+ every call would 403 for every user. It is in `schedule_post`'s channel enum and refused at enqueue.
162
+
163
+ **Message customers on WhatsApp** — messaging, not an eleventh publishing channel: you message a person, and
164
+ there is no `post_to_whatsapp`. `list_whatsapp_accounts` / `whatsapp_account` find the Business Account and its
165
+ numbers, `list_whatsapp_templates` / `create_whatsapp_template` / `delete_whatsapp_template` manage the templates
166
+ Meta reviews, and `send_whatsapp_message` sends one — confirm-gated, because it reaches a real phone and Meta
167
+ bills the business for the conversation. Two limits that are permanent facts about Meta's API rather than
168
+ anything pending: **Hermoso does not receive WhatsApp webhooks, so there is no message history to read** — it is
169
+ not an inbox surface and `list_inbox` does not cover it — and **outside the 24-hour window that opens when the
170
+ customer messages first, WhatsApp accepts an APPROVED template and nothing else.**
156
171
 
157
172
  **Run the ads** — full campaign trees, built paused and read back before anything is reported, with every spend
158
173
  change confirm-gated, on **eleven** platforms: **Meta**, **Google Ads**, **LinkedIn Ads**, **Reddit Ads**,