@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,304 @@
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
+ */ 'use client';
17
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { aiAddonName, countCsvDataRows } from "@aglyn/aglyn";
19
+ import { pluginDocsHelp } from "@aglyn/aglyn/app-utils/docs-help";
20
+ import { mdiOpenInNew } from "@aglyn/shared-data-mdi";
21
+ import { CardDisplay } from "@aglyn/shared-ui-jsx";
22
+ import { ListRowActions, ListTable, listActionsColumn } from "@aglyn/shared-ui-jsx/components/list-table.component";
23
+ import { TABLE_ROW_HEIGHT } from "@aglyn/shared-ui-jsx/const/table-pagination";
24
+ import { useSnackbar } from "@aglyn/shared-ui-snackstack";
25
+ import { authorizedFetch } from "@aglyn/shared-util-http/authorized-token";
26
+ import { useUser } from "@aglyn/tenant-feature-instance";
27
+ import { Alert, Button, MenuItem, Stack, TextField, Typography } from "@mui/material";
28
+ import { buildRoute, Route } from "@aglyn/aglyn/app-utils/console-routes";
29
+ import { useRouter } from "next/navigation";
30
+ import { useCallback, useMemo, useState } from "react";
31
+ import { topAiUsageKinds } from "../model/ai-usage-by-user.js";
32
+ import { useOrgAiUsage } from "./use-org-ai-usage.js";
33
+ import { AI_USAGE_EXPORT_ROWS_HEADER, aiUsageMonthLabel, formatAiUsageShare } from "../usage/ai-usage-wire.js";
34
+ /**
35
+ * WHO IS GENERATING WHAT (AGL-2928) — the per-person table beneath the
36
+ * credit meter on Billing → Usage.
37
+ *
38
+ * The meter above says how much of the pool the workspace has drawn; this
39
+ * says who drew it. Each row is one member's month: credits, their share of
40
+ * the workspace's spend, requests, and how often the gate refused them. A
41
+ * month picker walks the retention window, and the file button hands the
42
+ * same month to a spreadsheet through the streamed export.
43
+ *
44
+ * ## The file is checked, not trusted
45
+ *
46
+ * The route promises its row count in a header taken before the first row
47
+ * is written. A stream that dies halfway yields a well-formed shorter file,
48
+ * so a body with fewer rows than promised is refused rather than saved.
49
+ *
50
+ * The copy stays descriptive on purpose — who, how much, on which site — and
51
+ * never characterizes what the numbers mean about a person.
52
+ */ export function BillingAiTopUsersComponent(props) {
53
+ var _ref;
54
+ var _usage_data;
55
+ const { orgId, orgSlug } = props;
56
+ const { data: user } = useUser();
57
+ const { enqueueSnackbar } = useSnackbar();
58
+ const [month, setMonth] = useState(undefined);
59
+ const [exporting, setExporting] = useState(false);
60
+ const usage = useOrgAiUsage(orgId, {
61
+ month
62
+ });
63
+ const router = useRouter();
64
+ const name = aiAddonName();
65
+ const handleExport = useCallback(async ()=>{
66
+ if (!orgId || exporting) return;
67
+ setExporting(true);
68
+ try {
69
+ var _response_headers_get;
70
+ const params = new URLSearchParams({
71
+ orgId,
72
+ month: usage.month,
73
+ format: 'csv'
74
+ });
75
+ const response = await authorizedFetch(user, `/api/ai/usage?${params.toString()}`);
76
+ if (!response.ok) {
77
+ var _ref;
78
+ const failure = await response.json().catch(()=>({}));
79
+ throw new Error((_ref = failure == null ? void 0 : failure.error) != null ? _ref : 'Export failed');
80
+ }
81
+ const text = await response.text();
82
+ const promised = Number((_response_headers_get = response.headers.get(AI_USAGE_EXPORT_ROWS_HEADER)) != null ? _response_headers_get : '');
83
+ const received = countCsvDataRows(text);
84
+ if (Number.isFinite(promised) && received < promised) {
85
+ enqueueSnackbar(`Export incomplete — ${received} of ${promised} rows arrived. ` + 'Nothing was saved; try again.', {
86
+ variant: 'error'
87
+ });
88
+ return;
89
+ }
90
+ const url = URL.createObjectURL(new Blob([
91
+ text
92
+ ], {
93
+ type: 'text/csv'
94
+ }));
95
+ const anchor = document.createElement('a');
96
+ anchor.href = url;
97
+ anchor.download = `ai-usage-${usage.month}.csv`;
98
+ anchor.click();
99
+ URL.revokeObjectURL(url);
100
+ } catch (error) {
101
+ enqueueSnackbar(error instanceof Error ? error.message : 'Export failed', {
102
+ variant: 'error'
103
+ });
104
+ } finally{
105
+ setExporting(false);
106
+ }
107
+ }, [
108
+ orgId,
109
+ exporting,
110
+ usage.month,
111
+ user,
112
+ enqueueSnackbar
113
+ ]);
114
+ const rows = (_ref = (_usage_data = usage.data) == null ? void 0 : _usage_data.rows) != null ? _ref : [];
115
+ const memberHref = useCallback((uid)=>buildRoute(Route.MANAGE_TEAM_MEMBER, {
116
+ orgSlug,
117
+ uid
118
+ }), [
119
+ orgSlug
120
+ ]);
121
+ /*
122
+ * One row per member, and the whole month is in hand, so the grid pages,
123
+ * sorts and searches it itself. The row opens the member's page, which is
124
+ * where the split by site and by kind lives.
125
+ */ const columns = useMemo(()=>[
126
+ {
127
+ field: 'name',
128
+ headerName: 'Member',
129
+ flex: 1,
130
+ minWidth: 220,
131
+ renderCell: ({ row })=>/*#__PURE__*/ _jsxs(Stack, {
132
+ sx: {
133
+ minWidth: 0
134
+ },
135
+ children: [
136
+ /*#__PURE__*/ _jsx(Typography, {
137
+ variant: "body2",
138
+ noWrap: true,
139
+ title: row.name,
140
+ children: row.name
141
+ }),
142
+ row.email && row.email !== row.name ? /*#__PURE__*/ _jsx(Typography, {
143
+ variant: "caption",
144
+ color: "text.secondary",
145
+ noWrap: true,
146
+ children: row.email
147
+ }) : null
148
+ ]
149
+ })
150
+ },
151
+ {
152
+ field: 'credits',
153
+ headerName: 'Credits',
154
+ type: 'number',
155
+ align: 'right',
156
+ headerAlign: 'right',
157
+ width: 110,
158
+ valueFormatter: (value)=>value.toLocaleString()
159
+ },
160
+ {
161
+ field: 'share',
162
+ headerName: 'Share',
163
+ type: 'number',
164
+ align: 'right',
165
+ headerAlign: 'right',
166
+ width: 90,
167
+ valueFormatter: (value)=>formatAiUsageShare(value)
168
+ },
169
+ {
170
+ field: 'requests',
171
+ headerName: 'Requests',
172
+ type: 'number',
173
+ align: 'right',
174
+ headerAlign: 'right',
175
+ width: 110,
176
+ valueFormatter: (value)=>value.toLocaleString()
177
+ },
178
+ {
179
+ field: 'refusals',
180
+ headerName: 'Refusals',
181
+ type: 'number',
182
+ align: 'right',
183
+ headerAlign: 'right',
184
+ width: 110,
185
+ valueFormatter: (value)=>value.toLocaleString()
186
+ },
187
+ {
188
+ field: 'mostly',
189
+ headerName: 'Mostly',
190
+ flex: 1,
191
+ minWidth: 160,
192
+ sortable: false,
193
+ valueGetter: (_value, row)=>topAiUsageKinds(row.byKind, 2).map((entry)=>entry.kind).join(', ') || '—'
194
+ },
195
+ listActionsColumn((row)=>/*#__PURE__*/ _jsx(ListRowActions, {
196
+ label: row.name,
197
+ quick: {
198
+ icon: mdiOpenInNew.path,
199
+ label: 'View member',
200
+ to: memberHref(row.uid)
201
+ },
202
+ items: []
203
+ }))
204
+ ], [
205
+ memberHref
206
+ ]);
207
+ return /*#__PURE__*/ _jsxs(Stack, {
208
+ spacing: 1.5,
209
+ children: [
210
+ /*#__PURE__*/ _jsx(Typography, {
211
+ variant: "body2",
212
+ color: "text.secondary",
213
+ children: `Who is generating what, per site: each member's ${name} credits for the month and their share of the workspace's spend. Open a member for the split by site and by kind.`
214
+ }),
215
+ /*#__PURE__*/ _jsxs(Stack, {
216
+ direction: "row",
217
+ spacing: 1,
218
+ sx: {
219
+ alignItems: 'center',
220
+ flexWrap: 'wrap',
221
+ rowGap: 1
222
+ },
223
+ children: [
224
+ /*#__PURE__*/ _jsx(TextField, {
225
+ select: true,
226
+ size: "small",
227
+ label: "Month",
228
+ value: usage.month,
229
+ onChange: (event)=>setMonth(event.target.value),
230
+ sx: {
231
+ minWidth: 180
232
+ },
233
+ children: usage.months.map((key)=>/*#__PURE__*/ _jsx(MenuItem, {
234
+ value: key,
235
+ children: aiUsageMonthLabel(key)
236
+ }, key))
237
+ }),
238
+ /*#__PURE__*/ _jsx(Button, {
239
+ size: "small",
240
+ disabled: exporting || usage.status !== 'ready' || rows.length === 0,
241
+ onClick: ()=>void handleExport(),
242
+ children: exporting ? 'Exporting…' : 'Export CSV'
243
+ }),
244
+ usage.data ? /*#__PURE__*/ _jsx(Typography, {
245
+ variant: "caption",
246
+ color: "text.secondary",
247
+ children: `${usage.data.orgCredits.toLocaleString()} credits drawn by the workspace in ${aiUsageMonthLabel(usage.month)}`
248
+ }) : null
249
+ ]
250
+ }),
251
+ usage.status === 'refused' ? /*#__PURE__*/ _jsx(Alert, {
252
+ severity: "info",
253
+ children: 'Seeing who used AI credits requires the View billing permission.'
254
+ }) : usage.status === 'error' ? /*#__PURE__*/ _jsx(Alert, {
255
+ severity: "warning",
256
+ children: 'Could not read this month’s per-member usage — a failed read, not zero usage.'
257
+ }) : usage.status === 'loading' && !usage.data ? /*#__PURE__*/ _jsx(Typography, {
258
+ variant: "body2",
259
+ color: "text.secondary",
260
+ children: 'Loading…'
261
+ }) : rows.length === 0 ? /*#__PURE__*/ _jsx(Typography, {
262
+ variant: "body2",
263
+ color: "text.secondary",
264
+ children: `No ${name} usage attributed to a member in ${aiUsageMonthLabel(usage.month)}.`
265
+ }) : /*#__PURE__*/ _jsx(ListTable, {
266
+ rows: rows,
267
+ columns: columns,
268
+ getRowId: (row)=>row.uid,
269
+ rowHeight: TABLE_ROW_HEIGHT,
270
+ onOpen: (uid)=>router.push(memberHref(uid))
271
+ }, usage.month)
272
+ ]
273
+ });
274
+ }
275
+ BillingAiTopUsersComponent.displayName = 'BillingAiTopUsersComponent';
276
+ /**
277
+ * The card on Billing → Usage, through the `orgBillingUsage` zone: its own
278
+ * band beneath the meters, full width, because it is a table of people rather
279
+ * than a gauge. Registered with `billing.view`, so a manager without it sees
280
+ * no card rather than a refusal.
281
+ */ export function AiTopUsersCard(props) {
282
+ var _ref;
283
+ var _props_org;
284
+ return /*#__PURE__*/ _jsx("div", {
285
+ id: "ai-usage-by-member",
286
+ children: /*#__PURE__*/ _jsx(CardDisplay, {
287
+ header: 'Who is generating what',
288
+ help: pluginDocsHelp('billing', {
289
+ anchor: '#who-is-generating-what',
290
+ excerpt: 'Each member’s AI credits for a month, their share of the ' + 'workspace’s spend, requests and refusals — with a month picker ' + 'and a CSV export.'
291
+ }),
292
+ contentGutterX: true,
293
+ contentGutterY: true,
294
+ children: /*#__PURE__*/ _jsx(BillingAiTopUsersComponent, {
295
+ orgId: props.orgId,
296
+ orgSlug: (_ref = (_props_org = props.org) == null ? void 0 : _props_org.slug) != null ? _ref : ''
297
+ })
298
+ })
299
+ });
300
+ }
301
+ AiTopUsersCard.displayName = 'AiTopUsersCard';
302
+ export default BillingAiTopUsersComponent;
303
+
304
+ //# sourceMappingURL=billing-ai-top-users.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/components/billing-ai-top-users.component.tsx"],"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'use client'\n\nimport { aiAddonName, countCsvDataRows } from '@aglyn/aglyn'\nimport { pluginDocsHelp } from '@aglyn/aglyn/app-utils/docs-help'\nimport { mdiOpenInNew } from '@aglyn/shared-data-mdi'\nimport { CardDisplay } from '@aglyn/shared-ui-jsx'\nimport {\n ListRowActions,\n ListTable,\n listActionsColumn,\n} from '@aglyn/shared-ui-jsx/components/list-table.component'\nimport { TABLE_ROW_HEIGHT } from '@aglyn/shared-ui-jsx/const/table-pagination'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport { authorizedFetch } from '@aglyn/shared-util-http/authorized-token'\nimport { useUser } from '@aglyn/tenant-feature-instance'\nimport {\n Alert,\n Button,\n MenuItem,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport type { GridColDef } from '@mui/x-data-grid'\nimport { buildRoute, Route } from '@aglyn/aglyn/app-utils/console-routes'\nimport { useRouter } from 'next/navigation'\nimport { useCallback, useMemo, useState } from 'react'\nimport { topAiUsageKinds } from '../model/ai-usage-by-user'\nimport { useOrgAiUsage } from './use-org-ai-usage'\nimport {\n AI_USAGE_EXPORT_ROWS_HEADER,\n aiUsageMonthLabel,\n formatAiUsageShare,\n type OrgAiUsageRowWire,\n} from '../usage/ai-usage-wire'\n\nexport interface BillingAiTopUsersProps {\n orgId: string | undefined\n /** The org's slug, for the links into each person's page. */\n orgSlug: string\n}\n\n/**\n * WHO IS GENERATING WHAT (AGL-2928) — the per-person table beneath the\n * credit meter on Billing → Usage.\n *\n * The meter above says how much of the pool the workspace has drawn; this\n * says who drew it. Each row is one member's month: credits, their share of\n * the workspace's spend, requests, and how often the gate refused them. A\n * month picker walks the retention window, and the file button hands the\n * same month to a spreadsheet through the streamed export.\n *\n * ## The file is checked, not trusted\n *\n * The route promises its row count in a header taken before the first row\n * is written. A stream that dies halfway yields a well-formed shorter file,\n * so a body with fewer rows than promised is refused rather than saved.\n *\n * The copy stays descriptive on purpose — who, how much, on which site — and\n * never characterizes what the numbers mean about a person.\n */\nexport function BillingAiTopUsersComponent(props: BillingAiTopUsersProps) {\n const { orgId, orgSlug } = props\n const { data: user } = useUser()\n const { enqueueSnackbar } = useSnackbar()\n const [month, setMonth] = useState<string | undefined>(undefined)\n const [exporting, setExporting] = useState(false)\n const usage = useOrgAiUsage(orgId, { month })\n const router = useRouter()\n const name = aiAddonName()\n\n const handleExport = useCallback(async () => {\n if (!orgId || exporting) return\n setExporting(true)\n try {\n const params = new URLSearchParams({ orgId, month: usage.month, format: 'csv' })\n const response = await authorizedFetch(\n user,\n `/api/ai/usage?${params.toString()}`,\n )\n if (!response.ok) {\n const failure = await response.json().catch(() => ({}))\n throw new Error(failure?.error ?? 'Export failed')\n }\n const text = await response.text()\n const promised = Number(response.headers.get(AI_USAGE_EXPORT_ROWS_HEADER) ?? '')\n const received = countCsvDataRows(text)\n if (Number.isFinite(promised) && received < promised) {\n enqueueSnackbar(\n `Export incomplete — ${received} of ${promised} rows arrived. ` +\n 'Nothing was saved; try again.',\n { variant: 'error' },\n )\n return\n }\n const url = URL.createObjectURL(new Blob([text], { type: 'text/csv' }))\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = `ai-usage-${usage.month}.csv`\n anchor.click()\n URL.revokeObjectURL(url)\n } catch (error) {\n enqueueSnackbar(error instanceof Error ? error.message : 'Export failed', {\n variant: 'error',\n })\n } finally {\n setExporting(false)\n }\n }, [orgId, exporting, usage.month, user, enqueueSnackbar])\n\n const rows = usage.data?.rows ?? []\n const memberHref = useCallback(\n (uid: string) => buildRoute(Route.MANAGE_TEAM_MEMBER, { orgSlug, uid }),\n [orgSlug],\n )\n\n /*\n * One row per member, and the whole month is in hand, so the grid pages,\n * sorts and searches it itself. The row opens the member's page, which is\n * where the split by site and by kind lives.\n */\n const columns = useMemo<GridColDef<OrgAiUsageRowWire>[]>(\n () => [\n {\n field: 'name',\n headerName: 'Member',\n flex: 1,\n minWidth: 220,\n renderCell: ({ row }) => (\n <Stack sx={{ minWidth: 0 }}>\n <Typography variant=\"body2\" noWrap title={row.name}>\n {row.name}\n </Typography>\n {row.email && row.email !== row.name ? (\n <Typography variant=\"caption\" color=\"text.secondary\" noWrap>\n {row.email}\n </Typography>\n ) : null}\n </Stack>\n ),\n },\n {\n field: 'credits',\n headerName: 'Credits',\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n width: 110,\n valueFormatter: (value: number) => value.toLocaleString(),\n },\n {\n field: 'share',\n headerName: 'Share',\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n width: 90,\n valueFormatter: (value: number) => formatAiUsageShare(value),\n },\n {\n field: 'requests',\n headerName: 'Requests',\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n width: 110,\n valueFormatter: (value: number) => value.toLocaleString(),\n },\n {\n field: 'refusals',\n headerName: 'Refusals',\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n width: 110,\n valueFormatter: (value: number) => value.toLocaleString(),\n },\n {\n field: 'mostly',\n headerName: 'Mostly',\n flex: 1,\n minWidth: 160,\n sortable: false,\n valueGetter: (_value, row) =>\n topAiUsageKinds(row.byKind, 2)\n .map((entry) => entry.kind)\n .join(', ') || '—',\n },\n listActionsColumn((row: OrgAiUsageRowWire) => (\n <ListRowActions\n label={row.name}\n quick={{\n icon: mdiOpenInNew.path,\n label: 'View member',\n to: memberHref(row.uid),\n }}\n items={[]}\n />\n )),\n ],\n [memberHref],\n )\n\n return (\n <Stack spacing={1.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {`Who is generating what, per site: each member's ${name} credits for the month and their share of the workspace's spend. Open a member for the split by site and by kind.`}\n </Typography>\n <Stack direction=\"row\" spacing={1} sx={{ alignItems: 'center', flexWrap: 'wrap', rowGap: 1 }}>\n <TextField\n select\n size=\"small\"\n label=\"Month\"\n value={usage.month}\n onChange={(event) => setMonth(event.target.value)}\n sx={{ minWidth: 180 }}\n >\n {usage.months.map((key) => (\n <MenuItem key={key} value={key}>\n {aiUsageMonthLabel(key)}\n </MenuItem>\n ))}\n </TextField>\n <Button\n size=\"small\"\n disabled={exporting || usage.status !== 'ready' || rows.length === 0}\n onClick={() => void handleExport()}\n >\n {exporting ? 'Exporting…' : 'Export CSV'}\n </Button>\n {usage.data ? (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {`${usage.data.orgCredits.toLocaleString()} credits drawn by the workspace in ${aiUsageMonthLabel(usage.month)}`}\n </Typography>\n ) : null}\n </Stack>\n {usage.status === 'refused' ? (\n <Alert severity=\"info\">\n {'Seeing who used AI credits requires the View billing permission.'}\n </Alert>\n ) : usage.status === 'error' ? (\n <Alert severity=\"warning\">\n {'Could not read this month’s per-member usage — a failed read, not zero usage.'}\n </Alert>\n ) : usage.status === 'loading' && !usage.data ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Loading…'}\n </Typography>\n ) : rows.length === 0 ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {`No ${name} usage attributed to a member in ${aiUsageMonthLabel(usage.month)}.`}\n </Typography>\n ) : (\n <ListTable\n // Another month is another list: it opens on its first page.\n key={usage.month}\n rows={rows}\n columns={columns}\n getRowId={(row: OrgAiUsageRowWire) => row.uid}\n rowHeight={TABLE_ROW_HEIGHT}\n onOpen={(uid) => router.push(memberHref(uid))}\n />\n )}\n </Stack>\n )\n}\nBillingAiTopUsersComponent.displayName = 'BillingAiTopUsersComponent'\n\n/**\n * The card on Billing → Usage, through the `orgBillingUsage` zone: its own\n * band beneath the meters, full width, because it is a table of people rather\n * than a gauge. Registered with `billing.view`, so a manager without it sees\n * no card rather than a refusal.\n */\nexport function AiTopUsersCard(props: { orgId?: string; org?: { slug?: string } | null }) {\n return (\n <div id=\"ai-usage-by-member\">\n <CardDisplay\n header={'Who is generating what'}\n help={pluginDocsHelp('billing', {\n anchor: '#who-is-generating-what',\n excerpt:\n 'Each member’s AI credits for a month, their share of the ' +\n 'workspace’s spend, requests and refusals — with a month picker ' +\n 'and a CSV export.',\n })}\n contentGutterX\n contentGutterY\n >\n <BillingAiTopUsersComponent orgId={props.orgId} orgSlug={props.org?.slug ?? ''} />\n </CardDisplay>\n </div>\n )\n}\nAiTopUsersCard.displayName = 'AiTopUsersCard'\n\nexport default BillingAiTopUsersComponent\n"],"names":["aiAddonName","countCsvDataRows","pluginDocsHelp","mdiOpenInNew","CardDisplay","ListRowActions","ListTable","listActionsColumn","TABLE_ROW_HEIGHT","useSnackbar","authorizedFetch","useUser","Alert","Button","MenuItem","Stack","TextField","Typography","buildRoute","Route","useRouter","useCallback","useMemo","useState","topAiUsageKinds","useOrgAiUsage","AI_USAGE_EXPORT_ROWS_HEADER","aiUsageMonthLabel","formatAiUsageShare","BillingAiTopUsersComponent","props","usage","orgId","orgSlug","data","user","enqueueSnackbar","month","setMonth","undefined","exporting","setExporting","router","name","handleExport","response","params","URLSearchParams","format","toString","ok","failure","json","catch","Error","error","text","promised","Number","headers","get","received","isFinite","variant","url","URL","createObjectURL","Blob","type","anchor","document","createElement","href","download","click","revokeObjectURL","message","rows","memberHref","uid","MANAGE_TEAM_MEMBER","columns","field","headerName","flex","minWidth","renderCell","row","sx","noWrap","title","email","color","align","headerAlign","width","valueFormatter","value","toLocaleString","sortable","valueGetter","_value","byKind","map","entry","kind","join","label","quick","icon","path","to","items","spacing","direction","alignItems","flexWrap","rowGap","select","size","onChange","event","target","months","key","disabled","status","length","onClick","orgCredits","severity","getRowId","rowHeight","onOpen","push","displayName","AiTopUsersCard","div","id","header","help","excerpt","contentGutterX","contentGutterY","org","slug"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD;;AAEA,SAASA,WAAW,EAAEC,gBAAgB,QAAQ,eAAc;AAC5D,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,YAAY,QAAQ,yBAAwB;AACrD,SAASC,WAAW,QAAQ,uBAAsB;AAClD,SACEC,cAAc,EACdC,SAAS,EACTC,iBAAiB,QACZ,uDAAsD;AAC7D,SAASC,gBAAgB,QAAQ,8CAA6C;AAC9E,SAASC,WAAW,QAAQ,8BAA6B;AACzD,SAASC,eAAe,QAAQ,2CAA0C;AAC1E,SAASC,OAAO,QAAQ,iCAAgC;AACxD,SACEC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACTC,UAAU,QACL,gBAAe;AAEtB,SAASC,UAAU,EAAEC,KAAK,QAAQ,wCAAuC;AACzE,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AACtD,SAASC,eAAe,QAAQ,+BAA2B;AAC3D,SAASC,aAAa,QAAQ,wBAAoB;AAClD,SACEC,2BAA2B,EAC3BC,iBAAiB,EACjBC,kBAAkB,QAEb,4BAAwB;AAQ/B;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,2BAA2BC,KAA6B;;QAiDzDC;IAhDb,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAE,GAAGH;IAC3B,MAAM,EAAEI,MAAMC,IAAI,EAAE,GAAGxB;IACvB,MAAM,EAAEyB,eAAe,EAAE,GAAG3B;IAC5B,MAAM,CAAC4B,OAAOC,SAAS,GAAGf,SAA6BgB;IACvD,MAAM,CAACC,WAAWC,aAAa,GAAGlB,SAAS;IAC3C,MAAMQ,QAAQN,cAAcO,OAAO;QAAEK;IAAM;IAC3C,MAAMK,SAAStB;IACf,MAAMuB,OAAO3C;IAEb,MAAM4C,eAAevB,YAAY;QAC/B,IAAI,CAACW,SAASQ,WAAW;QACzBC,aAAa;QACb,IAAI;gBAWsBI;YAVxB,MAAMC,SAAS,IAAIC,gBAAgB;gBAAEf;gBAAOK,OAAON,MAAMM,KAAK;gBAAEW,QAAQ;YAAM;YAC9E,MAAMH,WAAW,MAAMnC,gBACrByB,MACA,CAAC,cAAc,EAAEW,OAAOG,QAAQ,IAAI;YAEtC,IAAI,CAACJ,SAASK,EAAE,EAAE;;gBAChB,MAAMC,UAAU,MAAMN,SAASO,IAAI,GAAGC,KAAK,CAAC,IAAO,CAAA,CAAC,CAAA;gBACpD,MAAM,IAAIC,cAAMH,2BAAAA,QAASI,KAAK,mBAAI;YACpC;YACA,MAAMC,OAAO,MAAMX,SAASW,IAAI;YAChC,MAAMC,WAAWC,QAAOb,wBAAAA,SAASc,OAAO,CAACC,GAAG,CAAClC,wCAArBmB,wBAAqD;YAC7E,MAAMgB,WAAW5D,iBAAiBuD;YAClC,IAAIE,OAAOI,QAAQ,CAACL,aAAaI,WAAWJ,UAAU;gBACpDrB,gBACE,CAAC,oBAAoB,EAAEyB,SAAS,IAAI,EAAEJ,SAAS,eAAe,CAAC,GAC7D,iCACF;oBAAEM,SAAS;gBAAQ;gBAErB;YACF;YACA,MAAMC,MAAMC,IAAIC,eAAe,CAAC,IAAIC,KAAK;gBAACX;aAAK,EAAE;gBAAEY,MAAM;YAAW;YACpE,MAAMC,SAASC,SAASC,aAAa,CAAC;YACtCF,OAAOG,IAAI,GAAGR;YACdK,OAAOI,QAAQ,GAAG,CAAC,SAAS,EAAE1C,MAAMM,KAAK,CAAC,IAAI,CAAC;YAC/CgC,OAAOK,KAAK;YACZT,IAAIU,eAAe,CAACX;QACtB,EAAE,OAAOT,OAAO;YACdnB,gBAAgBmB,iBAAiBD,QAAQC,MAAMqB,OAAO,GAAG,iBAAiB;gBACxEb,SAAS;YACX;QACF,SAAU;YACRtB,aAAa;QACf;IACF,GAAG;QAACT;QAAOQ;QAAWT,MAAMM,KAAK;QAAEF;QAAMC;KAAgB;IAEzD,MAAMyC,gBAAO9C,cAAAA,MAAMG,IAAI,qBAAVH,YAAY8C,IAAI,mBAAI,EAAE;IACnC,MAAMC,aAAazD,YACjB,CAAC0D,MAAgB7D,WAAWC,MAAM6D,kBAAkB,EAAE;YAAE/C;YAAS8C;QAAI,IACrE;QAAC9C;KAAQ;IAGX;;;;GAIC,GACD,MAAMgD,UAAU3D,QACd,IAAM;YACJ;gBACE4D,OAAO;gBACPC,YAAY;gBACZC,MAAM;gBACNC,UAAU;gBACVC,YAAY,CAAC,EAAEC,GAAG,EAAE,iBAClB,MAACxE;wBAAMyE,IAAI;4BAAEH,UAAU;wBAAE;;0CACvB,KAACpE;gCAAW8C,SAAQ;gCAAQ0B,MAAM;gCAACC,OAAOH,IAAI5C,IAAI;0CAC/C4C,IAAI5C,IAAI;;4BAEV4C,IAAII,KAAK,IAAIJ,IAAII,KAAK,KAAKJ,IAAI5C,IAAI,iBAClC,KAAC1B;gCAAW8C,SAAQ;gCAAU6B,OAAM;gCAAiBH,MAAM;0CACxDF,IAAII,KAAK;iCAEV;;;YAGV;YACA;gBACET,OAAO;gBACPC,YAAY;gBACZf,MAAM;gBACNyB,OAAO;gBACPC,aAAa;gBACbC,OAAO;gBACPC,gBAAgB,CAACC,QAAkBA,MAAMC,cAAc;YACzD;YACA;gBACEhB,OAAO;gBACPC,YAAY;gBACZf,MAAM;gBACNyB,OAAO;gBACPC,aAAa;gBACbC,OAAO;gBACPC,gBAAgB,CAACC,QAAkBrE,mBAAmBqE;YACxD;YACA;gBACEf,OAAO;gBACPC,YAAY;gBACZf,MAAM;gBACNyB,OAAO;gBACPC,aAAa;gBACbC,OAAO;gBACPC,gBAAgB,CAACC,QAAkBA,MAAMC,cAAc;YACzD;YACA;gBACEhB,OAAO;gBACPC,YAAY;gBACZf,MAAM;gBACNyB,OAAO;gBACPC,aAAa;gBACbC,OAAO;gBACPC,gBAAgB,CAACC,QAAkBA,MAAMC,cAAc;YACzD;YACA;gBACEhB,OAAO;gBACPC,YAAY;gBACZC,MAAM;gBACNC,UAAU;gBACVc,UAAU;gBACVC,aAAa,CAACC,QAAQd,MACpB/D,gBAAgB+D,IAAIe,MAAM,EAAE,GACzBC,GAAG,CAAC,CAACC,QAAUA,MAAMC,IAAI,EACzBC,IAAI,CAAC,SAAS;YACrB;YACAnG,kBAAkB,CAACgF,oBACjB,KAAClF;oBACCsG,OAAOpB,IAAI5C,IAAI;oBACfiE,OAAO;wBACLC,MAAM1G,aAAa2G,IAAI;wBACvBH,OAAO;wBACPI,IAAIjC,WAAWS,IAAIR,GAAG;oBACxB;oBACAiC,OAAO,EAAE;;SAGd,EACD;QAAClC;KAAW;IAGd,qBACE,MAAC/D;QAAMkG,SAAS;;0BACd,KAAChG;gBAAW8C,SAAQ;gBAAQ6B,OAAM;0BAC/B,CAAC,gDAAgD,EAAEjD,KAAK,iHAAiH,CAAC;;0BAE7K,MAAC5B;gBAAMmG,WAAU;gBAAMD,SAAS;gBAAGzB,IAAI;oBAAE2B,YAAY;oBAAUC,UAAU;oBAAQC,QAAQ;gBAAE;;kCACzF,KAACrG;wBACCsG,MAAM;wBACNC,MAAK;wBACLZ,OAAM;wBACNV,OAAOlE,MAAMM,KAAK;wBAClBmF,UAAU,CAACC,QAAUnF,SAASmF,MAAMC,MAAM,CAACzB,KAAK;wBAChDT,IAAI;4BAAEH,UAAU;wBAAI;kCAEnBtD,MAAM4F,MAAM,CAACpB,GAAG,CAAC,CAACqB,oBACjB,KAAC9G;gCAAmBmF,OAAO2B;0CACxBjG,kBAAkBiG;+BADNA;;kCAKnB,KAAC/G;wBACC0G,MAAK;wBACLM,UAAUrF,aAAaT,MAAM+F,MAAM,KAAK,WAAWjD,KAAKkD,MAAM,KAAK;wBACnEC,SAAS,IAAM,KAAKpF;kCAEnBJ,YAAY,eAAe;;oBAE7BT,MAAMG,IAAI,iBACT,KAACjB;wBAAW8C,SAAQ;wBAAU6B,OAAM;kCACjC,GAAG7D,MAAMG,IAAI,CAAC+F,UAAU,CAAC/B,cAAc,GAAG,mCAAmC,EAAEvE,kBAAkBI,MAAMM,KAAK,GAAG;yBAEhH;;;YAELN,MAAM+F,MAAM,KAAK,0BAChB,KAAClH;gBAAMsH,UAAS;0BACb;iBAEDnG,MAAM+F,MAAM,KAAK,wBACnB,KAAClH;gBAAMsH,UAAS;0BACb;iBAEDnG,MAAM+F,MAAM,KAAK,aAAa,CAAC/F,MAAMG,IAAI,iBAC3C,KAACjB;gBAAW8C,SAAQ;gBAAQ6B,OAAM;0BAC/B;iBAEDf,KAAKkD,MAAM,KAAK,kBAClB,KAAC9G;gBAAW8C,SAAQ;gBAAQ6B,OAAM;0BAC/B,CAAC,GAAG,EAAEjD,KAAK,iCAAiC,EAAEhB,kBAAkBI,MAAMM,KAAK,EAAE,CAAC,CAAC;+BAGlF,KAAC/B;gBAGCuE,MAAMA;gBACNI,SAASA;gBACTkD,UAAU,CAAC5C,MAA2BA,IAAIR,GAAG;gBAC7CqD,WAAW5H;gBACX6H,QAAQ,CAACtD,MAAQrC,OAAO4F,IAAI,CAACxD,WAAWC;eALnChD,MAAMM,KAAK;;;AAU1B;AACAR,2BAA2B0G,WAAW,GAAG;AAEzC;;;;;CAKC,GACD,OAAO,SAASC,eAAe1G,KAAyD;;QAevBA;IAd/D,qBACE,KAAC2G;QAAIC,IAAG;kBACN,cAAA,KAACtI;YACCuI,QAAQ;YACRC,MAAM1I,eAAe,WAAW;gBAC9BmE,QAAQ;gBACRwE,SACE,8DACA,oEACA;YACJ;YACAC,cAAc;YACdC,cAAc;sBAEd,cAAA,KAAClH;gBAA2BG,OAAOF,MAAME,KAAK;gBAAEC,OAAO,WAAEH,aAAAA,MAAMkH,GAAG,qBAATlH,WAAWmH,IAAI,mBAAI;;;;AAIpF;AACAT,eAAeD,WAAW,GAAG;AAE7B,eAAe1G,2BAA0B"}
@@ -0,0 +1,69 @@
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
+ export interface BillingAssistOverageCardProps {
18
+ orgId?: string | null;
19
+ /** billing.manage: the switch acts; view-only otherwise. */
20
+ canManage: boolean;
21
+ }
22
+ /**
23
+ * The org's own controls on AI assist spend: the hard cap at the band
24
+ * (AGL-2653) and the dollar ceiling on overage (AGL-2898).
25
+ *
26
+ * ## What this card is
27
+ *
28
+ * Credits past a plan's included assist band are SOLD by default, at the
29
+ * plan's per-1,000 rate, the way storage past its band bills by default. This
30
+ * card offers the two controls a customer has over that: a switch that makes
31
+ * the band a wall, so the assistant refuses there and nothing past it is ever
32
+ * billed; and, with the switch off, a monthly ceiling in dollars on the
33
+ * overage the org will buy before the assistant stops. Both are optional and
34
+ * unset unless chosen — the storage cap's siblings, for the same reason a
35
+ * ceiling on metered spend is the END USER's control, offered rather than
36
+ * imposed.
37
+ *
38
+ * ## Why a switch AND a number
39
+ *
40
+ * The switch answers "sell past the band at all?" and needs no figure: the
41
+ * band is the plan's, and a second band here would drift from it. The
42
+ * ceiling answers "and if so, how much?", which is a figure only the customer
43
+ * can name — it is a bound on THEIR invoice, not a quantity the plan sold.
44
+ * The ceiling is offered only while the switch is off, because past a wall
45
+ * there is no overage to bound.
46
+ *
47
+ * ## Why the switch is edited here and enforced there
48
+ *
49
+ * The route owns every refusal: a plan that sells no overage, a value that
50
+ * is not a boolean, a missing permission. This card sends the boolean and
51
+ * renders the route's own answer rather than pre-validating against constants
52
+ * that would then be a second source of truth. The rate it quotes arrives on
53
+ * the same payload, so what the card says the overage costs is what the
54
+ * invoice bills.
55
+ *
56
+ * ## Why turning it OFF is confirmed and turning it ON is not
57
+ *
58
+ * Off is the direction that can raise a bill, so it asks; on never raises
59
+ * one, so it is a plain click. Off is also always available, on any plan and
60
+ * from any state — an org that wants the sale back must not have to argue
61
+ * with a precondition.
62
+ */
63
+ /**
64
+ * The card as the Billing → Usage page's plugin band mounts it (AGL-2939):
65
+ * the overage controls under the heading and help the page used to draw
66
+ * around them.
67
+ */
68
+ export default function BillingAssistOverageCard(props: BillingAssistOverageCardProps): import("react").JSX.Element;
69
+ export declare function BillingAssistOverageControls({ orgId, canManage, }: BillingAssistOverageCardProps): import("react").JSX.Element;