@aglyn/aglyn 1.0.0-beta.215 → 1.0.0-beta.217

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.
Files changed (33) hide show
  1. package/package.json +11 -11
  2. package/src/lib/app-utils/deferred-image.d.ts +3 -3
  3. package/src/lib/app-utils/deferred-image.js +3 -3
  4. package/src/lib/app-utils/deferred-image.js.map +1 -1
  5. package/src/lib/app-utils/docs-help.generated.d.ts +2 -2
  6. package/src/lib/app-utils/docs-help.generated.js +2 -1
  7. package/src/lib/app-utils/docs-help.generated.js.map +1 -1
  8. package/src/lib/app-utils/docs-index.generated.js +35 -21
  9. package/src/lib/app-utils/docs-index.generated.js.map +1 -1
  10. package/src/lib/app-utils/marketplace-theme.d.ts +9 -4
  11. package/src/lib/app-utils/marketplace-theme.js +11 -1
  12. package/src/lib/app-utils/marketplace-theme.js.map +1 -1
  13. package/src/lib/app-utils/publisher-agreement.d.ts +36 -1
  14. package/src/lib/app-utils/publisher-agreement.js +48 -1
  15. package/src/lib/app-utils/publisher-agreement.js.map +1 -1
  16. package/src/lib/app-utils/realm-host-surface.generated.js +2 -0
  17. package/src/lib/app-utils/realm-host-surface.generated.js.map +1 -1
  18. package/src/lib/app-utils/theme-library.d.ts +206 -0
  19. package/src/lib/app-utils/theme-library.js +566 -0
  20. package/src/lib/app-utils/theme-library.js.map +1 -0
  21. package/src/lib/foundation/definitions/platform.types.js +2 -1
  22. package/src/lib/foundation/definitions/platform.types.js.map +1 -1
  23. package/src/lib/plugin-manager/feature-plugins.d.ts +44 -0
  24. package/src/lib/plugin-manager/feature-plugins.js +25 -0
  25. package/src/lib/plugin-manager/feature-plugins.js.map +1 -1
  26. package/src/lib/plugin-manager/first-party-plugins.generated.js +11 -0
  27. package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -1
  28. package/src/lib/plugin-manager/plugin-services.js +20 -2
  29. package/src/lib/plugin-manager/plugin-services.js.map +1 -1
  30. package/src/lib/plugin-manager/realm-host-aglyn.generated.js +2 -0
  31. package/src/lib/plugin-manager/realm-host-aglyn.generated.js.map +1 -1
  32. package/src/lib/plugin-manager/record-captured-contact.js +12 -3
  33. package/src/lib/plugin-manager/record-captured-contact.js.map +1 -1
@@ -23,7 +23,7 @@ export const ASSIST_DOCS_INDEX = [
23
23
  title: 'A/B tests by AI: write variants, read the result',
24
24
  heading: '',
25
25
  anchor: '',
26
- text: 'A/B tests by AI\nRolling out A/B tests by AI is a release-flagged feature, currently being rolled out — it is not available in your workspace yet. This page says what it does, and grows with the feature.\nThe test itself is yours. The experiment, its variants, the traffic split, the conversion goal and the counters all belong to the Experiments card on your site\'s Marketing page. Two AI cards sit inside that card: one writes variants while you are setting a test up, and one reads a finished test\'s figures back in plain words.\nNeither of them starts a test, pauses one, finishes one or moves a visitor.'
26
+ text: 'A/B tests by AI\nThe test itself is yours. The experiment, its variants, the traffic split, the conversion goal and the counters all belong to the Experiments card on your site\'s Marketing page. Two AI cards sit inside that card: one writes variants while you are setting a test up, and one reads a finished test\'s figures back in plain words.\nNeither of them starts a test, pauses one, finishes one or moves a visitor.'
27
27
  },
