@graph8/sdk 0.303.0 → 0.357.0

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 (664) hide show
  1. package/README.md +81 -0
  2. package/blocks/README.md +32 -0
  3. package/blocks/_foundation/README.md +78 -0
  4. package/blocks/_foundation/block.json +79 -0
  5. package/blocks/_foundation/components/api-error.tsx +62 -0
  6. package/blocks/_foundation/components/confirm-spend-dialog.tsx +142 -0
  7. package/blocks/_foundation/components/empty-state.tsx +24 -0
  8. package/blocks/_foundation/hooks/use-g8-mutation.ts +88 -0
  9. package/blocks/_foundation/hooks/use-g8-query.ts +87 -0
  10. package/blocks/_foundation/hooks/use-job-poll.ts +130 -0
  11. package/blocks/_foundation/hooks/use-paginated.ts +105 -0
  12. package/blocks/_foundation/lib/g8-client.ts +128 -0
  13. package/blocks/_foundation/recipes/verify-proxy-key.ts +18 -0
  14. package/blocks/_foundation/server/proxy.ts +233 -0
  15. package/blocks/_foundation/server/route.ts +30 -0
  16. package/blocks/agents/README.md +133 -0
  17. package/blocks/agents/block.json +223 -0
  18. package/blocks/agents/components/agent-builder.tsx +199 -0
  19. package/blocks/agents/components/agent-knowledge-panel.tsx +144 -0
  20. package/blocks/agents/components/agent-runs.tsx +175 -0
  21. package/blocks/agents/components/agent-skills-panel.tsx +126 -0
  22. package/blocks/agents/components/agent-test-console.tsx +175 -0
  23. package/blocks/agents/lib/agent-types.ts +114 -0
  24. package/blocks/agents/recipes/create-agent-and-attach-skill.ts +50 -0
  25. package/blocks/agents/recipes/run-and-follow-agent-run.ts +46 -0
  26. package/blocks/agents/recipes/test-agent-before-activating.ts +36 -0
  27. package/blocks/analytics/README.md +73 -0
  28. package/blocks/analytics/block.json +178 -0
  29. package/blocks/analytics/components/funnel-chart.tsx +79 -0
  30. package/blocks/analytics/components/kpi-tiles.tsx +74 -0
  31. package/blocks/analytics/components/leaderboard.tsx +86 -0
  32. package/blocks/analytics/components/report-builder.tsx +200 -0
  33. package/blocks/analytics/hooks/use-report.ts +26 -0
  34. package/blocks/analytics/lib/analytics-types.ts +108 -0
  35. package/blocks/analytics/lib/use-debounced.ts +16 -0
  36. package/blocks/analytics/recipes/01-weekly-outbound-report.ts +32 -0
  37. package/blocks/analytics/recipes/02-revenue-snapshot.ts +22 -0
  38. package/blocks/analytics/recipes/03-saved-report.ts +30 -0
  39. package/blocks/appointments/README.md +80 -0
  40. package/blocks/appointments/block.json +218 -0
  41. package/blocks/appointments/components/availability-editor.tsx +192 -0
  42. package/blocks/appointments/components/booking-page.tsx +154 -0
  43. package/blocks/appointments/components/event-type-editor.tsx +214 -0
  44. package/blocks/appointments/components/meeting-detail.tsx +147 -0
  45. package/blocks/appointments/components/meeting-list.tsx +148 -0
  46. package/blocks/appointments/hooks/use-available-slots.ts +29 -0
  47. package/blocks/appointments/hooks/use-schedules.ts +18 -0
  48. package/blocks/appointments/lib/appointments-types.ts +159 -0
  49. package/blocks/appointments/lib/idempotency.ts +30 -0
  50. package/blocks/appointments/recipes/01-create-event-type-and-hours.ts +27 -0
  51. package/blocks/appointments/recipes/02-find-slots-and-book.ts +34 -0
  52. package/blocks/appointments/recipes/03-bookings-digest.ts +22 -0
  53. package/blocks/appointments/recipes/04-calendar-invite.ts +21 -0
  54. package/blocks/block.schema.json +130 -0
  55. package/blocks/block.types.ts +109 -0
  56. package/blocks/campaigns/README.md +118 -0
  57. package/blocks/campaigns/block.json +361 -0
  58. package/blocks/campaigns/components/campaign-assets.tsx +180 -0
  59. package/blocks/campaigns/components/campaign-audience-step.tsx +91 -0
  60. package/blocks/campaigns/components/campaign-launch-step.tsx +147 -0
  61. package/blocks/campaigns/components/campaign-list.tsx +120 -0
  62. package/blocks/campaigns/components/campaign-metrics.tsx +93 -0
  63. package/blocks/campaigns/components/campaign-select.tsx +52 -0
  64. package/blocks/campaigns/components/campaign-sequence-step.tsx +158 -0
  65. package/blocks/campaigns/components/campaign-wizard.tsx +238 -0
  66. package/blocks/campaigns/components/form-field.tsx +29 -0
  67. package/blocks/campaigns/components/icp-editor.tsx +230 -0
  68. package/blocks/campaigns/components/persona-editor.tsx +210 -0
  69. package/blocks/campaigns/hooks/use-company-profile.ts +34 -0
  70. package/blocks/campaigns/lib/campaigns-utils.ts +155 -0
  71. package/blocks/campaigns/recipes/attach-audience-and-launch.ts +33 -0
  72. package/blocks/campaigns/recipes/campaign-report.ts +22 -0
  73. package/blocks/campaigns/recipes/generate-ideas-and-create-campaign.ts +51 -0
  74. package/blocks/campaigns/recipes/set-up-icp-and-personas.ts +37 -0
  75. package/blocks/coach/README.md +93 -0
  76. package/blocks/coach/block.json +125 -0
  77. package/blocks/coach/components/call-scorecard.tsx +126 -0
  78. package/blocks/coach/components/coaching-feed.tsx +140 -0
  79. package/blocks/coach/lib/coach-types.ts +116 -0
  80. package/blocks/coach/recipes/read-a-scorecard.ts +27 -0
  81. package/blocks/coach/recipes/weekly-coaching-digest.ts +53 -0
  82. package/blocks/copilot/README.md +99 -0
  83. package/blocks/copilot/block.json +151 -0
  84. package/blocks/copilot/components/copilot-memory.tsx +87 -0
  85. package/blocks/copilot/components/copilot-panel.tsx +189 -0
  86. package/blocks/copilot/components/copilot-team-chat.tsx +111 -0
  87. package/blocks/copilot/lib/copilot-types.ts +111 -0
  88. package/blocks/copilot/recipes/ask-the-copilot.ts +35 -0
  89. package/blocks/copilot/recipes/post-in-a-work-channel.ts +33 -0
  90. package/blocks/copilot/recipes/remember-and-recall.ts +19 -0
  91. package/blocks/crm/README.md +122 -0
  92. package/blocks/crm/block.json +378 -0
  93. package/blocks/crm/components/activity-timeline.tsx +99 -0
  94. package/blocks/crm/components/company-detail.tsx +118 -0
  95. package/blocks/crm/components/company-table.tsx +173 -0
  96. package/blocks/crm/components/contact-detail.tsx +135 -0
  97. package/blocks/crm/components/contact-table.tsx +217 -0
  98. package/blocks/crm/components/dedupe-review.tsx +164 -0
  99. package/blocks/crm/components/import-wizard.tsx +193 -0
  100. package/blocks/crm/components/notes-panel.tsx +112 -0
  101. package/blocks/crm/components/record-form.tsx +191 -0
  102. package/blocks/crm/components/task-list.tsx +107 -0
  103. package/blocks/crm/hooks/use-custom-fields.ts +18 -0
  104. package/blocks/crm/hooks/use-debounced.ts +13 -0
  105. package/blocks/crm/hooks/use-page-query.ts +52 -0
  106. package/blocks/crm/lib/crm-types.ts +136 -0
  107. package/blocks/crm/recipes/custom-fields-and-values.ts +28 -0
  108. package/blocks/crm/recipes/dedupe-and-merge.ts +30 -0
  109. package/blocks/crm/recipes/notes-tasks-and-activity.ts +23 -0
  110. package/blocks/crm/recipes/upsert-contact-with-company.ts +33 -0
  111. package/blocks/deals/README.md +78 -0
  112. package/blocks/deals/block.json +198 -0
  113. package/blocks/deals/components/deal-detail.tsx +134 -0
  114. package/blocks/deals/components/forecast-view.tsx +112 -0
  115. package/blocks/deals/components/pipeline-board.tsx +142 -0
  116. package/blocks/deals/components/stage-editor.tsx +96 -0
  117. package/blocks/deals/hooks/use-pipeline-deals.ts +67 -0
  118. package/blocks/deals/hooks/use-pipelines.ts +19 -0
  119. package/blocks/deals/lib/deals-types.ts +128 -0
  120. package/blocks/deals/recipes/01-create-deal-and-advance.ts +32 -0
  121. package/blocks/deals/recipes/02-pipeline-report.ts +35 -0
  122. package/blocks/deals/recipes/03-stale-deals-sweep.ts +20 -0
  123. package/blocks/dialer/README.md +114 -0
  124. package/blocks/dialer/block.json +260 -0
  125. package/blocks/dialer/components/call-log.tsx +78 -0
  126. package/blocks/dialer/components/call-queue.tsx +188 -0
  127. package/blocks/dialer/components/dialer-workspace.tsx +47 -0
  128. package/blocks/dialer/components/disposition-panel.tsx +75 -0
  129. package/blocks/dialer/components/live-calls-table.tsx +107 -0
  130. package/blocks/dialer/components/session-start-form.tsx +111 -0
  131. package/blocks/dialer/components/softphone.tsx +122 -0
  132. package/blocks/dialer/components/transcript-viewer.tsx +82 -0
  133. package/blocks/dialer/hooks/use-dialer-numbers.ts +19 -0
  134. package/blocks/dialer/hooks/use-dialer-session.ts +68 -0
  135. package/blocks/dialer/hooks/use-dispositions.ts +29 -0
  136. package/blocks/dialer/lib/dialer-types.ts +158 -0
  137. package/blocks/dialer/lib/softphone-transport.ts +67 -0
  138. package/blocks/dialer/lib/twilio-transport.ts +74 -0
  139. package/blocks/dialer/recipes/01-create-session-and-dial.ts +39 -0
  140. package/blocks/dialer/recipes/02-disposition-calls.ts +26 -0
  141. package/blocks/dialer/recipes/03-review-a-call.ts +23 -0
  142. package/blocks/enrichment/README.md +105 -0
  143. package/blocks/enrichment/block.json +204 -0
  144. package/blocks/enrichment/components/bulk-enrich-panel.tsx +205 -0
  145. package/blocks/enrichment/components/email-verify-badge.tsx +82 -0
  146. package/blocks/enrichment/components/enrich-button.tsx +136 -0
  147. package/blocks/enrichment/components/waterfall-config.tsx +127 -0
  148. package/blocks/enrichment/hooks/use-providers.ts +18 -0
  149. package/blocks/enrichment/lib/enrichment-types.ts +104 -0
  150. package/blocks/enrichment/recipes/bulk-enrich-and-poll.ts +41 -0
  151. package/blocks/enrichment/recipes/lookup-and-verify.ts +25 -0
  152. package/blocks/enrichment/recipes/waterfall-pipeline.ts +26 -0
  153. package/blocks/forms/README.md +112 -0
  154. package/blocks/forms/block.json +200 -0
  155. package/blocks/forms/components/form-builder.tsx +150 -0
  156. package/blocks/forms/components/form-embed.tsx +103 -0
  157. package/blocks/forms/components/form-mapping-editor.tsx +125 -0
  158. package/blocks/forms/components/site-audit-panel.tsx +73 -0
  159. package/blocks/forms/components/submissions-table.tsx +158 -0
  160. package/blocks/forms/lib/form-types.ts +127 -0
  161. package/blocks/forms/recipes/install-snippet-and-form.ts +21 -0
  162. package/blocks/forms/recipes/retry-failed-deliveries.ts +26 -0
  163. package/blocks/forms/recipes/route-form-to-list.ts +44 -0
  164. package/blocks/inbox/README.md +72 -0
  165. package/blocks/inbox/block.json +194 -0
  166. package/blocks/inbox/components/inbox-list.tsx +156 -0
  167. package/blocks/inbox/components/inbox-screen.tsx +49 -0
  168. package/blocks/inbox/components/reply-composer.tsx +183 -0
  169. package/blocks/inbox/components/tag-and-assign.tsx +189 -0
  170. package/blocks/inbox/components/thread-badge.tsx +17 -0
  171. package/blocks/inbox/components/thread-view.tsx +108 -0
  172. package/blocks/inbox/hooks/use-inbox-thread.ts +24 -0
  173. package/blocks/inbox/hooks/use-inbox-threads.ts +40 -0
  174. package/blocks/inbox/lib/idempotency.ts +30 -0
  175. package/blocks/inbox/lib/inbox-types.ts +100 -0
  176. package/blocks/inbox/recipes/01-triage-and-reply.ts +43 -0
  177. package/blocks/inbox/recipes/02-tag-and-assign.ts +31 -0
  178. package/blocks/inbox/recipes/03-hot-contacts-digest.ts +16 -0
  179. package/blocks/integrations/README.md +75 -0
  180. package/blocks/integrations/block.json +172 -0
  181. package/blocks/integrations/components/integration-list.tsx +165 -0
  182. package/blocks/integrations/components/sync-status.tsx +223 -0
  183. package/blocks/integrations/components/webhook-manager.tsx +300 -0
  184. package/blocks/integrations/lib/integrations-utils.ts +62 -0
  185. package/blocks/integrations/recipes/crm-sync-health.ts +19 -0
  186. package/blocks/integrations/recipes/push-contacts-to-crm.ts +20 -0
  187. package/blocks/integrations/recipes/register-webhook.ts +18 -0
  188. package/blocks/integrations/recipes/verify-webhook-route.ts +33 -0
  189. package/blocks/intent/README.md +57 -0
  190. package/blocks/intent/block.json +138 -0
  191. package/blocks/intent/components/account-intent-score.tsx +91 -0
  192. package/blocks/intent/components/intent-feed.tsx +215 -0
  193. package/blocks/intent/components/intent-keyword-manager.tsx +331 -0
  194. package/blocks/intent/hooks/use-account-intent.ts +46 -0
  195. package/blocks/intent/lib/intent-utils.ts +95 -0
  196. package/blocks/intent/recipes/rank-intent-accounts.ts +36 -0
  197. package/blocks/intent/recipes/track-competitor-domain.ts +23 -0
  198. package/blocks/intent/recipes/who-visited-url.ts +18 -0
  199. package/blocks/lifecycle/README.md +79 -0
  200. package/blocks/lifecycle/block.json +198 -0
  201. package/blocks/lifecycle/components/churn-list.tsx +92 -0
  202. package/blocks/lifecycle/components/customer-table.tsx +119 -0
  203. package/blocks/lifecycle/components/lead-queue.tsx +127 -0
  204. package/blocks/lifecycle/components/lifecycle-board.tsx +102 -0
  205. package/blocks/lifecycle/components/stage-move-dialog.tsx +75 -0
  206. package/blocks/lifecycle/hooks/use-debounced.ts +13 -0
  207. package/blocks/lifecycle/hooks/use-lifecycle-stages.ts +27 -0
  208. package/blocks/lifecycle/lib/lifecycle.ts +99 -0
  209. package/blocks/lifecycle/recipes/customer-brief.ts +23 -0
  210. package/blocks/lifecycle/recipes/move-company-stage.ts +17 -0
  211. package/blocks/lifecycle/recipes/read-lifecycle-board.ts +21 -0
  212. package/blocks/lifecycle/recipes/unlock-stage-contacts.ts +25 -0
  213. package/blocks/lists/README.md +96 -0
  214. package/blocks/lists/block.json +166 -0
  215. package/blocks/lists/components/add-to-list-button.tsx +111 -0
  216. package/blocks/lists/components/list-picker.tsx +94 -0
  217. package/blocks/lists/components/list-table.tsx +160 -0
  218. package/blocks/lists/components/suppression-manager.tsx +153 -0
  219. package/blocks/lists/recipes/create-list-and-add-contacts.ts +35 -0
  220. package/blocks/lists/recipes/refresh-and-check-lists.ts +21 -0
  221. package/blocks/lists/recipes/suppress-and-reinstate.ts +30 -0
  222. package/blocks/mailboxes/README.md +71 -0
  223. package/blocks/mailboxes/block.json +187 -0
  224. package/blocks/mailboxes/components/connect-mailbox.tsx +284 -0
  225. package/blocks/mailboxes/components/domain-purchase.tsx +271 -0
  226. package/blocks/mailboxes/components/mailbox-list.tsx +185 -0
  227. package/blocks/mailboxes/components/warmup-health.tsx +232 -0
  228. package/blocks/mailboxes/lib/mailboxes-utils.ts +69 -0
  229. package/blocks/mailboxes/recipes/buy-domain-and-mailboxes.ts +64 -0
  230. package/blocks/mailboxes/recipes/connect-imap-mailbox.ts +38 -0
  231. package/blocks/mailboxes/recipes/is-it-safe-to-send.ts +17 -0
  232. package/blocks/mailboxes/recipes/warmup-report.ts +31 -0
  233. package/blocks/newsletter/README.md +122 -0
  234. package/blocks/newsletter/block.json +224 -0
  235. package/blocks/newsletter/components/issue-form.tsx +124 -0
  236. package/blocks/newsletter/components/issue-scheduler.tsx +152 -0
  237. package/blocks/newsletter/components/newsletter-editor.tsx +131 -0
  238. package/blocks/newsletter/components/newsletter-stats.tsx +93 -0
  239. package/blocks/newsletter/components/subscriber-table.tsx +173 -0
  240. package/blocks/newsletter/lib/newsletter-types.ts +97 -0
  241. package/blocks/newsletter/recipes/create-newsletter-and-draft-issue.ts +27 -0
  242. package/blocks/newsletter/recipes/import-audience-and-send.ts +43 -0
  243. package/blocks/newsletter/recipes/issue-performance-report.ts +26 -0
  244. package/blocks/nurture/README.md +110 -0
  245. package/blocks/nurture/block.json +191 -0
  246. package/blocks/nurture/components/nurture-builder.tsx +114 -0
  247. package/blocks/nurture/components/nurture-enroll.tsx +107 -0
  248. package/blocks/nurture/components/nurture-form.tsx +120 -0
  249. package/blocks/nurture/components/nurture-stats.tsx +81 -0
  250. package/blocks/nurture/lib/nurture-types.ts +109 -0
  251. package/blocks/nurture/recipes/create-a-nurture.ts +34 -0
  252. package/blocks/nurture/recipes/enroll-contacts-and-launch.ts +24 -0
  253. package/blocks/nurture/recipes/nurture-health-check.ts +28 -0
  254. package/blocks/objects/README.md +120 -0
  255. package/blocks/objects/block.json +243 -0
  256. package/blocks/objects/components/attribute-field-input.tsx +82 -0
  257. package/blocks/objects/components/attribute-form-dialog.tsx +159 -0
  258. package/blocks/objects/components/object-not-found.tsx +34 -0
  259. package/blocks/objects/components/object-record-detail.tsx +143 -0
  260. package/blocks/objects/components/object-schema-editor.tsx +197 -0
  261. package/blocks/objects/components/object-table.tsx +130 -0
  262. package/blocks/objects/components/record-form-dialog.tsx +112 -0
  263. package/blocks/objects/components/record-roles-panel.tsx +106 -0
  264. package/blocks/objects/hooks/use-object-schema.ts +36 -0
  265. package/blocks/objects/lib/object-types.ts +214 -0
  266. package/blocks/objects/recipes/define-object-and-add-records.ts +24 -0
  267. package/blocks/objects/recipes/update-audit-and-archive-records.ts +39 -0
  268. package/blocks/objects/recipes/upsert-records-from-your-system.ts +30 -0
  269. package/blocks/pages/README.md +104 -0
  270. package/blocks/pages/block.json +223 -0
  271. package/blocks/pages/components/brand-kit-editor.tsx +152 -0
  272. package/blocks/pages/components/content-library.tsx +163 -0
  273. package/blocks/pages/components/page-editor.tsx +253 -0
  274. package/blocks/pages/components/page-list.tsx +159 -0
  275. package/blocks/pages/components/seo-report.tsx +159 -0
  276. package/blocks/pages/lib/studio.ts +77 -0
  277. package/blocks/pages/recipes/audit-site-seo.ts +28 -0
  278. package/blocks/pages/recipes/create-and-publish-page.ts +26 -0
  279. package/blocks/pages/recipes/edit-page-section.ts +25 -0
  280. package/blocks/pages/recipes/refresh-brand-kit.ts +22 -0
  281. package/blocks/quotes/README.md +79 -0
  282. package/blocks/quotes/block.json +183 -0
  283. package/blocks/quotes/components/product-picker.tsx +80 -0
  284. package/blocks/quotes/components/quote-builder.tsx +195 -0
  285. package/blocks/quotes/components/quote-list.tsx +79 -0
  286. package/blocks/quotes/components/quote-viewer.tsx +135 -0
  287. package/blocks/quotes/components/signature-status.tsx +77 -0
  288. package/blocks/quotes/hooks/use-debounced.ts +13 -0
  289. package/blocks/quotes/lib/quotes.ts +142 -0
  290. package/blocks/quotes/recipes/create-and-send-quote.ts +44 -0
  291. package/blocks/quotes/recipes/revise-sent-quote.ts +18 -0
  292. package/blocks/quotes/recipes/track-quote-signature.ts +22 -0
  293. package/blocks/radar/README.md +106 -0
  294. package/blocks/radar/block.json +189 -0
  295. package/blocks/radar/components/competitor-battle-card.tsx +53 -0
  296. package/blocks/radar/components/competitor-tracker.tsx +158 -0
  297. package/blocks/radar/components/radar-overview.tsx +67 -0
  298. package/blocks/radar/components/radar-report.tsx +86 -0
  299. package/blocks/radar/hooks/use-competitors.ts +23 -0
  300. package/blocks/radar/lib/radar-types.ts +124 -0
  301. package/blocks/radar/recipes/battle-card.ts +28 -0
  302. package/blocks/radar/recipes/deep-dive-report.ts +32 -0
  303. package/blocks/radar/recipes/marketing-snapshot.ts +18 -0
  304. package/blocks/radar/recipes/track-and-scan.ts +39 -0
  305. package/blocks/search/README.md +129 -0
  306. package/blocks/search/block.json +185 -0
  307. package/blocks/search/components/filter-builder.tsx +149 -0
  308. package/blocks/search/components/prospect-results.tsx +175 -0
  309. package/blocks/search/components/save-to-list-dialog.tsx +135 -0
  310. package/blocks/search/components/saved-searches.tsx +95 -0
  311. package/blocks/search/hooks/use-filter-options.ts +41 -0
  312. package/blocks/search/lib/search-types.ts +149 -0
  313. package/blocks/search/recipes/explore-filter-values.ts +27 -0
  314. package/blocks/search/recipes/saved-searches.ts +34 -0
  315. package/blocks/search/recipes/search-and-save-to-list.ts +37 -0
  316. package/blocks/sequencer/README.md +87 -0
  317. package/blocks/sequencer/block.json +214 -0
  318. package/blocks/sequencer/components/enroll-dialog.tsx +93 -0
  319. package/blocks/sequencer/components/sequence-builder.tsx +306 -0
  320. package/blocks/sequencer/components/sequence-list.tsx +200 -0
  321. package/blocks/sequencer/components/sequence-stats.tsx +256 -0
  322. package/blocks/sequencer/components/step-editor.tsx +213 -0
  323. package/blocks/sequencer/lib/sequencer-utils.ts +168 -0
  324. package/blocks/sequencer/recipes/create-multichannel-sequence.ts +51 -0
  325. package/blocks/sequencer/recipes/launch-and-enroll.ts +44 -0
  326. package/blocks/sequencer/recipes/pause-when-unsafe.ts +30 -0
  327. package/blocks/sequencer/recipes/sequence-report.ts +22 -0
  328. package/blocks/social-ads/README.md +128 -0
  329. package/blocks/social-ads/block.json +256 -0
  330. package/blocks/social-ads/components/ad-campaign-list.tsx +136 -0
  331. package/blocks/social-ads/components/audience-sync.tsx +150 -0
  332. package/blocks/social-ads/components/creative-gallery.tsx +121 -0
  333. package/blocks/social-ads/components/post-composer.tsx +122 -0
  334. package/blocks/social-ads/components/social-post-list.tsx +116 -0
  335. package/blocks/social-ads/hooks/use-social-accounts.ts +16 -0
  336. package/blocks/social-ads/lib/social-ads-types.ts +167 -0
  337. package/blocks/social-ads/recipes/creative-to-gallery.ts +41 -0
  338. package/blocks/social-ads/recipes/schedule-post.ts +51 -0
  339. package/blocks/social-ads/recipes/sync-audience-and-launch.ts +41 -0
  340. package/blocks/visitors/README.md +56 -0
  341. package/blocks/visitors/block.json +139 -0
  342. package/blocks/visitors/components/snippet-install.tsx +169 -0
  343. package/blocks/visitors/components/traffic-chart.tsx +156 -0
  344. package/blocks/visitors/components/visitor-company-card.tsx +92 -0
  345. package/blocks/visitors/components/visitor-feed.tsx +157 -0
  346. package/blocks/visitors/lib/visitors-utils.ts +78 -0
  347. package/blocks/visitors/recipes/check-snippet-installed.ts +24 -0
  348. package/blocks/visitors/recipes/recent-company-visits.ts +27 -0
  349. package/blocks/visitors/recipes/traffic-summary.ts +24 -0
  350. package/blocks/webchat/README.md +87 -0
  351. package/blocks/webchat/block.json +134 -0
  352. package/blocks/webchat/components/chat-widget-config.tsx +160 -0
  353. package/blocks/webchat/components/conversation-list.tsx +74 -0
  354. package/blocks/webchat/lib/webchat-types.ts +83 -0
  355. package/blocks/webchat/recipes/create-bot-and-style-widget.ts +24 -0
  356. package/blocks/webchat/recipes/list-chat-visitors.ts +24 -0
  357. package/blocks/workbench/README.md +135 -0
  358. package/blocks/workbench/block.json +259 -0
  359. package/blocks/workbench/components/column-recipe-editor.tsx +183 -0
  360. package/blocks/workbench/components/run-progress.tsx +132 -0
  361. package/blocks/workbench/components/workbench-add-rows.tsx +100 -0
  362. package/blocks/workbench/components/workbench-grid.tsx +159 -0
  363. package/blocks/workbench/components/workbench-row-actions.tsx +102 -0
  364. package/blocks/workbench/components/workbench-table-list.tsx +105 -0
  365. package/blocks/workbench/hooks/use-workbench-table.ts +30 -0
  366. package/blocks/workbench/lib/waterfall-presets.ts +119 -0
  367. package/blocks/workbench/lib/workbench-types.ts +191 -0
  368. package/blocks/workbench/recipes/build-enriched-table.ts +65 -0
  369. package/blocks/workbench/recipes/import-from-search.ts +42 -0
  370. package/blocks/workbench/recipes/scrape-into-table.ts +36 -0
  371. package/blocks/workbench/recipes/waterfall-column.ts +55 -0
  372. package/blocks/workflows/README.md +100 -0
  373. package/blocks/workflows/block.json +188 -0
  374. package/blocks/workflows/components/run-history.tsx +136 -0
  375. package/blocks/workflows/components/trigger-config.tsx +134 -0
  376. package/blocks/workflows/components/workflow-editor.tsx +142 -0
  377. package/blocks/workflows/components/workflow-list.tsx +153 -0
  378. package/blocks/workflows/hooks/use-workflow.ts +51 -0
  379. package/blocks/workflows/lib/graph.ts +187 -0
  380. package/blocks/workflows/recipes/create-workflow.ts +35 -0
  381. package/blocks/workflows/recipes/find-failed-runs.ts +15 -0
  382. package/blocks/workflows/recipes/run-workflow-and-wait.ts +32 -0
  383. package/blocks/workflows/recipes/set-trigger.ts +22 -0
  384. package/dist/cli.js +5330 -29
  385. package/dist/index.browser.js +7740 -0
  386. package/dist/index.browser.js.map +1 -0
  387. package/dist/index.browser.mjs +7717 -0
  388. package/dist/index.browser.mjs.map +1 -0
  389. package/dist/index.d.mts +2220 -23
  390. package/dist/index.d.ts +2220 -23
  391. package/dist/index.js +64 -3
  392. package/dist/index.js.map +1 -1
  393. package/dist/index.mjs +64 -3
  394. package/dist/index.mjs.map +1 -1
  395. package/dist/react.browser.js +7598 -0
  396. package/dist/react.browser.js.map +1 -0
  397. package/dist/react.browser.mjs +7568 -0
  398. package/dist/react.browser.mjs.map +1 -0
  399. package/dist/react.d.mts +2082 -20
  400. package/dist/react.d.ts +2082 -20
  401. package/dist/react.js +63 -2
  402. package/dist/react.js.map +1 -1
  403. package/dist/react.mjs +63 -2
  404. package/dist/react.mjs.map +1 -1
  405. package/dist/types/agentSetup.d.ts +6 -6
  406. package/dist/types/blocks/add.d.ts +53 -0
  407. package/dist/types/blocks/create.d.ts +46 -0
  408. package/dist/types/blocks/doctor.d.ts +26 -0
  409. package/dist/types/blocks/registry.d.ts +134 -0
  410. package/dist/types/cli.d.ts +16 -0
  411. package/dist/types/core.d.ts +1 -1
  412. package/dist/types/crypto-browser.d.ts +2 -0
  413. package/dist/types/crypto-node.d.ts +6 -0
  414. package/dist/types/react.d.ts +1 -1
  415. package/dist/types/version.d.ts +2 -2
  416. package/dist/types/webhooks.d.ts +2 -2
  417. package/dist/ui/index.d.mts +54 -0
  418. package/dist/ui/index.d.ts +54 -0
  419. package/dist/ui/index.js +105 -0
  420. package/dist/ui/index.js.map +1 -0
  421. package/dist/ui/index.mjs +44 -0
  422. package/dist/ui/index.mjs.map +1 -0
  423. package/dist/ui/lib/compose-refs.d.mts +19 -0
  424. package/dist/ui/lib/compose-refs.d.ts +19 -0
  425. package/dist/ui/lib/compose-refs.js +76 -0
  426. package/dist/ui/lib/compose-refs.js.map +1 -0
  427. package/dist/ui/lib/compose-refs.mjs +41 -0
  428. package/dist/ui/lib/compose-refs.mjs.map +1 -0
  429. package/dist/ui/lib/use-mobile.d.mts +4 -0
  430. package/dist/ui/lib/use-mobile.d.ts +4 -0
  431. package/dist/ui/lib/use-mobile.js +57 -0
  432. package/dist/ui/lib/use-mobile.js.map +1 -0
  433. package/dist/ui/lib/use-mobile.mjs +22 -0
  434. package/dist/ui/lib/use-mobile.mjs.map +1 -0
  435. package/dist/ui/lib/utils.d.mts +10 -0
  436. package/dist/ui/lib/utils.d.ts +10 -0
  437. package/dist/ui/lib/utils.js +33 -0
  438. package/dist/ui/lib/utils.js.map +1 -0
  439. package/dist/ui/lib/utils.mjs +9 -0
  440. package/dist/ui/lib/utils.mjs.map +1 -0
  441. package/dist/ui/primitives/alert-dialog.d.mts +22 -0
  442. package/dist/ui/primitives/alert-dialog.d.ts +22 -0
  443. package/dist/ui/primitives/alert-dialog.js +163 -0
  444. package/dist/ui/primitives/alert-dialog.js.map +1 -0
  445. package/dist/ui/primitives/alert-dialog.mjs +119 -0
  446. package/dist/ui/primitives/alert-dialog.mjs.map +1 -0
  447. package/dist/ui/primitives/avatar.d.mts +8 -0
  448. package/dist/ui/primitives/avatar.d.ts +8 -0
  449. package/dist/ui/primitives/avatar.js +91 -0
  450. package/dist/ui/primitives/avatar.js.map +1 -0
  451. package/dist/ui/primitives/avatar.mjs +55 -0
  452. package/dist/ui/primitives/avatar.mjs.map +1 -0
  453. package/dist/ui/primitives/breadcrumb.d.mts +13 -0
  454. package/dist/ui/primitives/breadcrumb.d.ts +13 -0
  455. package/dist/ui/primitives/breadcrumb.js +127 -0
  456. package/dist/ui/primitives/breadcrumb.js.map +1 -0
  457. package/dist/ui/primitives/breadcrumb.mjs +97 -0
  458. package/dist/ui/primitives/breadcrumb.mjs.map +1 -0
  459. package/dist/ui/primitives/button.d.mts +15 -0
  460. package/dist/ui/primitives/button.d.ts +15 -0
  461. package/dist/ui/primitives/button.js +91 -0
  462. package/dist/ui/primitives/button.js.map +1 -0
  463. package/dist/ui/primitives/button.mjs +56 -0
  464. package/dist/ui/primitives/button.mjs.map +1 -0
  465. package/dist/ui/primitives/card.d.mts +10 -0
  466. package/dist/ui/primitives/card.d.ts +10 -0
  467. package/dist/ui/primitives/card.js +101 -0
  468. package/dist/ui/primitives/card.js.map +1 -0
  469. package/dist/ui/primitives/card.mjs +62 -0
  470. package/dist/ui/primitives/card.mjs.map +1 -0
  471. package/dist/ui/primitives/carousel.d.mts +45 -0
  472. package/dist/ui/primitives/carousel.d.ts +45 -0
  473. package/dist/ui/primitives/carousel.js +300 -0
  474. package/dist/ui/primitives/carousel.js.map +1 -0
  475. package/dist/ui/primitives/carousel.mjs +261 -0
  476. package/dist/ui/primitives/carousel.mjs.map +1 -0
  477. package/dist/ui/primitives/chart.d.mts +68 -0
  478. package/dist/ui/primitives/chart.d.ts +68 -0
  479. package/dist/ui/primitives/chart.js +280 -0
  480. package/dist/ui/primitives/chart.js.map +1 -0
  481. package/dist/ui/primitives/chart.mjs +241 -0
  482. package/dist/ui/primitives/chart.mjs.map +1 -0
  483. package/dist/ui/primitives/collapsible.d.mts +8 -0
  484. package/dist/ui/primitives/collapsible.d.ts +8 -0
  485. package/dist/ui/primitives/collapsible.js +72 -0
  486. package/dist/ui/primitives/collapsible.js.map +1 -0
  487. package/dist/ui/primitives/collapsible.mjs +36 -0
  488. package/dist/ui/primitives/collapsible.mjs.map +1 -0
  489. package/dist/ui/primitives/context-menu.d.mts +29 -0
  490. package/dist/ui/primitives/context-menu.d.ts +29 -0
  491. package/dist/ui/primitives/context-menu.js +203 -0
  492. package/dist/ui/primitives/context-menu.js.map +1 -0
  493. package/dist/ui/primitives/context-menu.mjs +155 -0
  494. package/dist/ui/primitives/context-menu.mjs.map +1 -0
  495. package/dist/ui/primitives/dialog.d.mts +26 -0
  496. package/dist/ui/primitives/dialog.d.ts +26 -0
  497. package/dist/ui/primitives/dialog.js +192 -0
  498. package/dist/ui/primitives/dialog.js.map +1 -0
  499. package/dist/ui/primitives/dialog.mjs +148 -0
  500. package/dist/ui/primitives/dialog.mjs.map +1 -0
  501. package/dist/ui/primitives/drawer.d.mts +26 -0
  502. package/dist/ui/primitives/drawer.d.ts +26 -0
  503. package/dist/ui/primitives/drawer.js +146 -0
  504. package/dist/ui/primitives/drawer.js.map +1 -0
  505. package/dist/ui/primitives/drawer.mjs +103 -0
  506. package/dist/ui/primitives/drawer.mjs.map +1 -0
  507. package/dist/ui/primitives/input.d.mts +5 -0
  508. package/dist/ui/primitives/input.d.ts +5 -0
  509. package/dist/ui/primitives/input.js +46 -0
  510. package/dist/ui/primitives/input.js.map +1 -0
  511. package/dist/ui/primitives/input.mjs +22 -0
  512. package/dist/ui/primitives/input.mjs.map +1 -0
  513. package/dist/ui/primitives/item.d.mts +27 -0
  514. package/dist/ui/primitives/item.d.ts +27 -0
  515. package/dist/ui/primitives/item.js +221 -0
  516. package/dist/ui/primitives/item.js.map +1 -0
  517. package/dist/ui/primitives/item.mjs +188 -0
  518. package/dist/ui/primitives/item.mjs.map +1 -0
  519. package/dist/ui/primitives/kbd.d.mts +15 -0
  520. package/dist/ui/primitives/kbd.d.ts +15 -0
  521. package/dist/ui/primitives/kbd.js +45 -0
  522. package/dist/ui/primitives/kbd.js.map +1 -0
  523. package/dist/ui/primitives/kbd.mjs +21 -0
  524. package/dist/ui/primitives/kbd.mjs.map +1 -0
  525. package/dist/ui/primitives/label.d.mts +6 -0
  526. package/dist/ui/primitives/label.d.ts +6 -0
  527. package/dist/ui/primitives/label.js +55 -0
  528. package/dist/ui/primitives/label.js.map +1 -0
  529. package/dist/ui/primitives/label.mjs +21 -0
  530. package/dist/ui/primitives/label.mjs.map +1 -0
  531. package/dist/ui/primitives/resizable.d.mts +10 -0
  532. package/dist/ui/primitives/resizable.d.ts +10 -0
  533. package/dist/ui/primitives/resizable.js +68 -0
  534. package/dist/ui/primitives/resizable.js.map +1 -0
  535. package/dist/ui/primitives/resizable.mjs +42 -0
  536. package/dist/ui/primitives/resizable.mjs.map +1 -0
  537. package/dist/ui/primitives/save-status.d.mts +31 -0
  538. package/dist/ui/primitives/save-status.d.ts +31 -0
  539. package/dist/ui/primitives/save-status.js +150 -0
  540. package/dist/ui/primitives/save-status.js.map +1 -0
  541. package/dist/ui/primitives/save-status.mjs +126 -0
  542. package/dist/ui/primitives/save-status.mjs.map +1 -0
  543. package/dist/ui/primitives/separator.d.mts +6 -0
  544. package/dist/ui/primitives/separator.d.ts +6 -0
  545. package/dist/ui/primitives/separator.js +62 -0
  546. package/dist/ui/primitives/separator.js.map +1 -0
  547. package/dist/ui/primitives/separator.mjs +28 -0
  548. package/dist/ui/primitives/separator.mjs.map +1 -0
  549. package/dist/ui/primitives/sheet.d.mts +16 -0
  550. package/dist/ui/primitives/sheet.d.ts +16 -0
  551. package/dist/ui/primitives/sheet.js +170 -0
  552. package/dist/ui/primitives/sheet.js.map +1 -0
  553. package/dist/ui/primitives/sheet.mjs +129 -0
  554. package/dist/ui/primitives/sheet.mjs.map +1 -0
  555. package/dist/ui/primitives/sidebar.d.mts +74 -0
  556. package/dist/ui/primitives/sidebar.d.ts +74 -0
  557. package/dist/ui/primitives/sidebar.js +697 -0
  558. package/dist/ui/primitives/sidebar.js.map +1 -0
  559. package/dist/ui/primitives/sidebar.mjs +651 -0
  560. package/dist/ui/primitives/sidebar.mjs.map +1 -0
  561. package/dist/ui/primitives/skeleton.d.mts +5 -0
  562. package/dist/ui/primitives/skeleton.d.ts +5 -0
  563. package/dist/ui/primitives/skeleton.js +40 -0
  564. package/dist/ui/primitives/skeleton.js.map +1 -0
  565. package/dist/ui/primitives/skeleton.mjs +16 -0
  566. package/dist/ui/primitives/skeleton.mjs.map +1 -0
  567. package/dist/ui/primitives/slider.d.mts +20 -0
  568. package/dist/ui/primitives/slider.d.ts +20 -0
  569. package/dist/ui/primitives/slider.js +112 -0
  570. package/dist/ui/primitives/slider.js.map +1 -0
  571. package/dist/ui/primitives/slider.mjs +78 -0
  572. package/dist/ui/primitives/slider.mjs.map +1 -0
  573. package/dist/ui/primitives/sortable.d.mts +50 -0
  574. package/dist/ui/primitives/sortable.d.ts +50 -0
  575. package/dist/ui/primitives/sortable.js +456 -0
  576. package/dist/ui/primitives/sortable.js.map +1 -0
  577. package/dist/ui/primitives/sortable.mjs +435 -0
  578. package/dist/ui/primitives/sortable.mjs.map +1 -0
  579. package/dist/ui/primitives/switch.d.mts +6 -0
  580. package/dist/ui/primitives/switch.d.ts +6 -0
  581. package/dist/ui/primitives/switch.js +67 -0
  582. package/dist/ui/primitives/switch.js.map +1 -0
  583. package/dist/ui/primitives/switch.mjs +33 -0
  584. package/dist/ui/primitives/switch.mjs.map +1 -0
  585. package/dist/ui/primitives/table.d.mts +12 -0
  586. package/dist/ui/primitives/table.d.ts +12 -0
  587. package/dist/ui/primitives/table.js +130 -0
  588. package/dist/ui/primitives/table.js.map +1 -0
  589. package/dist/ui/primitives/table.mjs +89 -0
  590. package/dist/ui/primitives/table.mjs.map +1 -0
  591. package/dist/ui/primitives/tabs.d.mts +9 -0
  592. package/dist/ui/primitives/tabs.d.ts +9 -0
  593. package/dist/ui/primitives/tabs.js +86 -0
  594. package/dist/ui/primitives/tabs.js.map +1 -0
  595. package/dist/ui/primitives/tabs.mjs +49 -0
  596. package/dist/ui/primitives/tabs.mjs.map +1 -0
  597. package/dist/ui/primitives/textarea.d.mts +5 -0
  598. package/dist/ui/primitives/textarea.d.ts +5 -0
  599. package/dist/ui/primitives/textarea.js +43 -0
  600. package/dist/ui/primitives/textarea.js.map +1 -0
  601. package/dist/ui/primitives/textarea.mjs +19 -0
  602. package/dist/ui/primitives/textarea.mjs.map +1 -0
  603. package/dist/ui/primitives/tooltip.d.mts +9 -0
  604. package/dist/ui/primitives/tooltip.d.ts +9 -0
  605. package/dist/ui/primitives/tooltip.js +94 -0
  606. package/dist/ui/primitives/tooltip.js.map +1 -0
  607. package/dist/ui/primitives/tooltip.mjs +57 -0
  608. package/dist/ui/primitives/tooltip.mjs.map +1 -0
  609. package/docs/agents.md +72 -29
  610. package/docs/api/README.md +7 -3
  611. package/docs/api/appObjects.d.ts +3 -1
  612. package/docs/api/appObjects.md +2 -1
  613. package/docs/api/by-path.md +51 -0
  614. package/docs/api/dataPipelines.d.ts +149 -0
  615. package/docs/api/dataPipelines.md +232 -0
  616. package/docs/api/forms.d.ts +16 -0
  617. package/docs/api/forms.md +8 -0
  618. package/docs/api/objects.d.ts +705 -5
  619. package/docs/api/objects.md +1099 -14
  620. package/docs/api/ops.d.ts +1 -1
  621. package/docs/api/ops.md +1 -1
  622. package/docs/api/processLists.d.ts +247 -0
  623. package/docs/api/processLists.md +409 -0
  624. package/docs/api/quotes.d.ts +3 -1
  625. package/docs/api/quotes.md +7 -2
  626. package/docs/api/radar.d.ts +4 -0
  627. package/docs/api/radar.md +1 -0
  628. package/docs/api/reports.d.ts +476 -0
  629. package/docs/api/reports.md +539 -0
  630. package/docs/api/scheduleBuy.d.ts +12 -8
  631. package/docs/api/scheduleBuy.md +13 -10
  632. package/docs/api/seo.d.ts +406 -3
  633. package/docs/api/seo.md +505 -1
  634. package/docs/api/workspaceBackup.d.ts +324 -0
  635. package/docs/api/workspaceBackup.md +427 -0
  636. package/package.json +174 -5
  637. package/stacks/6sense.json +46 -0
  638. package/stacks/README.md +20 -0
  639. package/stacks/apollo.json +128 -0
  640. package/stacks/clay.json +59 -0
  641. package/stacks/gong.json +72 -0
  642. package/stacks/hubspot.json +162 -0
  643. package/stacks/intercom.json +53 -0
  644. package/stacks/mailchimp.json +71 -0
  645. package/stacks/outreach.json +86 -0
  646. package/stacks/salesforce.json +94 -0
  647. package/stacks/stack.schema.json +32 -0
  648. package/stacks/starter.json +22 -0
  649. package/styles/styles.css +2 -0
  650. package/styles/theme.css +181 -0
  651. package/styles/tokens.css +284 -0
  652. package/templates/next-app/README.md.tmpl +35 -0
  653. package/templates/next-app/_pages/redirect-page.tsx.tmpl +5 -0
  654. package/templates/next-app/_pages/route-page.tsx.tmpl +9 -0
  655. package/templates/next-app/app/globals.css.tmpl +8 -0
  656. package/templates/next-app/app/layout.tsx.tmpl +19 -0
  657. package/templates/next-app/components/app-shell.tsx.tmpl +34 -0
  658. package/templates/next-app/dot-env.local.example.tmpl +6 -0
  659. package/templates/next-app/dot-gitignore.tmpl +7 -0
  660. package/templates/next-app/lib/nav.ts.tmpl +2 -0
  661. package/templates/next-app/next.config.mjs.tmpl +4 -0
  662. package/templates/next-app/package.json.tmpl +25 -0
  663. package/templates/next-app/postcss.config.mjs.tmpl +4 -0
  664. package/templates/next-app/tsconfig.json.tmpl +21 -0
