@bettercms-ai/mcp 0.55.0 → 0.56.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 CHANGED
@@ -2073,6 +2073,9 @@ ever changes.
2073
2073
  make a structure fit. The structure fits the site, not the other way round.
2074
2074
  11. **Page-bound models are not collections.** A page with fields has a content model bound to
2075
2075
  it; it is never filed (400 \`NAV_PAGE_BOUND_MODEL\`). Organise the PAGE.
2076
+ 12. **Access:** changing the structure needs Admin or Developer, the same as editing the schema;
2077
+ reading needs only content access. A 403 \`SCHEMA_ACCESS_REQUIRED\` means this connection is
2078
+ neither: stop and tell the user, do not retry.
2076
2079
 
2077
2080
  ## The workflow
2078
2081
 
@@ -2579,6 +2582,7 @@ var LISTING_TAIL = /* @__PURE__ */ new Set([
2579
2582
  // claims with. Ten more tools than the tail was written for, and a connector that truncates
2580
2583
  // would otherwise lose `get_deploy_status` and the GitHub lane to make room for them.
2581
2584
  "research_account",
2585
+ "build_abm_page",
2582
2586
  "claim_abm_task",
2583
2587
  "complete_abm_task",
2584
2588
  "fail_abm_task",
@@ -3887,6 +3891,33 @@ ${res.warnings.join("\n")}` : summary, res.data);
3887
3891
  }).shape,
3888
3892
  async (c, a) => ok("Account brief.", await data(c, "POST", `/management/campaigns/research`, { campaignId: a.campaignId, domain: a.domain, name: a.name, mode: a.mode, force: a.force }))
3889
3893
  ),
3894
+ def(
3895
+ "build_abm_page",
3896
+ "Build one ABM page for one account",
3897
+ "Build ONE personalized page for ONE account, guided: give the sales motion and a paragraph of context about the target ('Lumina \u2014 300-rep sales team moving off spreadsheets\u2026') and this mints the campaign, the page, the collection and the run. `brandUrl` learns the seller's brand first, once per project, and needs Settings access because it rewrites the project's brand. Research defaults to `lite` and is forced off when no domain is known. It PARKS for the user's approval like every agent generation here \u2014 release it with approve_ai_job \u2014 and `requestId` makes a retry return the first answer instead of a second page.",
3898
+ z.object({
3899
+ motion: z.enum(["new_account", "expand_customer", "accelerate_opportunity", "reengage_closed_lost"]),
3900
+ context: z.string().min(20),
3901
+ website: z.string().optional(),
3902
+ name: z.string().optional(),
3903
+ research: z.enum(["lite", "deep", "off"]).optional(),
3904
+ ctaHref: z.string().optional(),
3905
+ formId: z.string().optional(),
3906
+ brandUrl: z.string().optional(),
3907
+ requestId: z.string().optional()
3908
+ }).shape,
3909
+ async (c, a) => ok("Page queued for approval.", await data(c, "POST", `/management/campaigns/build`, {
3910
+ motion: a.motion,
3911
+ context: a.context,
3912
+ website: a.website,
3913
+ name: a.name,
3914
+ research: a.research,
3915
+ ctaHref: a.ctaHref,
3916
+ formId: a.formId,
3917
+ brandUrl: a.brandUrl,
3918
+ requestId: a.requestId
3919
+ }))
3920
+ ),
3890
3921
  def(
3891
3922
  "claim_abm_task",
3892
3923
  "Claim an account to research",