28
28
  {
29
29
  path: '/ai/ab-tests-with-ai',
@@ -72,7 +72,7 @@ export const ASSIST_DOCS_INDEX = [
72
72
  title: 'An AI website builder for agencies',
73
73
  heading: '',
74
74
  anchor: '',
75
- text: 'An AI website builder for agencies\nAn agency\'s problem with a website builder is rarely the first site. It is the twentieth: twenty logins, twenty billing relationships, twenty slightly different stacks, and a first draft that costs the same on the twentieth site as it did on the first.\nAglyn AI runs from the console your team already signs in to, against the sites your organization already owns. One brief can start a build on many client sites at once — and each one stays a separate job you review.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says how a batch behaves, and grows with the feature.'
75
+ text: 'An AI website builder for agencies\nAn agency\'s problem with a website builder is rarely the first site. It is the twentieth: twenty logins, twenty billing relationships, twenty slightly different stacks, and a first draft that costs the same on the twentieth site as it did on the first.\nAglyn AI runs from the console your team already signs in to, against the sites your organization already owns. One brief can start a build on many client sites at once — and each one stays a separate job you review.'
76
76
  },
77
77
  {
78
78
  path: '/ai/agency-sites',
@@ -177,7 +177,7 @@ export const ASSIST_DOCS_INDEX = [
177
177
  title: 'Explain automations with AI',
178
178
  heading: '',
179
179
  anchor: '',
180
- text: 'Explain automations with AI\nOn Automation → Actions, Aglyn AI can explain an automation you already have, and tell you why one of its runs failed. Neither of them changes or runs an automation.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says what it does with automations, and grows with the feature.'
180
+ text: 'Explain automations with AI\nOn Automation → Actions, Aglyn AI can explain an automation you already have, and tell you why one of its runs failed. Neither of them changes or runs an automation.'
181
181
  },
182
182
  {
183
183
  path: '/ai/automations-with-ai',
@@ -226,7 +226,7 @@ export const ASSIST_DOCS_INDEX = [
226
226
  title: 'Rewrite and write copy with AI',
227
227
  heading: '',
228
228
  anchor: '',
229
- text: 'Rewrite and write copy with AI\nRewrite with AI drafts and rewrites text without leaving the Besigner. It works on any text an element carries — a headline, body copy, a button label, a caption — and on a blog entry.\nRolling out Writing copy with AI is part of Aglyn AI, a release-flagged feature currently being rolled out — it is not available in every workspace yet. This page says what it does, and grows with the feature.'
229
+ text: 'Rewrite and write copy with AI\nRewrite with AI drafts and rewrites text without leaving the Besigner. It works on any text an element carries — a headline, body copy, a button label, a caption — and on a blog entry.'
230
230
  },
231
231
  {
232
232
  path: '/ai/copy-assist',
@@ -268,7 +268,7 @@ export const ASSIST_DOCS_INDEX = [
268
268
  title: 'The AI CRM built into Aglyn',
269
269
  heading: '',
270
270
  anchor: '',
271
- text: 'The AI CRM built into Aglyn\nAglyn AI works in three places in the CRM. In each one it makes a suggestion and you decide what happens next: nothing is saved, sent or imported until you do it yourself.\n- On a record\'s page, a short summary of where things stand with a contact, company, deal or lead, with a suggested next step.\n- In the email composer, a draft of the one-to-one email you describe.\n- In an import, a suggested match between the columns of your file and the fields they fill.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says what it does in the CRM, and grows with the feature.'
271
+ text: 'The AI CRM built into Aglyn\nAglyn AI works in three places in the CRM. In each one it makes a suggestion and you decide what happens next: nothing is saved, sent or imported until you do it yourself.\n- On a record\'s page, a short summary of where things stand with a contact, company, deal or lead, with a suggested next step.\n- In the email composer, a draft of the one-to-one email you describe.\n- In an import, a suggested match between the columns of your file and the fields they fill.'
272
272
  },
273
273
  {
274
274
  path: '/ai/crm-by-ai',
@@ -317,7 +317,7 @@ export const ASSIST_DOCS_INDEX = [
317
317
  title: 'Generate a form from a description',
318
318
  heading: '',
319
319
  anchor: '',
320
- text: 'Generate a form from a description\nAn AI build job can make a form from a brief, such as "a quote request form for a roofing company". The job proposes a plan first, and builds once you confirm it: the fields a visitor fills in, the answers the form needs, a marketing consent box when the form asks for an email address, and where each submission goes. The form follows the building rules, and one more of its own: what the form\'s design draws and what the form declares always agree, so every field has its own name and every submission arrives with all of its answers.\nThe form arrives as a new draft on the Forms page, and Open draft on the job opens the form\'s page. No screen places it, so nothing on the live site changes. It counts against your forms allowance like a form you create yourself, and when your plan has no room for another form the job says so before it starts, not after it has spent anything.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says what a form job does, and grows with the feature.'
320
+ text: 'Generate a form from a description\nAn AI build job can make a form from a brief, such as "a quote request form for a roofing company". The job proposes a plan first, and builds once you confirm it: the fields a visitor fills in, the answers the form needs, a marketing consent box when the form asks for an email address, and where each submission goes. The form follows the building rules, and one more of its own: what the form\'s design draws and what the form declares always agree, so every field has its own name and every submission arrives with all of its answers.\nThe form arrives as a new draft on the Forms page, and Open draft on the job opens the form\'s page. No screen places it, so nothing on the live site changes. It counts against your forms allowance like a form you create yourself, and when your plan has no room for another form the job says so before it starts, not after it has spent anything.'
321
321
  },
322
322
  {
323
323
  path: '/ai/generate-a-form',
@@ -366,7 +366,7 @@ export const ASSIST_DOCS_INDEX = [
366
366
  title: 'Generate a website from a prompt',
367
367
  heading: '',
368
368
  anchor: '',
369
- text: 'Generate a website from a prompt\nAn AI build job can scaffold a whole site from a brief, such as "a neighborhood dog groomer that takes bookings". The job proposes a plan first — the pages it will build with their addresses and navigation, the layout they share, a contact form, and a palette suggestion made from your theme — and builds nothing until you confirm it.\nEverything it then builds follows the building rules, because each piece is built by the same job that builds it on its own: the pages by the page job, the layout by the layout job, the form by the form job. A scaffold is those jobs run in order, not a different way of building.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says what a site job does, and grows with the feature.'
369
+ text: 'Generate a website from a prompt\nAn AI build job can scaffold a whole site from a brief, such as "a neighborhood dog groomer that takes bookings". The job proposes a plan first — the pages it will build with their addresses and navigation, the layout they share, a contact form, and a palette suggestion made from your theme — and builds nothing until you confirm it.\nEverything it then builds follows the building rules, because each piece is built by the same job that builds it on its own: the pages by the page job, the layout by the layout job, the form by the form job. A scaffold is those jobs run in order, not a different way of building.'
370
370
  },
371
371
  {
372
372
  path: '/ai/generate-a-site',
@@ -415,7 +415,7 @@ export const ASSIST_DOCS_INDEX = [
415
415
  title: 'Generate a section on the canvas',
416
416
  heading: '',
417
417
  anchor: '',
418
- text: 'Generate a section on the canvas\nWhere rewriting copy changes words, Generate a section with AI builds structure — a whole section of real components — directly on the page you have open.\nRolling out Generating a section is part of Aglyn AI, a release-flagged feature currently being rolled out — it is not available in every workspace yet. This page says what it does, and grows with the feature.'
418
+ text: 'Generate a section on the canvas\nWhere rewriting copy changes words, Generate a section with AI builds structure — a whole section of real components — directly on the page you have open.'
419
419
  },
420
420
  {
421
421
  path: '/ai/generate-section',
@@ -457,7 +457,7 @@ export const ASSIST_DOCS_INDEX = [
457
457
  title: 'How Aglyn AI builds',
458
458
  heading: '',
459
459
  anchor: '',
460
- text: 'How Aglyn AI builds\nWhen Aglyn AI builds for your site (a page, a component, a layout, a page template, a form or an email), it builds the way a careful designer on your team would: from what the site already has, with your theme and brand, as a draft you review. The rules below are not a suggestion in a prompt. Every plan and every generated document is checked against them before you see it.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. The rules on this page apply to every build as it reaches you.'
460
+ text: 'How Aglyn AI builds\nWhen Aglyn AI builds for your site (a page, a component, a layout, a page template, a form or an email), it builds the way a careful designer on your team would: from what the site already has, with your theme and brand, as a draft you review. The rules below are not a suggestion in a prompt. Every plan and every generated document is checked against them before you see it.'
461
461
  },
462
462
  {
463
463
  path: '/ai/how-aglyn-ai-builds',
@@ -506,7 +506,7 @@ export const ASSIST_DOCS_INDEX = [
506
506
  title: 'Aglyn AI: the AI website builder',
507
507
  heading: '',
508
508
  anchor: '',
509
- text: 'Aglyn AI: the AI website builder\nAglyn AI builds for your site. Describe what you want — a page, a reusable component, a layout, a page template, a form, an email, a campaign, product copy, a theme, your search titles and descriptions — and it plans the work, builds it from what your site already has, and hands you a draft to review.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — the doors described here do not all appear in every workspace yet. This section says what each one does, and grows as each reaches you.\nIt is the same assistant as Aglyn Assist, which answers questions about the product from this documentation. Aglyn AI is what that assistant does when it stops explaining and starts building.'
509
+ text: 'Aglyn AI: the AI website builder\nAglyn AI builds for your site. Describe what you want — a page, a reusable component, a layout, a page template, a form, an email, a campaign, product copy, a theme, your search titles and descriptions — and it plans the work, builds it from what your site already has, and hands you a draft to review.\nIt is the same assistant as Aglyn Assist, which answers questions about the product from this documentation. Aglyn AI is what that assistant does when it stops explaining and starts building.'
510
510
  },
511
511
  {
512
512
  path: '/ai/overview',
@@ -569,7 +569,7 @@ export const ASSIST_DOCS_INDEX = [
569
569
  title: 'Product copy and catalogs with AI',
570
570
  heading: '',
571
571
  anchor: '',
572
- text: 'Product copy and catalogs with AI\nAglyn AI can write the copy for your products and help you set up a store. Everything it does is a proposal: you review it, and nothing is saved to your catalog until you apply it. It never sets a price, and it never publishes a product.\nRolling out Aglyn AI is a release-flagged feature, currently being rolled out — it is not available in every workspace yet. This page says what it does for a catalog, and grows with the feature.'
572
+ text: 'Product copy and catalogs with AI\nAglyn AI can write the copy for your products and help you set up a store. Everything it does is a proposal: you review it, and nothing is saved to your catalog until you apply it. It never sets a price, and it never publishes a product.'
573
573
  },
574
574
  {
575
575
  path: '/ai/products-with-ai',
@@ -632,7 +632,7 @@ export const ASSIST_DOCS_INDEX = [
632
632
  title: 'Change your site\'s theme with AI',
633
633
  heading: '',
634
634
  anchor: '',
635
- text: 'Change your site\'s theme with AI\nRolling out The Theme assistant is a release-flagged feature, currently being rolled out — it is not available in your workspace yet. This page says what it does, and grows with the feature.\nThe Theme assistant sits on your site\'s Setup → Theme section, above the theme editor. Describe what you want and it proposes values for the editor\'s own controls — the same colors, font, corner radius, spacing, navigation heights, dark scheme and component overrides you can set by hand. Nothing changes on your site until you save.'
635
+ text: 'Change your site\'s theme with AI\nThe Theme assistant sits on your site\'s Setup → Theme section, above the theme editor. Describe what you want and it proposes values for the editor\'s own controls — the same colors, font, corner radius, spacing, navigation heights, dark scheme and component overrides you can set by hand. Nothing changes on your site until you save.'
636
636
  },
637
637
  {
638
638
  path: '/ai/theme-assist',
@@ -2986,6 +2986,13 @@ export const ASSIST_DOCS_INDEX = [
2986
2986
  anchor: '#open-the-editor',
2987
2987
  text: 'Go to Setup → Theme editor. Changes render in a live preview so you see them immediately.'
2988
2988
  },
2989
+ {
2990
+ path: '/building-sites/theme-builder/edit-your-theme',
2991
+ title: 'Edit your theme',
2992
+ heading: 'Choose a theme',
2993
+ anchor: '#choose-a-theme',
2994
+ text: 'The Theme card at the top of the page picks the theme your site runs:\n- Built-in — Material UI (default), Bootstrap, Minimal (neutral, in the style of shadcn/ui) and Material 3, plus any your plugins add. Each one restyles components (buttons, inputs, cards, tabs, switches, alerts) as well as colors and type, in light and dark.\n- Your themes — themes you saved from this site.\n- From the marketplace — themes you installed.\nChoosing a theme shows a preview first, in light and dark; Use this theme applies it to the live site.\nYour edits never change the theme itself. Everything you set in the editor below is stored as your edits on top of the theme you picked, so:\n- Restore drops your edits and brings the theme back exactly as it was.\n- Save as custom theme saves the result — the theme plus your edits — as a new theme of your own under Your themes and switches to it. The theme you started from stays in the list, unchanged.\n- Update (on one of your own themes) folds your edits into that theme.\n- Switching themes keeps your edits. Each theme remembers the edits you made to it, and they come back when you pick it again. Themes marked Edited in the list have some.\nYour Dark scheme setting belongs to the site, not the theme, so it stays as you set it whichever theme you pick.'
2995
+ },
2989
2996
  {
2990
2997
  path: '/building-sites/theme-builder/edit-your-theme',
2991
2998
  title: 'Edit your theme',
@@ -3012,7 +3019,7 @@ export const ASSIST_DOCS_INDEX = [
3012
3019
  title: 'Edit your theme',
3013
3020
  heading: 'Change it with AI',
3014
3021
  anchor: '#change-it-with-ai',
3015
- text: 'Rolling out. The Theme assistant above the editor proposes changes to these same controls from a description — "warmer", "match our brand", "bigger headings on mobile" — with a before and after preview. A proposal goes into the editor as unsaved changes, and nothing is saved until you save it. See Change your site\'s theme with AI.'
3022
+ text: 'The Theme assistant above the editor proposes changes to these same controls from a description — "warmer", "match our brand", "bigger headings on mobile" — with a before and after preview. A proposal goes into the editor as unsaved changes, and nothing is saved until you save it. See Change your site\'s theme with AI.'
3016
3023
  },
3017
3024
  {
3018
3025
  path: '/building-sites/theme-builder/edit-your-theme',
@@ -3040,7 +3047,7 @@ export const ASSIST_DOCS_INDEX = [
3040
3047
  title: 'Theme Builder',
3041
3048
  heading: 'Edit your theme',
3042
3049
  anchor: '#edit-your-theme',
3043
- text: '- Open the theme editor under Setup.\n- Set your palette and typography; changes render in a live preview.\n- Configure both light and dark schemes — published sites apply the visitor\'s scheme automatically.\n- Fonts load via a Google Fonts URL builder.\nThe theme you set here is supplied to the Besigner canvas too, so previews match the live site.\nHow-tos\n- Edit your theme'
3050
+ text: '- Pick a theme — Material UI (default), a built-in theme, one of your own, or one from the marketplace — and preview it before it goes live.\n- Open the theme editor under Setup. Your changes are stored on top of the theme you picked, so it can always be restored or saved as a theme of your own.\n- Set your palette and typography; changes render in a live preview.\n- Configure both light and dark schemes — published sites apply the visitor\'s scheme automatically.\n- Fonts load via a Google Fonts URL builder.\nThe theme you set here is supplied to the Besigner canvas too, so previews match the live site.\nHow-tos\n- Edit your theme'
3044
3051
  },
3045
3052
  {
3046
3053
  path: '/building-sites/theme-builder/overview',
@@ -3313,7 +3320,7 @@ export const ASSIST_DOCS_INDEX = [
3313
3320
  title: 'Term reference',
3314
3321
  heading: 'Platform & accounts',
3315
3322
  anchor: '#platform--accounts',
3316
- text: 'Aglyn\nThe platform these docs cover — the console you build in and the sites you publish. Pronounced AG-lin — "ag" as in agriculture, with the stress on the first syllable (IPA /ˈæɡlɪn/).\nAglyn AI\nThe generative side of the assistant: the doors that build a page, layout, page template, reusable component, form, email, campaign, product copy, SEO text or theme change from a description. An add-on on any paid plan, carried by agreement on Enterprise, and metered in credits. Everything it makes is a draft — it never publishes, changes a live page in place or sends anything. Currently rolling out. → Aglyn AI, Add-ons\nAglyn Assist\nThe chat helper in the console, which answers questions about the product from this documentation and cites the sections it drew on. Aglyn AI is the same assistant when it builds rather than explains. → Aglyn Assist\nOrganization (org)\nThe account entity: one subscription, one team roster, one plugin switchboard, one data-isolation boundary. Everything you own in Aglyn — sites, datasets, media, installs — belongs to an organization. In code and APIs this is always org. → Glossary, Teams & roles\nWorkspace\nThe same entity as an organization, in the product\'s user-facing language — "your workspace", including the {slug}.aglyn.com workspace URL. Workspace never names anything in code; it\'s the word the UI uses for your org. → Glossary\nTenant\nThe published-site runtime: the single deployment that takes any incoming domain, resolves it to one of your sites, and renders its published screens. "Tenant" always means this serving side of the platform — it is not another word for organization. → Glossary, Architecture & multi-tenancy\nHost\nOne site, as the data model sees it: its subdomain or custom domain, its screens and layouts, its media, its member-role pr'
3323
+ text: 'Aglyn\nThe platform these docs cover — the console you build in and the sites you publish. Pronounced AG-lin — "ag" as in agriculture, with the stress on the first syllable (IPA /ˈæɡlɪn/).\nAglyn AI\nThe generative side of the assistant: the doors that build a page, layout, page template, reusable component, form, email, campaign, product copy, SEO text or theme change from a description. An add-on on any paid plan, carried by agreement on Enterprise, and metered in credits. Everything it makes is a draft — it never publishes, changes a live page in place or sends anything. → Aglyn AI, Add-ons\nAglyn Assist\nThe chat helper in the console, which answers questions about the product from this documentation and cites the sections it drew on. Aglyn AI is the same assistant when it builds rather than explains. → Aglyn Assist\nOrganization (org)\nThe account entity: one subscription, one team roster, one plugin switchboard, one data-isolation boundary. Everything you own in Aglyn — sites, datasets, media, installs — belongs to an organization. In code and APIs this is always org. → Glossary, Teams & roles\nWorkspace\nThe same entity as an organization, in the product\'s user-facing language — "your workspace", including the {slug}.aglyn.com workspace URL. Workspace never names anything in code; it\'s the word the UI uses for your org. → Glossary\nTenant\nThe published-site runtime: the single deployment that takes any incoming domain, resolves it to one of your sites, and renders its published screens. "Tenant" always means this serving side of the platform — it is not another word for organization. → Glossary, Architecture & multi-tenancy\nHost\nOne site, as the data model sees it: its subdomain or custom domain, its screens and layouts, its media, its member-role projection. An organizati'
3317
3324
  },
3318
3325
  {
3319
3326
  path: '/concepts/term-reference',
@@ -4258,7 +4265,7 @@ export const ASSIST_DOCS_INDEX = [
4258
4265
  title: 'Sequences',
4259
4266
  heading: '',
4260
4267
  anchor: '',
4261
- text: 'Sequences\nRolling out Sequences is a release-flagged feature, currently being rolled out — it is not available in your workspace yet. This page says what it is for, and grows with the feature.'
4268
+ text: 'Sequences\nRolling out Sequences is a release-flagged feature, and it is not offered on aglyn.com-hosted workspaces. It is available on self-hosted installs, where the install\'s own staff switch it on — see Self-hosted installs.'
4262
4269
  },
4263
4270
  {
4264
4271
  path: '/content-and-data/crm/sequences',
@@ -4281,6 +4288,13 @@ export const ASSIST_DOCS_INDEX = [
4281
4288
  anchor: '#where-it-lives',
4282
4289
  text: 'Sequences is a tab of its own at the organization level, beside the CRM. It has three sections: All sequences, Mailboxes and Compliance.\nOpening it takes the Use Sequences permission, which owners and admins hold by default. A custom role can grant it to other members of the organization. A collaborator added to particular sites cannot open it, because Sequences covers the whole organization.'
4283
4290
  },
4291
+ {
4292
+ path: '/content-and-data/crm/sequences',
4293
+ title: 'Sequences',
4294
+ heading: 'Self-hosted installs',
4295
+ anchor: '#self-hosted',
4296
+ text: 'A self-hosted install runs Sequences with a Google OAuth client of its own:\n1. Create the OAuth client in Google Cloud and set GOOGLEOUTREACHCLIENTID, GOOGLEOUTREACHCLIENTSECRET and OUTREACHTOKENKEY on the console. Environment variables gives each value, the redirect URI to register and the scopes the grant asks for.\n2. Make the consent screen Internal, on a Google Cloud project owned by your own Google Workspace organization. An Internal screen lets that organization\'s users connect their mailboxes without Google\'s app verification or its security assessment. Only accounts in that Workspace organization can connect; a mailbox outside it would need an External screen, which Google has to verify first.\n3. As a staff account on your install, turn Sequences on for the organization that will use it: grant the Sequences entitlement and the releaseoutreach flag in the entitlement editor, or turn releaseoutreach on for every organization under Feature flags.'
4297
+ },
4284
4298
  {
4285
4299
  path: '/content-and-data/crm/sequences',
4286
4300
  title: 'Sequences',
@@ -5406,14 +5420,14 @@ export const ASSIST_DOCS_INDEX = [
5406
5420
  title: 'Publisher handbook',
5407
5421
  heading: 'Before your first publish',
5408
5422
  anchor: '#before-your-first-publish',
5409
- text: '1. Publisher profile (Marketplace → Profile) — your handle and display name appear on every listing. Publishing is organization-owned: the listing belongs to your organization, not your personal account.\n2. Publisher agreement (Marketplace → Profile) — accept it once, on behalf of the organization. See The publisher agreement.\n3. Plan: publishing requires a Pro plan.\n4. Payouts (paid listings only): complete Stripe Connect onboarding from Marketplace → Payouts. The platform fee is 20% (30% on free plans).'
5423
+ text: '1. Publisher profile (Marketplace → Profile) — your handle and display name appear on every listing. Publishing is organization-owned: the listing belongs to your organization, not your personal account.\n2. Publisher agreement — accept it once, on behalf of the organization. It is offered wherever you start a publish, and it is always on Marketplace → Profile. See The publisher agreement.\n3. Plan: publishing requires a Pro plan.\n4. Payouts (paid listings only): complete Stripe Connect onboarding from Marketplace → Payouts. The platform fee is 20% (30% on free plans).'
5410
5424
  },
5411
5425
  {
5412
5426
  path: '/developers/plugins/publishing/publisher-handbook',
5413
5427
  title: 'Publisher handbook',
5414
5428
  heading: 'The publisher agreement',
5415
5429
  anchor: '#the-publisher-agreement',
5416
- text: 'Your organization — not you personally — is the publishing party, so the organization accepts the Marketplace Publisher Agreement once, from Marketplace → Profile. Only an owner or admin can accept it, because only they can bind the organization, and we record who accepted it and when.\nYou can read the agreement in full at aglyn.com/legal/marketplace-publisher-agreement, alongside the rest of the legal center. The version in force is stated at the top of that page, and it is the same string the panel records against your acceptance.\nIt is a different thing from the pre-publish checklist, and they are not interchangeable:\n| | Publisher agreement | Pre-publish checklist |\n| About | The relationship | The bytes in this bundle |\n| Scope | Your organization | One version |\n| Asked | Once, and again when the terms change | Every publish, including a republish of the same version number |\nThe summary shown above the accept button is the part that tends to surprise people later — the license you grant us to host, verify and distribute; what you warrant about each version; that you cannot recall code already installed; that we can disable a version everywhere without notice if it looks dangerous; that review is a safety screen and not an endorsement; and that on paid listings we process the sale, pay your share into your own Stripe Connect account less a platform fee, and collect and remit sales tax — while refunds, chargebacks and support on your artifacts stay with you. Read the full agreement before accepting.\nIf we change the agreement, publishing stops until someone who can bind your organization reads and accepts the new version. An older acceptance is never carried forward — that is the whole reason the agreement is versioned. Nothing already published is affected, and re'
5430
+ text: 'Your organization — not you personally — is the publishing party, so the organization accepts the Marketplace Publisher Agreement once. Only an owner or admin can accept it, because only they can bind the organization, and we record who accepted it and when.\nYou do not have to go looking for it. When your organization has not accepted the current version, the agreement opens in a dialog wherever you are publishing — the plugin publish page, or the publish dialog for a component, layout, site template, theme, email template or dataset schema — as soon as you open it, and again if you submit without accepting. Accepting there records the same acceptance as Marketplace → Profile does, and the publish you started then goes ahead with everything you filled in. If you are not an owner or admin, the dialog names the people in your organization who can accept it.\nYou can read the agreement in full at aglyn.com/legal/marketplace-publisher-agreement, alongside the rest of the legal center. The version in force is stated at the top of that page, and it is the same string the panel records against your acceptance.\nIt is a different thing from the pre-publish checklist, and they are not interchangeable:\n| | Publisher agreement | Pre-publish checklist |\n| About | The relationship | The bytes in this bundle |\n| Scope | Your organization | One version |\n| Asked | Once, and again when the terms change | Every publish, including a republish of the same version number |\nThe summary shown above the accept button is the part that tends to surprise people later — the license you grant us to host, verify and distribute; what you warrant about each version; that you cannot recall code already installed; that we can disable a version everywhere without notice if it looks dangerous; that review '
5417
5431
  },
5418
5432
  {
5419
5433
  path: '/developers/plugins/publishing/publisher-handbook',
@@ -5483,7 +5497,7 @@ export const ASSIST_DOCS_INDEX = [
5483
5497
  title: 'Extension-point catalog',
5484
5498
  heading: '',
5485
5499
  anchor: '',
5486
- text: 'Extension-point catalog\nThe surface matrix: what a plugin can extend, from which entry (barrel = client, /server = API process), and when it runs.\n| Extension point | Entry | Reaches | Runs |\n| Canvas components (defineUiFeatureBundle) | barrel (site) | Besigner + published sites | Editor gates / SSR-suspended page load |\n| Console nav + pages (ConsoleExtension.navItems) | barrel (console) | Console host area | After the org resolves, before the shell paints |\n| Widgets (ConsoleExtension.widgets) | barrel (console) | Named console zones (dashboard, org, billing, team, staff, besigner, the assistant dock) — a widget with a column is a column of a shell-owned table | With their host page |\n| Providers (ConsoleExtension.providers) | barrel (console) | Around every console page | Once the registry is populated |\n| Zones a plugin HOSTS (definePluginZone / registerPluginZone) | barrel (console) | A position on a page the plugin owns, with the props it hands each widget carried on the token — so another plugin writes a widget for it without importing the owner | With the page that draws useConsoleWidgetSlot(); the token itself is type-only and ships nothing |\n| Staff pages (ConsoleExtension.staffPages) | barrel (staff) | The staff area — a tab in the staff strip and a page at /admin/{id} | Once the staff area has loaded its plugins, behind the staff guard |\n| Site runtimes (registerSiteRuntime) | barrel (site) | Every published page | Client render, reading enricher props |\n| Redirect resolvers / page resolvers / enrichers | /server | Tenant page pipeline | Per request, in that order; enricher errors isolated |\n| API routes (registerPluginApiRoute) | /server (tenantApi / consoleApi) | /api/ of the app whose surface registered the route: tenantApi routes answer on the published'
5500
+ text: 'Extension-point catalog\nThe surface matrix: what a plugin can extend, from which entry (barrel = client, /server = API process), and when it runs.\n| Extension point | Entry | Reaches | Runs |\n| Canvas components (defineUiFeatureBundle) | barrel (site) | Besigner + published sites | Editor gates / SSR-suspended page load |\n| Console nav + pages (ConsoleExtension.navItems) | barrel (console) | Console host area | After the org resolves, before the shell paints |\n| Widgets (ConsoleExtension.widgets) | barrel (console) | Named console zones (dashboard, org, billing, team, staff, besigner, the assistant dock) — a widget with a column is a column of a shell-owned table | With their host page |\n| Providers (ConsoleExtension.providers) | barrel (console) | Around every console page | Once the registry is populated |\n| Zones a plugin HOSTS (definePluginZone / registerPluginZone) | barrel (console) | A position on a page the plugin owns, with the props it hands each widget carried on the token — so another plugin writes a widget for it without importing the owner | With the page that draws useConsoleWidgetSlot(); the token itself is type-only and ships nothing |\n| Built-in themes (ConsoleExtension.themePresets) | barrel (console) | The theme picker on every site\'s Setup → Theme | When the theme page loads the plugins declaring hostThemePresets |\n| Staff pages (ConsoleExtension.staffPages) | barrel (staff) | The staff area — a tab in the staff strip and a page at /admin/{id} | Once the staff area has loaded its plugins, behind the staff guard |\n| Site runtimes (registerSiteRuntime) | barrel (site) | Every published page | Client render, reading enricher props |\n| Redirect resolvers / page resolvers / enrichers | /server | Tenant page pipeline | Per request, in that order; enricher'
5487
5501
  },
5488
5502
  {
5489
5503
  path: '/developers/plugins/reference/injection-zones',
@@ -7947,7 +7961,7 @@ export const ASSIST_DOCS_INDEX = [
7947
7961
  title: 'Add-ons',
7948
7962
  heading: 'What you can add',
7949
7963
  anchor: '#what-you-can-add',
7950
- text: 'Prices live on one page Per-unit add-on prices are on aglyn.com/pricing, and what YOUR workspace would pay is shown in Billing before you confirm. This page covers what each add-on does and how it is billed; restating the numbers here would just be a second copy to keep in step.\n| Add-on | What it does | How it is priced |\n| Manager seats | Workspace manager seats beyond the included count | Per seat, per month — cheaper on higher plans |\n| Collaborator seats | Per-site collaborator (teammate) seats beyond the included count | Per seat, per month — cheaper on higher plans |\n| Extra datasets | Additional shared datasets across the workspace | Per dataset, per month — cheaper on higher plans |\n| Extra sites | Publish more sites than your plan includes | Per site, per month — cheaper on higher plans |\n| POS registers | One extra point-of-sale register, assigned to one site | Flat per register, per month — the same on every plan |\n| Event Calendar | The event manager + calendar elements, workspace-wide | Flat per month — the same on every plan |\n| Aglyn AI | Generative building (rolling out) — pages, emails, campaigns, products and more — plus a monthly band of AI credits added to your plan\'s, workspace-wide | Flat per month, priced by plan — higher on higher plans, and so is the band it adds |\n- Prices are per unit per month. On annual billing, add-ons bill yearly alongside your plan (12× the monthly price) — a subscription has one billing interval.\n- POS registers also require a plan with POS (Pro and above), and each one is assigned to a specific site — see Assigning register seats.\n- Collaborator seats work the same way as POS registers: bought once for the workspace, then assigned to a site — see Assigning collaborator seats.\n- Event Calendar is a single workspace-wide'
7964
+ text: 'Prices live on one page Per-unit add-on prices are on aglyn.com/pricing, and what YOUR workspace would pay is shown in Billing before you confirm. This page covers what each add-on does and how it is billed; restating the numbers here would just be a second copy to keep in step.\n| Add-on | What it does | How it is priced |\n| Manager seats | Workspace manager seats beyond the included count | Per seat, per month — cheaper on higher plans |\n| Collaborator seats | Per-site collaborator (teammate) seats beyond the included count | Per seat, per month — cheaper on higher plans |\n| Extra datasets | Additional shared datasets across the workspace | Per dataset, per month — cheaper on higher plans |\n| Extra sites | Publish more sites than your plan includes | Per site, per month — cheaper on higher plans |\n| POS registers | One extra point-of-sale register, assigned to one site | Flat per register, per month — the same on every plan |\n| Event Calendar | The event manager + calendar elements, workspace-wide | Flat per month — the same on every plan |\n| Aglyn AI | Generative building — pages, emails, campaigns, products and more — plus a monthly band of AI credits added to your plan\'s, workspace-wide | Flat per month, priced by plan — higher on higher plans, and so is the band it adds |\n- Prices are per unit per month. On annual billing, add-ons bill yearly alongside your plan (12× the monthly price) — a subscription has one billing interval.\n- POS registers also require a plan with POS (Pro and above), and each one is assigned to a specific site — see Assigning register seats.\n- Collaborator seats work the same way as POS registers: bought once for the workspace, then assigned to a site — see Assigning collaborator seats.\n- Event Calendar is a single workspace-wide toggle, not a'
7951
7965
  },
7952
7966
  {
7953
7967
  path: '/workspace-and-billing/billing-and-plans/add-ons',
@@ -7968,7 +7982,7 @@ export const ASSIST_DOCS_INDEX = [
7968
7982
  title: 'Add-ons',
7969
7983
  heading: 'Aglyn AI',
7970
7984
  anchor: '#aglyn-ai',
7971
- text: 'Generative building is rolling out. The add-on is described here in full, but the doors that build are not open in every workspace yet. Aglyn Assist — the assistant that answers questions — is available today.\nAglyn AI is the generative add-on: with it on, the assistant builds for you — pages, components, emails, campaigns, products and more — rather than only answering questions about them. It is bought once for the workspace, on any paid plan, and applies to every member who has the permission to generate. On Starter it also unlocks the guided AI assist that Pro and up already include. What each door does is under Aglyn AI.\n- Everything it builds is a draft. The add-on cannot publish a page, change a live one or send an email. It writes drafts and unpublished versions, which a person reviews and publishes through the buttons that already exist — see the draft rule.\n- One pool, one meter. The add-on adds a band of AI credits to the band your plan already includes, every month. There is no second meter: the AI credits meter on Billing → Usage shows your plan\'s credits and the add-on\'s as one figure, and the same overage rate, stop switch and monthly ceiling apply to the whole band — see AI credits and overage.\n- Priced by plan. The add-on\'s monthly price and the credits it adds both rise with the plan. The figures are on aglyn.com/pricing and in Billing before you confirm; on annual billing it bills yearly with the plan, like every add-on. Enterprise workspaces carry generative building in their agreement instead of buying it.\n- Starter widens a band it already has. Starter includes its own monthly AI credits, and credits past them are sold at the same rate as Pro — so the stop switch and the ceiling are on its billing page with or without the add-on. Adding Aglyn AI in'
7985
+ text: 'Aglyn AI is the generative add-on: with it on, the assistant builds for you — pages, components, emails, campaigns, products and more — rather than only answering questions about them. It is bought once for the workspace, on any paid plan, and applies to every member who has the permission to generate. On Starter it also unlocks the guided AI assist that Pro and up already include. What each door does is under Aglyn AI.\n- Everything it builds is a draft. The add-on cannot publish a page, change a live one or send an email. It writes drafts and unpublished versions, which a person reviews and publishes through the buttons that already exist — see the draft rule.\n- One pool, one meter. The add-on adds a band of AI credits to the band your plan already includes, every month. There is no second meter: the AI credits meter on Billing → Usage shows your plan\'s credits and the add-on\'s as one figure, and the same overage rate, stop switch and monthly ceiling apply to the whole band — see AI credits and overage.\n- Priced by plan. The add-on\'s monthly price and the credits it adds both rise with the plan. The figures are on aglyn.com/pricing and in Billing before you confirm; on annual billing it bills yearly with the plan, like every add-on. Enterprise workspaces carry generative building in their agreement instead of buying it.\n- Starter widens a band it already has. Starter includes its own monthly AI credits, and credits past them are sold at the same rate as Pro — so the stop switch and the ceiling are on its billing page with or without the add-on. Adding Aglyn AI increases the band and opens generative building and the guided assist.\n- Free workspaces do not buy it. They generate against the monthly taste instead, which stops at its band and never bills.\n- Removing it tak'
7972
7986
  },
7973
7987
  {
7974
7988
  path: '/workspace-and-billing/billing-and-plans/add-ons',