@@ -26,15 +26,15 @@ export declare const ALL_TARGETS: readonly AgentTarget[];
26
26
  export declare const MARKER_START = "<!-- graph8-sdk:start (managed by `npx @graph8/sdk init-agent`; edits inside are overwritten) -->";
27
27
  export declare const MARKER_END = "<!-- graph8-sdk:end -->";
28
28
  /** The rules every agent gets, whatever file they land in. */
29
- export declare function coreInstructions(): string;
30
- export declare function claudeSkill(): string;
31
- export declare function cursorRule(): string;
32
- export declare function agentsMdSection(): string;
29
+ export declare function coreInstructions(catalog?: string): string;
30
+ export declare function claudeSkill(catalog?: string): string;
31
+ export declare function cursorRule(catalog?: string): string;
32
+ export declare function agentsMdSection(catalog?: string): string;
33
33
  /**
34
34
  * Insert or replace the managed section in an existing AGENTS.md, leaving
35
35
  * everything outside the markers byte-for-byte unchanged.
36
36
  */
37
- export declare function upsertAgentsMd(existing: string | null): string;
37
+ export declare function upsertAgentsMd(existing: string | null, catalog?: string): string;
38
38
  export interface PlannedWrite {
39
39
  target: AgentTarget;
40
40
  path: string;
@@ -48,7 +48,7 @@ export interface PlannedWrite {
48
48
  * current content (or null when it does not exist); paths are relative to the
49
49
  * project root.
50
50
  */
51
- export declare function planAgentSetup(targets: readonly AgentTarget[], read: (path: string) => string | null): PlannedWrite[];
51
+ export declare function planAgentSetup(targets: readonly AgentTarget[], read: (path: string) => string | null, catalog?: string): PlannedWrite[];
52
52
  export interface InitAgentOptions {
53
53
  targets: AgentTarget[];
54
54
  dryRun: boolean;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `graph8-sdk add <block>[/<Component>]`: copy a block's source into the user's
3
+ * app (shadcn style: the code becomes theirs), resolve its dependencies, wire
4
+ * the Next proxy route, install missing peer dependencies and record what was
5
+ * installed in `graph8.json`.
6
+ *
7
+ * Never overwrites a file that differs from the template unless `--force`;
8
+ * prints a diff summary instead. Re-running is a no-op.
9
+ */
10
+ import { type Block, type Registry } from "./registry";
11
+ export declare const ADD_USAGE = "Usage: npx @graph8/sdk add <block>[/<Component>] [options]\n\nCopy a graph8 block (components, hooks, recipes) into your app. The block's\ndependencies (always including `foundation`) are added first.\n --dir <path> project root (default: current directory)\n --target <path> where to copy, relative to --dir (default: components/g8)\n --dry-run print what would change, write and install nothing\n --force overwrite files that differ from the template\n --no-install do not install missing peer dependencies\nExisting files are never overwritten without --force. Installed blocks are\nrecorded in graph8.json so re-runs do nothing.";
12
+ export interface AddOptions {
13
+ spec: string;
14
+ dir: string;
15
+ target?: string;
16
+ dryRun: boolean;
17
+ force: boolean;
18
+ install: boolean;
19
+ }
20
+ export declare function parseAddArgs(argv: string[]): AddOptions;
21
+ export type PackageManager = "pnpm" | "yarn" | "bun" | "npm";
22
+ export declare function detectPackageManager(root: string): PackageManager;
23
+ export declare function installCommand(pm: PackageManager, packages: string[]): {
24
+ cmd: string;
25
+ args: string[];
26
+ };
27
+ export interface AddIO {
28
+ out: (line: string) => void;
29
+ err: (line: string) => void;
30
+ /** Run a command in `cwd`; returns the exit code. */
31
+ spawn: (cmd: string, args: string[], cwd: string) => number;
32
+ }
33
+ /** Where a file at `rel` (inside the block dir) lands, relative to the block's install dir. */
34
+ export declare function installedRel(rel: string): string | null;
35
+ interface RewriteCtx {
36
+ reg: Registry;
37
+ targetAbs: string;
38
+ /** Block the file belongs to (for relative imports), if any. */
39
+ block?: Block;
40
+ srcFile?: string;
41
+ /** Absolute directory the rewritten file will live in. */
42
+ destDir: string;
43
+ }
44
+ /**
45
+ * Make a copied file self-contained: `@/g8/<block>/<path>` becomes a relative
46
+ * path to where that file was installed, and a relative import that crossed the
47
+ * source layout (components are flattened) is recomputed.
48
+ */
49
+ export declare function rewriteImports(content: string, ctx: RewriteCtx): string;
50
+ export declare function diffSummary(before: string, after: string): string;
51
+ /** Run `add`. Returns the process exit code. */
52
+ export declare function runAdd(opts: AddOptions, reg: Registry, io: AddIO, cwd: string): number;
53
+ export {};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * `graph8-sdk create <stack> <dir>`: scaffold a Next.js app (App Router,
3
+ * TypeScript, Tailwind v4) from the in-package template, wire the stack's
4
+ * screens into a sidebar, install the stack's blocks through the SAME code path
5
+ * as `graph8-sdk add`, then install dependencies.
6
+ *
7
+ * Node only. Reads `templates/next-app/**` (shipped in the package) and the
8
+ * block registry; writes only inside `<dir>`.
9
+ */
10
+ import { type AddIO, type PackageManager } from "./add";
11
+ import { type Registry, type Stack } from "./registry";
12
+ export declare const CREATE_USAGE = "Usage: npx @graph8/sdk create <stack> <dir> [options]\n\nScaffold a Next.js (App Router, TypeScript, Tailwind CSS v4) app for a stack and\ninstall the stack's blocks into it. Run `graph8-sdk list` to see the stacks.\n --package-manager <npm|pnpm|yarn|bun> default: the one running the command, else npm\n --no-install write the files and blocks, do not install dependencies\n --dry-run print what would be written, write and install nothing\n --force allow a non-empty <dir> (template files are overwritten, and graph8.json\n is reset: blocks you added to that app earlier are no longer recorded)\nThen: set G8_API_KEY in <dir>/.env.local and run `npx @graph8/sdk doctor --stack <stack>`.";
13
+ export interface CreateOptions {
14
+ stack: string;
15
+ dir: string;
16
+ packageManager?: PackageManager;
17
+ install: boolean;
18
+ dryRun: boolean;
19
+ force: boolean;
20
+ }
21
+ export declare function parseCreateArgs(argv: string[]): CreateOptions;
22
+ export interface CreateIO extends AddIO {
23
+ /** Directory holding `next-app/` (the package's `templates/`). */
24
+ templatesRoot: string;
25
+ /** The package's own package.json (for the UI kit's peer dependencies). */
26
+ sdkPackageJson?: string;
27
+ /** npm_config_user_agent, to default the package manager. */
28
+ userAgent?: string;
29
+ }
30
+ export declare function packageManagerFromUserAgent(ua: string | undefined): PackageManager;
31
+ /** A valid npm package name from a directory name. */
32
+ export declare function appNameFor(dir: string): string;
33
+ /** Replace `{{key}}`; a placeholder with no value is a template bug, not something to ship. */
34
+ export declare function render(template: string, vars: Record<string, string>): string;
35
+ interface OutFile {
36
+ rel: string;
37
+ content: string;
38
+ }
39
+ /** Route file for a nav path: `/` -> app/page.tsx, `/a/b` -> app/a/b/page.tsx. */
40
+ export declare function pageFileFor(navPath: string): string;
41
+ /** Why this stack cannot be scaffolded, or null. */
42
+ export declare function stackProblem(reg: Registry, stack: Stack): string | null;
43
+ export declare function planCreate(reg: Registry, stack: Stack, appName: string, pm: PackageManager, io: CreateIO): OutFile[];
44
+ /** Run `create`. Returns the process exit code. */
45
+ export declare function runCreate(opts: CreateOptions, reg: Registry, io: CreateIO, cwd: string): number;
46
+ export {};
@@ -0,0 +1,26 @@
1
+ /**
2
+ * `graph8-sdk doctor`: is this project ready to run the chosen blocks?
3
+ *
4
+ * Calls the real Developer API with the project's key (`/me` and
5
+ * `/usage/subscription`), compares the key's scopes with what the blocks need,
6
+ * and prints the blocks' in-app prerequisites as a human checklist. The key is
7
+ * never printed, not even in an error.
8
+ */
9
+ import { type Registry } from "./registry";
10
+ export declare const DOCTOR_USAGE = "Usage: npx @graph8/sdk doctor [--stack <id>] [--blocks a,b] [--dir <path>]\n\nCheck that this project is ready for graph8 blocks:\n - G8_API_KEY (env or .env.local) is valid\n - the key's scopes cover the blocks you chose\n - the organization's subscription is active\n - a checklist of in-app setup each block needs\nWith no --stack/--blocks, the blocks recorded in graph8.json are checked.\nOptional G8_API_URL points at a non-default API. Exit code 0 when all checks\npass, 1 otherwise.";
11
+ export interface DoctorOptions {
12
+ stack?: string;
13
+ blocks: string[];
14
+ dir: string;
15
+ }
16
+ export declare function parseDoctorArgs(argv: string[]): DoctorOptions;
17
+ export interface DoctorIO {
18
+ out: (line: string) => void;
19
+ err: (line: string) => void;
20
+ env: Record<string, string | undefined>;
21
+ fetch?: typeof fetch;
22
+ }
23
+ /** Same rules as the server's `key_has_scope`. */
24
+ export declare function scopeGranted(granted: string[], required: string): boolean;
25
+ /** Run doctor. Returns the exit code: 0 when every check passes. */
26
+ export declare function runDoctor(opts: DoctorOptions, reg: Registry, io: DoctorIO, cwd: string): Promise<number>;
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Block and stack registry for the `graph8-sdk` CLI.
3
+ *
4
+ * Blocks ship INSIDE the npm package at `blocks/<dir>/block.json` and stacks at
5
+ * `stacks/<id>.json` (siblings of `dist/`). The CLI reads them from disk at run
6
+ * time, so it works the same against the real package and against test
7
+ * fixtures: only the root directory changes.
8
+ *
9
+ * Node only. Pure of side effects except reading files.
10
+ */
11
+ export interface BlockComponent {
12
+ name: string;
13
+ file: string;
14
+ purpose?: string;
15
+ operations?: string[];
16
+ tiers?: string[];
17
+ }
18
+ export interface BlockHook {
19
+ name: string;
20
+ file: string;
21
+ purpose?: string;
22
+ operations?: string[];
23
+ }
24
+ export interface BlockServerFile {
25
+ file: string;
26
+ purpose?: string;
27
+ /** Where the file installs. `g8/<path>` means inside the block's install dir; anything else is project-root relative. */
28
+ target?: string;
29
+ }
30
+ export interface BlockRecipe {
31
+ file: string;
32
+ title?: string;
33
+ when?: string;
34
+ }
35
+ export interface BlockPrerequisite {
36
+ id: string;
37
+ description: string;
38
+ where: "app" | "api";
39
+ verify?: string;
40
+ }
41
+ export interface BlockManifest {
42
+ id: string;
43
+ title: string;
44
+ summary: string;
45
+ features: string[];
46
+ dependsOn: string[];
47
+ operations: string[];
48
+ components: BlockComponent[];
49
+ hooks: BlockHook[];
50
+ lib: {
51
+ file: string;
52
+ purpose?: string;
53
+ }[];
54
+ server: BlockServerFile[];
55
+ recipes: BlockRecipe[];
56
+ prerequisites: BlockPrerequisite[];
57
+ scopes: string[];
58
+ defaults: {
59
+ decision: string;
60
+ default: string;
61
+ askHuman?: boolean;
62
+ }[];
63
+ peerDependencies: Record<string, string>;
64
+ }
65
+ export interface Block extends BlockManifest {
66
+ /** Directory name under `blocks/` (`_foundation` for the `foundation` block). */
67
+ dir: string;
68
+ /** Absolute path of the block directory. */
69
+ root: string;
70
+ }
71
+ export interface StackNav {
72
+ label: string;
73
+ path: string;
74
+ block: string;
75
+ component: string;
76
+ /** JSON props the route passes to the component. */
77
+ props?: Record<string, unknown>;
78
+ }
79
+ export interface Stack {
80
+ id: string;
81
+ title: string;
82
+ summary: string;
83
+ /** As declared in the manifest (default `available`). Use `stackStatus` for the effective status. */
84
+ status: "available" | "planned";
85
+ blocks: string[];
86
+ nav: StackNav[];
87
+ }
88
+ export interface Registry {
89
+ blocks: Block[];
90
+ stacks: Stack[];
91
+ }
92
+ /**
93
+ * Load every block under `<blocksRoot>` and every stack under the sibling
94
+ * `stacks/` directory. A missing directory is an empty registry, not an error:
95
+ * an older package without blocks must still run `init-agent`.
96
+ */
97
+ export declare function loadRegistry(blocksRoot: string): Registry;
98
+ export declare function findBlock(reg: Registry, id: string): Block | undefined;
99
+ /**
100
+ * The block plus everything it depends on, dependencies first (so `foundation`
101
+ * comes before anything that needs it). Throws on an unknown id or a cycle.
102
+ */
103
+ export declare function resolveWithDeps(reg: Registry, ids: string[]): Block[];
104
+ /** Blocks whose id, title, summary, features or component names contain `text`. */
105
+ export declare function searchBlocks(reg: Registry, text: string): Block[];
106
+ /** Stacks matching the same way (id, title, summary). */
107
+ export declare function searchStacks(reg: Registry, text: string): Stack[];
108
+ export declare function blockSummary(b: Block): {
109
+ id: string;
110
+ title: string;
111
+ summary: string;
112
+ dependsOn: string[];
113
+ components: string[];
114
+ };
115
+ /**
116
+ * Effective status of a stack. A stack is creatable only when every block it
117
+ * names exists in this package; `missing` lists the ones that do not yet (they
118
+ * are being built in other releases), whatever the manifest declares.
119
+ */
120
+ export declare function stackStatus(reg: Registry, s: Stack): {
121
+ status: "available" | "planned";
122
+ missing: string[];
123
+ };
124
+ export interface StackSummary {
125
+ id: string;
126
+ title: string;
127
+ summary: string;
128
+ blocks: string[];
129
+ status?: "available" | "planned";
130
+ missingBlocks?: string[];
131
+ }
132
+ export declare function stackSummary(s: Stack, reg?: Registry): StackSummary;
133
+ /** One-line catalog for `init-agent`, or undefined when the package ships no blocks. */
134
+ export declare function catalogSection(reg: Registry): string | undefined;
@@ -2,6 +2,8 @@
2
2
  * The `@graph8/sdk` command line (the package's `bin`), run with npx:
3
3
  *
4
4
  * npx @graph8/sdk init-agent [--claude] [--codex] [--cursor] [--dry-run]
5
+ * npx @graph8/sdk list | search <text> | add <block>[/<Component>] | doctor
6
+ * npx @graph8/sdk create <stack> <dir>
5
7
  *
6
8
  * Node only. Built as a separate entry (dist/cli.js), so nothing here reaches
7
9
  * the browser bundle or the package's main exports.
@@ -10,5 +12,19 @@ export interface CliIO {
10
12
  cwd: string;
11
13
  out: (line: string) => void;
12
14
  err: (line: string) => void;
15
+ /** Directory holding `block.json` folders. Default: $G8_BLOCKS_DIR, else the package's own `blocks/`. */
16
+ blocksRoot?: string;
17
+ /** Directory holding `next-app/`. Default: $G8_TEMPLATES_DIR, else the package's own `templates/`. */
18
+ templatesRoot?: string;
19
+ /** npm_config_user_agent for `create`'s package-manager default. Default: process.env. */
20
+ userAgent?: string;
21
+ /** Run a command, return its exit code. Default: spawnSync with inherited stdio. */
22
+ spawn?: (cmd: string, args: string[], cwd: string) => number;
23
+ /** Environment for `doctor`. Default: process.env. */
24
+ env?: Record<string, string | undefined>;
25
+ /** fetch for `doctor`. Default: global fetch. */
26
+ fetch?: typeof fetch;
13
27
  }
14
28
  export declare function runCli(argv: string[], io: CliIO): number;
29
+ /** Like `runCli`, plus the commands that talk to the network (`doctor`). */
30
+ export declare function runCliAsync(argv: string[], io: CliIO): Promise<number>;
@@ -241,7 +241,7 @@ declare class G8 {
241
241
  /** Webhook event listeners (requires API key). */
242
242
  get webhooks(): {
243
243
  baseUrl: string;
244
- knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
244
+ knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "quote.approval_requested", "quote.approved", "quote.rejected", "quote.forwarded_for_signature", "quote.forwarded_for_payment", "quote.signer_change_requested", "quote.signer_change_approved", "quote.signer_change_rejected", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
245
245
  constructEvent(payload: string, signature: string, timestamp: string | number, secret: string, opts?: import("./webhooks").ConstructEventOptions): import("./webhooks").WebhookEventPayload;
246
246
  };
247
247
  /** Contacts CRUD (requires API key). */
@@ -0,0 +1,2 @@
1
+ export declare function createHmac(..._args: unknown[]): never;
2
+ export declare function timingSafeEqual(..._args: unknown[]): never;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The webhook verifier's crypto, behind a local module so the `browser` build
3
+ * can swap it for `./crypto-browser` (see tsup.config.ts). Node builds use the
4
+ * real `node:crypto`, unchanged.
5
+ */
6
+ export { createHmac, timingSafeEqual } from "node:crypto";
@@ -216,7 +216,7 @@ export declare const useG8: () => {
216
216
  };
217
217
  get webhooks(): {
218
218
  baseUrl: string;
219
- knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
219
+ knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "quote.approval_requested", "quote.approved", "quote.rejected", "quote.forwarded_for_signature", "quote.forwarded_for_payment", "quote.signer_change_requested", "quote.signer_change_approved", "quote.signer_change_rejected", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
220
220
  constructEvent(payload: string, signature: string, timestamp: string | number, secret: string, opts?: import("./webhooks").ConstructEventOptions): import("./webhooks").WebhookEventPayload;
221
221
  };
222
222
  get contacts(): {
@@ -5,6 +5,6 @@
5
5
  * both together (the version-parity gate already pins package.json, the
6
6
  * lockfile and the CHANGELOG to each other).
7
7
  */
8
- export declare const SDK_VERSION = "0.303.0";
8
+ export declare const SDK_VERSION = "0.357.0";
9
9
  /** Value of the `X-G8-Client` header every SDK request carries (I-13). */
10
- export declare const SDK_CLIENT_ID = "js-sdk/0.303.0";
10
+ export declare const SDK_CLIENT_ID = "js-sdk/0.357.0";
@@ -6,7 +6,7 @@
6
6
  * adds events. ``WebhookEvent`` also accepts any string so a newly-added
7
7
  * backend event never breaks a client that hasn't upgraded.
8
8
  */
9
- export declare const KNOWN_WEBHOOK_EVENTS: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
9
+ export declare const KNOWN_WEBHOOK_EVENTS: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "quote.approval_requested", "quote.approved", "quote.rejected", "quote.forwarded_for_signature", "quote.forwarded_for_payment", "quote.signer_change_requested", "quote.signer_change_approved", "quote.signer_change_rejected", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
10
10
  export type WebhookEvent = (typeof KNOWN_WEBHOOK_EVENTS)[number] | (string & {});
11
11
  /** The decoded body graph8 delivers to a webhook endpoint. */
12
12
  export interface WebhookEventPayload {
@@ -65,7 +65,7 @@ export declare const createWebhooksClient: (_apiKey: string, apiUrl?: string) =>
65
65
  /** Base URL the webhook subscription API lives under. */
66
66
  baseUrl: string;
67
67
  /** Known event types (for autocomplete / validation). */
68
- knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
68
+ knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.restored", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "quote.approval_requested", "quote.approved", "quote.rejected", "quote.forwarded_for_signature", "quote.forwarded_for_payment", "quote.signer_change_requested", "quote.signer_change_approved", "quote.signer_change_rejected", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
69
69
  /** Verify an incoming webhook's HMAC signature and return the parsed event. */
70
70
  constructEvent(payload: string, signature: string, timestamp: string | number, secret: string, opts?: ConstructEventOptions): WebhookEventPayload;
71
71
  };
@@ -0,0 +1,54 @@
1
+ export { cn } from './lib/utils.mjs';
2
+ export { composeRefs, useComposedRefs } from './lib/compose-refs.mjs';
3
+ export { MOBILE_BREAKPOINT, useIsMobile } from './lib/use-mobile.mjs';
4
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './primitives/alert-dialog.mjs';
5
+ export { Avatar, AvatarFallback, AvatarImage } from './primitives/avatar.mjs';
6
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './primitives/breadcrumb.mjs';
7
+ export { Button, ButtonProps, buttonVariants } from './primitives/button.mjs';
8
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './primitives/card.mjs';
9
+ export { Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel } from './primitives/carousel.mjs';
10
+ export { ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './primitives/chart.mjs';
11
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './primitives/collapsible.mjs';
12
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './primitives/context-menu.mjs';
13
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, VisuallyHidden } from './primitives/dialog.mjs';
14
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './primitives/drawer.mjs';
15
+ export { Input } from './primitives/input.mjs';
16
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle } from './primitives/item.mjs';
17
+ export { Kbd } from './primitives/kbd.mjs';
18
+ export { Label } from './primitives/label.mjs';
19
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './primitives/resizable.mjs';
20
+ export { SaveStatus, SaveStatusProps, SaveStatusValue } from './primitives/save-status.mjs';
21
+ export { Separator } from './primitives/separator.mjs';
22
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from './primitives/sheet.mjs';
23
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar } from './primitives/sidebar.mjs';
24
+ export { Skeleton } from './primitives/skeleton.mjs';
25
+ export { Slider } from './primitives/slider.mjs';
26
+ export { Root as Sortable, Content as SortableContent, Item as SortableItem, ItemHandle as SortableItemHandle, Overlay as SortableOverlay } from './primitives/sortable.mjs';
27
+ export { Switch } from './primitives/switch.mjs';
28
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './primitives/table.mjs';
29
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from './primitives/tabs.mjs';
30
+ export { Textarea } from './primitives/textarea.mjs';
31
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './primitives/tooltip.mjs';
32
+ import 'clsx';
33
+ import 'react';
34
+ import '@radix-ui/react-dialog';
35
+ import '@radix-ui/react-avatar';
36
+ import 'class-variance-authority/types';
37
+ import 'class-variance-authority';
38
+ import 'recharts/types/util/payload/getUniqPayload';
39
+ import 'recharts/types/component/Tooltip';
40
+ import 'recharts/types/util/types';
41
+ import 'recharts/types/component/DefaultTooltipContent';
42
+ import 'recharts';
43
+ import '@radix-ui/react-collapsible';
44
+ import '@radix-ui/react-context-menu';
45
+ import 'vaul';
46
+ import '@radix-ui/react-label';
47
+ import 'react-resizable-panels';
48
+ import '@radix-ui/react-separator';
49
+ import '@radix-ui/react-slider';
50
+ import '@dnd-kit/core';
51
+ import '@dnd-kit/sortable';
52
+ import '@radix-ui/react-switch';
53
+ import '@radix-ui/react-tabs';
54
+ import '@radix-ui/react-tooltip';
@@ -0,0 +1,54 @@
1
+ export { cn } from './lib/utils.js';
2
+ export { composeRefs, useComposedRefs } from './lib/compose-refs.js';
3
+ export { MOBILE_BREAKPOINT, useIsMobile } from './lib/use-mobile.js';
4
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './primitives/alert-dialog.js';
5
+ export { Avatar, AvatarFallback, AvatarImage } from './primitives/avatar.js';
6
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './primitives/breadcrumb.js';
7
+ export { Button, ButtonProps, buttonVariants } from './primitives/button.js';
8
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './primitives/card.js';
9
+ export { Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel } from './primitives/carousel.js';
10
+ export { ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './primitives/chart.js';
11
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './primitives/collapsible.js';
12
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './primitives/context-menu.js';
13
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, VisuallyHidden } from './primitives/dialog.js';
14
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './primitives/drawer.js';
15
+ export { Input } from './primitives/input.js';
16
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle } from './primitives/item.js';
17
+ export { Kbd } from './primitives/kbd.js';
18
+ export { Label } from './primitives/label.js';
19
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './primitives/resizable.js';
20
+ export { SaveStatus, SaveStatusProps, SaveStatusValue } from './primitives/save-status.js';
21
+ export { Separator } from './primitives/separator.js';
22
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from './primitives/sheet.js';
23
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar } from './primitives/sidebar.js';
24
+ export { Skeleton } from './primitives/skeleton.js';
25
+ export { Slider } from './primitives/slider.js';
26
+ export { Root as Sortable, Content as SortableContent, Item as SortableItem, ItemHandle as SortableItemHandle, Overlay as SortableOverlay } from './primitives/sortable.js';
27
+ export { Switch } from './primitives/switch.js';
28
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './primitives/table.js';
29
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from './primitives/tabs.js';
30
+ export { Textarea } from './primitives/textarea.js';
31
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './primitives/tooltip.js';
32
+ import 'clsx';
33
+ import 'react';
34
+ import '@radix-ui/react-dialog';
35
+ import '@radix-ui/react-avatar';
36
+ import 'class-variance-authority/types';
37
+ import 'class-variance-authority';
38
+ import 'recharts/types/util/payload/getUniqPayload';
39
+ import 'recharts/types/component/Tooltip';
40
+ import 'recharts/types/util/types';
41
+ import 'recharts/types/component/DefaultTooltipContent';
42
+ import 'recharts';
43
+ import '@radix-ui/react-collapsible';
44
+ import '@radix-ui/react-context-menu';
45
+ import 'vaul';
46
+ import '@radix-ui/react-label';
47
+ import 'react-resizable-panels';
48
+ import '@radix-ui/react-separator';
49
+ import '@radix-ui/react-slider';
50
+ import '@dnd-kit/core';
51
+ import '@dnd-kit/sortable';
52
+ import '@radix-ui/react-switch';
53
+ import '@radix-ui/react-tabs';
54
+ import '@radix-ui/react-tooltip';