frontpage-host 0.1.29 → 0.2.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/registry.js CHANGED
@@ -39,7 +39,9 @@ export const COMMANDS = [
39
39
  usage: "frontpage login [api-key]",
40
40
  topics: ["auth"],
41
41
  examples: ['frontpage login', 'frontpage login "$FRONTPAGE_API_KEY"'],
42
- flags: ["FRONTPAGE_API_KEY env overrides keychain after login for that process"],
42
+ flags: [
43
+ "FRONTPAGE_API_KEY env overrides keychain after login for that process"
44
+ ],
43
45
  seeAlso: ["whoami", "doctor", "logout"],
44
46
  },
45
47
  {
@@ -68,7 +70,9 @@ export const COMMANDS = [
68
70
  usage: "frontpage use <subdomain>",
69
71
  topics: ["auth", "sync"],
70
72
  examples: ["frontpage use arbiter"],
71
- dangers: ["Clears baseCommitSha when switching sites — run pull again before push"],
73
+ dangers: [
74
+ "Clears baseCommitSha when switching sites — run pull again before push"
75
+ ],
72
76
  seeAlso: ["link", "pull", "status"],
73
77
  },
74
78
  {
@@ -200,7 +204,11 @@ export const COMMANDS = [
200
204
  summary: "Open the site subdomain in a browser",
201
205
  usage: "frontpage open [/path|--path /path] [--site <slug>] [--prod]",
202
206
  topics: ["sync"],
203
- examples: ["frontpage open", "frontpage open /updates", "frontpage open --path /pricing"],
207
+ examples: [
208
+ "frontpage open",
209
+ "frontpage open /updates",
210
+ "frontpage open --path /pricing"
211
+ ],
204
212
  flags: [
205
213
  "Optional site-relative path appended to https://<slug>.frontpage.host",
206
214
  "--prod is a no-op stub today — still opens the *.frontpage.host subdomain",
@@ -337,12 +345,12 @@ export const COMMANDS = [
337
345
  "frontpage modules forms get",
338
346
  "frontpage modules forms set --instance lead-gen --notify-email hi@example.com",
339
347
  "frontpage modules forms set --instance lead-gen --confirm-template <template-id>",
340
- "frontpage store connect --no-open",
348
+ "frontpage payments connect --no-open",
341
349
  "frontpage modules docs forms",
342
350
  "frontpage modules docs google_reviews",
343
351
  "frontpage modules docs signups",
344
352
  "frontpage modules list",
345
- 'frontpage store connect --no-open',
353
+ "frontpage payments connect --no-open",
346
354
  'frontpage modules request-setup google_reviews --reason "You asked for Google reviews — pick your listing so we show the right ones"',
347
355
  ],
348
356
  flags: [
@@ -350,7 +358,7 @@ export const COMMANDS = [
350
358
  "Key-first and verb-first both work: `modules google_reviews enable` = `modules enable google_reviews`",
351
359
  "google_reviews extras: connect / resolve / status / list-reviews / hide / show / set-stars / set-sort / set-weight / reset-weights / refresh / disconnect / write-review-url",
352
360
  "callbar/forms/booking/signups: typed get / set (same whitelist as `modules config`)",
353
- "Store Stripe connect is frontpage store connect. request-setup still lights the editor amber bar.",
361
+ "Stripe setup is frontpage payments connect. request-setup still lights the editor amber bar.",
354
362
  "See https://frontpage.host/developers/modules and /developers/modules/google-reviews",
355
363
  ],
356
364
  dangers: [
@@ -412,8 +420,19 @@ export const COMMANDS = [
412
420
  summary: "Manage internal Customer Inbox settings, knowledge and human conversation handling",
413
421
  usage: "frontpage customer-inbox get|put|post <resource> [--file <json>] [--request-key <key>] [--site <slug>] [--json]; export|download <id> --out <new-file>",
414
422
  topics: ["content"],
415
- examples: ["frontpage customer-inbox get settings", "frontpage customer-inbox put settings --file ./inbox-settings.json --request-key settings_revision_1", "frontpage customer-inbox get conversations", "frontpage customer-inbox get knowledge"],
416
- flags: ["Internal plans and the site pilot apply", "Writes require a stable --request-key and a JSON file; reuse both on retries", "Human CLI access can guide, take over and reply; website-agent tools have management scope only", "Luna and 10× AI billing are fixed", "Full request examples: CUSTOMER-INBOX.md"],
423
+ examples: [
424
+ "frontpage customer-inbox get settings",
425
+ "frontpage customer-inbox put settings --file ./inbox-settings.json --request-key settings_revision_1",
426
+ "frontpage customer-inbox get conversations",
427
+ "frontpage customer-inbox get knowledge"
428
+ ],
429
+ flags: [
430
+ "Internal plans and the site pilot apply",
431
+ "Writes require a stable --request-key and a JSON file; reuse both on retries",
432
+ "Human CLI access can guide, take over and reply; website-agent tools have management scope only",
433
+ "Luna and 10× AI billing are fixed",
434
+ "Full request examples: CUSTOMER-INBOX.md"
435
+ ],
417
436
  seeAlso: ["people", "usage"],
418
437
  },
419
438
  {
@@ -485,41 +504,68 @@ export const COMMANDS = [
485
504
  },
486
505
  {
487
506
  name: "store",
488
- summary: "Store catalog: items, variants, stock, and store settings (not inbox)",
489
- usage: "frontpage store items|variants|categories|settings|orders|payments|connect|status|disconnect|import … [--site <slug>] [--json]",
507
+ summary: "Cart-only Store: products, variants, stock, categories, fulfillment, fees, receipts and orders",
508
+ usage: "frontpage store items|variants|categories|settings|orders|import … [--site <slug>] [--json]",
490
509
  topics: ["content"],
491
510
  examples: [
492
- "frontpage store items list",
493
- "frontpage store categories create hats --label Hats",
494
- "frontpage store items create camp-hat --title \"Camp hat\" --price-cents 4999 --categories hats --stock 20",
495
- "frontpage store settings set-checkout --mode cart",
496
- "frontpage store items list --category hats",
497
- "frontpage store variants add camp-hat --id m --option Size=M --price-cents 4999 --stock 8",
498
- "frontpage store items stock camp-hat --variant m --add 5",
499
- "frontpage store items stock camp-hat --variant m --remove 5",
500
- "frontpage store items stock camp-hat --variant m --set 20",
501
- "frontpage store settings set-fulfillment --mode pickup",
502
- "frontpage store settings set-fulfillment --pickup --delivery --mode flat-rate --flat-cents 500 --pickup-location \"The shop\"",
503
- "frontpage store settings set-currency --currency usd",
504
- "frontpage store settings set-currency --currency jpy",
505
- "frontpage store connect --no-open",
506
- "frontpage store status",
507
- "frontpage store import",
511
+ 'frontpage store items create camp-hat --title "Camp hat" --price-cents 4999 --stock 20',
512
+ "frontpage store items restore camp-hat",
513
+ "frontpage store settings set-fulfillment --pickup --delivery --mode flat-rate --flat-cents 500",
514
+ "frontpage store settings set-checkout-fee --mode percent --bps 250",
515
+ "frontpage store settings set-receipt --stock",
516
+ "frontpage store settings availability off --yes",
508
517
  ],
509
518
  flags: [
510
- "Integer cents only. $49.99 is 4999. Do not send 49.99 or a dollar string. --price-cents is the usual cost. Optional --discount-cents is the sale the buyer pays (strictly less than price). Omit --discount-cents when there is no sale. Checkout charges the sale; the site strikes through the usual price.",
511
- "--add / --remove become signed delta. 5 adds 5. --remove 5 removes 5. Result copy is added 5 / removed 5 / set to 20 / stockNow.",
512
- "Pass either --add, --remove, or --set. Never two together. --set unlimited returns counted stock to unlimited.",
513
- "items: list|get|create|update|archive|activate [--off] | images --urls … | stock [--variant m] --add|--remove|--set. list --category hats. items list --json returns every product and every variant — do not paste that into a model. The editor manage_store list_items call is one page of 25 slim rows plus total; get_item is one product. create/update --categories hats,summer",
514
- "categories: list|create|rename|archive. Create the category first. Assigning an unknown slug fails.",
515
- "variants: add|update|archive <itemId> --id m --price-cents … [--option Size=M] [--stock]",
516
- "settings: get|set-fulfillment|set-currency|set-checkout|set-checkout-fee. Currency is any Stripe presentment code such as usd or jpy. Checkout is store-wide (cart or instant). Do not use leftover items --checkout to pick cart vs Pay now. Gift cards still use --amount open --min-cents. Service fee applies to Add to cart and Pay now. Connect: frontpage store connect|status|disconnect. connect opens Frontpage then Stripe; --no-open for CI. disconnect keeps the shared Stripe account on payments.",
517
- "Page markup is yours: data-fp-store-grid + data-fp-cart (cart starts hidden), every store control data-fp-requires=store. The public catalog pages with offset, limit, total, and truncated (default 24). list_items is the same shape with a max of 25. Product pages are the default: unless they said they do not want product pages, write one src/pages/products/item.astro (or shop) with data-fp-store-product. If they said no, skip that file and do not bind href or url. Description is a small markdown subset. PDP bind is <div data-fp-store-bind=description>. Do not bake titles or prices. Guide: https://frontpage.host/developers/store",
518
- "import reads src/content/products/*.json from the site store into Store. One default variant each. Skip if that itemId already exists. Does not invent categories or change fulfillment.",
519
- "orders / payments list|get read the same ledgers as frontpage inbox orders|payments",
520
- "Unknown leftover flags fail closed (exit 2)",
519
+ "items list|get|create|update|archive|restore|activate|images|stock; use --file for nested variants, options, customizations and images. Existing fixed/open pricing is retained. Store always uses Add to cart.",
520
+ "Descriptions use a small markdown subset. Bind data-fp-store-bind=description for the full product story; do not bake titles, prices or images into the page. Store is cart-only; use Payments for explicit Pay now.",
521
+ "items stock uses --add/--remove as a signed delta, or --set/--unlimited. Never combine these verbs. Product pages use data-fp-store-product and the platform cart templates. Store prices use the account currency.",
522
+ "variants add|update|archive|restore; categories list|create|rename|archive. Create categories before assigning their slugs.",
523
+ "settings get|set-fulfillment|set-checkout-fee|set-receipt|availability get|on|off. Fee mode flat uses --cents; percent uses --bps (250 is 2.5%). Receipt takes --template <id> or --stock. Availability requires admin and --yes in scripts.",
524
+ "orders list|get; import explicitly reads the existing site product files. No fleet import or data conversion occurs.",
525
+ "Money fields use integer minor units: $49.99 is 4999 minor units in USD; JPY 4999 is ¥4999. Currency is read-only from Stripe. No --checkout, set-checkout or set-currency command.",
526
+ "Store off preserves catalog/orders and leaves Pay now/invoices/recurring billing running. Payments, Stripe setup, tax, activity and Pay now management use frontpage payments.",
527
+ "Full Store reference: packaged README.md and https://frontpage.host/developers/store. List bounds are source-specific; manage_store list_items is at most 25 compact rows.",
528
+ ],
529
+ seeAlso: ["payments", "people", "https://frontpage.host/developers/store"],
530
+ },
531
+ {
532
+ name: "payments",
533
+ summary: "Stripe, tax, payment activity, Pay now buttons, invoices and native recurring billing",
534
+ usage: "frontpage payments status|settings|connect|availability|activity|tax|buttons|invoices|recurring|customers … [--site <slug>] [--json]",
535
+ topics: ["content"],
536
+ examples: [
537
+ "frontpage payments status",
538
+ "frontpage payments connect --no-open",
539
+ "frontpage payments invoices preview --file invoice.json --json",
540
+ "frontpage payments invoices send --file invoice.json --preview-hash <hash> --operation-key <stable-uuid> --yes --json",
541
+ "frontpage payments recurring preview --file recurring.json --json",
542
+ "frontpage payments recurring create --file recurring.json --preview-hash <hash> --operation-key <stable-uuid> --yes",
543
+ "frontpage payments customers send-billing-link <customerMapId> --operation-key <stable-uuid> --yes",
544
+ "frontpage payments availability off --yes",
545
+ ],
546
+ flags: [
547
+ "status; settings; connect [--no-open]. Connect returns an existing signed-in admin browser handoff; it never accepts Stripe terms or completes onboarding.",
548
+ "availability preview|on|off. off reads affected counts before confirmed pause/void; a partial response stays off and requires another off request. on never resumes stopped billing or restores void invoices.",
549
+ "activity list|get <id> --source order|payment. invoices and recurring have separate get commands. Source IDs never collide.",
550
+ "buttons list [--limit 1..100 --offset N --archived true]; get|create|update|archive. create uses --id, --title, --price-cents, optional --amount open --min-cents; update takes an id and --file. Change price separately from details. Archive requires --yes. Only explicit Pay now references/registrations qualify; an old instant Store setting does not.",
551
+ "tax get; tax settings --file <file> --yes; tax registrations list|add --country US --state CA --yes|end <id> --yes. Supply the business's actual tax registrations. No automatic tax advice or raw Account Session secrets.",
552
+ "invoices preview|send --file <file>; list [--limit 1..100 --offset N --arrangement <id>]; get|refresh|resend|void <id>. send/resend need --operation-key; send needs --preview-hash; financial writes require --yes in scripts.",
553
+ "recurring preview|create --file <file>; list|get|refresh|cancel|resume|resend-invitation. Supported cadence: weekly, fortnightly, monthly, quarterly, yearly; firstDate YYYY-MM-DD, explicit IANA timeZone, 09:00 start. create/resume/invitation need stable operation keys. Resume requires first-date, preview-hash and --yes; no missed-period backfill.",
554
+ "customers billing-link|send-billing-link <customerMapId> --operation-key <key>. Send requires --yes. A returned link is private and expires after 30 minutes; do not put it in logs.",
555
+ "Common invoice flags: --person <CRM-id> OR --email <email> [--name <name>], --description, --amount-cents, --kind once|recurring, --collection manual|autopay, --cadence, --first-date, --time-zone, --due-days 7|14|30, --preview-hash, --operation-key. Use --file for nested address (line1,line2,city,region,postal,country).",
556
+ "Full REST methods, JSON examples, permissions, retries and financial semantics are in packaged PAYMENTS.md. All normal global auth/site/JSON/quiet/error/exit rules still apply.",
557
+ ],
558
+ dangers: [
559
+ "Reuse the same operation key and reviewed input after a timeout. Do not create a new key to force a send. Accepted email is not paid or proof of arrival; Stripe test mode may suppress invoice emails.",
560
+ "Autopay create sends an invitation. The customer must agree and finish Stripe setup. Saved cards, owner flags and browser returns are not consent or payment.",
561
+ "CLI requires Scale/Enterprise/Internal. New invoices require Growth+ separately. Financial writes require admin; existing tax writes and private reads permit editors; viewers receive no private ledger.",
562
+ ],
563
+ seeAlso: [
564
+ "store",
565
+ "people",
566
+ "modules",
567
+ "https://frontpage.host/developers/payments",
521
568
  ],
522
- seeAlso: ["inbox", "https://frontpage.host/developers/store"],
523
569
  },
524
570
  {
525
571
  name: "mail",
@@ -570,7 +616,9 @@ export const COMMANDS = [
570
616
  "frontpage seo get --path /updates",
571
617
  "frontpage seo set --path / --title \"Home\"",
572
618
  ],
573
- flags: ["get accepts positional path or --path (flag wins); unknown leftover flags fail closed"],
619
+ flags: [
620
+ "get accepts positional path or --path (flag wins); unknown leftover flags fail closed"
621
+ ],
574
622
  },
575
623
  {
576
624
  name: "articles",
@@ -742,7 +790,7 @@ export const TOPICS = {
742
790
  - Forms: <form data-fp-form="slug"> with named inputs; no action/onsubmit/honeypot.
743
791
  - Articles: frontpage articles …; migrate folders via frontpage prompt (don't invent mass delete+write).
744
792
  - Media: frontpage media upload (images/PDF ≤25 MB, video ≤50 MB). frontpage images generate --prompt "…" [--count N] for 1–4 AI variations of one invented picture (AI $ + storage). Use sitePath /__media/uploads/<slug>/… in markup (not raw blob URLs). Optional ?w= on rasters only.
745
- - Store: frontpage store for catalog, settings set-checkout / set-fulfillment / set-checkout-fee, and connect. Write data-fp-store-grid + data-fp-cart (data-fp-requires=store; cart starts hidden). Unless they said they do not want product pages, write one src/pages/products/item.astro with data-fp-store-product. If they said no, skip that file and do not bind href or url. Guide: https://frontpage.host/developers/store
793
+ - Store: frontpage store for catalog, settings set-fulfillment / set-checkout-fee / set-receipt; frontpage payments owns Stripe and invoices. Write data-fp-store-grid + data-fp-cart (data-fp-requires=store; cart starts hidden). Unless they said they do not want product pages, write one src/pages/products/item.astro with data-fp-store-product. If they said no, skip that file and do not bind href or url. Guide: https://frontpage.host/developers/store
746
794
 
747
795
  Full guide: https://frontpage.host/developers/site-building
748
796
  See also: frontpage help sync | content | AGENTS.md`,
@@ -782,7 +830,8 @@ export const TOPICS = {
782
830
  frontpage routines list|get|add|set|pause|resume|rm|run|runs
783
831
  # Routines guide: https://frontpage.host/developers/routines
784
832
  # 8am,12pm,4pm and tue,thu,fri store hours [8, 12, 16] and weekdays [2, 4, 5] on one routine. Timezone is IANA.
785
- frontpage store items|variants|categories|settings|orders|payments|connect|status|disconnect
833
+ frontpage store items|variants|categories|settings|orders|import
834
+ frontpage payments status|connect|availability|activity|buttons|tax|invoices|recurring|customers
786
835
  # Store catalog + live storefront: https://frontpage.host/developers/store
787
836
  # Integer cents only. $49.99 is 4999. stock --add/--remove are signed delta.
788
837
  # Markup: data-fp-store-grid / data-fp-store-product / data-fp-cart. One item.astro, not one file per product.
@@ -794,7 +843,7 @@ export const TOPICS = {
794
843
  frontpage tokens set --group … --key … --value …
795
844
  frontpage modules list|docs|request-setup|enable|disable|archive|config <key>
796
845
  frontpage modules <key> # that key's CLI usage
797
- frontpage store connect [--no-open] # Store Stripe connect
846
+ frontpage payments connect [--no-open] # Payments Stripe connect
798
847
  # mailing list key: signups. Index: https://frontpage.host/developers/modules
799
848
  frontpage extensions list|docs|enable|disable|config <key>
800
849
  frontpage settings get|set
@@ -804,7 +853,7 @@ export const TOPICS = {
804
853
  Do not fake payments/checkout. LOCKED extensions → do not fake; say plan required.
805
854
  Migrate pages → articles: prefer frontpage prompt "migrate …" over mass delete+write.
806
855
  edit uses click-edit (exact single occurrence), not push / gated-write.
807
- Connect opens Frontpage (logged-in), then Stripe; never accepts or returns OAuth secrets. Store connect is frontpage store connect.
856
+ Connect opens Frontpage (logged-in), then Stripe; never accepts or returns OAuth secrets. Stripe setup is frontpage payments connect.
808
857
  Site contract: frontpage help site-building · https://frontpage.host/developers/site-building
809
858
  Domains, billing, members, and site delete are out of v1.`,
810
859
  history: `History
package/llms.txt CHANGED
@@ -9,7 +9,7 @@
9
9
  - Fonts: frontpage fonts [--slot] [--query] → exact value → tokens set fonts.<role> → APPLY font-sans|serif|mono|display. Build bundles catalog faces from tokens.ts and/or CSS font-family contexts (not prose). Inline-only without tokens works for catalog faces after rebuild; prefer tokens+utilities for brand roles.
10
10
  - Module/extension docs: frontpage modules docs <key> | frontpage extensions docs <key>
11
11
  - Search flags: --regex --case-sensitive --whole-word --files-only --context-lines --max-results
12
- - Modules setup: Store Stripe connect is frontpage store connect. payments disconnect 409s if the store still uses the shared Stripe account. request-setup remains valid for the editor amber bar. frontpage modules <key> prints that key's CLI usage. Index: https://frontpage.host/developers/modules. Typed config: frontpage modules callbar|forms|booking|signups get|set (forms set needs --instance; confirm emails paid-plan only). Form destinations: frontpage modules forms destinations|connect-destination|attach-destination|detach-destination|remove-destination --yes|request-destination-setup (token = admin; request-destination-setup lights the editor bar; request-setup forms is a no-op; connect does not attach every form). Privyr: paste Incoming Webhook URL (https://www.privyr.com/api/v1/incoming-leads/…), not a token. HubSpot: Development → Keys → Service keys or Legacy apps → Auth → Show token. Pipedrive: profile → Company settings → Personal preferences → API. Docs: https://frontpage.host/developers/modules#forms-destinations. google_reviews: frontpage modules google_reviews connect --place-id | --maps-url (server resolve + seed; no Autocomplete; do not write placeId via config). Also status, list-reviews, hide/show, set-stars, set-sort, set-weight, reset-weights, refresh, disconnect. Docs: https://frontpage.host/developers/modules/google-reviews. Markup: data-fp-google-reviews / data-fp-google-ask + required data-fp-requires="google_reviews". Ask scores: frontpage inbox google_reviews.
12
+ - Modules setup: Store Stripe connect is frontpage payments connect. Payments availability owns pause/restore and retains the shared Stripe account. request-setup remains valid for the editor amber bar. frontpage modules <key> prints that key's CLI usage. Index: https://frontpage.host/developers/modules. Typed config: frontpage modules callbar|forms|booking|signups get|set (forms set needs --instance; confirm emails paid-plan only). Form destinations: frontpage modules forms destinations|connect-destination|attach-destination|detach-destination|remove-destination --yes|request-destination-setup (token = admin; request-destination-setup lights the editor bar; request-setup forms is a no-op; connect does not attach every form). Privyr: paste Incoming Webhook URL (https://www.privyr.com/api/v1/incoming-leads/…), not a token. HubSpot: Development → Keys → Service keys or Legacy apps → Auth → Show token. Pipedrive: profile → Company settings → Personal preferences → API. Docs: https://frontpage.host/developers/modules#forms-destinations. google_reviews: frontpage modules google_reviews connect --place-id | --maps-url (server resolve + seed; no Autocomplete; do not write placeId via config). Also status, list-reviews, hide/show, set-stars, set-sort, set-weight, reset-weights, refresh, disconnect. Docs: https://frontpage.host/developers/modules/google-reviews. Markup: data-fp-google-reviews / data-fp-google-ask + required data-fp-requires="google_reviews". Ask scores: frontpage inbox google_reviews.
13
13
  - Analytics ops: frontpage analytics summary|query|funnel|timeseries|compare|sql (bare analytics = dashboard)
14
14
  - Media: frontpage media upload <file> (images/PDF ≤25 MB, video ≤50 MB, SVG/text ≤4 MB); human prints sitePath first — use /__media/uploads/<slug>/… in markup. Text/CSV is inline only (not media library; --json omits full content).
15
15
  - Prompt attachments: frontpage prompt "…" --attach <file|/__media/…|https://…> [--asset-url https://…] (same media caps as media upload)
@@ -18,7 +18,7 @@
18
18
  - Redirects: frontpage redirects list|set|rm — HTTP 301/308, instant, not a file; revert does not undo; do not fake with Astro.redirect / meta refresh
19
19
  - People CRM: frontpage people list|get|add|set|note|rm-note|follow-up|hide|unhide|tag|export. Site-scoped person graph (email or phone). Inbox stays the raw ledger. Hide is not forget. List export is CSV. Unknown leftover flags fail closed. Guide: https://frontpage.host/developers/people
20
20
  - Routines: frontpage routines list|get|add|set|pause|resume|rm|run|runs. Several hours and several days are one routine. 8am,12pm,4pm and tue,thu,fri store hours [8, 12, 16] and weekdays [2, 4, 5]. Timezone is IANA. Do not guess UTC. Guide: https://frontpage.host/developers/routines
21
- - Store catalog: frontpage store items|variants|categories|settings|orders|payments|connect|status|disconnect. Integer cents only ($49.99 is 4999). --price-cents is the usual cost. Optional --discount-cents is the sale the buyer pays (must be lower). Create a category before assigning it. Photos are /__media/uploads/<this-slug>/… or an HTTPS URL already saved on this site. frontpage store connect [--no-open] opens Frontpage then Stripe. Checkout is store-wide (settings set-checkout); do not use leftover items --checkout to pick cart vs Pay now. Service fee is settings set-checkout-fee. The cart starts hidden. Product pages are the default: unless they said they do not want product pages, write one src/pages/products/item.astro (or shop) with data-fp-store-product. If they said no, skip that file and do not bind href or url. Description is a small markdown subset; product-page bind is <div data-fp-store-bind="description">. Every store control carries data-fp-requires="store". Leave data-fp-store-variants empty. Do not bake titles or prices. Guide: https://frontpage.host/developers/store
21
+ - Store catalog: frontpage store items|variants|categories|settings|orders|import. Integer cents only ($49.99 is 4999). --price-cents is the usual cost. Optional --discount-cents is the sale the buyer pays (must be lower). Create a category before assigning it. Photos are /__media/uploads/<this-slug>/… or an HTTPS URL already saved on this site. frontpage payments connect [--no-open] opens Frontpage then Stripe. Store is cart-only; currency comes from Stripe and cannot be set. Use frontpage payments for standalone Pay now and invoices. Service fee is settings set-checkout-fee. The cart starts hidden. Product pages are the default: unless they said they do not want product pages, write one src/pages/products/item.astro (or shop) with data-fp-store-product. If they said no, skip that file and do not bind href or url. Description is a small markdown subset; product-page bind is <div data-fp-store-bind="description">. Every store control carries data-fp-requires="store". Leave data-fp-store-variants empty. Do not bake titles or prices. Guide: https://frontpage.host/developers/store
22
22
  - Analytics funnel: --steps JSON array or comma paths (/, /pricing); bad JSON → Invalid JSON for --steps
23
23
  - Modules: unknown key errors list Known: …; mailing list module key is signups (not subscribe)
24
24
  - Errors: --json API envelopes include requestId when the server returned one; local validation omits requestId/httpStatus; runs wait failed/canceled → ok:false + run.error (exit 2); deploy wait = agent idle + tip compile ready (fail-closed / compile timeout → exit 2); push --wait and publish --wait wait for GET /deploy ready
@@ -37,3 +37,6 @@
37
37
  Use `frontpage people overview`, `groups`, `stages`, `membership`, `rules`, `attachments`, `import`, and `company`. Use `frontpage mail campaign` for one-off group/stage/list audiences in Emails. Every editor action is available through these commands or `frontpage people workspace OPERATION --file payload.json`. Full operations and examples: [PEOPLE.md](./PEOPLE.md); public guide: https://frontpage.host/developers/people. Automated emails select a saved template or series. Campaigns use their own drafts.
38
38
 
39
39
  Customer Inbox (internal sites): CUSTOMER-INBOX.md. Settings, widget, knowledge, human guidance/relay, lifecycle, export/download and recovery. Website agents configure through manage_customer_inbox and must not use human credentials for conversations.
40
+
41
+
42
+ Payments, invoices and recurring billing: see packaged [PAYMENTS.md](./PAYMENTS.md), `frontpage help payments`, and https://frontpage.host/developers/payments. Version 0.2.0 removes writable currency, Store checkout mode and Store-owned money commands; Store stays cart-only. Preview/review before sends; keep stable operation keys on retries. Autopay requires the customer’s own verified authorization.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frontpage-host",
3
- "version": "0.1.29",
3
+ "version": "0.2.0",
4
4
  "description": "Frontpage CLI \u2014 manage your site from the terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,7 +12,8 @@
12
12
  "AGENTS.md",
13
13
  "llms.txt",
14
14
  "PEOPLE.md",
15
- "CUSTOMER-INBOX.md"
15
+ "CUSTOMER-INBOX.md",
16
+ "PAYMENTS.md"
16
17
  ],
17
18
  "scripts": {
18
19
  "build": "tsc -p tsconfig.json",