You're running the PageHub workflow "Set up direct bookings" on site <your site id>.
- Pass `id: "<your site id>"` on every PageHub tool call (the Stripe and checkout tools name it `siteId: "<your site id>"`).
- Every change stages in the site's draft. Never call `publish_site` unless the user says to publish.
- Finish by showing the proof: A table of every home with its price, fees and policy, the checkout settings, and screenshots of a home page before and after.
- Keep to about 13 minutes of work. If more is left, list it and stop.
- Draft preview: https://pagehub.dev/view/<your site id>
- This needs the PageHub connector (https://pagehub.dev/api/mcp). If its tools aren't available, tell the user to add it and stop.

Goal: site <your site id> takes direct bookings for the host's real homes, through the
host's own Stripe account, with every fee and policy checked, all in the draft.

Fees they told you about: (not given)
Cancellation policy: (not given)

Never move money. Never place a booking, charge a guest, issue a refund, or
change a price in Stripe. Never invent a rate, a fee, a tax or a policy. A number
the host didn't give and the row doesn't hold is a question for the host.

## 1. Read the rules and measure (about 2 minutes)

1. `get_style_reference` with `topic: "integrations"` for the Stripe rules and
   with `topic: "collections"` for how rows are read.
2. `list_collections`, then `get_collection` on each. A collection whose schema
   has a `calendar` field holds homes.
3. `screenshot_site` of one home's page at `width: 390`. This is the "before"
   picture.

## 2. Connect Stripe (about 1 minute)

Call `stripe_connect` with `siteId`.
- Not ready: it returns a one-time setup link only the site owner can finish.
  Give it to the user, say it takes a few minutes on Stripe, and ask them to run
  this workflow again when they're done. Stop here.
- Plan-gated: taking bookings needs a paid plan. Say so and stop.
- Ready: go on.

## 3. Bring in the homes (about 2 minutes)

If no collection holds homes, call `list_apps` and ask the host which rental
tool they use (Hospitable, Hostaway, Guesty) or whether they have Airbnb, Vrbo
or Booking.com calendar links.
- They give you the key or the links: `connect_app` with the inputs
  `list_apps` shows (one call per calendar link, with the home's name).
- They don't have them to hand: tell them where to make the key (the hint
  `list_apps` shows) or to paste it on the dashboard Apps screen, then run this
  again. Stop here.

Don't make a collection by hand, and don't type homes in from a listing page.

If a connect or update reports that some homes weren't added, tell the host
their plan size has no room for them. The homes already on the site keep working.

## 4. Turn on booking (about 1 minute)

`set_checkout` with the homes' `collectionSlug`. A new setup comes with a
refundable hold, guest email consent and the unfinished-booking email on. It
doesn't overwrite a choice the host already made. Don't send any other field.

## 5. Fees and policies, home by home (about 5 minutes)

`list_collection_rows` for the homes. For each home, read `nightlyRate` or
`fromPrice`, `bookingFee` or `toolBookingFee`, `taxPercent`,
`weeklyDiscountPercent`, `monthlyDiscountPercent`, `securityDeposit`,
`partPayPercent`, `balanceDueDays`, `cancellationPolicy` and `agreement`.

- Money in rows is minor units: 12000 is $120.00.
- Only with the host's own numbers: `update_collection_row` to fill a missing
  `bookingFee`, `taxPercent` or `cancellationPolicy`. Change only the fields you
  were told about. Never overwrite a value that's already there, and never fill a
  field a rental tool owns.
- `partPayPercent`, `securityDeposit` and `agreement` work with the Rentals pack.
  On any other plan, leave them empty: guests pay in full at checkout, and
  everything still works. Mention the pack once in the report: from $39 a month
  billed yearly, up to 5 homes, and it includes the site.

If an update fails, read the row again and retry once, then note the exact error
and move on.

## 6. Prove it (about 1 minute)

`screenshot_site` of one home's page at `width: 390` and `width: 1440`. The home
shows its real name, photos and price, and a way to pick dates and book.

Checkout can't be tested from here. Tell the user how to try it: if their Stripe
account is in test mode, book one stay with Stripe's test card
4242 4242 4242 4242 on the draft preview. Never on live payments.

## 7. Report

Reply with:
- A table with one row per home: nightly price, cleaning fee, tax, policy, and
  anything still missing.
- What you turned on: booking, the refundable hold, guest email consent, the
  unfinished-booking email.
- What bookings cost them, in one line: PageHub takes no booking fee, and Stripe
  still charges its processing fees.
- What needs the host's decision, which you didn't touch: missing numbers,
  house rules, the rental agreement.
- Before and after screenshots, and the draft preview link (the `Draft preview:`
  address `screenshot_site` prints; never one you build), and a question: publish
  now? Ask before `publish_site`.
