@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.
Files changed (717) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +25 -0
  3. package/package.json +60 -0
  4. package/src/index.d.ts +21 -0
  5. package/src/index.js +22 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/activity/ai-activity-actions.d.ts +106 -0
  8. package/src/lib/activity/ai-activity-actions.js +209 -0
  9. package/src/lib/activity/ai-activity-actions.js.map +1 -0
  10. package/src/lib/activity/ai-activity.d.ts +219 -0
  11. package/src/lib/activity/ai-activity.js +251 -0
  12. package/src/lib/activity/ai-activity.js.map +1 -0
  13. package/src/lib/billing/ai-overage-charge.d.ts +102 -0
  14. package/src/lib/billing/ai-overage-charge.js +258 -0
  15. package/src/lib/billing/ai-overage-charge.js.map +1 -0
  16. package/src/lib/billing/ai-overage-close.d.ts +62 -0
  17. package/src/lib/billing/ai-overage-close.js +129 -0
  18. package/src/lib/billing/ai-overage-close.js.map +1 -0
  19. package/src/lib/billing/ai-overage-cutover.d.ts +63 -0
  20. package/src/lib/billing/ai-overage-cutover.js +114 -0
  21. package/src/lib/billing/ai-overage-cutover.js.map +1 -0
  22. package/src/lib/billing/ai-overage-events.d.ts +77 -0
  23. package/src/lib/billing/ai-overage-events.js +174 -0
  24. package/src/lib/billing/ai-overage-events.js.map +1 -0
  25. package/src/lib/billing/ai-overage-gate.d.ts +147 -0
  26. package/src/lib/billing/ai-overage-gate.js +177 -0
  27. package/src/lib/billing/ai-overage-gate.js.map +1 -0
  28. package/src/lib/billing/ai-overage-ledger.d.ts +135 -0
  29. package/src/lib/billing/ai-overage-ledger.js +278 -0
  30. package/src/lib/billing/ai-overage-ledger.js.map +1 -0
  31. package/src/lib/billing/ai-overage-standing-writes.d.ts +110 -0
  32. package/src/lib/billing/ai-overage-standing-writes.js +205 -0
  33. package/src/lib/billing/ai-overage-standing-writes.js.map +1 -0
  34. package/src/lib/billing/ai-overage-standing.d.ts +168 -0
  35. package/src/lib/billing/ai-overage-standing.js +215 -0
  36. package/src/lib/billing/ai-overage-standing.js.map +1 -0
  37. package/src/lib/billing/ai-overage-trigger.d.ts +30 -0
  38. package/src/lib/billing/ai-overage-trigger.js +76 -0
  39. package/src/lib/billing/ai-overage-trigger.js.map +1 -0
  40. package/src/lib/components/ai-allotment-editor.component.d.ts +40 -0
  41. package/src/lib/components/ai-allotment-editor.component.js +213 -0
  42. package/src/lib/components/ai-allotment-editor.component.js.map +1 -0
  43. package/src/lib/components/ai-assist-actions-context.d.ts +13 -0
  44. package/src/lib/components/ai-assist-actions-context.js +21 -0
  45. package/src/lib/components/ai-assist-actions-context.js.map +1 -0
  46. package/src/lib/components/ai-assist-provider.component.d.ts +51 -0
  47. package/src/lib/components/ai-assist-provider.component.js +519 -0
  48. package/src/lib/components/ai-assist-provider.component.js.map +1 -0
  49. package/src/lib/components/ai-brief-dialog.component.d.ts +56 -0
  50. package/src/lib/components/ai-brief-dialog.component.js +319 -0
  51. package/src/lib/components/ai-brief-dialog.component.js.map +1 -0
  52. package/src/lib/components/ai-collaborator-permissions-column.component.d.ts +32 -0
  53. package/src/lib/components/ai-collaborator-permissions-column.component.js +132 -0
  54. package/src/lib/components/ai-collaborator-permissions-column.component.js.map +1 -0
  55. package/src/lib/components/ai-credits-card.component.d.ts +34 -0
  56. package/src/lib/components/ai-credits-card.component.js +131 -0
  57. package/src/lib/components/ai-credits-card.component.js.map +1 -0
  58. package/src/lib/components/ai-credits-columns.component.d.ts +56 -0
  59. package/src/lib/components/ai-credits-columns.component.js +118 -0
  60. package/src/lib/components/ai-credits-columns.component.js.map +1 -0
  61. package/src/lib/components/ai-crm-email-draft.component.d.ts +17 -0
  62. package/src/lib/components/ai-crm-email-draft.component.js +159 -0
  63. package/src/lib/components/ai-crm-email-draft.component.js.map +1 -0
  64. package/src/lib/components/ai-crm-import-mapping.component.d.ts +20 -0
  65. package/src/lib/components/ai-crm-import-mapping.component.js +167 -0
  66. package/src/lib/components/ai-crm-import-mapping.component.js.map +1 -0
  67. package/src/lib/components/ai-crm-record-card.component.d.ts +27 -0
  68. package/src/lib/components/ai-crm-record-card.component.js +263 -0
  69. package/src/lib/components/ai-crm-record-card.component.js.map +1 -0
  70. package/src/lib/components/ai-describe-automation.component.d.ts +31 -0
  71. package/src/lib/components/ai-describe-automation.component.js +226 -0
  72. package/src/lib/components/ai-describe-automation.component.js.map +1 -0
  73. package/src/lib/components/ai-describe-button.component.d.ts +39 -0
  74. package/src/lib/components/ai-describe-button.component.js +87 -0
  75. package/src/lib/components/ai-describe-button.component.js.map +1 -0
  76. package/src/lib/components/ai-describe-page.component.d.ts +26 -0
  77. package/src/lib/components/ai-describe-page.component.js +18 -0
  78. package/src/lib/components/ai-describe-page.component.js.map +1 -0
  79. package/src/lib/components/ai-experiment-cards.component.d.ts +75 -0
  80. package/src/lib/components/ai-experiment-cards.component.js +573 -0
  81. package/src/lib/components/ai-experiment-cards.component.js.map +1 -0
  82. package/src/lib/components/ai-explain-automation.component.d.ts +31 -0
  83. package/src/lib/components/ai-explain-automation.component.js +265 -0
  84. package/src/lib/components/ai-explain-automation.component.js.map +1 -0
  85. package/src/lib/components/ai-insight-dialog.component.d.ts +37 -0
  86. package/src/lib/components/ai-insight-dialog.component.js +441 -0
  87. package/src/lib/components/ai-insight-dialog.component.js.map +1 -0
  88. package/src/lib/components/ai-job-plan.component.d.ts +46 -0
  89. package/src/lib/components/ai-job-plan.component.js +192 -0
  90. package/src/lib/components/ai-job-plan.component.js.map +1 -0
  91. package/src/lib/components/ai-model-selector.component.d.ts +21 -0
  92. package/src/lib/components/ai-model-selector.component.js +109 -0
  93. package/src/lib/components/ai-model-selector.component.js.map +1 -0
  94. package/src/lib/components/ai-page-brief-dialog.component.d.ts +29 -0
  95. package/src/lib/components/ai-page-brief-dialog.component.js +27 -0
  96. package/src/lib/components/ai-page-brief-dialog.component.js.map +1 -0
  97. package/src/lib/components/ai-permissions-on-host.component.d.ts +55 -0
  98. package/src/lib/components/ai-permissions-on-host.component.js +91 -0
  99. package/src/lib/components/ai-permissions-on-host.component.js.map +1 -0
  100. package/src/lib/components/ai-product-copy-card.component.d.ts +25 -0
  101. package/src/lib/components/ai-product-copy-card.component.js +328 -0
  102. package/src/lib/components/ai-product-copy-card.component.js.map +1 -0
  103. package/src/lib/components/ai-product-import-option.component.d.ts +14 -0
  104. package/src/lib/components/ai-product-import-option.component.js +58 -0
  105. package/src/lib/components/ai-product-import-option.component.js.map +1 -0
  106. package/src/lib/components/ai-products-hub-card.component.d.ts +15 -0
  107. package/src/lib/components/ai-products-hub-card.component.js +418 -0
  108. package/src/lib/components/ai-products-hub-card.component.js.map +1 -0
  109. package/src/lib/components/ai-products-proposals.component.d.ts +19 -0
  110. package/src/lib/components/ai-products-proposals.component.js +547 -0
  111. package/src/lib/components/ai-products-proposals.component.js.map +1 -0
  112. package/src/lib/components/ai-save-as-component.component.d.ts +38 -0
  113. package/src/lib/components/ai-save-as-component.component.js +231 -0
  114. package/src/lib/components/ai-save-as-component.component.js.map +1 -0
  115. package/src/lib/components/ai-seo-audit-card.component.d.ts +9 -0
  116. package/src/lib/components/ai-seo-audit-card.component.js +620 -0
  117. package/src/lib/components/ai-seo-audit-card.component.js.map +1 -0
  118. package/src/lib/components/ai-seo-fields-card.component.d.ts +10 -0
  119. package/src/lib/components/ai-seo-fields-card.component.js +453 -0
  120. package/src/lib/components/ai-seo-fields-card.component.js.map +1 -0
  121. package/src/lib/components/ai-site-batch-card.component.d.ts +32 -0
  122. package/src/lib/components/ai-site-batch-card.component.js +531 -0
  123. package/src/lib/components/ai-site-batch-card.component.js.map +1 -0
  124. package/src/lib/components/ai-site-seo-start-card.component.d.ts +26 -0
  125. package/src/lib/components/ai-site-seo-start-card.component.js +178 -0
  126. package/src/lib/components/ai-site-seo-start-card.component.js.map +1 -0
  127. package/src/lib/components/ai-site-start-card.component.d.ts +19 -0
  128. package/src/lib/components/ai-site-start-card.component.js +348 -0
  129. package/src/lib/components/ai-site-start-card.component.js.map +1 -0
  130. package/src/lib/components/ai-template-collection-field.component.d.ts +32 -0
  131. package/src/lib/components/ai-template-collection-field.component.js +63 -0
  132. package/src/lib/components/ai-template-collection-field.component.js.map +1 -0
  133. package/src/lib/components/ai-theme-proposal-card.component.d.ts +6 -0
  134. package/src/lib/components/ai-theme-proposal-card.component.js +619 -0
  135. package/src/lib/components/ai-theme-proposal-card.component.js.map +1 -0
  136. package/src/lib/components/ai-usage-strip.component.d.ts +27 -0
  137. package/src/lib/components/ai-usage-strip.component.js +145 -0
  138. package/src/lib/components/ai-usage-strip.component.js.map +1 -0
  139. package/src/lib/components/assist-edit-canvas.d.ts +169 -0
  140. package/src/lib/components/assist-edit-canvas.js +636 -0
  141. package/src/lib/components/assist-edit-canvas.js.map +1 -0
  142. package/src/lib/components/assist-edit-card.component.d.ts +16 -0
  143. package/src/lib/components/assist-edit-card.component.js +181 -0
  144. package/src/lib/components/assist-edit-card.component.js.map +1 -0
  145. package/src/lib/components/assist-jobs-drawer.component.d.ts +72 -0
  146. package/src/lib/components/assist-jobs-drawer.component.js +626 -0
  147. package/src/lib/components/assist-jobs-drawer.component.js.map +1 -0
  148. package/src/lib/components/assist-panel.component.d.ts +136 -0
  149. package/src/lib/components/assist-panel.component.js +1099 -0
  150. package/src/lib/components/assist-panel.component.js.map +1 -0
  151. package/src/lib/components/assist-signals-page.component.d.ts +3 -0
  152. package/src/lib/components/assist-signals-page.component.js +1017 -0
  153. package/src/lib/components/assist-signals-page.component.js.map +1 -0
  154. package/src/lib/components/besigner-ai-controls.component.d.ts +29 -0
  155. package/src/lib/components/besigner-ai-controls.component.js +81 -0
  156. package/src/lib/components/besigner-ai-controls.component.js.map +1 -0
  157. package/src/lib/components/billing-ai-allotments.component.d.ts +36 -0
  158. package/src/lib/components/billing-ai-allotments.component.js +486 -0
  159. package/src/lib/components/billing-ai-allotments.component.js.map +1 -0
  160. package/src/lib/components/billing-ai-top-users.component.d.ts +44 -0
  161. package/src/lib/components/billing-ai-top-users.component.js +304 -0
  162. package/src/lib/components/billing-ai-top-users.component.js.map +1 -0
  163. package/src/lib/components/billing-assist-overage-card.component.d.ts +69 -0
  164. package/src/lib/components/billing-assist-overage-card.component.js +437 -0
  165. package/src/lib/components/billing-assist-overage-card.component.js.map +1 -0
  166. package/src/lib/components/host-ai-allotments.component.d.ts +40 -0
  167. package/src/lib/components/host-ai-allotments.component.js +239 -0
  168. package/src/lib/components/host-ai-allotments.component.js.map +1 -0
  169. package/src/lib/components/member-ai-allotment-card.component.d.ts +28 -0
  170. package/src/lib/components/member-ai-allotment-card.component.js +172 -0
  171. package/src/lib/components/member-ai-allotment-card.component.js.map +1 -0
  172. package/src/lib/components/member-ai-usage-card.component.d.ts +28 -0
  173. package/src/lib/components/member-ai-usage-card.component.js +240 -0
  174. package/src/lib/components/member-ai-usage-card.component.js.map +1 -0
  175. package/src/lib/components/staff-org-ai-card.component.d.ts +17 -0
  176. package/src/lib/components/staff-org-ai-card.component.js +739 -0
  177. package/src/lib/components/staff-org-ai-card.component.js.map +1 -0
  178. package/src/lib/components/staff-org-usage-ai-columns.component.d.ts +41 -0
  179. package/src/lib/components/staff-org-usage-ai-columns.component.js +65 -0
  180. package/src/lib/components/staff-org-usage-ai-columns.component.js.map +1 -0
  181. package/src/lib/components/staff-orgs-ai-spend-column.component.d.ts +28 -0
  182. package/src/lib/components/staff-orgs-ai-spend-column.component.js +89 -0
  183. package/src/lib/components/staff-orgs-ai-spend-column.component.js.map +1 -0
  184. package/src/lib/components/staff-user-ai-usage-card.component.d.ts +27 -0
  185. package/src/lib/components/staff-user-ai-usage-card.component.js +183 -0
  186. package/src/lib/components/staff-user-ai-usage-card.component.js.map +1 -0
  187. package/src/lib/components/use-ai-allotments.d.ts +49 -0
  188. package/src/lib/components/use-ai-allotments.js +171 -0
  189. package/src/lib/components/use-ai-allotments.js.map +1 -0
  190. package/src/lib/components/use-ai-crm-answer.d.ts +50 -0
  191. package/src/lib/components/use-ai-crm-answer.js +220 -0
  192. package/src/lib/components/use-ai-crm-answer.js.map +1 -0
  193. package/src/lib/components/use-ai-job-run.d.ts +51 -0
  194. package/src/lib/components/use-ai-job-run.js +176 -0
  195. package/src/lib/components/use-ai-job-run.js.map +1 -0
  196. package/src/lib/components/use-ai-model-choice.d.ts +47 -0
  197. package/src/lib/components/use-ai-model-choice.js +150 -0
  198. package/src/lib/components/use-ai-model-choice.js.map +1 -0
  199. package/src/lib/components/use-ai-products-jobs.d.ts +36 -0
  200. package/src/lib/components/use-ai-products-jobs.js +190 -0
  201. package/src/lib/components/use-ai-products-jobs.js.map +1 -0
  202. package/src/lib/components/use-ai-usage-meter.d.ts +11 -0
  203. package/src/lib/components/use-ai-usage-meter.js +96 -0
  204. package/src/lib/components/use-ai-usage-meter.js.map +1 -0
  205. package/src/lib/components/use-org-ai-usage.d.ts +42 -0
  206. package/src/lib/components/use-org-ai-usage.js +181 -0
  207. package/src/lib/components/use-org-ai-usage.js.map +1 -0
  208. package/src/lib/components/use-staff-orgs-ai-spend.d.ts +18 -0
  209. package/src/lib/components/use-staff-orgs-ai-spend.js +127 -0
  210. package/src/lib/components/use-staff-orgs-ai-spend.js.map +1 -0
  211. package/src/lib/constants.d.ts +24 -0
  212. package/src/lib/constants.js +23 -0
  213. package/src/lib/constants.js.map +1 -0
  214. package/src/lib/declarations.d.ts +48 -0
  215. package/src/lib/declarations.js +129 -0
  216. package/src/lib/declarations.js.map +1 -0
  217. package/src/lib/declarations.server.d.ts +35 -0
  218. package/src/lib/declarations.server.js +138 -0
  219. package/src/lib/declarations.server.js.map +1 -0
  220. package/src/lib/insights/ai-figure-readers.d.ts +90 -0
  221. package/src/lib/insights/ai-figure-readers.js +863 -0
  222. package/src/lib/insights/ai-figure-readers.js.map +1 -0
  223. package/src/lib/insights/ai-insight-digest.d.ts +165 -0
  224. package/src/lib/insights/ai-insight-digest.js +363 -0
  225. package/src/lib/insights/ai-insight-digest.js.map +1 -0
  226. package/src/lib/insights/ai-insight-readers.d.ts +71 -0
  227. package/src/lib/insights/ai-insight-readers.js +141 -0
  228. package/src/lib/insights/ai-insight-readers.js.map +1 -0
  229. package/src/lib/jobs/ai-crm-access.d.ts +61 -0
  230. package/src/lib/jobs/ai-crm-access.js +94 -0
  231. package/src/lib/jobs/ai-crm-access.js.map +1 -0
  232. package/src/lib/jobs/ai-email-bindings.d.ts +97 -0
  233. package/src/lib/jobs/ai-email-bindings.js +147 -0
  234. package/src/lib/jobs/ai-email-bindings.js.map +1 -0
  235. package/src/lib/jobs/ai-job-admission.d.ts +82 -0
  236. package/src/lib/jobs/ai-job-admission.js +45 -0
  237. package/src/lib/jobs/ai-job-admission.js.map +1 -0
  238. package/src/lib/jobs/ai-job-budget.d.ts +167 -0
  239. package/src/lib/jobs/ai-job-budget.js +161 -0
  240. package/src/lib/jobs/ai-job-budget.js.map +1 -0
  241. package/src/lib/jobs/ai-job-campaign-step.d.ts +108 -0
  242. package/src/lib/jobs/ai-job-campaign-step.js +340 -0
  243. package/src/lib/jobs/ai-job-campaign-step.js.map +1 -0
  244. package/src/lib/jobs/ai-job-component-checks.d.ts +74 -0
  245. package/src/lib/jobs/ai-job-component-checks.js +442 -0
  246. package/src/lib/jobs/ai-job-component-checks.js.map +1 -0
  247. package/src/lib/jobs/ai-job-component-step.d.ts +75 -0
  248. package/src/lib/jobs/ai-job-component-step.js +262 -0
  249. package/src/lib/jobs/ai-job-component-step.js.map +1 -0
  250. package/src/lib/jobs/ai-job-crm-step.d.ts +192 -0
  251. package/src/lib/jobs/ai-job-crm-step.js +734 -0
  252. package/src/lib/jobs/ai-job-crm-step.js.map +1 -0
  253. package/src/lib/jobs/ai-job-draft-ids.d.ts +62 -0
  254. package/src/lib/jobs/ai-job-draft-ids.js +132 -0
  255. package/src/lib/jobs/ai-job-draft-ids.js.map +1 -0
  256. package/src/lib/jobs/ai-job-drafts.d.ts +304 -0
  257. package/src/lib/jobs/ai-job-drafts.js +557 -0
  258. package/src/lib/jobs/ai-job-drafts.js.map +1 -0
  259. package/src/lib/jobs/ai-job-email-step.d.ts +195 -0
  260. package/src/lib/jobs/ai-job-email-step.js +547 -0
  261. package/src/lib/jobs/ai-job-email-step.js.map +1 -0
  262. package/src/lib/jobs/ai-job-experiment-step.d.ts +105 -0
  263. package/src/lib/jobs/ai-job-experiment-step.js +445 -0
  264. package/src/lib/jobs/ai-job-experiment-step.js.map +1 -0
  265. package/src/lib/jobs/ai-job-form-step.d.ts +250 -0
  266. package/src/lib/jobs/ai-job-form-step.js +634 -0
  267. package/src/lib/jobs/ai-job-form-step.js.map +1 -0
  268. package/src/lib/jobs/ai-job-generation.d.ts +114 -0
  269. package/src/lib/jobs/ai-job-generation.js +384 -0
  270. package/src/lib/jobs/ai-job-generation.js.map +1 -0
  271. package/src/lib/jobs/ai-job-insight-budget.d.ts +41 -0
  272. package/src/lib/jobs/ai-job-insight-budget.js +46 -0
  273. package/src/lib/jobs/ai-job-insight-budget.js.map +1 -0
  274. package/src/lib/jobs/ai-job-insight-step.d.ts +58 -0
  275. package/src/lib/jobs/ai-job-insight-step.js +350 -0
  276. package/src/lib/jobs/ai-job-insight-step.js.map +1 -0
  277. package/src/lib/jobs/ai-job-layout-step.d.ts +103 -0
  278. package/src/lib/jobs/ai-job-layout-step.js +340 -0
  279. package/src/lib/jobs/ai-job-layout-step.js.map +1 -0
  280. package/src/lib/jobs/ai-job-page-budget.d.ts +57 -0
  281. package/src/lib/jobs/ai-job-page-budget.js +60 -0
  282. package/src/lib/jobs/ai-job-page-budget.js.map +1 -0
  283. package/src/lib/jobs/ai-job-page-sections.d.ts +150 -0
  284. package/src/lib/jobs/ai-job-page-sections.js +450 -0
  285. package/src/lib/jobs/ai-job-page-sections.js.map +1 -0
  286. package/src/lib/jobs/ai-job-page-step.d.ts +198 -0
  287. package/src/lib/jobs/ai-job-page-step.js +667 -0
  288. package/src/lib/jobs/ai-job-page-step.js.map +1 -0
  289. package/src/lib/jobs/ai-job-plan-conformance.d.ts +107 -0
  290. package/src/lib/jobs/ai-job-plan-conformance.js +164 -0
  291. package/src/lib/jobs/ai-job-plan-conformance.js.map +1 -0
  292. package/src/lib/jobs/ai-job-plan-step.d.ts +196 -0
  293. package/src/lib/jobs/ai-job-plan-step.js +458 -0
  294. package/src/lib/jobs/ai-job-plan-step.js.map +1 -0
  295. package/src/lib/jobs/ai-job-plugin-drafts.d.ts +76 -0
  296. package/src/lib/jobs/ai-job-plugin-drafts.js +91 -0
  297. package/src/lib/jobs/ai-job-plugin-drafts.js.map +1 -0
  298. package/src/lib/jobs/ai-job-products-step.d.ts +106 -0
  299. package/src/lib/jobs/ai-job-products-step.js +436 -0
  300. package/src/lib/jobs/ai-job-products-step.js.map +1 -0
  301. package/src/lib/jobs/ai-job-seo-budget.d.ts +52 -0
  302. package/src/lib/jobs/ai-job-seo-budget.js +63 -0
  303. package/src/lib/jobs/ai-job-seo-budget.js.map +1 -0
  304. package/src/lib/jobs/ai-job-seo-step.d.ts +145 -0
  305. package/src/lib/jobs/ai-job-seo-step.js +809 -0
  306. package/src/lib/jobs/ai-job-seo-step.js.map +1 -0
  307. package/src/lib/jobs/ai-job-site-step.d.ts +252 -0
  308. package/src/lib/jobs/ai-job-site-step.js +538 -0
  309. package/src/lib/jobs/ai-job-site-step.js.map +1 -0
  310. package/src/lib/jobs/ai-job-template-step.d.ts +105 -0
  311. package/src/lib/jobs/ai-job-template-step.js +391 -0
  312. package/src/lib/jobs/ai-job-template-step.js.map +1 -0
  313. package/src/lib/jobs/ai-job-text-step.d.ts +125 -0
  314. package/src/lib/jobs/ai-job-text-step.js +128 -0
  315. package/src/lib/jobs/ai-job-text-step.js.map +1 -0
  316. package/src/lib/jobs/ai-job-theme-budget.d.ts +38 -0
  317. package/src/lib/jobs/ai-job-theme-budget.js +43 -0
  318. package/src/lib/jobs/ai-job-theme-budget.js.map +1 -0
  319. package/src/lib/jobs/ai-job-theme-step.d.ts +115 -0
  320. package/src/lib/jobs/ai-job-theme-step.js +337 -0
  321. package/src/lib/jobs/ai-job-theme-step.js.map +1 -0
  322. package/src/lib/jobs/ai-job-workflow-step.d.ts +139 -0
  323. package/src/lib/jobs/ai-job-workflow-step.js +530 -0
  324. package/src/lib/jobs/ai-job-workflow-step.js.map +1 -0
  325. package/src/lib/jobs/ai-jobs-beat.d.ts +78 -0
  326. package/src/lib/jobs/ai-jobs-beat.js +93 -0
  327. package/src/lib/jobs/ai-jobs-beat.js.map +1 -0
  328. package/src/lib/jobs/ai-jobs-pause.d.ts +38 -0
  329. package/src/lib/jobs/ai-jobs-pause.js +45 -0
  330. package/src/lib/jobs/ai-jobs-pause.js.map +1 -0
  331. package/src/lib/jobs/ai-jobs.d.ts +558 -0
  332. package/src/lib/jobs/ai-jobs.js +1410 -0
  333. package/src/lib/jobs/ai-jobs.js.map +1 -0
  334. package/src/lib/jobs/ai-media-asset-server.d.ts +34 -0
  335. package/src/lib/jobs/ai-media-asset-server.js +34 -0
  336. package/src/lib/jobs/ai-media-asset-server.js.map +1 -0
  337. package/src/lib/jobs/ai-media-asset.d.ts +59 -0
  338. package/src/lib/jobs/ai-media-asset.js +86 -0
  339. package/src/lib/jobs/ai-media-asset.js.map +1 -0
  340. package/src/lib/jobs/ai-product-image.d.ts +78 -0
  341. package/src/lib/jobs/ai-product-image.js +113 -0
  342. package/src/lib/jobs/ai-product-image.js.map +1 -0
  343. package/src/lib/jobs/ai-theme-brand-inputs.d.ts +125 -0
  344. package/src/lib/jobs/ai-theme-brand-inputs.js +378 -0
  345. package/src/lib/jobs/ai-theme-brand-inputs.js.map +1 -0
  346. package/src/lib/jobs/ai-theme-brand-server.d.ts +33 -0
  347. package/src/lib/jobs/ai-theme-brand-server.js +33 -0
  348. package/src/lib/jobs/ai-theme-brand-server.js.map +1 -0
  349. package/src/lib/jobs/ai-workflow-records.d.ts +84 -0
  350. package/src/lib/jobs/ai-workflow-records.js +158 -0
  351. package/src/lib/jobs/ai-workflow-records.js.map +1 -0
  352. package/src/lib/jobs/fixtures/ai-free-page-built-recording.d.ts +31 -0
  353. package/src/lib/jobs/fixtures/ai-free-page-built-recording.js +367 -0
  354. package/src/lib/jobs/fixtures/ai-free-page-built-recording.js.map +1 -0
  355. package/src/lib/jobs/fixtures/ai-free-page-recording.d.ts +69 -0
  356. package/src/lib/jobs/fixtures/ai-free-page-recording.js +442 -0
  357. package/src/lib/jobs/fixtures/ai-free-page-recording.js.map +1 -0
  358. package/src/lib/jobs/fixtures/ai-page-briefs.d.ts +146 -0
  359. package/src/lib/jobs/fixtures/ai-page-briefs.js +1850 -0
  360. package/src/lib/jobs/fixtures/ai-page-briefs.js.map +1 -0
  361. package/src/lib/model/ai-allotments.d.ts +208 -0
  362. package/src/lib/model/ai-allotments.js +269 -0
  363. package/src/lib/model/ai-allotments.js.map +1 -0
  364. package/src/lib/model/ai-automation-draft.d.ts +74 -0
  365. package/src/lib/model/ai-automation-draft.js +310 -0
  366. package/src/lib/model/ai-automation-draft.js.map +1 -0
  367. package/src/lib/model/ai-automation-outline.d.ts +50 -0
  368. package/src/lib/model/ai-automation-outline.js +262 -0
  369. package/src/lib/model/ai-automation-outline.js.map +1 -0
  370. package/src/lib/model/ai-build-plan.d.ts +197 -0
  371. package/src/lib/model/ai-build-plan.js +438 -0
  372. package/src/lib/model/ai-build-plan.js.map +1 -0
  373. package/src/lib/model/ai-crm.d.ts +237 -0
  374. package/src/lib/model/ai-crm.js +225 -0
  375. package/src/lib/model/ai-crm.js.map +1 -0
  376. package/src/lib/model/ai-experiment-proposal.d.ts +68 -0
  377. package/src/lib/model/ai-experiment-proposal.js +146 -0
  378. package/src/lib/model/ai-experiment-proposal.js.map +1 -0
  379. package/src/lib/model/ai-experiment.d.ts +309 -0
  380. package/src/lib/model/ai-experiment.js +395 -0
  381. package/src/lib/model/ai-experiment.js.map +1 -0
  382. package/src/lib/model/ai-insight.d.ts +178 -0
  383. package/src/lib/model/ai-insight.js +201 -0
  384. package/src/lib/model/ai-insight.js.map +1 -0
  385. package/src/lib/model/ai-jobs.types.d.ts +412 -0
  386. package/src/lib/model/ai-jobs.types.js +42 -0
  387. package/src/lib/model/ai-jobs.types.js.map +1 -0
  388. package/src/lib/model/ai-page-job.d.ts +92 -0
  389. package/src/lib/model/ai-page-job.js +159 -0
  390. package/src/lib/model/ai-page-job.js.map +1 -0
  391. package/src/lib/model/ai-permissions.d.ts +49 -0
  392. package/src/lib/model/ai-permissions.js +97 -0
  393. package/src/lib/model/ai-permissions.js.map +1 -0
  394. package/src/lib/model/ai-plan-capabilities.d.ts +139 -0
  395. package/src/lib/model/ai-plan-capabilities.js +149 -0
  396. package/src/lib/model/ai-plan-capabilities.js.map +1 -0
  397. package/src/lib/model/ai-products.d.ts +251 -0
  398. package/src/lib/model/ai-products.js +253 -0
  399. package/src/lib/model/ai-products.js.map +1 -0
  400. package/src/lib/model/ai-seo.d.ts +208 -0
  401. package/src/lib/model/ai-seo.js +150 -0
  402. package/src/lib/model/ai-seo.js.map +1 -0
  403. package/src/lib/model/ai-site-inventory.d.ts +164 -0
  404. package/src/lib/model/ai-site-inventory.js +145 -0
  405. package/src/lib/model/ai-site-inventory.js.map +1 -0
  406. package/src/lib/model/ai-site-job.d.ts +247 -0
  407. package/src/lib/model/ai-site-job.js +314 -0
  408. package/src/lib/model/ai-site-job.js.map +1 -0
  409. package/src/lib/model/ai-site-start-seo.d.ts +103 -0
  410. package/src/lib/model/ai-site-start-seo.js +154 -0
  411. package/src/lib/model/ai-site-start-seo.js.map +1 -0
  412. package/src/lib/model/ai-site-start.d.ts +122 -0
  413. package/src/lib/model/ai-site-start.js +159 -0
  414. package/src/lib/model/ai-site-start.js.map +1 -0
  415. package/src/lib/model/ai-site-switch.d.ts +56 -0
  416. package/src/lib/model/ai-site-switch.js +73 -0
  417. package/src/lib/model/ai-site-switch.js.map +1 -0
  418. package/src/lib/model/ai-storefront-claims.d.ts +70 -0
  419. package/src/lib/model/ai-storefront-claims.js +130 -0
  420. package/src/lib/model/ai-storefront-claims.js.map +1 -0
  421. package/src/lib/model/ai-template-subjects.d.ts +82 -0
  422. package/src/lib/model/ai-template-subjects.js +136 -0
  423. package/src/lib/model/ai-template-subjects.js.map +1 -0
  424. package/src/lib/model/ai-theme-proposal.d.ts +210 -0
  425. package/src/lib/model/ai-theme-proposal.js +506 -0
  426. package/src/lib/model/ai-theme-proposal.js.map +1 -0
  427. package/src/lib/model/ai-tokens.d.ts +96 -0
  428. package/src/lib/model/ai-tokens.js +117 -0
  429. package/src/lib/model/ai-tokens.js.map +1 -0
  430. package/src/lib/model/ai-usage-by-user.d.ts +120 -0
  431. package/src/lib/model/ai-usage-by-user.js +139 -0
  432. package/src/lib/model/ai-usage-by-user.js.map +1 -0
  433. package/src/lib/model/ai-workflow-job.d.ts +111 -0
  434. package/src/lib/model/ai-workflow-job.js +183 -0
  435. package/src/lib/model/ai-workflow-job.js.map +1 -0
  436. package/src/lib/model/assist-edit.d.ts +261 -0
  437. package/src/lib/model/assist-edit.js +175 -0
  438. package/src/lib/model/assist-edit.js.map +1 -0
  439. package/src/lib/plugin-config.d.ts +33 -0
  440. package/src/lib/plugin-config.js +118 -0
  441. package/src/lib/plugin-config.js.map +1 -0
  442. package/src/lib/plugin.d.ts +30 -0
  443. package/src/lib/plugin.js +525 -0
  444. package/src/lib/plugin.js.map +1 -0
  445. package/src/lib/providers/anthropic.d.ts +84 -0
  446. package/src/lib/providers/anthropic.js +432 -0
  447. package/src/lib/providers/anthropic.js.map +1 -0
  448. package/src/lib/providers/catalog.d.ts +197 -0
  449. package/src/lib/providers/catalog.js +312 -0
  450. package/src/lib/providers/catalog.js.map +1 -0
  451. package/src/lib/providers/contract.d.ts +464 -0
  452. package/src/lib/providers/contract.js +274 -0
  453. package/src/lib/providers/contract.js.map +1 -0
  454. package/src/lib/providers/model-choice.d.ts +119 -0
  455. package/src/lib/providers/model-choice.js +416 -0
  456. package/src/lib/providers/model-choice.js.map +1 -0
  457. package/src/lib/providers/openai-compatible.d.ts +58 -0
  458. package/src/lib/providers/openai-compatible.js +361 -0
  459. package/src/lib/providers/openai-compatible.js.map +1 -0
  460. package/src/lib/providers/registry.d.ts +49 -0
  461. package/src/lib/providers/registry.js +71 -0
  462. package/src/lib/providers/registry.js.map +1 -0
  463. package/src/lib/providers/routing.d.ts +98 -0
  464. package/src/lib/providers/routing.js +450 -0
  465. package/src/lib/providers/routing.js.map +1 -0
  466. package/src/lib/runtime/ai-abuse-guards.d.ts +113 -0
  467. package/src/lib/runtime/ai-abuse-guards.js +148 -0
  468. package/src/lib/runtime/ai-abuse-guards.js.map +1 -0
  469. package/src/lib/runtime/ai-component-bindings.d.ts +67 -0
  470. package/src/lib/runtime/ai-component-bindings.js +106 -0
  471. package/src/lib/runtime/ai-component-bindings.js.map +1 -0
  472. package/src/lib/runtime/ai-device-audit.d.ts +109 -0
  473. package/src/lib/runtime/ai-device-audit.js +97 -0
  474. package/src/lib/runtime/ai-device-audit.js.map +1 -0
  475. package/src/lib/runtime/ai-doctrine-validators.d.ts +720 -0
  476. package/src/lib/runtime/ai-doctrine-validators.js +3133 -0
  477. package/src/lib/runtime/ai-doctrine-validators.js.map +1 -0
  478. package/src/lib/runtime/ai-doctrine.d.ts +372 -0
  479. package/src/lib/runtime/ai-doctrine.js +944 -0
  480. package/src/lib/runtime/ai-doctrine.js.map +1 -0
  481. package/src/lib/runtime/ai-eval-live.d.ts +321 -0
  482. package/src/lib/runtime/ai-eval-live.js +1257 -0
  483. package/src/lib/runtime/ai-eval-live.js.map +1 -0
  484. package/src/lib/runtime/ai-eval-memory-firestore.d.ts +51 -0
  485. package/src/lib/runtime/ai-eval-memory-firestore.js +183 -0
  486. package/src/lib/runtime/ai-eval-memory-firestore.js.map +1 -0
  487. package/src/lib/runtime/ai-eval.d.ts +441 -0
  488. package/src/lib/runtime/ai-eval.js +1151 -0
  489. package/src/lib/runtime/ai-eval.js.map +1 -0
  490. package/src/lib/runtime/ai-gate.d.ts +130 -0
  491. package/src/lib/runtime/ai-gate.js +272 -0
  492. package/src/lib/runtime/ai-gate.js.map +1 -0
  493. package/src/lib/runtime/ai-generation-bounds.d.ts +24 -0
  494. package/src/lib/runtime/ai-generation-bounds.js +23 -0
  495. package/src/lib/runtime/ai-generation-bounds.js.map +1 -0
  496. package/src/lib/runtime/ai-insight-check.d.ts +76 -0
  497. package/src/lib/runtime/ai-insight-check.js +281 -0
  498. package/src/lib/runtime/ai-insight-check.js.map +1 -0
  499. package/src/lib/runtime/ai-node-tree.d.ts +181 -0
  500. package/src/lib/runtime/ai-node-tree.js +931 -0
  501. package/src/lib/runtime/ai-node-tree.js.map +1 -0
  502. package/src/lib/runtime/ai-page-links.d.ts +79 -0
  503. package/src/lib/runtime/ai-page-links.js +135 -0
  504. package/src/lib/runtime/ai-page-links.js.map +1 -0
  505. package/src/lib/runtime/ai-palette.d.ts +252 -0
  506. package/src/lib/runtime/ai-palette.generated.d.ts +34 -0
  507. package/src/lib/runtime/ai-palette.generated.js +5263 -0
  508. package/src/lib/runtime/ai-palette.generated.js.map +1 -0
  509. package/src/lib/runtime/ai-palette.js +187 -0
  510. package/src/lib/runtime/ai-palette.js.map +1 -0
  511. package/src/lib/runtime/ai-products-generation.d.ts +107 -0
  512. package/src/lib/runtime/ai-products-generation.js +250 -0
  513. package/src/lib/runtime/ai-products-generation.js.map +1 -0
  514. package/src/lib/runtime/ai-repeated-items.d.ts +95 -0
  515. package/src/lib/runtime/ai-repeated-items.js +397 -0
  516. package/src/lib/runtime/ai-repeated-items.js.map +1 -0
  517. package/src/lib/runtime/ai-runtime.d.ts +148 -0
  518. package/src/lib/runtime/ai-runtime.js +237 -0
  519. package/src/lib/runtime/ai-runtime.js.map +1 -0
  520. package/src/lib/runtime/ai-template-examples.d.ts +71 -0
  521. package/src/lib/runtime/ai-template-examples.js +135 -0
  522. package/src/lib/runtime/ai-template-examples.js.map +1 -0
  523. package/src/lib/runtime/assist-answer-cache.d.ts +80 -0
  524. package/src/lib/runtime/assist-answer-cache.js +184 -0
  525. package/src/lib/runtime/assist-answer-cache.js.map +1 -0
  526. package/src/lib/runtime/seo-audit.d.ts +93 -0
  527. package/src/lib/runtime/seo-audit.js +260 -0
  528. package/src/lib/runtime/seo-audit.js.map +1 -0
  529. package/src/lib/runtime/seo-content-fixes.d.ts +41 -0
  530. package/src/lib/runtime/seo-content-fixes.js +168 -0
  531. package/src/lib/runtime/seo-content-fixes.js.map +1 -0
  532. package/src/lib/runtime/seo-fields.d.ts +152 -0
  533. package/src/lib/runtime/seo-fields.js +215 -0
  534. package/src/lib/runtime/seo-fields.js.map +1 -0
  535. package/src/lib/runtime/seo-page-facts.d.ts +61 -0
  536. package/src/lib/runtime/seo-page-facts.js +150 -0
  537. package/src/lib/runtime/seo-page-facts.js.map +1 -0
  538. package/src/lib/runtime/site-inventory.d.ts +63 -0
  539. package/src/lib/runtime/site-inventory.js +230 -0
  540. package/src/lib/runtime/site-inventory.js.map +1 -0
  541. package/src/lib/server/ai-admin-org.d.ts +33 -0
  542. package/src/lib/server/ai-admin-org.js +381 -0
  543. package/src/lib/server/ai-admin-org.js.map +1 -0
  544. package/src/lib/server/ai-admin-orgs-spend.d.ts +40 -0
  545. package/src/lib/server/ai-admin-orgs-spend.js +129 -0
  546. package/src/lib/server/ai-admin-orgs-spend.js.map +1 -0
  547. package/src/lib/server/ai-admin-overage.d.ts +19 -0
  548. package/src/lib/server/ai-admin-overage.js +246 -0
  549. package/src/lib/server/ai-admin-overage.js.map +1 -0
  550. package/src/lib/server/ai-admin-signals.d.ts +34 -0
  551. package/src/lib/server/ai-admin-signals.js +330 -0
  552. package/src/lib/server/ai-admin-signals.js.map +1 -0
  553. package/src/lib/server/ai-admin-user.d.ts +27 -0
  554. package/src/lib/server/ai-admin-user.js +128 -0
  555. package/src/lib/server/ai-admin-user.js.map +1 -0
  556. package/src/lib/server/ai-allotments.d.ts +27 -0
  557. package/src/lib/server/ai-allotments.js +544 -0
  558. package/src/lib/server/ai-allotments.js.map +1 -0
  559. package/src/lib/server/ai-assist-prompts.d.ts +102 -0
  560. package/src/lib/server/ai-assist-prompts.js +207 -0
  561. package/src/lib/server/ai-assist-prompts.js.map +1 -0
  562. package/src/lib/server/ai-assist.d.ts +119 -0
  563. package/src/lib/server/ai-assist.js +517 -0
  564. package/src/lib/server/ai-assist.js.map +1 -0
  565. package/src/lib/server/ai-crm-answer.d.ts +30 -0
  566. package/src/lib/server/ai-crm-answer.js +98 -0
  567. package/src/lib/server/ai-crm-answer.js.map +1 -0
  568. package/src/lib/server/ai-generate-component.d.ts +111 -0
  569. package/src/lib/server/ai-generate-component.js +643 -0
  570. package/src/lib/server/ai-generate-component.js.map +1 -0
  571. package/src/lib/server/ai-host-permissions.d.ts +46 -0
  572. package/src/lib/server/ai-host-permissions.js +204 -0
  573. package/src/lib/server/ai-host-permissions.js.map +1 -0
  574. package/src/lib/server/ai-insight-answer.d.ts +30 -0
  575. package/src/lib/server/ai-insight-answer.js +83 -0
  576. package/src/lib/server/ai-insight-answer.js.map +1 -0
  577. package/src/lib/server/ai-insight-digest-route.d.ts +30 -0
  578. package/src/lib/server/ai-insight-digest-route.js +156 -0
  579. package/src/lib/server/ai-insight-digest-route.js.map +1 -0
  580. package/src/lib/server/ai-jobs-batch.d.ts +48 -0
  581. package/src/lib/server/ai-jobs-batch.js +306 -0
  582. package/src/lib/server/ai-jobs-batch.js.map +1 -0
  583. package/src/lib/server/ai-jobs-beat-route.d.ts +36 -0
  584. package/src/lib/server/ai-jobs-beat-route.js +86 -0
  585. package/src/lib/server/ai-jobs-beat-route.js.map +1 -0
  586. package/src/lib/server/ai-jobs-cancel.d.ts +30 -0
  587. package/src/lib/server/ai-jobs-cancel.js +74 -0
  588. package/src/lib/server/ai-jobs-cancel.js.map +1 -0
  589. package/src/lib/server/ai-jobs-events-route.d.ts +31 -0
  590. package/src/lib/server/ai-jobs-events-route.js +51 -0
  591. package/src/lib/server/ai-jobs-events-route.js.map +1 -0
  592. package/src/lib/server/ai-jobs-events.d.ts +55 -0
  593. package/src/lib/server/ai-jobs-events.js +144 -0
  594. package/src/lib/server/ai-jobs-events.js.map +1 -0
  595. package/src/lib/server/ai-jobs-gate.d.ts +47 -0
  596. package/src/lib/server/ai-jobs-gate.js +106 -0
  597. package/src/lib/server/ai-jobs-gate.js.map +1 -0
  598. package/src/lib/server/ai-jobs-resume.d.ts +23 -0
  599. package/src/lib/server/ai-jobs-resume.js +209 -0
  600. package/src/lib/server/ai-jobs-resume.js.map +1 -0
  601. package/src/lib/server/ai-jobs-route.d.ts +32 -0
  602. package/src/lib/server/ai-jobs-route.js +307 -0
  603. package/src/lib/server/ai-jobs-route.js.map +1 -0
  604. package/src/lib/server/ai-models.d.ts +18 -0
  605. package/src/lib/server/ai-models.js +134 -0
  606. package/src/lib/server/ai-models.js.map +1 -0
  607. package/src/lib/server/ai-seo-apply.d.ts +53 -0
  608. package/src/lib/server/ai-seo-apply.js +294 -0
  609. package/src/lib/server/ai-seo-apply.js.map +1 -0
  610. package/src/lib/server/ai-usage.d.ts +18 -0
  611. package/src/lib/server/ai-usage.js +220 -0
  612. package/src/lib/server/ai-usage.js.map +1 -0
  613. package/src/lib/server/assist-chat.d.ts +234 -0
  614. package/src/lib/server/assist-chat.js +1446 -0
  615. package/src/lib/server/assist-chat.js.map +1 -0
  616. package/src/lib/server/assist-edit-applied.d.ts +22 -0
  617. package/src/lib/server/assist-edit-applied.js +239 -0
  618. package/src/lib/server/assist-edit-applied.js.map +1 -0
  619. package/src/lib/server/assist-edit.d.ts +124 -0
  620. package/src/lib/server/assist-edit.js +1000 -0
  621. package/src/lib/server/assist-edit.js.map +1 -0
  622. package/src/lib/server/assist-feedback.d.ts +31 -0
  623. package/src/lib/server/assist-feedback.js +115 -0
  624. package/src/lib/server/assist-feedback.js.map +1 -0
  625. package/src/lib/server/assist-view-context.d.ts +343 -0
  626. package/src/lib/server/assist-view-context.js +690 -0
  627. package/src/lib/server/assist-view-context.js.map +1 -0
  628. package/src/lib/server/billing-credits.d.ts +59 -0
  629. package/src/lib/server/billing-credits.js +146 -0
  630. package/src/lib/server/billing-credits.js.map +1 -0
  631. package/src/lib/server/billing-overage.d.ts +19 -0
  632. package/src/lib/server/billing-overage.js +337 -0
  633. package/src/lib/server/billing-overage.js.map +1 -0
  634. package/src/lib/server.d.ts +32 -0
  635. package/src/lib/server.js +265 -0
  636. package/src/lib/server.js.map +1 -0
  637. package/src/lib/subprocessors.d.ts +18 -0
  638. package/src/lib/subprocessors.js +52 -0
  639. package/src/lib/subprocessors.js.map +1 -0
  640. package/src/lib/tools/ai-component-tool.d.ts +99 -0
  641. package/src/lib/tools/ai-component-tool.js +369 -0
  642. package/src/lib/tools/ai-component-tool.js.map +1 -0
  643. package/src/lib/tools/ai-crm-tool.d.ts +106 -0
  644. package/src/lib/tools/ai-crm-tool.js +488 -0
  645. package/src/lib/tools/ai-crm-tool.js.map +1 -0
  646. package/src/lib/tools/ai-duplicate-resource-tool.d.ts +71 -0
  647. package/src/lib/tools/ai-duplicate-resource-tool.js +164 -0
  648. package/src/lib/tools/ai-duplicate-resource-tool.js.map +1 -0
  649. package/src/lib/tools/ai-experiment-tool.d.ts +40 -0
  650. package/src/lib/tools/ai-experiment-tool.js +155 -0
  651. package/src/lib/tools/ai-experiment-tool.js.map +1 -0
  652. package/src/lib/tools/ai-insight-tool.d.ts +46 -0
  653. package/src/lib/tools/ai-insight-tool.js +200 -0
  654. package/src/lib/tools/ai-insight-tool.js.map +1 -0
  655. package/src/lib/tools/ai-inventory-lookup-tool.d.ts +86 -0
  656. package/src/lib/tools/ai-inventory-lookup-tool.js +164 -0
  657. package/src/lib/tools/ai-inventory-lookup-tool.js.map +1 -0
  658. package/src/lib/tools/ai-products-tool.d.ts +65 -0
  659. package/src/lib/tools/ai-products-tool.js +644 -0
  660. package/src/lib/tools/ai-products-tool.js.map +1 -0
  661. package/src/lib/tools/ai-seo-tool.d.ts +162 -0
  662. package/src/lib/tools/ai-seo-tool.js +546 -0
  663. package/src/lib/tools/ai-seo-tool.js.map +1 -0
  664. package/src/lib/tools/ai-theme-tool.d.ts +101 -0
  665. package/src/lib/tools/ai-theme-tool.js +562 -0
  666. package/src/lib/tools/ai-theme-tool.js.map +1 -0
  667. package/src/lib/tools/ai-workflow-tool.d.ts +166 -0
  668. package/src/lib/tools/ai-workflow-tool.js +860 -0
  669. package/src/lib/tools/ai-workflow-tool.js.map +1 -0
  670. package/src/lib/usage/ai-allotment-alerts.d.ts +72 -0
  671. package/src/lib/usage/ai-allotment-alerts.js +157 -0
  672. package/src/lib/usage/ai-allotment-alerts.js.map +1 -0
  673. package/src/lib/usage/ai-allotments.d.ts +125 -0
  674. package/src/lib/usage/ai-allotments.js +239 -0
  675. package/src/lib/usage/ai-allotments.js.map +1 -0
  676. package/src/lib/usage/ai-model-sample.d.ts +36 -0
  677. package/src/lib/usage/ai-model-sample.js +68 -0
  678. package/src/lib/usage/ai-model-sample.js.map +1 -0
  679. package/src/lib/usage/ai-usage-alerts.d.ts +55 -0
  680. package/src/lib/usage/ai-usage-alerts.js +114 -0
  681. package/src/lib/usage/ai-usage-alerts.js.map +1 -0
  682. package/src/lib/usage/ai-usage-by-user.d.ts +161 -0
  683. package/src/lib/usage/ai-usage-by-user.js +211 -0
  684. package/src/lib/usage/ai-usage-by-user.js.map +1 -0
  685. package/src/lib/usage/ai-usage-eraser.d.ts +29 -0
  686. package/src/lib/usage/ai-usage-eraser.js +40 -0
  687. package/src/lib/usage/ai-usage-eraser.js.map +1 -0
  688. package/src/lib/usage/ai-usage-meter.d.ts +39 -0
  689. package/src/lib/usage/ai-usage-meter.js +85 -0
  690. package/src/lib/usage/ai-usage-meter.js.map +1 -0
  691. package/src/lib/usage/ai-usage-wire.d.ts +184 -0
  692. package/src/lib/usage/ai-usage-wire.js +98 -0
  693. package/src/lib/usage/ai-usage-wire.js.map +1 -0
  694. package/src/lib/usage/assist-ceiling.d.ts +87 -0
  695. package/src/lib/usage/assist-ceiling.js +110 -0
  696. package/src/lib/usage/assist-ceiling.js.map +1 -0
  697. package/src/lib/usage/assist-free-taste.d.ts +225 -0
  698. package/src/lib/usage/assist-free-taste.js +308 -0
  699. package/src/lib/usage/assist-free-taste.js.map +1 -0
  700. package/src/lib/usage/assist-refusals.d.ts +69 -0
  701. package/src/lib/usage/assist-refusals.js +79 -0
  702. package/src/lib/usage/assist-refusals.js.map +1 -0
  703. package/src/lib/usage/assist-signal-mining.d.ts +375 -0
  704. package/src/lib/usage/assist-signal-mining.js +344 -0
  705. package/src/lib/usage/assist-signal-mining.js.map +1 -0
  706. package/src/lib/usage/assist-usage.d.ts +571 -0
  707. package/src/lib/usage/assist-usage.js +978 -0
  708. package/src/lib/usage/assist-usage.js.map +1 -0
  709. package/src/lib/usage/staff-org-ai.d.ts +242 -0
  710. package/src/lib/usage/staff-org-ai.js +173 -0
  711. package/src/lib/usage/staff-org-ai.js.map +1 -0
  712. package/src/lib/usage/staff-org-usage-ai.d.ts +83 -0
  713. package/src/lib/usage/staff-org-usage-ai.js +59 -0
  714. package/src/lib/usage/staff-org-usage-ai.js.map +1 -0
  715. package/src/lib/usage/staff-orgs-ai-spend.d.ts +83 -0
  716. package/src/lib/usage/staff-orgs-ai-spend.js +114 -0
  717. 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;