@aglyn/plugins-ai 1.0.0-beta.143
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/LICENSE +201 -0
- package/README.md +25 -0
- package/package.json +60 -0
- package/src/index.d.ts +21 -0
- package/src/index.js +22 -0
- package/src/index.js.map +1 -0
- package/src/lib/activity/ai-activity-actions.d.ts +106 -0
- package/src/lib/activity/ai-activity-actions.js +209 -0
- package/src/lib/activity/ai-activity-actions.js.map +1 -0
- package/src/lib/activity/ai-activity.d.ts +219 -0
- package/src/lib/activity/ai-activity.js +251 -0
- package/src/lib/activity/ai-activity.js.map +1 -0
- package/src/lib/billing/ai-overage-charge.d.ts +102 -0
- package/src/lib/billing/ai-overage-charge.js +258 -0
- package/src/lib/billing/ai-overage-charge.js.map +1 -0
- package/src/lib/billing/ai-overage-close.d.ts +62 -0
- package/src/lib/billing/ai-overage-close.js +129 -0
- package/src/lib/billing/ai-overage-close.js.map +1 -0
- package/src/lib/billing/ai-overage-cutover.d.ts +63 -0
- package/src/lib/billing/ai-overage-cutover.js +114 -0
- package/src/lib/billing/ai-overage-cutover.js.map +1 -0
- package/src/lib/billing/ai-overage-events.d.ts +77 -0
- package/src/lib/billing/ai-overage-events.js +174 -0
- package/src/lib/billing/ai-overage-events.js.map +1 -0
- package/src/lib/billing/ai-overage-gate.d.ts +147 -0
- package/src/lib/billing/ai-overage-gate.js +177 -0
- package/src/lib/billing/ai-overage-gate.js.map +1 -0
- package/src/lib/billing/ai-overage-ledger.d.ts +135 -0
- package/src/lib/billing/ai-overage-ledger.js +278 -0
- package/src/lib/billing/ai-overage-ledger.js.map +1 -0
- package/src/lib/billing/ai-overage-standing-writes.d.ts +110 -0
- package/src/lib/billing/ai-overage-standing-writes.js +205 -0
- package/src/lib/billing/ai-overage-standing-writes.js.map +1 -0
- package/src/lib/billing/ai-overage-standing.d.ts +168 -0
- package/src/lib/billing/ai-overage-standing.js +215 -0
- package/src/lib/billing/ai-overage-standing.js.map +1 -0
- package/src/lib/billing/ai-overage-trigger.d.ts +30 -0
- package/src/lib/billing/ai-overage-trigger.js +76 -0
- package/src/lib/billing/ai-overage-trigger.js.map +1 -0
- package/src/lib/components/ai-allotment-editor.component.d.ts +40 -0
- package/src/lib/components/ai-allotment-editor.component.js +213 -0
- package/src/lib/components/ai-allotment-editor.component.js.map +1 -0
- package/src/lib/components/ai-assist-actions-context.d.ts +13 -0
- package/src/lib/components/ai-assist-actions-context.js +21 -0
- package/src/lib/components/ai-assist-actions-context.js.map +1 -0
- package/src/lib/components/ai-assist-provider.component.d.ts +51 -0
- package/src/lib/components/ai-assist-provider.component.js +519 -0
- package/src/lib/components/ai-assist-provider.component.js.map +1 -0
- package/src/lib/components/ai-brief-dialog.component.d.ts +56 -0
- package/src/lib/components/ai-brief-dialog.component.js +319 -0
- package/src/lib/components/ai-brief-dialog.component.js.map +1 -0
- package/src/lib/components/ai-collaborator-permissions-column.component.d.ts +32 -0
- package/src/lib/components/ai-collaborator-permissions-column.component.js +132 -0
- package/src/lib/components/ai-collaborator-permissions-column.component.js.map +1 -0
- package/src/lib/components/ai-credits-card.component.d.ts +34 -0
- package/src/lib/components/ai-credits-card.component.js +131 -0
- package/src/lib/components/ai-credits-card.component.js.map +1 -0
- package/src/lib/components/ai-credits-columns.component.d.ts +56 -0
- package/src/lib/components/ai-credits-columns.component.js +118 -0
- package/src/lib/components/ai-credits-columns.component.js.map +1 -0
- package/src/lib/components/ai-crm-email-draft.component.d.ts +17 -0
- package/src/lib/components/ai-crm-email-draft.component.js +159 -0
- package/src/lib/components/ai-crm-email-draft.component.js.map +1 -0
- package/src/lib/components/ai-crm-import-mapping.component.d.ts +20 -0
- package/src/lib/components/ai-crm-import-mapping.component.js +167 -0
- package/src/lib/components/ai-crm-import-mapping.component.js.map +1 -0
- package/src/lib/components/ai-crm-record-card.component.d.ts +27 -0
- package/src/lib/components/ai-crm-record-card.component.js +263 -0
- package/src/lib/components/ai-crm-record-card.component.js.map +1 -0
- package/src/lib/components/ai-describe-automation.component.d.ts +31 -0
- package/src/lib/components/ai-describe-automation.component.js +226 -0
- package/src/lib/components/ai-describe-automation.component.js.map +1 -0
- package/src/lib/components/ai-describe-button.component.d.ts +39 -0
- package/src/lib/components/ai-describe-button.component.js +87 -0
- package/src/lib/components/ai-describe-button.component.js.map +1 -0
- package/src/lib/components/ai-describe-page.component.d.ts +26 -0
- package/src/lib/components/ai-describe-page.component.js +18 -0
- package/src/lib/components/ai-describe-page.component.js.map +1 -0
- package/src/lib/components/ai-experiment-cards.component.d.ts +75 -0
- package/src/lib/components/ai-experiment-cards.component.js +573 -0
- package/src/lib/components/ai-experiment-cards.component.js.map +1 -0
- package/src/lib/components/ai-explain-automation.component.d.ts +31 -0
- package/src/lib/components/ai-explain-automation.component.js +265 -0
- package/src/lib/components/ai-explain-automation.component.js.map +1 -0
- package/src/lib/components/ai-insight-dialog.component.d.ts +37 -0
- package/src/lib/components/ai-insight-dialog.component.js +441 -0
- package/src/lib/components/ai-insight-dialog.component.js.map +1 -0
- package/src/lib/components/ai-job-plan.component.d.ts +46 -0
- package/src/lib/components/ai-job-plan.component.js +192 -0
- package/src/lib/components/ai-job-plan.component.js.map +1 -0
- package/src/lib/components/ai-model-selector.component.d.ts +21 -0
- package/src/lib/components/ai-model-selector.component.js +109 -0
- package/src/lib/components/ai-model-selector.component.js.map +1 -0
- package/src/lib/components/ai-page-brief-dialog.component.d.ts +29 -0
- package/src/lib/components/ai-page-brief-dialog.component.js +27 -0
- package/src/lib/components/ai-page-brief-dialog.component.js.map +1 -0
- package/src/lib/components/ai-permissions-on-host.component.d.ts +55 -0
- package/src/lib/components/ai-permissions-on-host.component.js +91 -0
- package/src/lib/components/ai-permissions-on-host.component.js.map +1 -0
- package/src/lib/components/ai-product-copy-card.component.d.ts +25 -0
- package/src/lib/components/ai-product-copy-card.component.js +328 -0
- package/src/lib/components/ai-product-copy-card.component.js.map +1 -0
- package/src/lib/components/ai-product-import-option.component.d.ts +14 -0
- package/src/lib/components/ai-product-import-option.component.js +58 -0
- package/src/lib/components/ai-product-import-option.component.js.map +1 -0
- package/src/lib/components/ai-products-hub-card.component.d.ts +15 -0
- package/src/lib/components/ai-products-hub-card.component.js +418 -0
- package/src/lib/components/ai-products-hub-card.component.js.map +1 -0
- package/src/lib/components/ai-products-proposals.component.d.ts +19 -0
- package/src/lib/components/ai-products-proposals.component.js +547 -0
- package/src/lib/components/ai-products-proposals.component.js.map +1 -0
- package/src/lib/components/ai-save-as-component.component.d.ts +38 -0
- package/src/lib/components/ai-save-as-component.component.js +231 -0
- package/src/lib/components/ai-save-as-component.component.js.map +1 -0
- package/src/lib/components/ai-seo-audit-card.component.d.ts +9 -0
- package/src/lib/components/ai-seo-audit-card.component.js +620 -0
- package/src/lib/components/ai-seo-audit-card.component.js.map +1 -0
- package/src/lib/components/ai-seo-fields-card.component.d.ts +10 -0
- package/src/lib/components/ai-seo-fields-card.component.js +453 -0
- package/src/lib/components/ai-seo-fields-card.component.js.map +1 -0
- package/src/lib/components/ai-site-batch-card.component.d.ts +32 -0
- package/src/lib/components/ai-site-batch-card.component.js +531 -0
- package/src/lib/components/ai-site-batch-card.component.js.map +1 -0
- package/src/lib/components/ai-site-seo-start-card.component.d.ts +26 -0
- package/src/lib/components/ai-site-seo-start-card.component.js +178 -0
- package/src/lib/components/ai-site-seo-start-card.component.js.map +1 -0
- package/src/lib/components/ai-site-start-card.component.d.ts +19 -0
- package/src/lib/components/ai-site-start-card.component.js +348 -0
- package/src/lib/components/ai-site-start-card.component.js.map +1 -0
- package/src/lib/components/ai-template-collection-field.component.d.ts +32 -0
- package/src/lib/components/ai-template-collection-field.component.js +63 -0
- package/src/lib/components/ai-template-collection-field.component.js.map +1 -0
- package/src/lib/components/ai-theme-proposal-card.component.d.ts +6 -0
- package/src/lib/components/ai-theme-proposal-card.component.js +619 -0
- package/src/lib/components/ai-theme-proposal-card.component.js.map +1 -0
- package/src/lib/components/ai-usage-strip.component.d.ts +27 -0
- package/src/lib/components/ai-usage-strip.component.js +145 -0
- package/src/lib/components/ai-usage-strip.component.js.map +1 -0
- package/src/lib/components/assist-edit-canvas.d.ts +169 -0
- package/src/lib/components/assist-edit-canvas.js +636 -0
- package/src/lib/components/assist-edit-canvas.js.map +1 -0
- package/src/lib/components/assist-edit-card.component.d.ts +16 -0
- package/src/lib/components/assist-edit-card.component.js +181 -0
- package/src/lib/components/assist-edit-card.component.js.map +1 -0
- package/src/lib/components/assist-jobs-drawer.component.d.ts +72 -0
- package/src/lib/components/assist-jobs-drawer.component.js +626 -0
- package/src/lib/components/assist-jobs-drawer.component.js.map +1 -0
- package/src/lib/components/assist-panel.component.d.ts +136 -0
- package/src/lib/components/assist-panel.component.js +1099 -0
- package/src/lib/components/assist-panel.component.js.map +1 -0
- package/src/lib/components/assist-signals-page.component.d.ts +3 -0
- package/src/lib/components/assist-signals-page.component.js +1017 -0
- package/src/lib/components/assist-signals-page.component.js.map +1 -0
- package/src/lib/components/besigner-ai-controls.component.d.ts +29 -0
- package/src/lib/components/besigner-ai-controls.component.js +81 -0
- package/src/lib/components/besigner-ai-controls.component.js.map +1 -0
- package/src/lib/components/billing-ai-allotments.component.d.ts +36 -0
- package/src/lib/components/billing-ai-allotments.component.js +486 -0
- package/src/lib/components/billing-ai-allotments.component.js.map +1 -0
- package/src/lib/components/billing-ai-top-users.component.d.ts +44 -0
- package/src/lib/components/billing-ai-top-users.component.js +304 -0
- package/src/lib/components/billing-ai-top-users.component.js.map +1 -0
- package/src/lib/components/billing-assist-overage-card.component.d.ts +69 -0
- package/src/lib/components/billing-assist-overage-card.component.js +437 -0
- package/src/lib/components/billing-assist-overage-card.component.js.map +1 -0
- package/src/lib/components/host-ai-allotments.component.d.ts +40 -0
- package/src/lib/components/host-ai-allotments.component.js +239 -0
- package/src/lib/components/host-ai-allotments.component.js.map +1 -0
- package/src/lib/components/member-ai-allotment-card.component.d.ts +28 -0
- package/src/lib/components/member-ai-allotment-card.component.js +172 -0
- package/src/lib/components/member-ai-allotment-card.component.js.map +1 -0
- package/src/lib/components/member-ai-usage-card.component.d.ts +28 -0
- package/src/lib/components/member-ai-usage-card.component.js +240 -0
- package/src/lib/components/member-ai-usage-card.component.js.map +1 -0
- package/src/lib/components/staff-org-ai-card.component.d.ts +17 -0
- package/src/lib/components/staff-org-ai-card.component.js +739 -0
- package/src/lib/components/staff-org-ai-card.component.js.map +1 -0
- package/src/lib/components/staff-org-usage-ai-columns.component.d.ts +41 -0
- package/src/lib/components/staff-org-usage-ai-columns.component.js +65 -0
- package/src/lib/components/staff-org-usage-ai-columns.component.js.map +1 -0
- package/src/lib/components/staff-orgs-ai-spend-column.component.d.ts +28 -0
- package/src/lib/components/staff-orgs-ai-spend-column.component.js +89 -0
- package/src/lib/components/staff-orgs-ai-spend-column.component.js.map +1 -0
- package/src/lib/components/staff-user-ai-usage-card.component.d.ts +27 -0
- package/src/lib/components/staff-user-ai-usage-card.component.js +183 -0
- package/src/lib/components/staff-user-ai-usage-card.component.js.map +1 -0
- package/src/lib/components/use-ai-allotments.d.ts +49 -0
- package/src/lib/components/use-ai-allotments.js +171 -0
- package/src/lib/components/use-ai-allotments.js.map +1 -0
- package/src/lib/components/use-ai-crm-answer.d.ts +50 -0
- package/src/lib/components/use-ai-crm-answer.js +220 -0
- package/src/lib/components/use-ai-crm-answer.js.map +1 -0
- package/src/lib/components/use-ai-job-run.d.ts +51 -0
- package/src/lib/components/use-ai-job-run.js +176 -0
- package/src/lib/components/use-ai-job-run.js.map +1 -0
- package/src/lib/components/use-ai-model-choice.d.ts +47 -0
- package/src/lib/components/use-ai-model-choice.js +150 -0
- package/src/lib/components/use-ai-model-choice.js.map +1 -0
- package/src/lib/components/use-ai-products-jobs.d.ts +36 -0
- package/src/lib/components/use-ai-products-jobs.js +190 -0
- package/src/lib/components/use-ai-products-jobs.js.map +1 -0
- package/src/lib/components/use-ai-usage-meter.d.ts +11 -0
- package/src/lib/components/use-ai-usage-meter.js +96 -0
- package/src/lib/components/use-ai-usage-meter.js.map +1 -0
- package/src/lib/components/use-org-ai-usage.d.ts +42 -0
- package/src/lib/components/use-org-ai-usage.js +181 -0
- package/src/lib/components/use-org-ai-usage.js.map +1 -0
- package/src/lib/components/use-staff-orgs-ai-spend.d.ts +18 -0
- package/src/lib/components/use-staff-orgs-ai-spend.js +127 -0
- package/src/lib/components/use-staff-orgs-ai-spend.js.map +1 -0
- package/src/lib/constants.d.ts +24 -0
- package/src/lib/constants.js +23 -0
- package/src/lib/constants.js.map +1 -0
- package/src/lib/declarations.d.ts +48 -0
- package/src/lib/declarations.js +129 -0
- package/src/lib/declarations.js.map +1 -0
- package/src/lib/declarations.server.d.ts +35 -0
- package/src/lib/declarations.server.js +138 -0
- package/src/lib/declarations.server.js.map +1 -0
- package/src/lib/insights/ai-figure-readers.d.ts +90 -0
- package/src/lib/insights/ai-figure-readers.js +863 -0
- package/src/lib/insights/ai-figure-readers.js.map +1 -0
- package/src/lib/insights/ai-insight-digest.d.ts +165 -0
- package/src/lib/insights/ai-insight-digest.js +363 -0
- package/src/lib/insights/ai-insight-digest.js.map +1 -0
- package/src/lib/insights/ai-insight-readers.d.ts +71 -0
- package/src/lib/insights/ai-insight-readers.js +141 -0
- package/src/lib/insights/ai-insight-readers.js.map +1 -0
- package/src/lib/jobs/ai-crm-access.d.ts +61 -0
- package/src/lib/jobs/ai-crm-access.js +94 -0
- package/src/lib/jobs/ai-crm-access.js.map +1 -0
- package/src/lib/jobs/ai-email-bindings.d.ts +97 -0
- package/src/lib/jobs/ai-email-bindings.js +147 -0
- package/src/lib/jobs/ai-email-bindings.js.map +1 -0
- package/src/lib/jobs/ai-job-admission.d.ts +82 -0
- package/src/lib/jobs/ai-job-admission.js +45 -0
- package/src/lib/jobs/ai-job-admission.js.map +1 -0
- package/src/lib/jobs/ai-job-budget.d.ts +167 -0
- package/src/lib/jobs/ai-job-budget.js +161 -0
- package/src/lib/jobs/ai-job-budget.js.map +1 -0
- package/src/lib/jobs/ai-job-campaign-step.d.ts +108 -0
- package/src/lib/jobs/ai-job-campaign-step.js +340 -0
- package/src/lib/jobs/ai-job-campaign-step.js.map +1 -0
- package/src/lib/jobs/ai-job-component-checks.d.ts +74 -0
- package/src/lib/jobs/ai-job-component-checks.js +442 -0
- package/src/lib/jobs/ai-job-component-checks.js.map +1 -0
- package/src/lib/jobs/ai-job-component-step.d.ts +75 -0
- package/src/lib/jobs/ai-job-component-step.js +262 -0
- package/src/lib/jobs/ai-job-component-step.js.map +1 -0
- package/src/lib/jobs/ai-job-crm-step.d.ts +192 -0
- package/src/lib/jobs/ai-job-crm-step.js +734 -0
- package/src/lib/jobs/ai-job-crm-step.js.map +1 -0
- package/src/lib/jobs/ai-job-draft-ids.d.ts +62 -0
- package/src/lib/jobs/ai-job-draft-ids.js +132 -0
- package/src/lib/jobs/ai-job-draft-ids.js.map +1 -0
- package/src/lib/jobs/ai-job-drafts.d.ts +304 -0
- package/src/lib/jobs/ai-job-drafts.js +557 -0
- package/src/lib/jobs/ai-job-drafts.js.map +1 -0
- package/src/lib/jobs/ai-job-email-step.d.ts +195 -0
- package/src/lib/jobs/ai-job-email-step.js +547 -0
- package/src/lib/jobs/ai-job-email-step.js.map +1 -0
- package/src/lib/jobs/ai-job-experiment-step.d.ts +105 -0
- package/src/lib/jobs/ai-job-experiment-step.js +445 -0
- package/src/lib/jobs/ai-job-experiment-step.js.map +1 -0
- package/src/lib/jobs/ai-job-form-step.d.ts +250 -0
- package/src/lib/jobs/ai-job-form-step.js +634 -0
- package/src/lib/jobs/ai-job-form-step.js.map +1 -0
- package/src/lib/jobs/ai-job-generation.d.ts +114 -0
- package/src/lib/jobs/ai-job-generation.js +384 -0
- package/src/lib/jobs/ai-job-generation.js.map +1 -0
- package/src/lib/jobs/ai-job-insight-budget.d.ts +41 -0
- package/src/lib/jobs/ai-job-insight-budget.js +46 -0
- package/src/lib/jobs/ai-job-insight-budget.js.map +1 -0
- package/src/lib/jobs/ai-job-insight-step.d.ts +58 -0
- package/src/lib/jobs/ai-job-insight-step.js +350 -0
- package/src/lib/jobs/ai-job-insight-step.js.map +1 -0
- package/src/lib/jobs/ai-job-layout-step.d.ts +103 -0
- package/src/lib/jobs/ai-job-layout-step.js +340 -0
- package/src/lib/jobs/ai-job-layout-step.js.map +1 -0
- package/src/lib/jobs/ai-job-page-budget.d.ts +57 -0
- package/src/lib/jobs/ai-job-page-budget.js +60 -0
- package/src/lib/jobs/ai-job-page-budget.js.map +1 -0
- package/src/lib/jobs/ai-job-page-sections.d.ts +150 -0
- package/src/lib/jobs/ai-job-page-sections.js +450 -0
- package/src/lib/jobs/ai-job-page-sections.js.map +1 -0
- package/src/lib/jobs/ai-job-page-step.d.ts +198 -0
- package/src/lib/jobs/ai-job-page-step.js +667 -0
- package/src/lib/jobs/ai-job-page-step.js.map +1 -0
- package/src/lib/jobs/ai-job-plan-conformance.d.ts +107 -0
- package/src/lib/jobs/ai-job-plan-conformance.js +164 -0
- package/src/lib/jobs/ai-job-plan-conformance.js.map +1 -0
- package/src/lib/jobs/ai-job-plan-step.d.ts +196 -0
- package/src/lib/jobs/ai-job-plan-step.js +458 -0
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -0
- package/src/lib/jobs/ai-job-plugin-drafts.d.ts +76 -0
- package/src/lib/jobs/ai-job-plugin-drafts.js +91 -0
- package/src/lib/jobs/ai-job-plugin-drafts.js.map +1 -0
- package/src/lib/jobs/ai-job-products-step.d.ts +106 -0
- package/src/lib/jobs/ai-job-products-step.js +436 -0
- package/src/lib/jobs/ai-job-products-step.js.map +1 -0
- package/src/lib/jobs/ai-job-seo-budget.d.ts +52 -0
- package/src/lib/jobs/ai-job-seo-budget.js +63 -0
- package/src/lib/jobs/ai-job-seo-budget.js.map +1 -0
- package/src/lib/jobs/ai-job-seo-step.d.ts +145 -0
- package/src/lib/jobs/ai-job-seo-step.js +809 -0
- package/src/lib/jobs/ai-job-seo-step.js.map +1 -0
- package/src/lib/jobs/ai-job-site-step.d.ts +252 -0
- package/src/lib/jobs/ai-job-site-step.js +538 -0
- package/src/lib/jobs/ai-job-site-step.js.map +1 -0
- package/src/lib/jobs/ai-job-template-step.d.ts +105 -0
- package/src/lib/jobs/ai-job-template-step.js +391 -0
- package/src/lib/jobs/ai-job-template-step.js.map +1 -0
- package/src/lib/jobs/ai-job-text-step.d.ts +125 -0
- package/src/lib/jobs/ai-job-text-step.js +128 -0
- package/src/lib/jobs/ai-job-text-step.js.map +1 -0
- package/src/lib/jobs/ai-job-theme-budget.d.ts +38 -0
- package/src/lib/jobs/ai-job-theme-budget.js +43 -0
- package/src/lib/jobs/ai-job-theme-budget.js.map +1 -0
- package/src/lib/jobs/ai-job-theme-step.d.ts +115 -0
- package/src/lib/jobs/ai-job-theme-step.js +337 -0
- package/src/lib/jobs/ai-job-theme-step.js.map +1 -0
- package/src/lib/jobs/ai-job-workflow-step.d.ts +139 -0
- package/src/lib/jobs/ai-job-workflow-step.js +530 -0
- package/src/lib/jobs/ai-job-workflow-step.js.map +1 -0
- package/src/lib/jobs/ai-jobs-beat.d.ts +78 -0
- package/src/lib/jobs/ai-jobs-beat.js +93 -0
- package/src/lib/jobs/ai-jobs-beat.js.map +1 -0
- package/src/lib/jobs/ai-jobs-pause.d.ts +38 -0
- package/src/lib/jobs/ai-jobs-pause.js +45 -0
- package/src/lib/jobs/ai-jobs-pause.js.map +1 -0
- package/src/lib/jobs/ai-jobs.d.ts +558 -0
- package/src/lib/jobs/ai-jobs.js +1410 -0
- package/src/lib/jobs/ai-jobs.js.map +1 -0
- package/src/lib/jobs/ai-media-asset-server.d.ts +34 -0
- package/src/lib/jobs/ai-media-asset-server.js +34 -0
- package/src/lib/jobs/ai-media-asset-server.js.map +1 -0
- package/src/lib/jobs/ai-media-asset.d.ts +59 -0
- package/src/lib/jobs/ai-media-asset.js +86 -0
- package/src/lib/jobs/ai-media-asset.js.map +1 -0
- package/src/lib/jobs/ai-product-image.d.ts +78 -0
- package/src/lib/jobs/ai-product-image.js +113 -0
- package/src/lib/jobs/ai-product-image.js.map +1 -0
- package/src/lib/jobs/ai-theme-brand-inputs.d.ts +125 -0
- package/src/lib/jobs/ai-theme-brand-inputs.js +378 -0
- package/src/lib/jobs/ai-theme-brand-inputs.js.map +1 -0
- package/src/lib/jobs/ai-theme-brand-server.d.ts +33 -0
- package/src/lib/jobs/ai-theme-brand-server.js +33 -0
- package/src/lib/jobs/ai-theme-brand-server.js.map +1 -0
- package/src/lib/jobs/ai-workflow-records.d.ts +84 -0
- package/src/lib/jobs/ai-workflow-records.js +158 -0
- package/src/lib/jobs/ai-workflow-records.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-free-page-built-recording.d.ts +31 -0
- package/src/lib/jobs/fixtures/ai-free-page-built-recording.js +367 -0
- package/src/lib/jobs/fixtures/ai-free-page-built-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-free-page-recording.d.ts +69 -0
- package/src/lib/jobs/fixtures/ai-free-page-recording.js +442 -0
- package/src/lib/jobs/fixtures/ai-free-page-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-page-briefs.d.ts +146 -0
- package/src/lib/jobs/fixtures/ai-page-briefs.js +1850 -0
- package/src/lib/jobs/fixtures/ai-page-briefs.js.map +1 -0
- package/src/lib/model/ai-allotments.d.ts +208 -0
- package/src/lib/model/ai-allotments.js +269 -0
- package/src/lib/model/ai-allotments.js.map +1 -0
- package/src/lib/model/ai-automation-draft.d.ts +74 -0
- package/src/lib/model/ai-automation-draft.js +310 -0
- package/src/lib/model/ai-automation-draft.js.map +1 -0
- package/src/lib/model/ai-automation-outline.d.ts +50 -0
- package/src/lib/model/ai-automation-outline.js +262 -0
- package/src/lib/model/ai-automation-outline.js.map +1 -0
- package/src/lib/model/ai-build-plan.d.ts +197 -0
- package/src/lib/model/ai-build-plan.js +438 -0
- package/src/lib/model/ai-build-plan.js.map +1 -0
- package/src/lib/model/ai-crm.d.ts +237 -0
- package/src/lib/model/ai-crm.js +225 -0
- package/src/lib/model/ai-crm.js.map +1 -0
- package/src/lib/model/ai-experiment-proposal.d.ts +68 -0
- package/src/lib/model/ai-experiment-proposal.js +146 -0
- package/src/lib/model/ai-experiment-proposal.js.map +1 -0
- package/src/lib/model/ai-experiment.d.ts +309 -0
- package/src/lib/model/ai-experiment.js +395 -0
- package/src/lib/model/ai-experiment.js.map +1 -0
- package/src/lib/model/ai-insight.d.ts +178 -0
- package/src/lib/model/ai-insight.js +201 -0
- package/src/lib/model/ai-insight.js.map +1 -0
- package/src/lib/model/ai-jobs.types.d.ts +412 -0
- package/src/lib/model/ai-jobs.types.js +42 -0
- package/src/lib/model/ai-jobs.types.js.map +1 -0
- package/src/lib/model/ai-page-job.d.ts +92 -0
- package/src/lib/model/ai-page-job.js +159 -0
- package/src/lib/model/ai-page-job.js.map +1 -0
- package/src/lib/model/ai-permissions.d.ts +49 -0
- package/src/lib/model/ai-permissions.js +97 -0
- package/src/lib/model/ai-permissions.js.map +1 -0
- package/src/lib/model/ai-plan-capabilities.d.ts +139 -0
- package/src/lib/model/ai-plan-capabilities.js +149 -0
- package/src/lib/model/ai-plan-capabilities.js.map +1 -0
- package/src/lib/model/ai-products.d.ts +251 -0
- package/src/lib/model/ai-products.js +253 -0
- package/src/lib/model/ai-products.js.map +1 -0
- package/src/lib/model/ai-seo.d.ts +208 -0
- package/src/lib/model/ai-seo.js +150 -0
- package/src/lib/model/ai-seo.js.map +1 -0
- package/src/lib/model/ai-site-inventory.d.ts +164 -0
- package/src/lib/model/ai-site-inventory.js +145 -0
- package/src/lib/model/ai-site-inventory.js.map +1 -0
- package/src/lib/model/ai-site-job.d.ts +247 -0
- package/src/lib/model/ai-site-job.js +314 -0
- package/src/lib/model/ai-site-job.js.map +1 -0
- package/src/lib/model/ai-site-start-seo.d.ts +103 -0
- package/src/lib/model/ai-site-start-seo.js +154 -0
- package/src/lib/model/ai-site-start-seo.js.map +1 -0
- package/src/lib/model/ai-site-start.d.ts +122 -0
- package/src/lib/model/ai-site-start.js +159 -0
- package/src/lib/model/ai-site-start.js.map +1 -0
- package/src/lib/model/ai-site-switch.d.ts +56 -0
- package/src/lib/model/ai-site-switch.js +73 -0
- package/src/lib/model/ai-site-switch.js.map +1 -0
- package/src/lib/model/ai-storefront-claims.d.ts +70 -0
- package/src/lib/model/ai-storefront-claims.js +130 -0
- package/src/lib/model/ai-storefront-claims.js.map +1 -0
- package/src/lib/model/ai-template-subjects.d.ts +82 -0
- package/src/lib/model/ai-template-subjects.js +136 -0
- package/src/lib/model/ai-template-subjects.js.map +1 -0
- package/src/lib/model/ai-theme-proposal.d.ts +210 -0
- package/src/lib/model/ai-theme-proposal.js +506 -0
- package/src/lib/model/ai-theme-proposal.js.map +1 -0
- package/src/lib/model/ai-tokens.d.ts +96 -0
- package/src/lib/model/ai-tokens.js +117 -0
- package/src/lib/model/ai-tokens.js.map +1 -0
- package/src/lib/model/ai-usage-by-user.d.ts +120 -0
- package/src/lib/model/ai-usage-by-user.js +139 -0
- package/src/lib/model/ai-usage-by-user.js.map +1 -0
- package/src/lib/model/ai-workflow-job.d.ts +111 -0
- package/src/lib/model/ai-workflow-job.js +183 -0
- package/src/lib/model/ai-workflow-job.js.map +1 -0
- package/src/lib/model/assist-edit.d.ts +261 -0
- package/src/lib/model/assist-edit.js +175 -0
- package/src/lib/model/assist-edit.js.map +1 -0
- package/src/lib/plugin-config.d.ts +33 -0
- package/src/lib/plugin-config.js +118 -0
- package/src/lib/plugin-config.js.map +1 -0
- package/src/lib/plugin.d.ts +30 -0
- package/src/lib/plugin.js +525 -0
- package/src/lib/plugin.js.map +1 -0
- package/src/lib/providers/anthropic.d.ts +84 -0
- package/src/lib/providers/anthropic.js +432 -0
- package/src/lib/providers/anthropic.js.map +1 -0
- package/src/lib/providers/catalog.d.ts +197 -0
- package/src/lib/providers/catalog.js +312 -0
- package/src/lib/providers/catalog.js.map +1 -0
- package/src/lib/providers/contract.d.ts +464 -0
- package/src/lib/providers/contract.js +274 -0
- package/src/lib/providers/contract.js.map +1 -0
- package/src/lib/providers/model-choice.d.ts +119 -0
- package/src/lib/providers/model-choice.js +416 -0
- package/src/lib/providers/model-choice.js.map +1 -0
- package/src/lib/providers/openai-compatible.d.ts +58 -0
- package/src/lib/providers/openai-compatible.js +361 -0
- package/src/lib/providers/openai-compatible.js.map +1 -0
- package/src/lib/providers/registry.d.ts +49 -0
- package/src/lib/providers/registry.js +71 -0
- package/src/lib/providers/registry.js.map +1 -0
- package/src/lib/providers/routing.d.ts +98 -0
- package/src/lib/providers/routing.js +450 -0
- package/src/lib/providers/routing.js.map +1 -0
- package/src/lib/runtime/ai-abuse-guards.d.ts +113 -0
- package/src/lib/runtime/ai-abuse-guards.js +148 -0
- package/src/lib/runtime/ai-abuse-guards.js.map +1 -0
- package/src/lib/runtime/ai-component-bindings.d.ts +67 -0
- package/src/lib/runtime/ai-component-bindings.js +106 -0
- package/src/lib/runtime/ai-component-bindings.js.map +1 -0
- package/src/lib/runtime/ai-device-audit.d.ts +109 -0
- package/src/lib/runtime/ai-device-audit.js +97 -0
- package/src/lib/runtime/ai-device-audit.js.map +1 -0
- package/src/lib/runtime/ai-doctrine-validators.d.ts +720 -0
- package/src/lib/runtime/ai-doctrine-validators.js +3133 -0
- package/src/lib/runtime/ai-doctrine-validators.js.map +1 -0
- package/src/lib/runtime/ai-doctrine.d.ts +372 -0
- package/src/lib/runtime/ai-doctrine.js +944 -0
- package/src/lib/runtime/ai-doctrine.js.map +1 -0
- package/src/lib/runtime/ai-eval-live.d.ts +321 -0
- package/src/lib/runtime/ai-eval-live.js +1257 -0
- package/src/lib/runtime/ai-eval-live.js.map +1 -0
- package/src/lib/runtime/ai-eval-memory-firestore.d.ts +51 -0
- package/src/lib/runtime/ai-eval-memory-firestore.js +183 -0
- package/src/lib/runtime/ai-eval-memory-firestore.js.map +1 -0
- package/src/lib/runtime/ai-eval.d.ts +441 -0
- package/src/lib/runtime/ai-eval.js +1151 -0
- package/src/lib/runtime/ai-eval.js.map +1 -0
- package/src/lib/runtime/ai-gate.d.ts +130 -0
- package/src/lib/runtime/ai-gate.js +272 -0
- package/src/lib/runtime/ai-gate.js.map +1 -0
- package/src/lib/runtime/ai-generation-bounds.d.ts +24 -0
- package/src/lib/runtime/ai-generation-bounds.js +23 -0
- package/src/lib/runtime/ai-generation-bounds.js.map +1 -0
- package/src/lib/runtime/ai-insight-check.d.ts +76 -0
- package/src/lib/runtime/ai-insight-check.js +281 -0
- package/src/lib/runtime/ai-insight-check.js.map +1 -0
- package/src/lib/runtime/ai-node-tree.d.ts +181 -0
- package/src/lib/runtime/ai-node-tree.js +931 -0
- package/src/lib/runtime/ai-node-tree.js.map +1 -0
- package/src/lib/runtime/ai-page-links.d.ts +79 -0
- package/src/lib/runtime/ai-page-links.js +135 -0
- package/src/lib/runtime/ai-page-links.js.map +1 -0
- package/src/lib/runtime/ai-palette.d.ts +252 -0
- package/src/lib/runtime/ai-palette.generated.d.ts +34 -0
- package/src/lib/runtime/ai-palette.generated.js +5263 -0
- package/src/lib/runtime/ai-palette.generated.js.map +1 -0
- package/src/lib/runtime/ai-palette.js +187 -0
- package/src/lib/runtime/ai-palette.js.map +1 -0
- package/src/lib/runtime/ai-products-generation.d.ts +107 -0
- package/src/lib/runtime/ai-products-generation.js +250 -0
- package/src/lib/runtime/ai-products-generation.js.map +1 -0
- package/src/lib/runtime/ai-repeated-items.d.ts +95 -0
- package/src/lib/runtime/ai-repeated-items.js +397 -0
- package/src/lib/runtime/ai-repeated-items.js.map +1 -0
- package/src/lib/runtime/ai-runtime.d.ts +148 -0
- package/src/lib/runtime/ai-runtime.js +237 -0
- package/src/lib/runtime/ai-runtime.js.map +1 -0
- package/src/lib/runtime/ai-template-examples.d.ts +71 -0
- package/src/lib/runtime/ai-template-examples.js +135 -0
- package/src/lib/runtime/ai-template-examples.js.map +1 -0
- package/src/lib/runtime/assist-answer-cache.d.ts +80 -0
- package/src/lib/runtime/assist-answer-cache.js +184 -0
- package/src/lib/runtime/assist-answer-cache.js.map +1 -0
- package/src/lib/runtime/seo-audit.d.ts +93 -0
- package/src/lib/runtime/seo-audit.js +260 -0
- package/src/lib/runtime/seo-audit.js.map +1 -0
- package/src/lib/runtime/seo-content-fixes.d.ts +41 -0
- package/src/lib/runtime/seo-content-fixes.js +168 -0
- package/src/lib/runtime/seo-content-fixes.js.map +1 -0
- package/src/lib/runtime/seo-fields.d.ts +152 -0
- package/src/lib/runtime/seo-fields.js +215 -0
- package/src/lib/runtime/seo-fields.js.map +1 -0
- package/src/lib/runtime/seo-page-facts.d.ts +61 -0
- package/src/lib/runtime/seo-page-facts.js +150 -0
- package/src/lib/runtime/seo-page-facts.js.map +1 -0
- package/src/lib/runtime/site-inventory.d.ts +63 -0
- package/src/lib/runtime/site-inventory.js +230 -0
- package/src/lib/runtime/site-inventory.js.map +1 -0
- package/src/lib/server/ai-admin-org.d.ts +33 -0
- package/src/lib/server/ai-admin-org.js +381 -0
- package/src/lib/server/ai-admin-org.js.map +1 -0
- package/src/lib/server/ai-admin-orgs-spend.d.ts +40 -0
- package/src/lib/server/ai-admin-orgs-spend.js +129 -0
- package/src/lib/server/ai-admin-orgs-spend.js.map +1 -0
- package/src/lib/server/ai-admin-overage.d.ts +19 -0
- package/src/lib/server/ai-admin-overage.js +246 -0
- package/src/lib/server/ai-admin-overage.js.map +1 -0
- package/src/lib/server/ai-admin-signals.d.ts +34 -0
- package/src/lib/server/ai-admin-signals.js +330 -0
- package/src/lib/server/ai-admin-signals.js.map +1 -0
- package/src/lib/server/ai-admin-user.d.ts +27 -0
- package/src/lib/server/ai-admin-user.js +128 -0
- package/src/lib/server/ai-admin-user.js.map +1 -0
- package/src/lib/server/ai-allotments.d.ts +27 -0
- package/src/lib/server/ai-allotments.js +544 -0
- package/src/lib/server/ai-allotments.js.map +1 -0
- package/src/lib/server/ai-assist-prompts.d.ts +102 -0
- package/src/lib/server/ai-assist-prompts.js +207 -0
- package/src/lib/server/ai-assist-prompts.js.map +1 -0
- package/src/lib/server/ai-assist.d.ts +119 -0
- package/src/lib/server/ai-assist.js +517 -0
- package/src/lib/server/ai-assist.js.map +1 -0
- package/src/lib/server/ai-crm-answer.d.ts +30 -0
- package/src/lib/server/ai-crm-answer.js +98 -0
- package/src/lib/server/ai-crm-answer.js.map +1 -0
- package/src/lib/server/ai-generate-component.d.ts +111 -0
- package/src/lib/server/ai-generate-component.js +643 -0
- package/src/lib/server/ai-generate-component.js.map +1 -0
- package/src/lib/server/ai-host-permissions.d.ts +46 -0
- package/src/lib/server/ai-host-permissions.js +204 -0
- package/src/lib/server/ai-host-permissions.js.map +1 -0
- package/src/lib/server/ai-insight-answer.d.ts +30 -0
- package/src/lib/server/ai-insight-answer.js +83 -0
- package/src/lib/server/ai-insight-answer.js.map +1 -0
- package/src/lib/server/ai-insight-digest-route.d.ts +30 -0
- package/src/lib/server/ai-insight-digest-route.js +156 -0
- package/src/lib/server/ai-insight-digest-route.js.map +1 -0
- package/src/lib/server/ai-jobs-batch.d.ts +48 -0
- package/src/lib/server/ai-jobs-batch.js +306 -0
- package/src/lib/server/ai-jobs-batch.js.map +1 -0
- package/src/lib/server/ai-jobs-beat-route.d.ts +36 -0
- package/src/lib/server/ai-jobs-beat-route.js +86 -0
- package/src/lib/server/ai-jobs-beat-route.js.map +1 -0
- package/src/lib/server/ai-jobs-cancel.d.ts +30 -0
- package/src/lib/server/ai-jobs-cancel.js +74 -0
- package/src/lib/server/ai-jobs-cancel.js.map +1 -0
- package/src/lib/server/ai-jobs-events-route.d.ts +31 -0
- package/src/lib/server/ai-jobs-events-route.js +51 -0
- package/src/lib/server/ai-jobs-events-route.js.map +1 -0
- package/src/lib/server/ai-jobs-events.d.ts +55 -0
- package/src/lib/server/ai-jobs-events.js +144 -0
- package/src/lib/server/ai-jobs-events.js.map +1 -0
- package/src/lib/server/ai-jobs-gate.d.ts +47 -0
- package/src/lib/server/ai-jobs-gate.js +106 -0
- package/src/lib/server/ai-jobs-gate.js.map +1 -0
- package/src/lib/server/ai-jobs-resume.d.ts +23 -0
- package/src/lib/server/ai-jobs-resume.js +209 -0
- package/src/lib/server/ai-jobs-resume.js.map +1 -0
- package/src/lib/server/ai-jobs-route.d.ts +32 -0
- package/src/lib/server/ai-jobs-route.js +307 -0
- package/src/lib/server/ai-jobs-route.js.map +1 -0
- package/src/lib/server/ai-models.d.ts +18 -0
- package/src/lib/server/ai-models.js +134 -0
- package/src/lib/server/ai-models.js.map +1 -0
- package/src/lib/server/ai-seo-apply.d.ts +53 -0
- package/src/lib/server/ai-seo-apply.js +294 -0
- package/src/lib/server/ai-seo-apply.js.map +1 -0
- package/src/lib/server/ai-usage.d.ts +18 -0
- package/src/lib/server/ai-usage.js +220 -0
- package/src/lib/server/ai-usage.js.map +1 -0
- package/src/lib/server/assist-chat.d.ts +234 -0
- package/src/lib/server/assist-chat.js +1446 -0
- package/src/lib/server/assist-chat.js.map +1 -0
- package/src/lib/server/assist-edit-applied.d.ts +22 -0
- package/src/lib/server/assist-edit-applied.js +239 -0
- package/src/lib/server/assist-edit-applied.js.map +1 -0
- package/src/lib/server/assist-edit.d.ts +124 -0
- package/src/lib/server/assist-edit.js +1000 -0
- package/src/lib/server/assist-edit.js.map +1 -0
- package/src/lib/server/assist-feedback.d.ts +31 -0
- package/src/lib/server/assist-feedback.js +115 -0
- package/src/lib/server/assist-feedback.js.map +1 -0
- package/src/lib/server/assist-view-context.d.ts +343 -0
- package/src/lib/server/assist-view-context.js +690 -0
- package/src/lib/server/assist-view-context.js.map +1 -0
- package/src/lib/server/billing-credits.d.ts +59 -0
- package/src/lib/server/billing-credits.js +146 -0
- package/src/lib/server/billing-credits.js.map +1 -0
- package/src/lib/server/billing-overage.d.ts +19 -0
- package/src/lib/server/billing-overage.js +337 -0
- package/src/lib/server/billing-overage.js.map +1 -0
- package/src/lib/server.d.ts +32 -0
- package/src/lib/server.js +265 -0
- package/src/lib/server.js.map +1 -0
- package/src/lib/subprocessors.d.ts +18 -0
- package/src/lib/subprocessors.js +52 -0
- package/src/lib/subprocessors.js.map +1 -0
- package/src/lib/tools/ai-component-tool.d.ts +99 -0
- package/src/lib/tools/ai-component-tool.js +369 -0
- package/src/lib/tools/ai-component-tool.js.map +1 -0
- package/src/lib/tools/ai-crm-tool.d.ts +106 -0
- package/src/lib/tools/ai-crm-tool.js +488 -0
- package/src/lib/tools/ai-crm-tool.js.map +1 -0
- package/src/lib/tools/ai-duplicate-resource-tool.d.ts +71 -0
- package/src/lib/tools/ai-duplicate-resource-tool.js +164 -0
- package/src/lib/tools/ai-duplicate-resource-tool.js.map +1 -0
- package/src/lib/tools/ai-experiment-tool.d.ts +40 -0
- package/src/lib/tools/ai-experiment-tool.js +155 -0
- package/src/lib/tools/ai-experiment-tool.js.map +1 -0
- package/src/lib/tools/ai-insight-tool.d.ts +46 -0
- package/src/lib/tools/ai-insight-tool.js +200 -0
- package/src/lib/tools/ai-insight-tool.js.map +1 -0
- package/src/lib/tools/ai-inventory-lookup-tool.d.ts +86 -0
- package/src/lib/tools/ai-inventory-lookup-tool.js +164 -0
- package/src/lib/tools/ai-inventory-lookup-tool.js.map +1 -0
- package/src/lib/tools/ai-products-tool.d.ts +65 -0
- package/src/lib/tools/ai-products-tool.js +644 -0
- package/src/lib/tools/ai-products-tool.js.map +1 -0
- package/src/lib/tools/ai-seo-tool.d.ts +162 -0
- package/src/lib/tools/ai-seo-tool.js +546 -0
- package/src/lib/tools/ai-seo-tool.js.map +1 -0
- package/src/lib/tools/ai-theme-tool.d.ts +101 -0
- package/src/lib/tools/ai-theme-tool.js +562 -0
- package/src/lib/tools/ai-theme-tool.js.map +1 -0
- package/src/lib/tools/ai-workflow-tool.d.ts +166 -0
- package/src/lib/tools/ai-workflow-tool.js +860 -0
- package/src/lib/tools/ai-workflow-tool.js.map +1 -0
- package/src/lib/usage/ai-allotment-alerts.d.ts +72 -0
- package/src/lib/usage/ai-allotment-alerts.js +157 -0
- package/src/lib/usage/ai-allotment-alerts.js.map +1 -0
- package/src/lib/usage/ai-allotments.d.ts +125 -0
- package/src/lib/usage/ai-allotments.js +239 -0
- package/src/lib/usage/ai-allotments.js.map +1 -0
- package/src/lib/usage/ai-model-sample.d.ts +36 -0
- package/src/lib/usage/ai-model-sample.js +68 -0
- package/src/lib/usage/ai-model-sample.js.map +1 -0
- package/src/lib/usage/ai-usage-alerts.d.ts +55 -0
- package/src/lib/usage/ai-usage-alerts.js +114 -0
- package/src/lib/usage/ai-usage-alerts.js.map +1 -0
- package/src/lib/usage/ai-usage-by-user.d.ts +161 -0
- package/src/lib/usage/ai-usage-by-user.js +211 -0
- package/src/lib/usage/ai-usage-by-user.js.map +1 -0
- package/src/lib/usage/ai-usage-eraser.d.ts +29 -0
- package/src/lib/usage/ai-usage-eraser.js +40 -0
- package/src/lib/usage/ai-usage-eraser.js.map +1 -0
- package/src/lib/usage/ai-usage-meter.d.ts +39 -0
- package/src/lib/usage/ai-usage-meter.js +85 -0
- package/src/lib/usage/ai-usage-meter.js.map +1 -0
- package/src/lib/usage/ai-usage-wire.d.ts +184 -0
- package/src/lib/usage/ai-usage-wire.js +98 -0
- package/src/lib/usage/ai-usage-wire.js.map +1 -0
- package/src/lib/usage/assist-ceiling.d.ts +87 -0
- package/src/lib/usage/assist-ceiling.js +110 -0
- package/src/lib/usage/assist-ceiling.js.map +1 -0
- package/src/lib/usage/assist-free-taste.d.ts +225 -0
- package/src/lib/usage/assist-free-taste.js +308 -0
- package/src/lib/usage/assist-free-taste.js.map +1 -0
- package/src/lib/usage/assist-refusals.d.ts +69 -0
- package/src/lib/usage/assist-refusals.js +79 -0
- package/src/lib/usage/assist-refusals.js.map +1 -0
- package/src/lib/usage/assist-signal-mining.d.ts +375 -0
- package/src/lib/usage/assist-signal-mining.js +344 -0
- package/src/lib/usage/assist-signal-mining.js.map +1 -0
- package/src/lib/usage/assist-usage.d.ts +571 -0
- package/src/lib/usage/assist-usage.js +978 -0
- package/src/lib/usage/assist-usage.js.map +1 -0
- package/src/lib/usage/staff-org-ai.d.ts +242 -0
- package/src/lib/usage/staff-org-ai.js +173 -0
- package/src/lib/usage/staff-org-ai.js.map +1 -0
- package/src/lib/usage/staff-org-usage-ai.d.ts +83 -0
- package/src/lib/usage/staff-org-usage-ai.js +59 -0
- package/src/lib/usage/staff-org-usage-ai.js.map +1 -0
- package/src/lib/usage/staff-orgs-ai-spend.d.ts +83 -0
- package/src/lib/usage/staff-orgs-ai-spend.js +114 -0
- package/src/lib/usage/staff-orgs-ai-spend.js.map +1 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
import { automationPlaceholder, automationPlaceholders, describeAutomationPlaceholder } from "@aglyn/aglyn/app-utils/automation-placeholders";
|
|
18
|
+
export function emptyAiAutomationRecords() {
|
|
19
|
+
return {
|
|
20
|
+
forms: [],
|
|
21
|
+
datasets: [],
|
|
22
|
+
lists: [],
|
|
23
|
+
campaigns: [],
|
|
24
|
+
workflows: [],
|
|
25
|
+
webhooks: [],
|
|
26
|
+
stages: []
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Words that say nothing about which record is meant. */ const FILLER = new Set([
|
|
30
|
+
'the',
|
|
31
|
+
'a',
|
|
32
|
+
'an',
|
|
33
|
+
'our',
|
|
34
|
+
'my',
|
|
35
|
+
'your',
|
|
36
|
+
'this',
|
|
37
|
+
'that',
|
|
38
|
+
'new',
|
|
39
|
+
'called',
|
|
40
|
+
'named'
|
|
41
|
+
]);
|
|
42
|
+
function tokens(value, noun) {
|
|
43
|
+
const nouns = new Set([
|
|
44
|
+
noun,
|
|
45
|
+
`${noun}s`
|
|
46
|
+
]);
|
|
47
|
+
return value.toLowerCase().replace(RegExp("[^\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088F\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5C-\\u0C5D\\u0C60-\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDC-\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7DC\\uA7F1-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD-\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{1032D}-\\u{10340}\\u{10342}-\\u{10349}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{10400}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10570}-\\u{1057A}\\u{1057C}-\\u{1058A}\\u{1058C}-\\u{10592}\\u{10594}-\\u{10595}\\u{10597}-\\u{105A1}\\u{105A3}-\\u{105B1}\\u{105B3}-\\u{105B9}\\u{105BB}-\\u{105BC}\\u{105C0}-\\u{105F3}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10780}-\\u{10785}\\u{10787}-\\u{107B0}\\u{107B2}-\\u{107BA}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10940}-\\u{10959}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A35}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10D00}-\\u{10D23}\\u{10D4A}-\\u{10D65}\\u{10D6F}-\\u{10D85}\\u{10E80}-\\u{10EA9}\\u{10EB0}-\\u{10EB1}\\u{10EC2}-\\u{10EC7}\\u{10F00}-\\u{10F1C}\\u{10F27}\\u{10F30}-\\u{10F45}\\u{10F70}-\\u{10F81}\\u{10FB0}-\\u{10FC4}\\u{10FE0}-\\u{10FF6}\\u{11003}-\\u{11037}\\u{11071}-\\u{11072}\\u{11075}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11144}\\u{11147}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{1123F}-\\u{11240}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11380}-\\u{11389}\\u{1138B}\\u{1138E}\\u{11390}-\\u{113B5}\\u{113B7}\\u{113D1}\\u{113D3}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{1145F}-\\u{11461}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{116B8}\\u{11700}-\\u{1171A}\\u{11740}-\\u{11746}\\u{11800}-\\u{1182B}\\u{118A0}-\\u{118DF}\\u{118FF}-\\u{11906}\\u{11909}\\u{1190C}-\\u{11913}\\u{11915}-\\u{11916}\\u{11918}-\\u{1192F}\\u{1193F}\\u{11941}\\u{119A0}-\\u{119A7}\\u{119AA}-\\u{119D0}\\u{119E1}\\u{119E3}\\u{11A00}\\u{11A0B}-\\u{11A32}\\u{11A3A}\\u{11A50}\\u{11A5C}-\\u{11A89}\\u{11A9D}\\u{11AB0}-\\u{11AF8}\\u{11BC0}-\\u{11BE0}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{11D00}-\\u{11D06}\\u{11D08}-\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D60}-\\u{11D65}\\u{11D67}-\\u{11D68}\\u{11D6A}-\\u{11D89}\\u{11D98}\\u{11DB0}-\\u{11DDB}\\u{11EE0}-\\u{11EF2}\\u{11F02}\\u{11F04}-\\u{11F10}\\u{11F12}-\\u{11F33}\\u{11FB0}\\u{12000}-\\u{12399}\\u{12480}-\\u{12543}\\u{12F90}-\\u{12FF0}\\u{13000}-\\u{1342F}\\u{13441}-\\u{13446}\\u{13460}-\\u{143FA}\\u{14400}-\\u{14646}\\u{16100}-\\u{1611D}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A70}-\\u{16ABE}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16D40}-\\u{16D6C}\\u{16E40}-\\u{16E7F}\\u{16EA0}-\\u{16EB8}\\u{16EBB}-\\u{16ED3}\\u{16F00}-\\u{16F4A}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}-\\u{16FE1}\\u{16FE3}\\u{16FF2}-\\u{16FF3}\\u{17000}-\\u{18CD5}\\u{18CFF}-\\u{18D1E}\\u{18D80}-\\u{18DF2}\\u{1AFF0}-\\u{1AFF3}\\u{1AFF5}-\\u{1AFFB}\\u{1AFFD}-\\u{1AFFE}\\u{1B000}-\\u{1B122}\\u{1B132}\\u{1B150}-\\u{1B152}\\u{1B155}\\u{1B164}-\\u{1B167}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1DF00}-\\u{1DF1E}\\u{1DF25}-\\u{1DF2A}\\u{1E030}-\\u{1E06D}\\u{1E100}-\\u{1E12C}\\u{1E137}-\\u{1E13D}\\u{1E14E}\\u{1E290}-\\u{1E2AD}\\u{1E2C0}-\\u{1E2EB}\\u{1E4D0}-\\u{1E4EB}\\u{1E5D0}-\\u{1E5ED}\\u{1E5F0}\\u{1E6C0}-\\u{1E6DE}\\u{1E6E0}-\\u{1E6E2}\\u{1E6E4}-\\u{1E6E5}\\u{1E6E7}-\\u{1E6ED}\\u{1E6F0}-\\u{1E6F4}\\u{1E6FE}-\\u{1E6FF}\\u{1E7E0}-\\u{1E7E6}\\u{1E7E8}-\\u{1E7EB}\\u{1E7ED}-\\u{1E7EE}\\u{1E7F0}-\\u{1E7FE}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1E94B}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6DF}\\u{2A700}-\\u{2B81D}\\u{2B820}-\\u{2CEAD}\\u{2CEB0}-\\u{2EBE0}\\u{2EBF0}-\\u{2EE5D}\\u{2F800}-\\u{2FA1D}\\u{30000}-\\u{3134A}\\u{31350}-\\u{33479}\\u0030-\\u0039\\u00B2-\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D58-\\u0D5E\\u0D66-\\u0D78\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u{10107}-\\u{10133}\\u{10140}-\\u{10178}\\u{1018A}-\\u{1018B}\\u{102E1}-\\u{102FB}\\u{10320}-\\u{10323}\\u{10341}\\u{1034A}\\u{103D1}-\\u{103D5}\\u{104A0}-\\u{104A9}\\u{10858}-\\u{1085F}\\u{10879}-\\u{1087F}\\u{108A7}-\\u{108AF}\\u{108FB}-\\u{108FF}\\u{10916}-\\u{1091B}\\u{109BC}-\\u{109BD}\\u{109C0}-\\u{109CF}\\u{109D2}-\\u{109FF}\\u{10A40}-\\u{10A48}\\u{10A7D}-\\u{10A7E}\\u{10A9D}-\\u{10A9F}\\u{10AEB}-\\u{10AEF}\\u{10B58}-\\u{10B5F}\\u{10B78}-\\u{10B7F}\\u{10BA9}-\\u{10BAF}\\u{10CFA}-\\u{10CFF}\\u{10D30}-\\u{10D39}\\u{10D40}-\\u{10D49}\\u{10E60}-\\u{10E7E}\\u{10F1D}-\\u{10F26}\\u{10F51}-\\u{10F54}\\u{10FC5}-\\u{10FCB}\\u{11052}-\\u{1106F}\\u{110F0}-\\u{110F9}\\u{11136}-\\u{1113F}\\u{111D0}-\\u{111D9}\\u{111E1}-\\u{111F4}\\u{112F0}-\\u{112F9}\\u{11450}-\\u{11459}\\u{114D0}-\\u{114D9}\\u{11650}-\\u{11659}\\u{116C0}-\\u{116C9}\\u{116D0}-\\u{116E3}\\u{11730}-\\u{1173B}\\u{118E0}-\\u{118F2}\\u{11950}-\\u{11959}\\u{11BF0}-\\u{11BF9}\\u{11C50}-\\u{11C6C}\\u{11D50}-\\u{11D59}\\u{11DA0}-\\u{11DA9}\\u{11DE0}-\\u{11DE9}\\u{11F50}-\\u{11F59}\\u{11FC0}-\\u{11FD4}\\u{12400}-\\u{1246E}\\u{16130}-\\u{16139}\\u{16A60}-\\u{16A69}\\u{16AC0}-\\u{16AC9}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16D70}-\\u{16D79}\\u{16E80}-\\u{16E96}\\u{16FF4}-\\u{16FF6}\\u{1CCF0}-\\u{1CCF9}\\u{1D2C0}-\\u{1D2D3}\\u{1D2E0}-\\u{1D2F3}\\u{1D360}-\\u{1D378}\\u{1D7CE}-\\u{1D7FF}\\u{1E140}-\\u{1E149}\\u{1E2F0}-\\u{1E2F9}\\u{1E4F0}-\\u{1E4F9}\\u{1E5F1}-\\u{1E5FA}\\u{1E8C7}-\\u{1E8CF}\\u{1E950}-\\u{1E959}\\u{1EC71}-\\u{1ECAB}\\u{1ECAD}-\\u{1ECAF}\\u{1ECB1}-\\u{1ECB4}\\u{1ED01}-\\u{1ED2D}\\u{1ED2F}-\\u{1ED3D}\\u{1F100}-\\u{1F10C}\\u{1FBF0}-\\u{1FBF9}]+", "gu"), ' ').split(' ').filter(Boolean).filter((word)=>!FILLER.has(word) && !nouns.has(word)).map((word)=>word.length > 3 && word.endsWith('s') && !word.endsWith('ss') ? word.slice(0, -1) : word);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The one record `words` name, or `null`: its id written whole; else the one
|
|
51
|
+
* record whose name is the same words; else the one record whose name holds
|
|
52
|
+
* every word, or whose every word the words hold. Two records that fit
|
|
53
|
+
* equally well name neither — a placeholder is better than a coin toss.
|
|
54
|
+
*/ export function aiMatchNamedRecord(words, records, noun) {
|
|
55
|
+
const wanted = words.trim();
|
|
56
|
+
if (!wanted) return null;
|
|
57
|
+
const byId = records.filter((record)=>record.id === wanted);
|
|
58
|
+
if (byId.length === 1) return byId[0];
|
|
59
|
+
const asked = tokens(wanted, noun);
|
|
60
|
+
if (!asked.length) return null;
|
|
61
|
+
const same = (record)=>{
|
|
62
|
+
const name = tokens(record.name, noun);
|
|
63
|
+
return name.length === asked.length && asked.every((word)=>name.includes(word));
|
|
64
|
+
};
|
|
65
|
+
const exact = records.filter(same);
|
|
66
|
+
if (exact.length) return exact.length === 1 ? exact[0] : null;
|
|
67
|
+
const within = records.filter((record)=>{
|
|
68
|
+
const name = tokens(record.name, noun);
|
|
69
|
+
if (!name.length) return false;
|
|
70
|
+
const [small, large] = name.length <= asked.length ? [
|
|
71
|
+
name,
|
|
72
|
+
asked
|
|
73
|
+
] : [
|
|
74
|
+
asked,
|
|
75
|
+
name
|
|
76
|
+
];
|
|
77
|
+
return small.every((word)=>large.includes(word));
|
|
78
|
+
});
|
|
79
|
+
return within.length === 1 ? within[0] : null;
|
|
80
|
+
}
|
|
81
|
+
/** A form by its id or its name, for a condition that names one. */ function formOf(value, forms) {
|
|
82
|
+
return aiMatchNamedRecord(value, forms, 'form');
|
|
83
|
+
}
|
|
84
|
+
function conditionOf(condition, records) {
|
|
85
|
+
const { field, op, value } = condition;
|
|
86
|
+
if (op === 'notEmpty' || value === null) return {
|
|
87
|
+
field,
|
|
88
|
+
op
|
|
89
|
+
};
|
|
90
|
+
if (field === 'formId') {
|
|
91
|
+
const form = formOf(value, records.forms);
|
|
92
|
+
return {
|
|
93
|
+
field,
|
|
94
|
+
op,
|
|
95
|
+
value: form ? form.id : automationPlaceholder(value)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (field === 'formName') {
|
|
99
|
+
const form = formOf(value, records.forms);
|
|
100
|
+
return {
|
|
101
|
+
field,
|
|
102
|
+
op,
|
|
103
|
+
value: form ? form.name : automationPlaceholder(value)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (field === 'stageId' || field === 'previousStageId') {
|
|
107
|
+
const stage = aiMatchNamedRecord(value, records.stages, 'stage');
|
|
108
|
+
return {
|
|
109
|
+
field,
|
|
110
|
+
op,
|
|
111
|
+
value: stage ? stage.id : automationPlaceholder(value)
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
field,
|
|
116
|
+
op,
|
|
117
|
+
value
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function guardOf(when, records) {
|
|
121
|
+
return when ? {
|
|
122
|
+
when: {
|
|
123
|
+
conditions: [
|
|
124
|
+
conditionOf(when, records)
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
} : {};
|
|
128
|
+
}
|
|
129
|
+
/** A named record as a step stores it: the id and the name, or a placeholder name and no id. */ function referenceOf(words, records, noun) {
|
|
130
|
+
const record = aiMatchNamedRecord(words != null ? words : '', records, noun);
|
|
131
|
+
return record ? {
|
|
132
|
+
id: record.id,
|
|
133
|
+
name: record.name
|
|
134
|
+
} : {
|
|
135
|
+
id: null,
|
|
136
|
+
name: automationPlaceholder(words != null ? words : '')
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function stepOf(step, records) {
|
|
140
|
+
const guard = guardOf(step.when, records);
|
|
141
|
+
switch(step.type){
|
|
142
|
+
case 'sendEmail':
|
|
143
|
+
var _step_subject, _step_body;
|
|
144
|
+
return _extends({
|
|
145
|
+
type: 'sendEmail',
|
|
146
|
+
subject: (_step_subject = step.subject) != null ? _step_subject : '',
|
|
147
|
+
body: (_step_body = step.body) != null ? _step_body : ''
|
|
148
|
+
}, step.toField ? {
|
|
149
|
+
toField: step.toField
|
|
150
|
+
} : {}, guard);
|
|
151
|
+
case 'notifyAdmins':
|
|
152
|
+
var _step_title;
|
|
153
|
+
return _extends({
|
|
154
|
+
type: 'notifyAdmins',
|
|
155
|
+
title: (_step_title = step.title) != null ? _step_title : ''
|
|
156
|
+
}, guard);
|
|
157
|
+
case 'enrollList':
|
|
158
|
+
{
|
|
159
|
+
const { id, name } = referenceOf(step.list, records.lists, 'list');
|
|
160
|
+
return _extends({
|
|
161
|
+
type: 'enrollList'
|
|
162
|
+
}, id ? {
|
|
163
|
+
listId: id
|
|
164
|
+
} : {}, {
|
|
165
|
+
listName: name
|
|
166
|
+
}, guard);
|
|
167
|
+
}
|
|
168
|
+
case 'assignCampaign':
|
|
169
|
+
{
|
|
170
|
+
const { id, name } = referenceOf(step.campaign, records.campaigns, 'campaign');
|
|
171
|
+
return _extends({
|
|
172
|
+
type: 'assignCampaign'
|
|
173
|
+
}, id ? {
|
|
174
|
+
campaignId: id
|
|
175
|
+
} : {}, {
|
|
176
|
+
campaignName: name
|
|
177
|
+
}, guard);
|
|
178
|
+
}
|
|
179
|
+
case 'runWorkflow':
|
|
180
|
+
{
|
|
181
|
+
const { id, name } = referenceOf(step.workflow, records.workflows, 'workflow');
|
|
182
|
+
return _extends({
|
|
183
|
+
type: 'runWorkflow'
|
|
184
|
+
}, id ? {
|
|
185
|
+
workflowId: id
|
|
186
|
+
} : {}, {
|
|
187
|
+
workflowName: name
|
|
188
|
+
}, guard);
|
|
189
|
+
}
|
|
190
|
+
case 'webhookPost':
|
|
191
|
+
{
|
|
192
|
+
const { id, name } = referenceOf(step.webhook, records.webhooks, 'webhook');
|
|
193
|
+
return _extends({
|
|
194
|
+
type: 'webhookPost'
|
|
195
|
+
}, id ? {
|
|
196
|
+
webhookId: id
|
|
197
|
+
} : {}, {
|
|
198
|
+
webhookName: name
|
|
199
|
+
}, guard);
|
|
200
|
+
}
|
|
201
|
+
case 'datasetAppend':
|
|
202
|
+
case 'updateDataset':
|
|
203
|
+
{
|
|
204
|
+
const { id, name } = referenceOf(step.dataset, records.datasets, 'dataset');
|
|
205
|
+
return _extends({
|
|
206
|
+
type: step.type
|
|
207
|
+
}, id ? {
|
|
208
|
+
datasetId: id
|
|
209
|
+
} : {}, {
|
|
210
|
+
datasetName: name
|
|
211
|
+
}, guard);
|
|
212
|
+
}
|
|
213
|
+
case 'siteAlert':
|
|
214
|
+
var _step_message, _step_severity;
|
|
215
|
+
return _extends({
|
|
216
|
+
type: 'siteAlert',
|
|
217
|
+
message: (_step_message = step.message) != null ? _step_message : '',
|
|
218
|
+
severity: (_step_severity = step.severity) != null ? _step_severity : 'info'
|
|
219
|
+
}, guard);
|
|
220
|
+
case 'wait':
|
|
221
|
+
var _step_minutes;
|
|
222
|
+
return _extends({
|
|
223
|
+
type: 'wait',
|
|
224
|
+
delayMinutes: (_step_minutes = step.minutes) != null ? _step_minutes : 0
|
|
225
|
+
}, guard);
|
|
226
|
+
case 'waitForEvent':
|
|
227
|
+
var _step_event, _step_minutes1;
|
|
228
|
+
return _extends({
|
|
229
|
+
type: 'waitForEvent',
|
|
230
|
+
eventName: (_step_event = step.event) != null ? _step_event : '',
|
|
231
|
+
timeoutMinutes: (_step_minutes1 = step.minutes) != null ? _step_minutes1 : 0
|
|
232
|
+
}, guard);
|
|
233
|
+
case 'exitFlow':
|
|
234
|
+
return _extends({
|
|
235
|
+
type: 'exitFlow'
|
|
236
|
+
}, guard);
|
|
237
|
+
case 'setContactStage':
|
|
238
|
+
var _step_stage;
|
|
239
|
+
return _extends({
|
|
240
|
+
type: 'setContactStage',
|
|
241
|
+
lifecycleStage: (_step_stage = step.stage) != null ? _step_stage : 'lead'
|
|
242
|
+
}, guard);
|
|
243
|
+
case 'addContactTag':
|
|
244
|
+
var _step_tag;
|
|
245
|
+
return _extends({
|
|
246
|
+
type: 'addContactTag',
|
|
247
|
+
tag: (_step_tag = step.tag) != null ? _step_tag : ''
|
|
248
|
+
}, guard);
|
|
249
|
+
case 'assignContactOwner':
|
|
250
|
+
var _step_owner;
|
|
251
|
+
return step.owner === 'round robin' ? _extends({
|
|
252
|
+
type: 'assignContactOwner',
|
|
253
|
+
roundRobin: true
|
|
254
|
+
}, guard) : _extends({
|
|
255
|
+
type: 'assignContactOwner',
|
|
256
|
+
ownerEmail: (_step_owner = step.owner) != null ? _step_owner : ''
|
|
257
|
+
}, guard);
|
|
258
|
+
case 'createCrmTask':
|
|
259
|
+
var _step_title1, _step_taskKind, _step_dueInDays;
|
|
260
|
+
return _extends({
|
|
261
|
+
type: 'createCrmTask',
|
|
262
|
+
title: (_step_title1 = step.title) != null ? _step_title1 : '',
|
|
263
|
+
kind: (_step_taskKind = step.taskKind) != null ? _step_taskKind : 'todo',
|
|
264
|
+
dueInDays: (_step_dueInDays = step.dueInDays) != null ? _step_dueInDays : 0
|
|
265
|
+
}, guard);
|
|
266
|
+
case 'logCrmActivity':
|
|
267
|
+
var _step_activityKind, _step_body1;
|
|
268
|
+
return _extends({
|
|
269
|
+
type: 'logCrmActivity',
|
|
270
|
+
kind: (_step_activityKind = step.activityKind) != null ? _step_activityKind : 'note',
|
|
271
|
+
body: (_step_body1 = step.body) != null ? _step_body1 : ''
|
|
272
|
+
}, guard);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/** The name an automation is drafted under when the answer gave none. */ export const AI_AUTOMATION_DEFAULT_NAME = 'New automation';
|
|
276
|
+
/** An answer as the automation to store, with every record it names looked up. */ export function aiAutomationDraft(answer, records) {
|
|
277
|
+
const conditions = answer.trigger.conditions.map((condition)=>conditionOf(condition, records));
|
|
278
|
+
const action = {
|
|
279
|
+
name: answer.name || AI_AUTOMATION_DEFAULT_NAME,
|
|
280
|
+
trigger: _extends({
|
|
281
|
+
event: answer.trigger.event
|
|
282
|
+
}, conditions.length ? {
|
|
283
|
+
conditions,
|
|
284
|
+
combinator: answer.trigger.combinator
|
|
285
|
+
} : {}),
|
|
286
|
+
steps: answer.steps.map((step)=>stepOf(step, records)),
|
|
287
|
+
enabled: false
|
|
288
|
+
};
|
|
289
|
+
return {
|
|
290
|
+
action,
|
|
291
|
+
placeholders: automationPlaceholders(action)
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* What a drafted automation's output tells a person: that it is off, what to
|
|
296
|
+
* fill in before switching it on, and what the answer said needs deciding.
|
|
297
|
+
*/ export function aiAutomationDraftNote(draft, notes) {
|
|
298
|
+
const parts = [
|
|
299
|
+
'It is off until you switch it on.'
|
|
300
|
+
];
|
|
301
|
+
if (draft.placeholders.length) {
|
|
302
|
+
parts.push(`Fill in ${draft.placeholders.length === 1 ? 'its placeholder' : `its ${draft.placeholders.length} placeholders`} first — ${draft.placeholders.map(describeAutomationPlaceholder).join('; ')}.`);
|
|
303
|
+
} else {
|
|
304
|
+
parts.push('Review its steps in the Actions editor, then switch it on from the list.');
|
|
305
|
+
}
|
|
306
|
+
parts.push(...notes);
|
|
307
|
+
return parts.join(' ');
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
//# sourceMappingURL=ai-automation-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/model/ai-automation-draft.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n HostAction,\n HostActionStep,\n HostActionStepGuard,\n HostActionTriggerCondition,\n} from '@aglyn/aglyn/app-utils/actions'\nimport {\n automationPlaceholder,\n automationPlaceholders,\n describeAutomationPlaceholder,\n type AutomationPlaceholder,\n} from '@aglyn/aglyn/app-utils/automation-placeholders'\nimport type {\n AiAutomationAnswer,\n AiAutomationAnswerStep,\n AiAutomationCondition,\n} from '../tools/ai-workflow-tool'\n\n/**\n * An answer made into the automation the workflows plugin stores (AGL-2919).\n *\n * The answer names each record in WORDS. Here, in code and after the answer,\n * each is looked up among the site's own records: a list, a campaign, a\n * workflow, a webhook, a dataset, a form or a deal stage the words name\n * without doubt becomes that record's id; words that name none, or name more\n * than one, become a placeholder — the words in square brackets where the\n * record belongs — for the person to pick in the Actions editor. Nothing is\n * guessed, and the model never saw the records it was matched against beyond\n * what the site inventory already sends.\n */\n\n/** One record a description may name. */\nexport interface AiAutomationNamedRecord {\n id: string\n name: string\n}\n\n/** A form, with the fields its submissions carry. */\nexport interface AiAutomationForm extends AiAutomationNamedRecord {\n fields: string[]\n}\n\n/** The site's records an automation's words are looked up among. */\nexport interface AiAutomationRecords {\n forms: AiAutomationForm[]\n datasets: AiAutomationNamedRecord[]\n lists: AiAutomationNamedRecord[]\n campaigns: AiAutomationNamedRecord[]\n workflows: AiAutomationNamedRecord[]\n webhooks: AiAutomationNamedRecord[]\n /** Every stage of every pipeline the site may see. */\n stages: AiAutomationNamedRecord[]\n}\n\nexport function emptyAiAutomationRecords(): AiAutomationRecords {\n return { forms: [], datasets: [], lists: [], campaigns: [], workflows: [], webhooks: [], stages: [] }\n}\n\n/** Words that say nothing about which record is meant. */\nconst FILLER = new Set(['the', 'a', 'an', 'our', 'my', 'your', 'this', 'that', 'new', 'called', 'named'])\n\nfunction tokens(value: string, noun: string): string[] {\n const nouns = new Set([noun, `${noun}s`])\n return value\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}]+/gu, ' ')\n .split(' ')\n .filter(Boolean)\n .filter((word) => !FILLER.has(word) && !nouns.has(word))\n .map((word) => (word.length > 3 && word.endsWith('s') && !word.endsWith('ss') ? word.slice(0, -1) : word))\n}\n\n/**\n * The one record `words` name, or `null`: its id written whole; else the one\n * record whose name is the same words; else the one record whose name holds\n * every word, or whose every word the words hold. Two records that fit\n * equally well name neither — a placeholder is better than a coin toss.\n */\nexport function aiMatchNamedRecord<T extends AiAutomationNamedRecord>(\n words: string,\n records: readonly T[],\n noun: string,\n): T | null {\n const wanted = words.trim()\n if (!wanted) return null\n const byId = records.filter((record) => record.id === wanted)\n if (byId.length === 1) return byId[0]\n const asked = tokens(wanted, noun)\n if (!asked.length) return null\n const same = (record: T) => {\n const name = tokens(record.name, noun)\n return name.length === asked.length && asked.every((word) => name.includes(word))\n }\n const exact = records.filter(same)\n if (exact.length) return exact.length === 1 ? exact[0] : null\n const within = records.filter((record) => {\n const name = tokens(record.name, noun)\n if (!name.length) return false\n const [small, large] = name.length <= asked.length ? [name, asked] : [asked, name]\n return small.every((word) => large.includes(word))\n })\n return within.length === 1 ? within[0] : null\n}\n\n/** A form by its id or its name, for a condition that names one. */\nfunction formOf(value: string, forms: readonly AiAutomationForm[]): AiAutomationForm | null {\n return aiMatchNamedRecord(value, forms, 'form')\n}\n\nfunction conditionOf(\n condition: AiAutomationCondition,\n records: AiAutomationRecords,\n): HostActionTriggerCondition {\n const { field, op, value } = condition\n if (op === 'notEmpty' || value === null) return { field, op }\n if (field === 'formId') {\n const form = formOf(value, records.forms)\n return { field, op, value: form ? form.id : automationPlaceholder(value) }\n }\n if (field === 'formName') {\n const form = formOf(value, records.forms)\n return { field, op, value: form ? form.name : automationPlaceholder(value) }\n }\n if (field === 'stageId' || field === 'previousStageId') {\n const stage = aiMatchNamedRecord(value, records.stages, 'stage')\n return { field, op, value: stage ? stage.id : automationPlaceholder(value) }\n }\n return { field, op, value }\n}\n\nfunction guardOf(\n when: AiAutomationCondition | null,\n records: AiAutomationRecords,\n): { when?: HostActionStepGuard } {\n return when ? { when: { conditions: [conditionOf(when, records)] } } : {}\n}\n\n/** A named record as a step stores it: the id and the name, or a placeholder name and no id. */\nfunction referenceOf(\n words: string | null,\n records: readonly AiAutomationNamedRecord[],\n noun: string,\n): { id: string | null; name: string } {\n const record = aiMatchNamedRecord(words ?? '', records, noun)\n return record ? { id: record.id, name: record.name } : { id: null, name: automationPlaceholder(words ?? '') }\n}\n\nfunction stepOf(step: AiAutomationAnswerStep, records: AiAutomationRecords): HostActionStep {\n const guard = guardOf(step.when, records)\n switch (step.type) {\n case 'sendEmail':\n return {\n type: 'sendEmail',\n subject: step.subject ?? '',\n body: step.body ?? '',\n ...(step.toField ? { toField: step.toField } : {}),\n ...guard,\n }\n case 'notifyAdmins':\n return { type: 'notifyAdmins', title: step.title ?? '', ...guard }\n case 'enrollList': {\n const { id, name } = referenceOf(step.list, records.lists, 'list')\n return { type: 'enrollList', ...(id ? { listId: id } : {}), listName: name, ...guard }\n }\n case 'assignCampaign': {\n const { id, name } = referenceOf(step.campaign, records.campaigns, 'campaign')\n return { type: 'assignCampaign', ...(id ? { campaignId: id } : {}), campaignName: name, ...guard }\n }\n case 'runWorkflow': {\n const { id, name } = referenceOf(step.workflow, records.workflows, 'workflow')\n return { type: 'runWorkflow', ...(id ? { workflowId: id } : {}), workflowName: name, ...guard }\n }\n case 'webhookPost': {\n const { id, name } = referenceOf(step.webhook, records.webhooks, 'webhook')\n return { type: 'webhookPost', ...(id ? { webhookId: id } : {}), webhookName: name, ...guard }\n }\n case 'datasetAppend':\n case 'updateDataset': {\n const { id, name } = referenceOf(step.dataset, records.datasets, 'dataset')\n return { type: step.type, ...(id ? { datasetId: id } : {}), datasetName: name, ...guard }\n }\n case 'siteAlert':\n return { type: 'siteAlert', message: step.message ?? '', severity: step.severity ?? 'info', ...guard }\n case 'wait':\n return { type: 'wait', delayMinutes: step.minutes ?? 0, ...guard }\n case 'waitForEvent':\n return {\n type: 'waitForEvent',\n eventName: step.event ?? '',\n timeoutMinutes: step.minutes ?? 0,\n ...guard,\n }\n case 'exitFlow':\n return { type: 'exitFlow', ...guard }\n case 'setContactStage':\n return { type: 'setContactStage', lifecycleStage: step.stage ?? 'lead', ...guard }\n case 'addContactTag':\n return { type: 'addContactTag', tag: step.tag ?? '', ...guard }\n case 'assignContactOwner':\n return step.owner === 'round robin'\n ? { type: 'assignContactOwner', roundRobin: true, ...guard }\n : { type: 'assignContactOwner', ownerEmail: step.owner ?? '', ...guard }\n case 'createCrmTask':\n return {\n type: 'createCrmTask',\n title: step.title ?? '',\n kind: step.taskKind ?? 'todo',\n dueInDays: step.dueInDays ?? 0,\n ...guard,\n }\n case 'logCrmActivity':\n return { type: 'logCrmActivity', kind: step.activityKind ?? 'note', body: step.body ?? '', ...guard }\n }\n}\n\n/** The name an automation is drafted under when the answer gave none. */\nexport const AI_AUTOMATION_DEFAULT_NAME = 'New automation'\n\nexport interface AiAutomationDraft {\n /** The automation as the workflows plugin stores it: OFF. */\n action: HostAction\n /** What a person still has to supply before switching it on. */\n placeholders: AutomationPlaceholder[]\n}\n\n/** An answer as the automation to store, with every record it names looked up. */\nexport function aiAutomationDraft(\n answer: AiAutomationAnswer,\n records: AiAutomationRecords,\n): AiAutomationDraft {\n const conditions = answer.trigger.conditions.map((condition) => conditionOf(condition, records))\n const action: HostAction = {\n name: answer.name || AI_AUTOMATION_DEFAULT_NAME,\n trigger: {\n event: answer.trigger.event,\n ...(conditions.length ? { conditions, combinator: answer.trigger.combinator } : {}),\n },\n steps: answer.steps.map((step) => stepOf(step, records)),\n enabled: false,\n }\n return { action, placeholders: automationPlaceholders(action) }\n}\n\n/**\n * What a drafted automation's output tells a person: that it is off, what to\n * fill in before switching it on, and what the answer said needs deciding.\n */\nexport function aiAutomationDraftNote(draft: AiAutomationDraft, notes: readonly string[]): string {\n const parts = ['It is off until you switch it on.']\n if (draft.placeholders.length) {\n parts.push(\n `Fill in ${draft.placeholders.length === 1 ? 'its placeholder' : `its ${draft.placeholders.length} placeholders`} first — ${draft.placeholders\n .map(describeAutomationPlaceholder)\n .join('; ')}.`,\n )\n } else {\n parts.push('Review its steps in the Actions editor, then switch it on from the list.')\n }\n parts.push(...notes)\n return parts.join(' ')\n}\n"],"names":["automationPlaceholder","automationPlaceholders","describeAutomationPlaceholder","emptyAiAutomationRecords","forms","datasets","lists","campaigns","workflows","webhooks","stages","FILLER","Set","tokens","value","noun","nouns","toLowerCase","replace","split","filter","Boolean","word","has","map","length","endsWith","slice","aiMatchNamedRecord","words","records","wanted","trim","byId","record","id","asked","same","name","every","includes","exact","within","small","large","formOf","conditionOf","condition","field","op","form","stage","guardOf","when","conditions","referenceOf","stepOf","step","guard","type","subject","body","toField","title","list","listId","listName","campaign","campaignId","campaignName","workflow","workflowId","workflowName","webhook","webhookId","webhookName","dataset","datasetId","datasetName","message","severity","delayMinutes","minutes","eventName","event","timeoutMinutes","lifecycleStage","tag","owner","roundRobin","ownerEmail","kind","taskKind","dueInDays","activityKind","AI_AUTOMATION_DEFAULT_NAME","aiAutomationDraft","answer","trigger","action","combinator","steps","enabled","placeholders","aiAutomationDraftNote","draft","notes","parts","push","join"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { type HostAction, type HostActionStepType } from '@aglyn/aglyn/app-utils/actions';
|
|
18
|
+
import type { HostWorkflow } from '@aglyn/aglyn/app-utils/workflows';
|
|
19
|
+
import type { AiAutomationNamedRecord, AiAutomationRecords } from './ai-automation-draft';
|
|
20
|
+
import type { AiWorkflowExplanation } from '../tools/ai-workflow-tool';
|
|
21
|
+
/** How much of an email's text an outline quotes. */
|
|
22
|
+
export declare const AI_OUTLINE_BODY_MAX_CHARS = 300;
|
|
23
|
+
/** How much of any other value an outline quotes. */
|
|
24
|
+
export declare const AI_OUTLINE_VALUE_MAX_CHARS = 120;
|
|
25
|
+
/** The most errors of one run an outline lists. */
|
|
26
|
+
export declare const AI_OUTLINE_RUN_ERRORS_MAX = 10;
|
|
27
|
+
/** A line with every email address replaced by what it is. */
|
|
28
|
+
export declare function aiRedactPersonal(text: string): string;
|
|
29
|
+
/** The kind of site record each step that names one names. */
|
|
30
|
+
export declare const AI_OUTLINE_RECORD_KINDS: Readonly<Partial<Record<HostActionStepType, 'lists' | 'campaigns' | 'workflows' | 'webhooks' | 'datasets'>>>;
|
|
31
|
+
/** The kinds of site record an action's steps name, each once. */
|
|
32
|
+
export declare function aiActionRecordKinds(action: Pick<HostAction, 'steps'>): Array<keyof AiAutomationRecords>;
|
|
33
|
+
/** A saved action as an outline. */
|
|
34
|
+
export declare function aiActionOutline(action: HostAction, records: AiAutomationRecords | null): string;
|
|
35
|
+
/** A saved workflow — a pipeline of function calls — as an outline. */
|
|
36
|
+
export declare function aiWorkflowOutline(workflow: HostWorkflow, functions: readonly AiAutomationNamedRecord[] | null): string;
|
|
37
|
+
/** What the run history recorded about one run, as far as an outline reads it. */
|
|
38
|
+
export interface AiRunRecord {
|
|
39
|
+
result?: unknown;
|
|
40
|
+
trigger?: unknown;
|
|
41
|
+
summary?: unknown;
|
|
42
|
+
action?: unknown;
|
|
43
|
+
createdAt?: unknown;
|
|
44
|
+
}
|
|
45
|
+
/** The errors a run recorded: the prose after "with errors:", or a workflow's failure. */
|
|
46
|
+
export declare function aiRunErrors(run: AiRunRecord): string[];
|
|
47
|
+
/** A failed run as an outline: when, on what, what it did, and what went wrong. */
|
|
48
|
+
export declare function aiRunOutline(run: AiRunRecord): string;
|
|
49
|
+
/** An explanation as the text a person reads. */
|
|
50
|
+
export declare function aiWorkflowExplanationText(explanation: AiWorkflowExplanation, mode: 'explain' | 'diagnose'): string;
|