@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,636 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ /**
3
+ * @license
4
+ * Copyright 2026 Aglyn LLC
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */ import { screenSeoStageKey } from "@aglyn/aglyn/app-utils/screen-seo-fields";
18
+ import { NODE_HIDE_IF_PROP, replaceSubtreeWithInstance, reusableComponentDefinitionFrom } from "@aglyn/aglyn/app-utils/compose-reusable-components";
19
+ import { CANVAS_ROOT_ELEMENT_ID } from "@aglyn/aglyn/foundation/constants/canvas";
20
+ import { stageEditorSessionFields } from "@aglyn/aglyn/plugin-manager/editor-sessions";
21
+ import { ASSIST_EDIT_CONTEXT_MAX_NODES, ASSIST_EDIT_CONTEXT_MAX_PROPS, ASSIST_EDIT_OUTLINE_TEXT_CHARS, ASSIST_EDIT_SELECTED_TEXT_CHARS, assistEditOpCounts } from "../model/assist-edit.js";
22
+ const UNDESCRIBED_PROP = /^(html|sx|style|className|dangerouslySetInnerHTML|on[A-Z].*)$/;
23
+ const isRecord = (value)=>typeof value === 'object' && value !== null && !Array.isArray(value);
24
+ /**
25
+ * An observable's own keys as a plain object. A canvas node's `props` and
26
+ * `sx` are observable proxies, and a spread of one is how a merge silently
27
+ * copies nothing.
28
+ */ function plain(value) {
29
+ const out = {};
30
+ if (!value || typeof value !== 'object') return out;
31
+ for(const key in value){
32
+ out[key] = value[key];
33
+ }
34
+ return out;
35
+ }
36
+ function describeProps(raw, textChars) {
37
+ const props = {};
38
+ let kept = 0;
39
+ for (const [name, value] of Object.entries(plain(raw))){
40
+ if (kept >= ASSIST_EDIT_CONTEXT_MAX_PROPS) break;
41
+ if (UNDESCRIBED_PROP.test(name)) continue;
42
+ if (typeof value === 'string') {
43
+ if (!value.trim()) continue;
44
+ props[name] = value.slice(0, textChars);
45
+ } else if (typeof value === 'number' && Number.isFinite(value)) {
46
+ props[name] = value;
47
+ } else if (typeof value === 'boolean') {
48
+ props[name] = value;
49
+ } else {
50
+ continue;
51
+ }
52
+ kept += 1;
53
+ }
54
+ return kept ? props : undefined;
55
+ }
56
+ function describeSx(raw) {
57
+ const sx = {};
58
+ for (const [key, value] of Object.entries(plain(raw))){
59
+ if (typeof value === 'string' || typeof value === 'number') sx[key] = value;
60
+ else if (isRecord(value)) sx[key] = plain(value);
61
+ }
62
+ return Object.keys(sx).length ? sx : undefined;
63
+ }
64
+ /**
65
+ * The selection's ancestors below the document root, top-level section first
66
+ * and the selection last; null when its parents do not lead to the root,
67
+ * which is not a chain the server can check.
68
+ */ function chainToRoot(canvas, selected) {
69
+ const chain = [];
70
+ const walked = new Set();
71
+ let current = selected;
72
+ while((current == null ? void 0 : current.$id) && current.$id !== CANVAS_ROOT_ELEMENT_ID && !walked.has(current.$id)){
73
+ walked.add(current.$id);
74
+ chain.unshift(current.$id);
75
+ current = current.parentId ? canvas.getNode(current.parentId) : undefined;
76
+ }
77
+ return (current == null ? void 0 : current.$id) === CANVAS_ROOT_ELEMENT_ID ? chain : null;
78
+ }
79
+ /** Elements one shape is taken over at most; a larger subtree is never called alike. */ const SHAPE_LIMIT = 200;
80
+ /**
81
+ * How an element is built: its component and, in order, its children's —
82
+ * what two cards of one row have in common whatever their text. Null past
83
+ * `SHAPE_LIMIT` elements, or for a subtree that loops back on itself.
84
+ */ function shapeOf(canvas, rootId) {
85
+ let budget = SHAPE_LIMIT;
86
+ const walked = new Set();
87
+ const walk = (id)=>{
88
+ var _node_nodes, _node_componentId;
89
+ const node = canvas.getNode(id);
90
+ if (!node || walked.has(id) || --budget < 0) return null;
91
+ walked.add(id);
92
+ const parts = [];
93
+ for (const child of (_node_nodes = node.nodes) != null ? _node_nodes : []){
94
+ const part = walk(child);
95
+ if (part === null) return null;
96
+ parts.push(part);
97
+ }
98
+ return `${String((_node_componentId = node.componentId) != null ? _node_componentId : '')}(${parts.join(',')})`;
99
+ };
100
+ return walk(rootId);
101
+ }
102
+ /** Elements reachable from the document root through child lists, the root included. */ function countElements(canvas) {
103
+ let count = 0;
104
+ const reached = new Set([
105
+ CANVAS_ROOT_ELEMENT_ID
106
+ ]);
107
+ const pending = [
108
+ CANVAS_ROOT_ELEMENT_ID
109
+ ];
110
+ while(pending.length){
111
+ var _node_nodes;
112
+ const node = canvas.getNode(pending.pop());
113
+ if (!node) continue;
114
+ count += 1;
115
+ for (const child of (_node_nodes = node.nodes) != null ? _node_nodes : []){
116
+ if (reached.has(child)) continue;
117
+ reached.add(child);
118
+ pending.push(child);
119
+ }
120
+ }
121
+ return count;
122
+ }
123
+ /**
124
+ * The canvas outline a question carries on the edit rung, in two tiers, until
125
+ * the cap.
126
+ *
127
+ * Described in full, settings and all: the document root, the selection's
128
+ * ancestors and the selection, the document's top-level sections, everything
129
+ * inside the selection — what an edit to it changes — and its siblings.
130
+ *
131
+ * Described briefly, by place alone (`brief`): what surrounds that, so the
132
+ * model knows it exists and asks for it rather than calling it missing —
133
+ *
134
+ * 1. what the selection's siblings hold, level by level (the icons beside a
135
+ * selected link, in the card they share);
136
+ * 2. the siblings of each ancestor below the top-level section, nearest
137
+ * first (the other cards of the row, then what sits beside the row).
138
+ *
139
+ * An element built the same way as the selection, or as the ancestor it sits
140
+ * beside, is marked `like` it and its contents are left out: one card
141
+ * described, and every other card of the row says it holds the same.
142
+ *
143
+ * With nothing selected, it is the root, the top-level sections and one level
144
+ * inside each: enough for a change to the page as a whole, and the prompt asks
145
+ * for a selection before anything more specific.
146
+ *
147
+ * An element is only ever described after its parent, so every ancestor chain
148
+ * the server checks is whole. `total` counts the document, and each element's
149
+ * `childCount` stays its real one, so the server can tell the model what the
150
+ * outline leaves out. The server holds this to its own limits before it quotes
151
+ * a byte of it; null when the canvas has no document root loaded.
152
+ */ export function describeAssistEditCanvas(canvas, selectedId) {
153
+ const root = canvas.getNode(CANVAS_ROOT_ELEMENT_ID);
154
+ if (!root) return null;
155
+ const order = [];
156
+ const seen = new Set();
157
+ const brief = new Set();
158
+ const like = new Map();
159
+ const full = ()=>order.length >= ASSIST_EDIT_CONTEXT_MAX_NODES;
160
+ const add = (id, briefly = false)=>{
161
+ if (!id || seen.has(id) || full()) return;
162
+ if (!canvas.getNode(id)) return;
163
+ seen.add(id);
164
+ order.push(id);
165
+ if (briefly) brief.add(id);
166
+ };
167
+ const childrenOf = (id)=>{
168
+ var _ref;
169
+ var _canvas_getNode;
170
+ return (_ref = (_canvas_getNode = canvas.getNode(id)) == null ? void 0 : _canvas_getNode.nodes) != null ? _ref : [];
171
+ };
172
+ const shapes = new Map();
173
+ const shape = (id)=>{
174
+ var _shapes_get;
175
+ if (!shapes.has(id)) shapes.set(id, shapeOf(canvas, id));
176
+ return (_shapes_get = shapes.get(id)) != null ? _shapes_get : null;
177
+ };
178
+ // Alike only when there are contents to leave out.
179
+ const alike = (id, model)=>childrenOf(id).length > 0 && shape(id) !== null && shape(id) === shape(model);
180
+ add(CANVAS_ROOT_ELEMENT_ID);
181
+ const selected = selectedId && selectedId !== CANVAS_ROOT_ELEMENT_ID ? canvas.getNode(selectedId) : undefined;
182
+ const chain = (selected == null ? void 0 : selected.$id) ? chainToRoot(canvas, selected) : null;
183
+ chain == null ? void 0 : chain.forEach((id)=>add(id));
184
+ if ((selected == null ? void 0 : selected.$id) && chain && seen.has(selected.$id)) {
185
+ var _root_nodes;
186
+ for (const id of (_root_nodes = root.nodes) != null ? _root_nodes : [])add(id);
187
+ const inside = new Set([
188
+ selected.$id
189
+ ]);
190
+ const queue = [
191
+ ...childrenOf(selected.$id)
192
+ ];
193
+ while(queue.length && !full()){
194
+ const id = queue.shift();
195
+ if (inside.has(id)) continue;
196
+ inside.add(id);
197
+ add(id);
198
+ queue.push(...childrenOf(id));
199
+ }
200
+ const siblings = selected.parentId ? childrenOf(selected.parentId).filter((id)=>id !== selected.$id) : [];
201
+ const held = [];
202
+ for (const id of siblings){
203
+ add(id);
204
+ // A sibling the cap left out takes its contents with it.
205
+ if (!seen.has(id)) continue;
206
+ if (alike(id, selected.$id)) like.set(id, selected.$id);
207
+ else held.push(...childrenOf(id));
208
+ }
209
+ const reached = new Set([
210
+ ...inside,
211
+ ...siblings,
212
+ ...held
213
+ ]);
214
+ for(let level = held; level.length && !full();){
215
+ const deeper = [];
216
+ for (const id of level){
217
+ add(id, true);
218
+ for (const child of childrenOf(id)){
219
+ if (reached.has(child)) continue;
220
+ reached.add(child);
221
+ deeper.push(child);
222
+ }
223
+ }
224
+ level = deeper;
225
+ }
226
+ // Parent first; the top-level section's own siblings are the sections above.
227
+ for (const ancestor of chain.slice(1, -1).reverse()){
228
+ var _canvas_getNode;
229
+ const parentId = (_canvas_getNode = canvas.getNode(ancestor)) == null ? void 0 : _canvas_getNode.parentId;
230
+ for (const id of parentId ? childrenOf(parentId) : []){
231
+ if (id === ancestor || seen.has(id)) continue;
232
+ add(id, true);
233
+ if (seen.has(id) && alike(id, ancestor)) like.set(id, ancestor);
234
+ }
235
+ }
236
+ } else {
237
+ var _root_nodes1, _root_nodes2;
238
+ for (const id of (_root_nodes1 = root.nodes) != null ? _root_nodes1 : [])add(id);
239
+ for (const section of (_root_nodes2 = root.nodes) != null ? _root_nodes2 : []){
240
+ for (const id of childrenOf(section))add(id);
241
+ }
242
+ }
243
+ const nodes = order.map((id)=>{
244
+ var _node_parentId, _node_componentId, _ref, _ref1;
245
+ var _parent_nodes, _node_nodes;
246
+ const node = canvas.getNode(id);
247
+ const isRoot = id === CANVAS_ROOT_ELEMENT_ID;
248
+ const parentId = isRoot ? null : (_node_parentId = node.parentId) != null ? _node_parentId : null;
249
+ const parent = parentId ? canvas.getNode(parentId) : undefined;
250
+ const isSelected = id === (selected == null ? void 0 : selected.$id);
251
+ const isBrief = brief.has(id);
252
+ const props = isBrief ? undefined : describeProps(node.props, isSelected ? ASSIST_EDIT_SELECTED_TEXT_CHARS : ASSIST_EDIT_OUTLINE_TEXT_CHARS);
253
+ const sx = isSelected ? describeSx(node.sx) : undefined;
254
+ const model = like.get(id);
255
+ return _extends({
256
+ id,
257
+ componentId: String((_node_componentId = node.componentId) != null ? _node_componentId : ''),
258
+ parentId,
259
+ index: Math.max(0, (_ref = parent == null ? void 0 : (_parent_nodes = parent.nodes) == null ? void 0 : _parent_nodes.indexOf(id)) != null ? _ref : 0),
260
+ childCount: (_ref1 = (_node_nodes = node.nodes) == null ? void 0 : _node_nodes.length) != null ? _ref1 : 0
261
+ }, node.name ? {
262
+ name: String(node.name)
263
+ } : {}, props ? {
264
+ props
265
+ } : {}, sx ? {
266
+ sx
267
+ } : {}, isBrief ? {
268
+ brief: true
269
+ } : {}, model ? {
270
+ like: model
271
+ } : {});
272
+ });
273
+ return {
274
+ selectedId: (selected == null ? void 0 : selected.$id) && seen.has(selected.$id) ? selected.$id : null,
275
+ total: countElements(canvas),
276
+ nodes
277
+ };
278
+ }
279
+ /** Ids of the subtree at `rootId`, the root included, through child lists only. */ function subtreeIds(canvas, rootId) {
280
+ var _ref;
281
+ var _canvas_getNode;
282
+ const found = new Set([
283
+ rootId
284
+ ]);
285
+ const queue = [
286
+ ...(_ref = (_canvas_getNode = canvas.getNode(rootId)) == null ? void 0 : _canvas_getNode.nodes) != null ? _ref : []
287
+ ];
288
+ while(queue.length){
289
+ var _ref1;
290
+ var _canvas_getNode1;
291
+ const id = queue.shift();
292
+ if (found.has(id) || !canvas.getNode(id)) continue;
293
+ found.add(id);
294
+ queue.push(...(_ref1 = (_canvas_getNode1 = canvas.getNode(id)) == null ? void 0 : _canvas_getNode1.nodes) != null ? _ref1 : []);
295
+ }
296
+ return found;
297
+ }
298
+ const STALE = {
299
+ ok: false,
300
+ reason: 'stale',
301
+ message: 'The canvas has changed since this was proposed, so nothing was applied. Ask again.'
302
+ };
303
+ /**
304
+ * Whether the proposal can land on the open editor as it stands — checked in
305
+ * full before anything is touched, so a refusal never leaves half an edit.
306
+ */ export function checkAssistEdit(canvas, proposal, session) {
307
+ if (!session) {
308
+ return {
309
+ ok: false,
310
+ reason: 'no-editor',
311
+ message: 'Open the editor this change was proposed for to apply it.'
312
+ };
313
+ }
314
+ if (session.documentKind !== proposal.target.kind || session.documentId !== proposal.target.documentId) {
315
+ return {
316
+ ok: false,
317
+ reason: 'other-document',
318
+ message: 'This change was proposed for a different document than the one open.'
319
+ };
320
+ }
321
+ if (session.isLiveVersion()) {
322
+ return {
323
+ ok: false,
324
+ reason: 'live-version',
325
+ message: 'This is the version your live site shows. Make a new version first, then apply the change there.'
326
+ };
327
+ }
328
+ for (const op of proposal.ops){
329
+ switch(op.op){
330
+ case 'setSeo':
331
+ {
332
+ for (const field of Object.keys(op.fields)){
333
+ var _session_fields;
334
+ if (typeof ((_session_fields = session.fields) == null ? void 0 : _session_fields[screenSeoStageKey(field)]) !== 'function') {
335
+ return {
336
+ ok: false,
337
+ reason: 'other-document',
338
+ message: 'This editor has no search fields to fill in.'
339
+ };
340
+ }
341
+ }
342
+ break;
343
+ }
344
+ case 'insertSubtree':
345
+ {
346
+ const parent = canvas.getNode(op.parentId);
347
+ if (!parent || parent.componentId !== op.parentComponentId) return STALE;
348
+ if (!canvas.nodeAcceptsChildren(parent)) return STALE;
349
+ break;
350
+ }
351
+ case 'move':
352
+ {
353
+ const node = canvas.getNode(op.nodeId);
354
+ const parent = canvas.getNode(op.parentId);
355
+ if (!node || node.componentId !== op.componentId) return STALE;
356
+ if (!parent || parent.componentId !== op.parentComponentId) return STALE;
357
+ break;
358
+ }
359
+ case 'saveAsComponent':
360
+ {
361
+ const node = canvas.getNode(op.nodeId);
362
+ if (!node || node.componentId !== op.componentId) return STALE;
363
+ // The document itself is not a section of itself: promoting the root
364
+ // would leave a document holding one instance of its own contents.
365
+ if (op.nodeId === CANVAS_ROOT_ELEMENT_ID) return STALE;
366
+ const inside = subtreeIds(canvas, op.nodeId);
367
+ for (const binding of op.bindings){
368
+ const bound = canvas.getNode(binding.nodeId);
369
+ if (!bound || bound.componentId !== binding.componentId) return STALE;
370
+ // A closed world: a token outside the promoted subtree would bind a
371
+ // property of the new component to an element it does not contain.
372
+ if (!inside.has(binding.nodeId)) return STALE;
373
+ }
374
+ break;
375
+ }
376
+ default:
377
+ {
378
+ const node = canvas.getNode(op.nodeId);
379
+ if (!node || node.componentId !== op.componentId) return STALE;
380
+ }
381
+ }
382
+ }
383
+ return {
384
+ ok: true
385
+ };
386
+ }
387
+ /**
388
+ * Styles merged one key at a time. A responsive patch over a plain value
389
+ * keeps that value as the base breakpoint, so "more padding on wide screens"
390
+ * does not quietly remove the padding everywhere else.
391
+ */ function mergeSx(current, patch) {
392
+ const out = _extends({}, current);
393
+ for (const [key, value] of Object.entries(patch)){
394
+ const existing = out[key];
395
+ if (isRecord(value) && isRecord(existing)) {
396
+ out[key] = _extends({}, plain(existing), value);
397
+ } else if (isRecord(value) && (typeof existing === 'string' || typeof existing === 'number')) {
398
+ out[key] = _extends({
399
+ xs: existing
400
+ }, value);
401
+ } else {
402
+ out[key] = value;
403
+ }
404
+ }
405
+ return out;
406
+ }
407
+ /** A validated flat subtree as the nested shape `addNodeFromNested` takes. */ function nestSubtree(op) {
408
+ const visited = new Set();
409
+ const build = (id)=>{
410
+ visited.add(id);
411
+ const node = op.nodes[id];
412
+ return _extends({
413
+ componentId: node.componentId
414
+ }, node.pluginId ? {
415
+ pluginId: node.pluginId
416
+ } : {}, {
417
+ props: _extends({}, node.props)
418
+ }, node.sx ? {
419
+ sx: _extends({}, node.sx)
420
+ } : {}, node.hidden ? {
421
+ hidden: true
422
+ } : {}, {
423
+ nodes: node.nodes.filter((child)=>op.nodes[child] && !visited.has(child)).map((child)=>build(child))
424
+ });
425
+ };
426
+ return build(op.rootId);
427
+ }
428
+ function live(canvas, id) {
429
+ const node = canvas.getNode(id);
430
+ if (!node) throw new Error(`element ${id} is no longer on the canvas`);
431
+ return node;
432
+ }
433
+ function applyOne(canvas, op) {
434
+ switch(op.op){
435
+ case 'updateProps':
436
+ {
437
+ const node = live(canvas, op.nodeId);
438
+ // Spread the props the element has: `updateNodeProps` REPLACES the bag,
439
+ // and a patch of one setting would otherwise strip every other one.
440
+ const next = _extends({}, plain(node.props), op.props);
441
+ // Rich text renders `html` over `children`; proposed text replaces it.
442
+ if ('children' in op.props) delete next['html'];
443
+ canvas.updateNodeProps(node, next);
444
+ return;
445
+ }
446
+ case 'updateSx':
447
+ {
448
+ const node = live(canvas, op.nodeId);
449
+ canvas.updateNodeFields(node, {
450
+ sx: mergeSx(plain(node.sx), op.sx)
451
+ });
452
+ return;
453
+ }
454
+ case 'move':
455
+ var _op_index;
456
+ canvas.reparentNode(live(canvas, op.nodeId), live(canvas, op.parentId), (_op_index = op.index) != null ? _op_index : NaN);
457
+ return;
458
+ case 'remove':
459
+ canvas.deleteNode(live(canvas, op.nodeId));
460
+ return;
461
+ case 'rename':
462
+ canvas.updateNodeFields(live(canvas, op.nodeId), {
463
+ name: op.name
464
+ });
465
+ return;
466
+ case 'insertSubtree':
467
+ var _op_index1;
468
+ canvas.addNodeFromNested(nestSubtree(op), live(canvas, op.parentId), (_op_index1 = op.index) != null ? _op_index1 : NaN);
469
+ return;
470
+ case 'setSeo':
471
+ case 'saveAsComponent':
472
+ // Both are applied outside the canvas batch: search fields are staged
473
+ // into the editor's own form, and a component save mints a document
474
+ // first and then swaps the subtree for an instance of it.
475
+ return;
476
+ }
477
+ }
478
+ /**
479
+ * The value a bound field holds on the live canvas right now, which becomes
480
+ * the property's default.
481
+ *
482
+ * `hideIf` is the exception: the part is on the page, so the property that
483
+ * hides it starts at no. Every other field answers with what the author can
484
+ * see, which is what makes the instance render exactly what was there.
485
+ */ function currentValue(node, field) {
486
+ if (field === NODE_HIDE_IF_PROP) return false;
487
+ const value = plain(node.props)[field];
488
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
489
+ return value;
490
+ }
491
+ return undefined;
492
+ }
493
+ /**
494
+ * Whether a default the canvas gave is one the property's own control
495
+ * offers. A Choice whose current value is not among its answers is a
496
+ * selection that has changed since the proposal was made, and applying it
497
+ * would declare a property no page could ever set back.
498
+ */ function defaultFitsProp(prop, value) {
499
+ var _prop_options;
500
+ if (!((_prop_options = prop.options) == null ? void 0 : _prop_options.length)) return true;
501
+ return prop.options.some((option)=>option.value === value);
502
+ }
503
+ /**
504
+ * The definition the new component holds: the promoted subtree, with each
505
+ * bound field replaced by its property's token.
506
+ *
507
+ * The defaults are read off the SAME fields a moment before they are
508
+ * replaced, so the instance that takes the subtree's place renders what the
509
+ * author was looking at. Returns null when a default no longer fits its
510
+ * property, which is the stale case.
511
+ */ function componentDefinition(canvas, op) {
512
+ const nodes = reusableComponentDefinitionFrom(canvas.toJSON().nodes, op.nodeId);
513
+ const defaults = new Map();
514
+ for (const binding of op.bindings){
515
+ const live = canvas.getNode(binding.nodeId);
516
+ const stored = nodes[binding.nodeId];
517
+ if (!live || !stored) return null;
518
+ if (!defaults.has(binding.prop)) defaults.set(binding.prop, currentValue(live, binding.field));
519
+ stored['props'] = _extends({}, plain(stored['props']), {
520
+ [binding.field]: `{{prop.${binding.prop}}}`
521
+ });
522
+ }
523
+ const props = [];
524
+ for (const declared of op.props){
525
+ const value = defaults.get(declared.name);
526
+ if (!defaultFitsProp(declared, value)) return null;
527
+ props.push(_extends({}, declared, value === undefined ? {} : {
528
+ defaultValue: value
529
+ }));
530
+ }
531
+ return {
532
+ nodes,
533
+ props
534
+ };
535
+ }
536
+ /**
537
+ * Lands a confirmed proposal on the open editor: the canvas ops as ONE batch
538
+ * — one undo step, all or nothing — then any search fields staged into the
539
+ * editor's own form. Nothing is saved.
540
+ */ export function applyAssistEdit(canvas, proposal, session) {
541
+ const check = checkAssistEdit(canvas, proposal, session);
542
+ if (check.ok === false) return check;
543
+ const open = session;
544
+ const canvasOps = proposal.ops.filter((op)=>op.op !== 'setSeo' && op.op !== 'saveAsComponent');
545
+ if (canvasOps.length) {
546
+ try {
547
+ canvas.batch(()=>{
548
+ for (const op of canvasOps)applyOne(canvas, op);
549
+ });
550
+ } catch (error) {
551
+ console.error('assist edit refused by the canvas', error);
552
+ return {
553
+ ok: false,
554
+ reason: 'refused',
555
+ message: 'The editor refused part of this change, so none of it was applied.'
556
+ };
557
+ }
558
+ }
559
+ const staged = [];
560
+ for (const op of proposal.ops){
561
+ if (op.op !== 'setSeo') continue;
562
+ const values = {};
563
+ for (const [field, value] of Object.entries(op.fields)){
564
+ values[screenSeoStageKey(field)] = String(value);
565
+ }
566
+ staged.push(...stageEditorSessionFields(open, values).staged);
567
+ }
568
+ return {
569
+ ok: true,
570
+ opCounts: assistEditOpCounts(proposal.ops),
571
+ staged
572
+ };
573
+ }
574
+ /**
575
+ * Lands a proposal that saves the selection as a reusable component
576
+ * (AGL-2908) — AGL-2866's recipe, in place, with no clipboard.
577
+ *
578
+ * The order is the manual action's order, and it matters:
579
+ *
580
+ * 1. the definition is read off the live subtree, each bound field replaced
581
+ * by its token and its current value kept as that property's default;
582
+ * 2. the component is created through the host resources route, where the
583
+ * server enforces the plan's entitlement and its own allow-list — so a
584
+ * refusal happens before the open document is touched at all;
585
+ * 3. the subtree is swapped for an instance of what was just created, inside
586
+ * ONE `batch` with the rest of the proposal's canvas ops: one undo step.
587
+ *
588
+ * The only document created is the component, exactly as Save as reusable
589
+ * component creates one. The page change is an unsaved edit on the version
590
+ * the editor has open, which the check has already refused to be a live one.
591
+ * Nothing is published and nothing is saved.
592
+ */ export async function applyAssistEditSavingComponent(canvas, proposal, session, writer) {
593
+ const save = proposal.ops.find((op)=>op.op === 'saveAsComponent');
594
+ if (!save) return applyAssistEdit(canvas, proposal, session);
595
+ const check = checkAssistEdit(canvas, proposal, session);
596
+ if (check.ok === false) return check;
597
+ const definition = componentDefinition(canvas, save);
598
+ if (!definition) return STALE;
599
+ let componentId;
600
+ try {
601
+ componentId = await writer.createComponent({
602
+ name: save.name,
603
+ rootId: save.nodeId,
604
+ nodes: definition.nodes,
605
+ props: definition.props
606
+ });
607
+ } catch (error) {
608
+ console.error('assist edit could not create the component', error);
609
+ return {
610
+ ok: false,
611
+ reason: 'refused',
612
+ message: error instanceof Error && error.message ? error.message : 'The component could not be saved, so nothing on this page was changed.'
613
+ };
614
+ }
615
+ const canvasOps = proposal.ops.filter((op)=>op.op !== 'setSeo' && op.op !== 'saveAsComponent');
616
+ try {
617
+ canvas.batch(()=>{
618
+ for (const op of canvasOps)applyOne(canvas, op);
619
+ canvas.applyNodes(replaceSubtreeWithInstance(canvas.toJSON().nodes, save.nodeId, componentId, save.name));
620
+ });
621
+ } catch (error) {
622
+ console.error('assist edit refused by the canvas', error);
623
+ return {
624
+ ok: false,
625
+ reason: 'refused',
626
+ message: 'The component was saved, but the editor refused to swap this element for it. ' + 'Insert it from Your components instead.'
627
+ };
628
+ }
629
+ return {
630
+ ok: true,
631
+ opCounts: assistEditOpCounts(proposal.ops),
632
+ staged: []
633
+ };
634
+ }
635
+
636
+ //# sourceMappingURL=assist-edit-canvas.js.map