@graph8/sdk 0.308.1 → 0.358.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.
- package/README.md +81 -0
- package/blocks/README.md +32 -0
- package/blocks/_foundation/README.md +78 -0
- package/blocks/_foundation/block.json +79 -0
- package/blocks/_foundation/components/api-error.tsx +62 -0
- package/blocks/_foundation/components/confirm-spend-dialog.tsx +142 -0
- package/blocks/_foundation/components/empty-state.tsx +24 -0
- package/blocks/_foundation/hooks/use-g8-mutation.ts +88 -0
- package/blocks/_foundation/hooks/use-g8-query.ts +87 -0
- package/blocks/_foundation/hooks/use-job-poll.ts +130 -0
- package/blocks/_foundation/hooks/use-paginated.ts +105 -0
- package/blocks/_foundation/lib/g8-client.ts +128 -0
- package/blocks/_foundation/recipes/verify-proxy-key.ts +18 -0
- package/blocks/_foundation/server/proxy.ts +233 -0
- package/blocks/_foundation/server/route.ts +30 -0
- package/blocks/agents/README.md +133 -0
- package/blocks/agents/block.json +223 -0
- package/blocks/agents/components/agent-builder.tsx +199 -0
- package/blocks/agents/components/agent-knowledge-panel.tsx +144 -0
- package/blocks/agents/components/agent-runs.tsx +175 -0
- package/blocks/agents/components/agent-skills-panel.tsx +126 -0
- package/blocks/agents/components/agent-test-console.tsx +175 -0
- package/blocks/agents/lib/agent-types.ts +114 -0
- package/blocks/agents/recipes/create-agent-and-attach-skill.ts +50 -0
- package/blocks/agents/recipes/run-and-follow-agent-run.ts +46 -0
- package/blocks/agents/recipes/test-agent-before-activating.ts +36 -0
- package/blocks/analytics/README.md +73 -0
- package/blocks/analytics/block.json +178 -0
- package/blocks/analytics/components/funnel-chart.tsx +79 -0
- package/blocks/analytics/components/kpi-tiles.tsx +74 -0
- package/blocks/analytics/components/leaderboard.tsx +86 -0
- package/blocks/analytics/components/report-builder.tsx +200 -0
- package/blocks/analytics/hooks/use-report.ts +26 -0
- package/blocks/analytics/lib/analytics-types.ts +108 -0
- package/blocks/analytics/lib/use-debounced.ts +16 -0
- package/blocks/analytics/recipes/01-weekly-outbound-report.ts +32 -0
- package/blocks/analytics/recipes/02-revenue-snapshot.ts +22 -0
- package/blocks/analytics/recipes/03-saved-report.ts +30 -0
- package/blocks/appointments/README.md +80 -0
- package/blocks/appointments/block.json +218 -0
- package/blocks/appointments/components/availability-editor.tsx +192 -0
- package/blocks/appointments/components/booking-page.tsx +154 -0
- package/blocks/appointments/components/event-type-editor.tsx +214 -0
- package/blocks/appointments/components/meeting-detail.tsx +147 -0
- package/blocks/appointments/components/meeting-list.tsx +148 -0
- package/blocks/appointments/hooks/use-available-slots.ts +29 -0
- package/blocks/appointments/hooks/use-schedules.ts +18 -0
- package/blocks/appointments/lib/appointments-types.ts +159 -0
- package/blocks/appointments/lib/idempotency.ts +30 -0
- package/blocks/appointments/recipes/01-create-event-type-and-hours.ts +27 -0
- package/blocks/appointments/recipes/02-find-slots-and-book.ts +34 -0
- package/blocks/appointments/recipes/03-bookings-digest.ts +22 -0
- package/blocks/appointments/recipes/04-calendar-invite.ts +21 -0
- package/blocks/block.schema.json +130 -0
- package/blocks/block.types.ts +109 -0
- package/blocks/campaigns/README.md +118 -0
- package/blocks/campaigns/block.json +361 -0
- package/blocks/campaigns/components/campaign-assets.tsx +180 -0
- package/blocks/campaigns/components/campaign-audience-step.tsx +91 -0
- package/blocks/campaigns/components/campaign-launch-step.tsx +147 -0
- package/blocks/campaigns/components/campaign-list.tsx +120 -0
- package/blocks/campaigns/components/campaign-metrics.tsx +93 -0
- package/blocks/campaigns/components/campaign-select.tsx +52 -0
- package/blocks/campaigns/components/campaign-sequence-step.tsx +158 -0
- package/blocks/campaigns/components/campaign-wizard.tsx +238 -0
- package/blocks/campaigns/components/form-field.tsx +29 -0
- package/blocks/campaigns/components/icp-editor.tsx +230 -0
- package/blocks/campaigns/components/persona-editor.tsx +210 -0
- package/blocks/campaigns/hooks/use-company-profile.ts +34 -0
- package/blocks/campaigns/lib/campaigns-utils.ts +155 -0
- package/blocks/campaigns/recipes/attach-audience-and-launch.ts +33 -0
- package/blocks/campaigns/recipes/campaign-report.ts +22 -0
- package/blocks/campaigns/recipes/generate-ideas-and-create-campaign.ts +51 -0
- package/blocks/campaigns/recipes/set-up-icp-and-personas.ts +37 -0
- package/blocks/coach/README.md +93 -0
- package/blocks/coach/block.json +125 -0
- package/blocks/coach/components/call-scorecard.tsx +126 -0
- package/blocks/coach/components/coaching-feed.tsx +140 -0
- package/blocks/coach/lib/coach-types.ts +116 -0
- package/blocks/coach/recipes/read-a-scorecard.ts +27 -0
- package/blocks/coach/recipes/weekly-coaching-digest.ts +53 -0
- package/blocks/copilot/README.md +99 -0
- package/blocks/copilot/block.json +151 -0
- package/blocks/copilot/components/copilot-memory.tsx +87 -0
- package/blocks/copilot/components/copilot-panel.tsx +189 -0
- package/blocks/copilot/components/copilot-team-chat.tsx +111 -0
- package/blocks/copilot/lib/copilot-types.ts +111 -0
- package/blocks/copilot/recipes/ask-the-copilot.ts +35 -0
- package/blocks/copilot/recipes/post-in-a-work-channel.ts +33 -0
- package/blocks/copilot/recipes/remember-and-recall.ts +19 -0
- package/blocks/crm/README.md +122 -0
- package/blocks/crm/block.json +378 -0
- package/blocks/crm/components/activity-timeline.tsx +99 -0
- package/blocks/crm/components/company-detail.tsx +118 -0
- package/blocks/crm/components/company-table.tsx +173 -0
- package/blocks/crm/components/contact-detail.tsx +135 -0
- package/blocks/crm/components/contact-table.tsx +217 -0
- package/blocks/crm/components/dedupe-review.tsx +164 -0
- package/blocks/crm/components/import-wizard.tsx +193 -0
- package/blocks/crm/components/notes-panel.tsx +112 -0
- package/blocks/crm/components/record-form.tsx +191 -0
- package/blocks/crm/components/task-list.tsx +107 -0
- package/blocks/crm/hooks/use-custom-fields.ts +18 -0
- package/blocks/crm/hooks/use-debounced.ts +13 -0
- package/blocks/crm/hooks/use-page-query.ts +52 -0
- package/blocks/crm/lib/crm-types.ts +136 -0
- package/blocks/crm/recipes/custom-fields-and-values.ts +28 -0
- package/blocks/crm/recipes/dedupe-and-merge.ts +30 -0
- package/blocks/crm/recipes/notes-tasks-and-activity.ts +23 -0
- package/blocks/crm/recipes/upsert-contact-with-company.ts +33 -0
- package/blocks/deals/README.md +78 -0
- package/blocks/deals/block.json +198 -0
- package/blocks/deals/components/deal-detail.tsx +134 -0
- package/blocks/deals/components/forecast-view.tsx +112 -0
- package/blocks/deals/components/pipeline-board.tsx +142 -0
- package/blocks/deals/components/stage-editor.tsx +96 -0
- package/blocks/deals/hooks/use-pipeline-deals.ts +67 -0
- package/blocks/deals/hooks/use-pipelines.ts +19 -0
- package/blocks/deals/lib/deals-types.ts +128 -0
- package/blocks/deals/recipes/01-create-deal-and-advance.ts +32 -0
- package/blocks/deals/recipes/02-pipeline-report.ts +35 -0
- package/blocks/deals/recipes/03-stale-deals-sweep.ts +20 -0
- package/blocks/dialer/README.md +114 -0
- package/blocks/dialer/block.json +260 -0
- package/blocks/dialer/components/call-log.tsx +78 -0
- package/blocks/dialer/components/call-queue.tsx +188 -0
- package/blocks/dialer/components/dialer-workspace.tsx +47 -0
- package/blocks/dialer/components/disposition-panel.tsx +75 -0
- package/blocks/dialer/components/live-calls-table.tsx +107 -0
- package/blocks/dialer/components/session-start-form.tsx +111 -0
- package/blocks/dialer/components/softphone.tsx +122 -0
- package/blocks/dialer/components/transcript-viewer.tsx +82 -0
- package/blocks/dialer/hooks/use-dialer-numbers.ts +19 -0
- package/blocks/dialer/hooks/use-dialer-session.ts +68 -0
- package/blocks/dialer/hooks/use-dispositions.ts +29 -0
- package/blocks/dialer/lib/dialer-types.ts +158 -0
- package/blocks/dialer/lib/softphone-transport.ts +67 -0
- package/blocks/dialer/lib/twilio-transport.ts +74 -0
- package/blocks/dialer/recipes/01-create-session-and-dial.ts +39 -0
- package/blocks/dialer/recipes/02-disposition-calls.ts +26 -0
- package/blocks/dialer/recipes/03-review-a-call.ts +23 -0
- package/blocks/enrichment/README.md +105 -0
- package/blocks/enrichment/block.json +204 -0
- package/blocks/enrichment/components/bulk-enrich-panel.tsx +205 -0
- package/blocks/enrichment/components/email-verify-badge.tsx +82 -0
- package/blocks/enrichment/components/enrich-button.tsx +136 -0
- package/blocks/enrichment/components/waterfall-config.tsx +127 -0
- package/blocks/enrichment/hooks/use-providers.ts +18 -0
- package/blocks/enrichment/lib/enrichment-types.ts +104 -0
- package/blocks/enrichment/recipes/bulk-enrich-and-poll.ts +41 -0
- package/blocks/enrichment/recipes/lookup-and-verify.ts +25 -0
- package/blocks/enrichment/recipes/waterfall-pipeline.ts +26 -0
- package/blocks/forms/README.md +112 -0
- package/blocks/forms/block.json +200 -0
- package/blocks/forms/components/form-builder.tsx +150 -0
- package/blocks/forms/components/form-embed.tsx +103 -0
- package/blocks/forms/components/form-mapping-editor.tsx +125 -0
- package/blocks/forms/components/site-audit-panel.tsx +73 -0
- package/blocks/forms/components/submissions-table.tsx +158 -0
- package/blocks/forms/lib/form-types.ts +127 -0
- package/blocks/forms/recipes/install-snippet-and-form.ts +21 -0
- package/blocks/forms/recipes/retry-failed-deliveries.ts +26 -0
- package/blocks/forms/recipes/route-form-to-list.ts +44 -0
- package/blocks/inbox/README.md +72 -0
- package/blocks/inbox/block.json +194 -0
- package/blocks/inbox/components/inbox-list.tsx +156 -0
- package/blocks/inbox/components/inbox-screen.tsx +49 -0
- package/blocks/inbox/components/reply-composer.tsx +183 -0
- package/blocks/inbox/components/tag-and-assign.tsx +189 -0
- package/blocks/inbox/components/thread-badge.tsx +17 -0
- package/blocks/inbox/components/thread-view.tsx +108 -0
- package/blocks/inbox/hooks/use-inbox-thread.ts +24 -0
- package/blocks/inbox/hooks/use-inbox-threads.ts +40 -0
- package/blocks/inbox/lib/idempotency.ts +30 -0
- package/blocks/inbox/lib/inbox-types.ts +100 -0
- package/blocks/inbox/recipes/01-triage-and-reply.ts +43 -0
- package/blocks/inbox/recipes/02-tag-and-assign.ts +31 -0
- package/blocks/inbox/recipes/03-hot-contacts-digest.ts +16 -0
- package/blocks/integrations/README.md +75 -0
- package/blocks/integrations/block.json +172 -0
- package/blocks/integrations/components/integration-list.tsx +165 -0
- package/blocks/integrations/components/sync-status.tsx +223 -0
- package/blocks/integrations/components/webhook-manager.tsx +300 -0
- package/blocks/integrations/lib/integrations-utils.ts +62 -0
- package/blocks/integrations/recipes/crm-sync-health.ts +19 -0
- package/blocks/integrations/recipes/push-contacts-to-crm.ts +20 -0
- package/blocks/integrations/recipes/register-webhook.ts +18 -0
- package/blocks/integrations/recipes/verify-webhook-route.ts +33 -0
- package/blocks/intent/README.md +57 -0
- package/blocks/intent/block.json +138 -0
- package/blocks/intent/components/account-intent-score.tsx +91 -0
- package/blocks/intent/components/intent-feed.tsx +215 -0
- package/blocks/intent/components/intent-keyword-manager.tsx +331 -0
- package/blocks/intent/hooks/use-account-intent.ts +46 -0
- package/blocks/intent/lib/intent-utils.ts +95 -0
- package/blocks/intent/recipes/rank-intent-accounts.ts +36 -0
- package/blocks/intent/recipes/track-competitor-domain.ts +23 -0
- package/blocks/intent/recipes/who-visited-url.ts +18 -0
- package/blocks/lifecycle/README.md +79 -0
- package/blocks/lifecycle/block.json +198 -0
- package/blocks/lifecycle/components/churn-list.tsx +92 -0
- package/blocks/lifecycle/components/customer-table.tsx +119 -0
- package/blocks/lifecycle/components/lead-queue.tsx +127 -0
- package/blocks/lifecycle/components/lifecycle-board.tsx +102 -0
- package/blocks/lifecycle/components/stage-move-dialog.tsx +75 -0
- package/blocks/lifecycle/hooks/use-debounced.ts +13 -0
- package/blocks/lifecycle/hooks/use-lifecycle-stages.ts +27 -0
- package/blocks/lifecycle/lib/lifecycle.ts +99 -0
- package/blocks/lifecycle/recipes/customer-brief.ts +23 -0
- package/blocks/lifecycle/recipes/move-company-stage.ts +17 -0
- package/blocks/lifecycle/recipes/read-lifecycle-board.ts +21 -0
- package/blocks/lifecycle/recipes/unlock-stage-contacts.ts +25 -0
- package/blocks/lists/README.md +96 -0
- package/blocks/lists/block.json +166 -0
- package/blocks/lists/components/add-to-list-button.tsx +111 -0
- package/blocks/lists/components/list-picker.tsx +94 -0
- package/blocks/lists/components/list-table.tsx +160 -0
- package/blocks/lists/components/suppression-manager.tsx +153 -0
- package/blocks/lists/recipes/create-list-and-add-contacts.ts +35 -0
- package/blocks/lists/recipes/refresh-and-check-lists.ts +21 -0
- package/blocks/lists/recipes/suppress-and-reinstate.ts +30 -0
- package/blocks/mailboxes/README.md +71 -0
- package/blocks/mailboxes/block.json +187 -0
- package/blocks/mailboxes/components/connect-mailbox.tsx +284 -0
- package/blocks/mailboxes/components/domain-purchase.tsx +271 -0
- package/blocks/mailboxes/components/mailbox-list.tsx +185 -0
- package/blocks/mailboxes/components/warmup-health.tsx +232 -0
- package/blocks/mailboxes/lib/mailboxes-utils.ts +69 -0
- package/blocks/mailboxes/recipes/buy-domain-and-mailboxes.ts +64 -0
- package/blocks/mailboxes/recipes/connect-imap-mailbox.ts +38 -0
- package/blocks/mailboxes/recipes/is-it-safe-to-send.ts +17 -0
- package/blocks/mailboxes/recipes/warmup-report.ts +31 -0
- package/blocks/newsletter/README.md +122 -0
- package/blocks/newsletter/block.json +224 -0
- package/blocks/newsletter/components/issue-form.tsx +124 -0
- package/blocks/newsletter/components/issue-scheduler.tsx +152 -0
- package/blocks/newsletter/components/newsletter-editor.tsx +131 -0
- package/blocks/newsletter/components/newsletter-stats.tsx +93 -0
- package/blocks/newsletter/components/subscriber-table.tsx +173 -0
- package/blocks/newsletter/lib/newsletter-types.ts +97 -0
- package/blocks/newsletter/recipes/create-newsletter-and-draft-issue.ts +27 -0
- package/blocks/newsletter/recipes/import-audience-and-send.ts +43 -0
- package/blocks/newsletter/recipes/issue-performance-report.ts +26 -0
- package/blocks/nurture/README.md +110 -0
- package/blocks/nurture/block.json +191 -0
- package/blocks/nurture/components/nurture-builder.tsx +114 -0
- package/blocks/nurture/components/nurture-enroll.tsx +107 -0
- package/blocks/nurture/components/nurture-form.tsx +120 -0
- package/blocks/nurture/components/nurture-stats.tsx +81 -0
- package/blocks/nurture/lib/nurture-types.ts +109 -0
- package/blocks/nurture/recipes/create-a-nurture.ts +34 -0
- package/blocks/nurture/recipes/enroll-contacts-and-launch.ts +24 -0
- package/blocks/nurture/recipes/nurture-health-check.ts +28 -0
- package/blocks/objects/README.md +120 -0
- package/blocks/objects/block.json +243 -0
- package/blocks/objects/components/attribute-field-input.tsx +82 -0
- package/blocks/objects/components/attribute-form-dialog.tsx +159 -0
- package/blocks/objects/components/object-not-found.tsx +34 -0
- package/blocks/objects/components/object-record-detail.tsx +143 -0
- package/blocks/objects/components/object-schema-editor.tsx +197 -0
- package/blocks/objects/components/object-table.tsx +130 -0
- package/blocks/objects/components/record-form-dialog.tsx +112 -0
- package/blocks/objects/components/record-roles-panel.tsx +106 -0
- package/blocks/objects/hooks/use-object-schema.ts +36 -0
- package/blocks/objects/lib/object-types.ts +214 -0
- package/blocks/objects/recipes/define-object-and-add-records.ts +24 -0
- package/blocks/objects/recipes/update-audit-and-archive-records.ts +39 -0
- package/blocks/objects/recipes/upsert-records-from-your-system.ts +30 -0
- package/blocks/pages/README.md +104 -0
- package/blocks/pages/block.json +223 -0
- package/blocks/pages/components/brand-kit-editor.tsx +152 -0
- package/blocks/pages/components/content-library.tsx +163 -0
- package/blocks/pages/components/page-editor.tsx +253 -0
- package/blocks/pages/components/page-list.tsx +159 -0
- package/blocks/pages/components/seo-report.tsx +159 -0
- package/blocks/pages/lib/studio.ts +77 -0
- package/blocks/pages/recipes/audit-site-seo.ts +28 -0
- package/blocks/pages/recipes/create-and-publish-page.ts +26 -0
- package/blocks/pages/recipes/edit-page-section.ts +25 -0
- package/blocks/pages/recipes/refresh-brand-kit.ts +22 -0
- package/blocks/quotes/README.md +79 -0
- package/blocks/quotes/block.json +183 -0
- package/blocks/quotes/components/product-picker.tsx +80 -0
- package/blocks/quotes/components/quote-builder.tsx +195 -0
- package/blocks/quotes/components/quote-list.tsx +79 -0
- package/blocks/quotes/components/quote-viewer.tsx +135 -0
- package/blocks/quotes/components/signature-status.tsx +77 -0
- package/blocks/quotes/hooks/use-debounced.ts +13 -0
- package/blocks/quotes/lib/quotes.ts +142 -0
- package/blocks/quotes/recipes/create-and-send-quote.ts +44 -0
- package/blocks/quotes/recipes/revise-sent-quote.ts +18 -0
- package/blocks/quotes/recipes/track-quote-signature.ts +22 -0
- package/blocks/radar/README.md +106 -0
- package/blocks/radar/block.json +189 -0
- package/blocks/radar/components/competitor-battle-card.tsx +53 -0
- package/blocks/radar/components/competitor-tracker.tsx +158 -0
- package/blocks/radar/components/radar-overview.tsx +67 -0
- package/blocks/radar/components/radar-report.tsx +86 -0
- package/blocks/radar/hooks/use-competitors.ts +23 -0
- package/blocks/radar/lib/radar-types.ts +124 -0
- package/blocks/radar/recipes/battle-card.ts +28 -0
- package/blocks/radar/recipes/deep-dive-report.ts +32 -0
- package/blocks/radar/recipes/marketing-snapshot.ts +18 -0
- package/blocks/radar/recipes/track-and-scan.ts +39 -0
- package/blocks/search/README.md +129 -0
- package/blocks/search/block.json +185 -0
- package/blocks/search/components/filter-builder.tsx +149 -0
- package/blocks/search/components/prospect-results.tsx +175 -0
- package/blocks/search/components/save-to-list-dialog.tsx +135 -0
- package/blocks/search/components/saved-searches.tsx +95 -0
- package/blocks/search/hooks/use-filter-options.ts +41 -0
- package/blocks/search/lib/search-types.ts +149 -0
- package/blocks/search/recipes/explore-filter-values.ts +27 -0
- package/blocks/search/recipes/saved-searches.ts +34 -0
- package/blocks/search/recipes/search-and-save-to-list.ts +37 -0
- package/blocks/sequencer/README.md +87 -0
- package/blocks/sequencer/block.json +214 -0
- package/blocks/sequencer/components/enroll-dialog.tsx +93 -0
- package/blocks/sequencer/components/sequence-builder.tsx +306 -0
- package/blocks/sequencer/components/sequence-list.tsx +200 -0
- package/blocks/sequencer/components/sequence-stats.tsx +256 -0
- package/blocks/sequencer/components/step-editor.tsx +213 -0
- package/blocks/sequencer/lib/sequencer-utils.ts +168 -0
- package/blocks/sequencer/recipes/create-multichannel-sequence.ts +51 -0
- package/blocks/sequencer/recipes/launch-and-enroll.ts +44 -0
- package/blocks/sequencer/recipes/pause-when-unsafe.ts +30 -0
- package/blocks/sequencer/recipes/sequence-report.ts +22 -0
- package/blocks/social-ads/README.md +128 -0
- package/blocks/social-ads/block.json +256 -0
- package/blocks/social-ads/components/ad-campaign-list.tsx +136 -0
- package/blocks/social-ads/components/audience-sync.tsx +150 -0
- package/blocks/social-ads/components/creative-gallery.tsx +121 -0
- package/blocks/social-ads/components/post-composer.tsx +122 -0
- package/blocks/social-ads/components/social-post-list.tsx +116 -0
- package/blocks/social-ads/hooks/use-social-accounts.ts +16 -0
- package/blocks/social-ads/lib/social-ads-types.ts +167 -0
- package/blocks/social-ads/recipes/creative-to-gallery.ts +41 -0
- package/blocks/social-ads/recipes/schedule-post.ts +51 -0
- package/blocks/social-ads/recipes/sync-audience-and-launch.ts +41 -0
- package/blocks/visitors/README.md +56 -0
- package/blocks/visitors/block.json +139 -0
- package/blocks/visitors/components/snippet-install.tsx +169 -0
- package/blocks/visitors/components/traffic-chart.tsx +156 -0
- package/blocks/visitors/components/visitor-company-card.tsx +92 -0
- package/blocks/visitors/components/visitor-feed.tsx +157 -0
- package/blocks/visitors/lib/visitors-utils.ts +78 -0
- package/blocks/visitors/recipes/check-snippet-installed.ts +24 -0
- package/blocks/visitors/recipes/recent-company-visits.ts +27 -0
- package/blocks/visitors/recipes/traffic-summary.ts +24 -0
- package/blocks/webchat/README.md +87 -0
- package/blocks/webchat/block.json +134 -0
- package/blocks/webchat/components/chat-widget-config.tsx +160 -0
- package/blocks/webchat/components/conversation-list.tsx +74 -0
- package/blocks/webchat/lib/webchat-types.ts +83 -0
- package/blocks/webchat/recipes/create-bot-and-style-widget.ts +24 -0
- package/blocks/webchat/recipes/list-chat-visitors.ts +24 -0
- package/blocks/workbench/README.md +135 -0
- package/blocks/workbench/block.json +259 -0
- package/blocks/workbench/components/column-recipe-editor.tsx +183 -0
- package/blocks/workbench/components/run-progress.tsx +132 -0
- package/blocks/workbench/components/workbench-add-rows.tsx +100 -0
- package/blocks/workbench/components/workbench-grid.tsx +159 -0
- package/blocks/workbench/components/workbench-row-actions.tsx +102 -0
- package/blocks/workbench/components/workbench-table-list.tsx +105 -0
- package/blocks/workbench/hooks/use-workbench-table.ts +30 -0
- package/blocks/workbench/lib/waterfall-presets.ts +119 -0
- package/blocks/workbench/lib/workbench-types.ts +191 -0
- package/blocks/workbench/recipes/build-enriched-table.ts +65 -0
- package/blocks/workbench/recipes/import-from-search.ts +42 -0
- package/blocks/workbench/recipes/scrape-into-table.ts +36 -0
- package/blocks/workbench/recipes/waterfall-column.ts +55 -0
- package/blocks/workflows/README.md +100 -0
- package/blocks/workflows/block.json +188 -0
- package/blocks/workflows/components/run-history.tsx +136 -0
- package/blocks/workflows/components/trigger-config.tsx +134 -0
- package/blocks/workflows/components/workflow-editor.tsx +142 -0
- package/blocks/workflows/components/workflow-list.tsx +153 -0
- package/blocks/workflows/hooks/use-workflow.ts +51 -0
- package/blocks/workflows/lib/graph.ts +187 -0
- package/blocks/workflows/recipes/create-workflow.ts +35 -0
- package/blocks/workflows/recipes/find-failed-runs.ts +15 -0
- package/blocks/workflows/recipes/run-workflow-and-wait.ts +32 -0
- package/blocks/workflows/recipes/set-trigger.ts +22 -0
- package/dist/cli.js +5330 -29
- package/dist/index.browser.js +7740 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.browser.mjs +7717 -0
- package/dist/index.browser.mjs.map +1 -0
- package/dist/index.d.mts +1462 -23
- package/dist/index.d.ts +1462 -23
- package/dist/index.js +42 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.browser.js +7598 -0
- package/dist/react.browser.js.map +1 -0
- package/dist/react.browser.mjs +7568 -0
- package/dist/react.browser.mjs.map +1 -0
- package/dist/react.d.mts +1362 -20
- package/dist/react.d.ts +1362 -20
- package/dist/react.js +41 -2
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +41 -2
- package/dist/react.mjs.map +1 -1
- package/dist/types/agentSetup.d.ts +6 -6
- package/dist/types/blocks/add.d.ts +53 -0
- package/dist/types/blocks/create.d.ts +46 -0
- package/dist/types/blocks/doctor.d.ts +26 -0
- package/dist/types/blocks/registry.d.ts +134 -0
- package/dist/types/cli.d.ts +16 -0
- package/dist/types/core.d.ts +1 -1
- package/dist/types/crypto-browser.d.ts +2 -0
- package/dist/types/crypto-node.d.ts +6 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/version.d.ts +2 -2
- package/dist/types/webhooks.d.ts +2 -2
- package/dist/ui/index.d.mts +54 -0
- package/dist/ui/index.d.ts +54 -0
- package/dist/ui/index.js +105 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.mjs +44 -0
- package/dist/ui/index.mjs.map +1 -0
- package/dist/ui/lib/compose-refs.d.mts +19 -0
- package/dist/ui/lib/compose-refs.d.ts +19 -0
- package/dist/ui/lib/compose-refs.js +76 -0
- package/dist/ui/lib/compose-refs.js.map +1 -0
- package/dist/ui/lib/compose-refs.mjs +41 -0
- package/dist/ui/lib/compose-refs.mjs.map +1 -0
- package/dist/ui/lib/use-mobile.d.mts +4 -0
- package/dist/ui/lib/use-mobile.d.ts +4 -0
- package/dist/ui/lib/use-mobile.js +57 -0
- package/dist/ui/lib/use-mobile.js.map +1 -0
- package/dist/ui/lib/use-mobile.mjs +22 -0
- package/dist/ui/lib/use-mobile.mjs.map +1 -0
- package/dist/ui/lib/utils.d.mts +10 -0
- package/dist/ui/lib/utils.d.ts +10 -0
- package/dist/ui/lib/utils.js +33 -0
- package/dist/ui/lib/utils.js.map +1 -0
- package/dist/ui/lib/utils.mjs +9 -0
- package/dist/ui/lib/utils.mjs.map +1 -0
- package/dist/ui/primitives/alert-dialog.d.mts +22 -0
- package/dist/ui/primitives/alert-dialog.d.ts +22 -0
- package/dist/ui/primitives/alert-dialog.js +163 -0
- package/dist/ui/primitives/alert-dialog.js.map +1 -0
- package/dist/ui/primitives/alert-dialog.mjs +119 -0
- package/dist/ui/primitives/alert-dialog.mjs.map +1 -0
- package/dist/ui/primitives/avatar.d.mts +8 -0
- package/dist/ui/primitives/avatar.d.ts +8 -0
- package/dist/ui/primitives/avatar.js +91 -0
- package/dist/ui/primitives/avatar.js.map +1 -0
- package/dist/ui/primitives/avatar.mjs +55 -0
- package/dist/ui/primitives/avatar.mjs.map +1 -0
- package/dist/ui/primitives/breadcrumb.d.mts +13 -0
- package/dist/ui/primitives/breadcrumb.d.ts +13 -0
- package/dist/ui/primitives/breadcrumb.js +127 -0
- package/dist/ui/primitives/breadcrumb.js.map +1 -0
- package/dist/ui/primitives/breadcrumb.mjs +97 -0
- package/dist/ui/primitives/breadcrumb.mjs.map +1 -0
- package/dist/ui/primitives/button.d.mts +15 -0
- package/dist/ui/primitives/button.d.ts +15 -0
- package/dist/ui/primitives/button.js +91 -0
- package/dist/ui/primitives/button.js.map +1 -0
- package/dist/ui/primitives/button.mjs +56 -0
- package/dist/ui/primitives/button.mjs.map +1 -0
- package/dist/ui/primitives/card.d.mts +10 -0
- package/dist/ui/primitives/card.d.ts +10 -0
- package/dist/ui/primitives/card.js +101 -0
- package/dist/ui/primitives/card.js.map +1 -0
- package/dist/ui/primitives/card.mjs +62 -0
- package/dist/ui/primitives/card.mjs.map +1 -0
- package/dist/ui/primitives/carousel.d.mts +45 -0
- package/dist/ui/primitives/carousel.d.ts +45 -0
- package/dist/ui/primitives/carousel.js +300 -0
- package/dist/ui/primitives/carousel.js.map +1 -0
- package/dist/ui/primitives/carousel.mjs +261 -0
- package/dist/ui/primitives/carousel.mjs.map +1 -0
- package/dist/ui/primitives/chart.d.mts +68 -0
- package/dist/ui/primitives/chart.d.ts +68 -0
- package/dist/ui/primitives/chart.js +280 -0
- package/dist/ui/primitives/chart.js.map +1 -0
- package/dist/ui/primitives/chart.mjs +241 -0
- package/dist/ui/primitives/chart.mjs.map +1 -0
- package/dist/ui/primitives/collapsible.d.mts +8 -0
- package/dist/ui/primitives/collapsible.d.ts +8 -0
- package/dist/ui/primitives/collapsible.js +72 -0
- package/dist/ui/primitives/collapsible.js.map +1 -0
- package/dist/ui/primitives/collapsible.mjs +36 -0
- package/dist/ui/primitives/collapsible.mjs.map +1 -0
- package/dist/ui/primitives/context-menu.d.mts +29 -0
- package/dist/ui/primitives/context-menu.d.ts +29 -0
- package/dist/ui/primitives/context-menu.js +203 -0
- package/dist/ui/primitives/context-menu.js.map +1 -0
- package/dist/ui/primitives/context-menu.mjs +155 -0
- package/dist/ui/primitives/context-menu.mjs.map +1 -0
- package/dist/ui/primitives/dialog.d.mts +26 -0
- package/dist/ui/primitives/dialog.d.ts +26 -0
- package/dist/ui/primitives/dialog.js +192 -0
- package/dist/ui/primitives/dialog.js.map +1 -0
- package/dist/ui/primitives/dialog.mjs +148 -0
- package/dist/ui/primitives/dialog.mjs.map +1 -0
- package/dist/ui/primitives/drawer.d.mts +26 -0
- package/dist/ui/primitives/drawer.d.ts +26 -0
- package/dist/ui/primitives/drawer.js +146 -0
- package/dist/ui/primitives/drawer.js.map +1 -0
- package/dist/ui/primitives/drawer.mjs +103 -0
- package/dist/ui/primitives/drawer.mjs.map +1 -0
- package/dist/ui/primitives/input.d.mts +5 -0
- package/dist/ui/primitives/input.d.ts +5 -0
- package/dist/ui/primitives/input.js +46 -0
- package/dist/ui/primitives/input.js.map +1 -0
- package/dist/ui/primitives/input.mjs +22 -0
- package/dist/ui/primitives/input.mjs.map +1 -0
- package/dist/ui/primitives/item.d.mts +27 -0
- package/dist/ui/primitives/item.d.ts +27 -0
- package/dist/ui/primitives/item.js +221 -0
- package/dist/ui/primitives/item.js.map +1 -0
- package/dist/ui/primitives/item.mjs +188 -0
- package/dist/ui/primitives/item.mjs.map +1 -0
- package/dist/ui/primitives/kbd.d.mts +15 -0
- package/dist/ui/primitives/kbd.d.ts +15 -0
- package/dist/ui/primitives/kbd.js +45 -0
- package/dist/ui/primitives/kbd.js.map +1 -0
- package/dist/ui/primitives/kbd.mjs +21 -0
- package/dist/ui/primitives/kbd.mjs.map +1 -0
- package/dist/ui/primitives/label.d.mts +6 -0
- package/dist/ui/primitives/label.d.ts +6 -0
- package/dist/ui/primitives/label.js +55 -0
- package/dist/ui/primitives/label.js.map +1 -0
- package/dist/ui/primitives/label.mjs +21 -0
- package/dist/ui/primitives/label.mjs.map +1 -0
- package/dist/ui/primitives/resizable.d.mts +10 -0
- package/dist/ui/primitives/resizable.d.ts +10 -0
- package/dist/ui/primitives/resizable.js +68 -0
- package/dist/ui/primitives/resizable.js.map +1 -0
- package/dist/ui/primitives/resizable.mjs +42 -0
- package/dist/ui/primitives/resizable.mjs.map +1 -0
- package/dist/ui/primitives/save-status.d.mts +31 -0
- package/dist/ui/primitives/save-status.d.ts +31 -0
- package/dist/ui/primitives/save-status.js +150 -0
- package/dist/ui/primitives/save-status.js.map +1 -0
- package/dist/ui/primitives/save-status.mjs +126 -0
- package/dist/ui/primitives/save-status.mjs.map +1 -0
- package/dist/ui/primitives/separator.d.mts +6 -0
- package/dist/ui/primitives/separator.d.ts +6 -0
- package/dist/ui/primitives/separator.js +62 -0
- package/dist/ui/primitives/separator.js.map +1 -0
- package/dist/ui/primitives/separator.mjs +28 -0
- package/dist/ui/primitives/separator.mjs.map +1 -0
- package/dist/ui/primitives/sheet.d.mts +16 -0
- package/dist/ui/primitives/sheet.d.ts +16 -0
- package/dist/ui/primitives/sheet.js +170 -0
- package/dist/ui/primitives/sheet.js.map +1 -0
- package/dist/ui/primitives/sheet.mjs +129 -0
- package/dist/ui/primitives/sheet.mjs.map +1 -0
- package/dist/ui/primitives/sidebar.d.mts +74 -0
- package/dist/ui/primitives/sidebar.d.ts +74 -0
- package/dist/ui/primitives/sidebar.js +697 -0
- package/dist/ui/primitives/sidebar.js.map +1 -0
- package/dist/ui/primitives/sidebar.mjs +651 -0
- package/dist/ui/primitives/sidebar.mjs.map +1 -0
- package/dist/ui/primitives/skeleton.d.mts +5 -0
- package/dist/ui/primitives/skeleton.d.ts +5 -0
- package/dist/ui/primitives/skeleton.js +40 -0
- package/dist/ui/primitives/skeleton.js.map +1 -0
- package/dist/ui/primitives/skeleton.mjs +16 -0
- package/dist/ui/primitives/skeleton.mjs.map +1 -0
- package/dist/ui/primitives/slider.d.mts +20 -0
- package/dist/ui/primitives/slider.d.ts +20 -0
- package/dist/ui/primitives/slider.js +112 -0
- package/dist/ui/primitives/slider.js.map +1 -0
- package/dist/ui/primitives/slider.mjs +78 -0
- package/dist/ui/primitives/slider.mjs.map +1 -0
- package/dist/ui/primitives/sortable.d.mts +50 -0
- package/dist/ui/primitives/sortable.d.ts +50 -0
- package/dist/ui/primitives/sortable.js +456 -0
- package/dist/ui/primitives/sortable.js.map +1 -0
- package/dist/ui/primitives/sortable.mjs +435 -0
- package/dist/ui/primitives/sortable.mjs.map +1 -0
- package/dist/ui/primitives/switch.d.mts +6 -0
- package/dist/ui/primitives/switch.d.ts +6 -0
- package/dist/ui/primitives/switch.js +67 -0
- package/dist/ui/primitives/switch.js.map +1 -0
- package/dist/ui/primitives/switch.mjs +33 -0
- package/dist/ui/primitives/switch.mjs.map +1 -0
- package/dist/ui/primitives/table.d.mts +12 -0
- package/dist/ui/primitives/table.d.ts +12 -0
- package/dist/ui/primitives/table.js +130 -0
- package/dist/ui/primitives/table.js.map +1 -0
- package/dist/ui/primitives/table.mjs +89 -0
- package/dist/ui/primitives/table.mjs.map +1 -0
- package/dist/ui/primitives/tabs.d.mts +9 -0
- package/dist/ui/primitives/tabs.d.ts +9 -0
- package/dist/ui/primitives/tabs.js +86 -0
- package/dist/ui/primitives/tabs.js.map +1 -0
- package/dist/ui/primitives/tabs.mjs +49 -0
- package/dist/ui/primitives/tabs.mjs.map +1 -0
- package/dist/ui/primitives/textarea.d.mts +5 -0
- package/dist/ui/primitives/textarea.d.ts +5 -0
- package/dist/ui/primitives/textarea.js +43 -0
- package/dist/ui/primitives/textarea.js.map +1 -0
- package/dist/ui/primitives/textarea.mjs +19 -0
- package/dist/ui/primitives/textarea.mjs.map +1 -0
- package/dist/ui/primitives/tooltip.d.mts +9 -0
- package/dist/ui/primitives/tooltip.d.ts +9 -0
- package/dist/ui/primitives/tooltip.js +94 -0
- package/dist/ui/primitives/tooltip.js.map +1 -0
- package/dist/ui/primitives/tooltip.mjs +57 -0
- package/dist/ui/primitives/tooltip.mjs.map +1 -0
- package/docs/agents.md +72 -29
- package/docs/api/README.md +6 -3
- package/docs/api/appObjects.d.ts +1 -1
- package/docs/api/appObjects.md +1 -1
- package/docs/api/by-path.md +29 -0
- package/docs/api/enrichment.d.ts +18 -0
- package/docs/api/enrichment.md +25 -4
- package/docs/api/objects.d.ts +72 -5
- package/docs/api/objects.md +84 -7
- package/docs/api/processLists.d.ts +247 -0
- package/docs/api/processLists.md +409 -0
- package/docs/api/reports.d.ts +476 -0
- package/docs/api/reports.md +539 -0
- package/docs/api/revenueLifecycle.d.ts +3 -1
- package/docs/api/revenueLifecycle.md +12 -2
- package/docs/api/scheduleBuy.d.ts +12 -8
- package/docs/api/scheduleBuy.md +13 -10
- package/docs/api/seo.d.ts +407 -4
- package/docs/api/seo.md +506 -2
- package/docs/api/workflows.md +46 -2
- package/docs/api/workspaceBackup.d.ts +324 -0
- package/docs/api/workspaceBackup.md +427 -0
- package/package.json +174 -5
- package/stacks/6sense.json +46 -0
- package/stacks/README.md +20 -0
- package/stacks/apollo.json +128 -0
- package/stacks/clay.json +59 -0
- package/stacks/gong.json +72 -0
- package/stacks/hubspot.json +162 -0
- package/stacks/intercom.json +53 -0
- package/stacks/mailchimp.json +71 -0
- package/stacks/outreach.json +86 -0
- package/stacks/salesforce.json +94 -0
- package/stacks/stack.schema.json +32 -0
- package/stacks/starter.json +22 -0
- package/styles/styles.css +2 -0
- package/styles/theme.css +181 -0
- package/styles/tokens.css +284 -0
- package/templates/next-app/README.md.tmpl +35 -0
- package/templates/next-app/_pages/redirect-page.tsx.tmpl +5 -0
- package/templates/next-app/_pages/route-page.tsx.tmpl +9 -0
- package/templates/next-app/app/globals.css.tmpl +8 -0
- package/templates/next-app/app/layout.tsx.tmpl +19 -0
- package/templates/next-app/components/app-shell.tsx.tmpl +34 -0
- package/templates/next-app/dot-env.local.example.tmpl +6 -0
- package/templates/next-app/dot-gitignore.tmpl +7 -0
- package/templates/next-app/lib/nav.ts.tmpl +2 -0
- package/templates/next-app/next.config.mjs.tmpl +4 -0
- package/templates/next-app/package.json.tmpl +25 -0
- package/templates/next-app/postcss.config.mjs.tmpl +4 -0
- package/templates/next-app/tsconfig.json.tmpl +21 -0
package/docs/api/scheduleBuy.md
CHANGED
|
@@ -143,13 +143,14 @@ moment this returns. `total_credits_held` in the response is the figure.
|
|
|
143
143
|
Org admins and owners only, and only for an org on a paid or pre-funded
|
|
144
144
|
plan. 402 if the balance cannot cover the plan, 429 if the org has locked
|
|
145
145
|
more than five plans this hour, 400 for an unsupported extension or an
|
|
146
|
-
empty plan.
|
|
146
|
+
empty plan. With `reuse_domains`, 409 when a domain's mailbox count changed
|
|
147
|
+
(or it filled up) while the plan was locking: nothing stays held, re-read
|
|
148
|
+
the domains and lock again.
|
|
147
149
|
|
|
148
|
-
`persona_ids`
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
`server_idle_mailboxes`.
|
|
150
|
+
At least one `persona_ids` entry is required. Manual `registrants` /
|
|
151
|
+
`mailbox_aliases` are not accepted for new plans. `idle_mailboxes_snapshot`
|
|
152
|
+
is your own count, used to detect drift - the server recomputes it and
|
|
153
|
+
returns its own as `server_idle_mailboxes`.
|
|
153
154
|
|
|
154
155
|
Send an `Idempotency-Key` header. A retried lock without one places a
|
|
155
156
|
second full set of holds.
|
|
@@ -170,11 +171,11 @@ Body fields (`ScheduleBuyPlanRequest`):
|
|
|
170
171
|
| `body.domain_names` | `Array<string> \| null` | no | Approved names to buy, in order min items 1, max items 500 |
|
|
171
172
|
| `body.domain_tld` | `string` | no | Extension to buy, e.g. '.com' default `".com"` |
|
|
172
173
|
| `body.domains_per_batch` | `integer` | no | Domains bought per daily batch default `10`, min 1, max 100 |
|
|
173
|
-
| `body.mailbox_aliases` | `Array<Record<string, unknown>>` | no |
|
|
174
|
+
| `body.mailbox_aliases` | `Array<Record<string, unknown>>` | no | Not accepted for new plans. Use persona_ids. |
|
|
174
175
|
| `body.mailboxes_per_domain` | `integer` | no | Mailboxes bought on each domain default `3`, min 1, max 5 |
|
|
175
|
-
| `body.persona_ids` | `Array<integer> \| null` | no | Sender
|
|
176
|
-
| `body.registrants` | `Array<Record<string, unknown>>` | no |
|
|
177
|
-
| `body.reuse_domains` | `Array<string> \| null` | no | Adopt these owned
|
|
176
|
+
| `body.persona_ids` | `Array<integer> \| null` | no | Sender identity IDs. At least one is required to start a schedule. max items 20 |
|
|
177
|
+
| `body.registrants` | `Array<Record<string, unknown>>` | no | Not accepted for new plans. Use persona_ids. max items 20 |
|
|
178
|
+
| `body.reuse_domains` | `Array<string> \| null` | no | Adopt these owned domains instead of buying. Each must have fewer live mailboxes than mailboxes_per_domain; the plan tops it up and holds credits for exactly the missing ones min items 1, max items 500 |
|
|
178
179
|
| `body.sending_days_per_month` | `integer` | no | Sending days assumed per month default `22`, min 1, max 31 |
|
|
179
180
|
| `body.warmup_provider` | `"warmy" \| "instantly" \| "smartlead"` | no | Warmup engine the bought mailboxes are enrolled with default `"warmy"` |
|
|
180
181
|
| `body.workspace_uid` | `string \| null` | no | Existing provisioning workspace to reuse |
|
|
@@ -367,6 +368,8 @@ Body fields (`ScheduleBuySuggestRequest`):
|
|
|
367
368
|
| `body.daily_send_cap` | `integer` | no | Sends per mailbox per day default `15`, min 1, max 100 |
|
|
368
369
|
| `body.domains_per_batch` | `integer` | no | Domains bought per daily batch default `10`, min 1, max 100 |
|
|
369
370
|
| `body.mailboxes_per_domain` | `integer` | no | Mailboxes bought on each domain default `3`, min 1, max 5 |
|
|
371
|
+
| `body.reuse_domain_count` | `integer \| null` | no | Price a REUSE plan over this many owned domains instead min 1, max 500 |
|
|
372
|
+
| `body.reuse_missing_mailboxes` | `integer \| null` | no | With reuse_domain_count: the total mailboxes those domains are missing (each domain: mailboxes_per_domain minus its live mailboxes). Omitted, every domain is priced as empty min 1, max 2500 |
|
|
370
373
|
| `body.sending_days_per_month` | `integer` | no | Sending days assumed per month default `22`, min 1, max 31 |
|
|
371
374
|
|
|
372
375
|
**Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
package/docs/api/seo.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Types for `g8.api.seo` (SEO):
|
|
4
|
+
* Types for `g8.api.seo` (SEO): 22 operations.
|
|
5
5
|
*
|
|
6
6
|
* For reading. In code, import from the package instead:
|
|
7
7
|
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
-
* type In = ApiInput<"
|
|
8
|
+
* type In = ApiInput<"claim_seo_fix_seo_fixes__fix_id__claim_post">;
|
|
9
9
|
*
|
|
10
10
|
* Reference with examples: seo.md
|
|
11
11
|
*/
|
|
@@ -13,14 +13,22 @@
|
|
|
13
13
|
|
|
14
14
|
/** `g8.api.seo.<member>` -> the operationId it calls. */
|
|
15
15
|
export interface SeoMembers {
|
|
16
|
+
claimSeoFix: "claim_seo_fix_seo_fixes__fix_id__claim_post";
|
|
17
|
+
completeSeoFix: "complete_seo_fix_seo_fixes__fix_id__complete_post";
|
|
18
|
+
getSeoAgentHandoff: "get_seo_agent_handoff_seo_fixes_agent_handoff_get";
|
|
16
19
|
getSeoAudit: "get_seo_audit_seo_audits__audit_id__get";
|
|
17
20
|
getSeoAuditIssues: "get_seo_audit_issues_seo_audits__audit_id__issues_get";
|
|
18
21
|
getSeoDomainBacklinks: "get_seo_domain_backlinks_seo_domains__domain__backlinks_get";
|
|
19
22
|
getSeoDomainOverview: "get_seo_domain_overview_seo_domains__domain__overview_get";
|
|
23
|
+
getSeoFixPack: "get_seo_fix_pack_seo_fixes__fix_id__pack_get";
|
|
24
|
+
getSeoPage360: "get_seo_page_360_seo_pages_360_detail_get";
|
|
20
25
|
getSeoRankHistory: "get_seo_rank_history_seo_rank_tracking__keyword_id__history_get";
|
|
26
|
+
getSeoToday: "get_seo_today_seo_today_get";
|
|
21
27
|
getSeoTrackedDomain: "get_seo_tracked_domain_seo_domains_tracked__domain__get";
|
|
22
28
|
listSeoAudits: "list_seo_audits_seo_audits_get";
|
|
23
29
|
listSeoDomainPages: "list_seo_domain_pages_seo_domains_tracked__domain__pages_get";
|
|
30
|
+
listSeoFixes: "list_seo_fixes_seo_fixes_get";
|
|
31
|
+
listSeoPages360: "list_seo_pages_360_seo_pages_360_get";
|
|
24
32
|
listSeoTrackedDomains: "list_seo_tracked_domains_seo_domains_tracked_get";
|
|
25
33
|
listSeoTrackedKeywords: "list_seo_tracked_keywords_seo_rank_tracking_get";
|
|
26
34
|
removeSeoTrackedKeywords: "remove_seo_tracked_keywords_seo_rank_tracking_keywords_remove_post";
|
|
@@ -31,6 +39,59 @@ export interface SeoMembers {
|
|
|
31
39
|
|
|
32
40
|
/** Input and output of every `g8.api.seo` operation, keyed by operationId. */
|
|
33
41
|
export interface SeoOperations {
|
|
42
|
+
/**
|
|
43
|
+
* POST /seo/fixes/{fix_id}/claim
|
|
44
|
+
* Claim Seo Fix
|
|
45
|
+
* tier: write · scope: intent:write
|
|
46
|
+
*/
|
|
47
|
+
claim_seo_fix_seo_fixes__fix_id__claim_post: {
|
|
48
|
+
input: {
|
|
49
|
+
path: {
|
|
50
|
+
/** A fix id from `GET /seo/fixes`. */
|
|
51
|
+
fix_id: string;
|
|
52
|
+
};
|
|
53
|
+
headers?: {
|
|
54
|
+
"X-Target-Org-Id"?: string | null;
|
|
55
|
+
};
|
|
56
|
+
body?: SeoClaimFixRequest;
|
|
57
|
+
};
|
|
58
|
+
output: ApiResponse_SeoClaimFixResponse_;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* POST /seo/fixes/{fix_id}/complete
|
|
62
|
+
* Complete Seo Fix
|
|
63
|
+
* tier: write · scope: intent:write
|
|
64
|
+
*/
|
|
65
|
+
complete_seo_fix_seo_fixes__fix_id__complete_post: {
|
|
66
|
+
input: {
|
|
67
|
+
path: {
|
|
68
|
+
/** A fix id from `GET /seo/fixes`. */
|
|
69
|
+
fix_id: string;
|
|
70
|
+
};
|
|
71
|
+
headers?: {
|
|
72
|
+
"X-Target-Org-Id"?: string | null;
|
|
73
|
+
};
|
|
74
|
+
body: SeoCompleteFixRequest;
|
|
75
|
+
};
|
|
76
|
+
output: ApiResponse_SeoCompleteFixResponse_;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* GET /seo/fixes/agent-handoff
|
|
80
|
+
* Get Seo Agent Handoff
|
|
81
|
+
* tier: read · scope: intent:read
|
|
82
|
+
*/
|
|
83
|
+
get_seo_agent_handoff_seo_fixes_agent_handoff_get: {
|
|
84
|
+
input: {
|
|
85
|
+
query?: {
|
|
86
|
+
/** Only fixes for this domain. */
|
|
87
|
+
domain?: string | null;
|
|
88
|
+
};
|
|
89
|
+
headers?: {
|
|
90
|
+
"X-Target-Org-Id"?: string | null;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
output: ApiResponse_SeoAgentHandoff_;
|
|
94
|
+
};
|
|
34
95
|
/**
|
|
35
96
|
* GET /seo/audits/{audit_id}
|
|
36
97
|
* Get Seo Audit
|
|
@@ -97,6 +158,42 @@ export interface SeoOperations {
|
|
|
97
158
|
};
|
|
98
159
|
output: ApiResponse_SeoDomainOverviewResponse_;
|
|
99
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* GET /seo/fixes/{fix_id}/pack
|
|
163
|
+
* Get Seo Fix Pack
|
|
164
|
+
* tier: read · scope: intent:read
|
|
165
|
+
*/
|
|
166
|
+
get_seo_fix_pack_seo_fixes__fix_id__pack_get: {
|
|
167
|
+
input: {
|
|
168
|
+
path: {
|
|
169
|
+
/** A fix id from `GET /seo/fixes`. */
|
|
170
|
+
fix_id: string;
|
|
171
|
+
};
|
|
172
|
+
headers?: {
|
|
173
|
+
"X-Target-Org-Id"?: string | null;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
output: ApiResponse_SeoAgentFixPack_;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* GET /seo/pages/360/detail
|
|
180
|
+
* Get Seo Page 360
|
|
181
|
+
* tier: read · scope: intent:read
|
|
182
|
+
*/
|
|
183
|
+
get_seo_page_360_seo_pages_360_detail_get: {
|
|
184
|
+
input: {
|
|
185
|
+
query: {
|
|
186
|
+
/** A tracked domain. */
|
|
187
|
+
domain: string;
|
|
188
|
+
/** The page URL or path, e.g. /pricing. */
|
|
189
|
+
url: string;
|
|
190
|
+
};
|
|
191
|
+
headers?: {
|
|
192
|
+
"X-Target-Org-Id"?: string | null;
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
output: ApiResponse_SeoPage360_;
|
|
196
|
+
};
|
|
100
197
|
/**
|
|
101
198
|
* GET /seo/rank-tracking/{keyword_id}/history
|
|
102
199
|
* Get Seo Rank History
|
|
@@ -118,6 +215,23 @@ export interface SeoOperations {
|
|
|
118
215
|
};
|
|
119
216
|
output: ApiResponse_SeoRankHistory_;
|
|
120
217
|
};
|
|
218
|
+
/**
|
|
219
|
+
* GET /seo/today
|
|
220
|
+
* Get Seo Today
|
|
221
|
+
* tier: read · scope: intent:read
|
|
222
|
+
*/
|
|
223
|
+
get_seo_today_seo_today_get: {
|
|
224
|
+
input: {
|
|
225
|
+
query?: {
|
|
226
|
+
/** A tracked domain. Omit for the primary one. */
|
|
227
|
+
domain?: string | null;
|
|
228
|
+
};
|
|
229
|
+
headers?: {
|
|
230
|
+
"X-Target-Org-Id"?: string | null;
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
output: ApiResponse_SeoToday_;
|
|
234
|
+
};
|
|
121
235
|
/**
|
|
122
236
|
* GET /seo/domains/tracked/{domain}
|
|
123
237
|
* Get Seo Tracked Domain
|
|
@@ -179,6 +293,51 @@ export interface SeoOperations {
|
|
|
179
293
|
};
|
|
180
294
|
output: ApiResponse_SeoDomainPages_;
|
|
181
295
|
};
|
|
296
|
+
/**
|
|
297
|
+
* GET /seo/fixes
|
|
298
|
+
* List Seo Fixes
|
|
299
|
+
* tier: read · scope: intent:read
|
|
300
|
+
*/
|
|
301
|
+
list_seo_fixes_seo_fixes_get: {
|
|
302
|
+
input: {
|
|
303
|
+
query?: {
|
|
304
|
+
/** Only fixes for this domain. */
|
|
305
|
+
domain?: string | null;
|
|
306
|
+
/** Fixes to return, most severe first. */
|
|
307
|
+
limit?: number;
|
|
308
|
+
};
|
|
309
|
+
headers?: {
|
|
310
|
+
"X-Target-Org-Id"?: string | null;
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
output: ApiResponse_SeoAgentFixQueue_;
|
|
314
|
+
};
|
|
315
|
+
/**
|
|
316
|
+
* GET /seo/pages/360
|
|
317
|
+
* List Seo Pages 360
|
|
318
|
+
* tier: read · scope: intent:read
|
|
319
|
+
*/
|
|
320
|
+
list_seo_pages_360_seo_pages_360_get: {
|
|
321
|
+
input: {
|
|
322
|
+
query: {
|
|
323
|
+
/** A tracked domain. */
|
|
324
|
+
domain: string;
|
|
325
|
+
/** Only pages whose path contains this text. */
|
|
326
|
+
q?: string;
|
|
327
|
+
sort?: "pageviews" | "clicks" | "position" | "companies" | "pipeline" | "issues";
|
|
328
|
+
order?: "asc" | "desc";
|
|
329
|
+
filter?: "all" | "money" | "decay" | "fixes" | "companies" | "slow";
|
|
330
|
+
/** Rows to return. */
|
|
331
|
+
limit?: number;
|
|
332
|
+
/** Rows to skip. */
|
|
333
|
+
offset?: number;
|
|
334
|
+
};
|
|
335
|
+
headers?: {
|
|
336
|
+
"X-Target-Org-Id"?: string | null;
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
output: ApiResponse_SeoPages360_;
|
|
340
|
+
};
|
|
182
341
|
/**
|
|
183
342
|
* GET /seo/domains/tracked
|
|
184
343
|
* List Seo Tracked Domains
|
|
@@ -267,7 +426,7 @@ export interface SeoOperations {
|
|
|
267
426
|
};
|
|
268
427
|
}
|
|
269
428
|
|
|
270
|
-
//
|
|
429
|
+
// 69 schemas referenced above (the same as G8Contract.<Name>).
|
|
271
430
|
|
|
272
431
|
export interface ApiResponse_List_SeoAudit__ {
|
|
273
432
|
data: Array<SeoAudit>;
|
|
@@ -279,6 +438,21 @@ export interface ApiResponse_List_SeoTrackedKeyword__ {
|
|
|
279
438
|
pagination?: PaginationMeta | null;
|
|
280
439
|
}
|
|
281
440
|
|
|
441
|
+
export interface ApiResponse_SeoAgentFixPack_ {
|
|
442
|
+
data: SeoAgentFixPack;
|
|
443
|
+
pagination?: PaginationMeta | null;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export interface ApiResponse_SeoAgentFixQueue_ {
|
|
447
|
+
data: SeoAgentFixQueue;
|
|
448
|
+
pagination?: PaginationMeta | null;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
export interface ApiResponse_SeoAgentHandoff_ {
|
|
452
|
+
data: SeoAgentHandoff;
|
|
453
|
+
pagination?: PaginationMeta | null;
|
|
454
|
+
}
|
|
455
|
+
|
|
282
456
|
export interface ApiResponse_SeoAuditIssues_ {
|
|
283
457
|
data: SeoAuditIssues;
|
|
284
458
|
pagination?: PaginationMeta | null;
|
|
@@ -294,6 +468,16 @@ export interface ApiResponse_SeoBacklinksOverview_ {
|
|
|
294
468
|
pagination?: PaginationMeta | null;
|
|
295
469
|
}
|
|
296
470
|
|
|
471
|
+
export interface ApiResponse_SeoClaimFixResponse_ {
|
|
472
|
+
data: SeoClaimFixResponse;
|
|
473
|
+
pagination?: PaginationMeta | null;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
export interface ApiResponse_SeoCompleteFixResponse_ {
|
|
477
|
+
data: SeoCompleteFixResponse;
|
|
478
|
+
pagination?: PaginationMeta | null;
|
|
479
|
+
}
|
|
480
|
+
|
|
297
481
|
export interface ApiResponse_SeoDomainOverviewResponse_ {
|
|
298
482
|
data: SeoDomainOverviewResponse;
|
|
299
483
|
pagination?: PaginationMeta | null;
|
|
@@ -304,6 +488,16 @@ export interface ApiResponse_SeoDomainPages_ {
|
|
|
304
488
|
pagination?: PaginationMeta | null;
|
|
305
489
|
}
|
|
306
490
|
|
|
491
|
+
export interface ApiResponse_SeoPage360_ {
|
|
492
|
+
data: SeoPage360;
|
|
493
|
+
pagination?: PaginationMeta | null;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
export interface ApiResponse_SeoPages360_ {
|
|
497
|
+
data: SeoPages360;
|
|
498
|
+
pagination?: PaginationMeta | null;
|
|
499
|
+
}
|
|
500
|
+
|
|
307
501
|
export interface ApiResponse_SeoRankHistory_ {
|
|
308
502
|
data: SeoRankHistory;
|
|
309
503
|
pagination?: PaginationMeta | null;
|
|
@@ -319,6 +513,11 @@ export interface ApiResponse_SeoResearchKeywordsResponse_ {
|
|
|
319
513
|
pagination?: PaginationMeta | null;
|
|
320
514
|
}
|
|
321
515
|
|
|
516
|
+
export interface ApiResponse_SeoToday_ {
|
|
517
|
+
data: SeoToday;
|
|
518
|
+
pagination?: PaginationMeta | null;
|
|
519
|
+
}
|
|
520
|
+
|
|
322
521
|
export interface ApiResponse_SeoTrackedDomainDetail_ {
|
|
323
522
|
data: SeoTrackedDomainDetail;
|
|
324
523
|
pagination?: PaginationMeta | null;
|
|
@@ -348,6 +547,80 @@ export interface PaginationMeta {
|
|
|
348
547
|
total_is_lower_bound?: boolean | null;
|
|
349
548
|
}
|
|
350
549
|
|
|
550
|
+
/** One fix with exact instructions: the page, the steps, the code to add and how success is checked. */
|
|
551
|
+
export interface SeoAgentFix {
|
|
552
|
+
acceptance: Array<string>;
|
|
553
|
+
category: string;
|
|
554
|
+
domain: string;
|
|
555
|
+
files?: Record<string, string>;
|
|
556
|
+
fix_id: string;
|
|
557
|
+
severity: string;
|
|
558
|
+
snippets?: Array<SeoAgentSnippet>;
|
|
559
|
+
status: string;
|
|
560
|
+
steps: Array<string>;
|
|
561
|
+
target_url?: string | null;
|
|
562
|
+
title: string;
|
|
563
|
+
why?: string;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
export interface SeoAgentFixPack {
|
|
567
|
+
agents_md: string;
|
|
568
|
+
claude_md: string;
|
|
569
|
+
files?: Record<string, string>;
|
|
570
|
+
fix: SeoAgentFix;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
export interface SeoAgentFixQueue {
|
|
574
|
+
agents_md: string;
|
|
575
|
+
count: number;
|
|
576
|
+
domain?: string | null;
|
|
577
|
+
fixes: Array<SeoAgentFix>;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
export interface SeoAgentHandoff {
|
|
581
|
+
domain?: string | null;
|
|
582
|
+
files: Record<string, string>;
|
|
583
|
+
fix_count: number;
|
|
584
|
+
setup: SeoAgentSetup;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
export interface SeoAgentSetup {
|
|
588
|
+
claude_code: string;
|
|
589
|
+
cursor: SeoAgentSetupCursor;
|
|
590
|
+
mcp_url: string;
|
|
591
|
+
prompt: string;
|
|
592
|
+
tools: Array<string>;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
export interface SeoAgentSetupCursor {
|
|
596
|
+
command: string;
|
|
597
|
+
file: string;
|
|
598
|
+
json: string;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
export interface SeoAgentSnippet {
|
|
602
|
+
code: string;
|
|
603
|
+
file_hint?: string;
|
|
604
|
+
label: string;
|
|
605
|
+
language?: string;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
export interface SeoApprovalItem {
|
|
609
|
+
category: string;
|
|
610
|
+
confidence?: "measured" | "estimated" | "partial";
|
|
611
|
+
delivery: string;
|
|
612
|
+
fix_id: string;
|
|
613
|
+
impact?: Record<string, unknown> | null;
|
|
614
|
+
severity: string;
|
|
615
|
+
target_url?: string | null;
|
|
616
|
+
title: string;
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
export interface SeoApprovalQueue {
|
|
620
|
+
count: number;
|
|
621
|
+
items: Array<SeoApprovalItem>;
|
|
622
|
+
}
|
|
623
|
+
|
|
351
624
|
/** Mirrors `AuditDTO`. */
|
|
352
625
|
export interface SeoAudit {
|
|
353
626
|
completed_at?: string | null;
|
|
@@ -411,6 +684,33 @@ export interface SeoBacklinksOverview {
|
|
|
411
684
|
total_backlinks?: number | null;
|
|
412
685
|
}
|
|
413
686
|
|
|
687
|
+
export interface SeoClaimFixRequest {
|
|
688
|
+
/** A label for this agent, e.g. claude-code. */
|
|
689
|
+
agent?: string | null;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
export interface SeoClaimFixResponse {
|
|
693
|
+
claim_note: string;
|
|
694
|
+
claimed: boolean;
|
|
695
|
+
claimed_by?: string | null;
|
|
696
|
+
fix: SeoAgentFix;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
export interface SeoCompleteFixRequest {
|
|
700
|
+
agent?: string | null;
|
|
701
|
+
note?: string;
|
|
702
|
+
outcome?: "done" | "failed";
|
|
703
|
+
/** Commit SHA or commit/pull request URL. */
|
|
704
|
+
ref?: string | null;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
export interface SeoCompleteFixResponse {
|
|
708
|
+
applied_ref?: string | null;
|
|
709
|
+
fix_id: string;
|
|
710
|
+
status: string;
|
|
711
|
+
verification?: string | null;
|
|
712
|
+
}
|
|
713
|
+
|
|
414
714
|
/**
|
|
415
715
|
* Mirrors `DomainChangeDTO`: the current snapshot against the one nearest
|
|
416
716
|
* 30 days back. `traffic_pct` is null when the baseline traffic was zero.
|
|
@@ -455,6 +755,13 @@ export interface SeoDomainPages {
|
|
|
455
755
|
total: number;
|
|
456
756
|
}
|
|
457
757
|
|
|
758
|
+
export interface SeoEndOfDay {
|
|
759
|
+
ask: string;
|
|
760
|
+
risk: string;
|
|
761
|
+
win: string;
|
|
762
|
+
work_channel_id?: string | null;
|
|
763
|
+
}
|
|
764
|
+
|
|
458
765
|
/** Mirrors `KeywordRow`. */
|
|
459
766
|
export interface SeoKeywordRow {
|
|
460
767
|
competition?: number;
|
|
@@ -465,6 +772,34 @@ export interface SeoKeywordRow {
|
|
|
465
772
|
search_volume?: number;
|
|
466
773
|
}
|
|
467
774
|
|
|
775
|
+
export interface SeoMover {
|
|
776
|
+
confidence?: "measured" | "estimated" | "partial";
|
|
777
|
+
delta?: number | null;
|
|
778
|
+
detail: string;
|
|
779
|
+
from_value?: number | null;
|
|
780
|
+
kind: "rank_up" | "rank_down" | "gsc_drop" | "gsc_gain" | "low_ctr";
|
|
781
|
+
title: string;
|
|
782
|
+
to_value?: number | null;
|
|
783
|
+
url?: string | null;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/** One page in full: its Page360 snapshot plus top queries and open fixes. Extra snapshot keys pass through. */
|
|
787
|
+
export interface SeoPage360 {
|
|
788
|
+
fixes?: Array<Record<string, unknown>>;
|
|
789
|
+
queries?: Array<Record<string, unknown>>;
|
|
790
|
+
[key: string]: unknown;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/** The Page360 grid: one row per page with Search Console, vitals, visitors and fix counts. */
|
|
794
|
+
export interface SeoPages360 {
|
|
795
|
+
gsc_connected: boolean;
|
|
796
|
+
last_sync_at?: string | null;
|
|
797
|
+
limit: number;
|
|
798
|
+
offset: number;
|
|
799
|
+
rows: Array<Record<string, unknown>>;
|
|
800
|
+
total: number;
|
|
801
|
+
}
|
|
802
|
+
|
|
468
803
|
/** Mirrors `RankHistoryResponse`. */
|
|
469
804
|
export interface SeoRankHistory {
|
|
470
805
|
keyword_id: string;
|
|
@@ -524,13 +859,27 @@ export interface SeoResearchKeywordsResponse {
|
|
|
524
859
|
* refused with a 422 if it carries a scheme or a path.
|
|
525
860
|
*/
|
|
526
861
|
export interface SeoSaveTrackedKeywordsRequest {
|
|
527
|
-
cadence?: "daily" | "weekly";
|
|
862
|
+
cadence?: "daily" | "weekly" | "manual";
|
|
528
863
|
domain: string;
|
|
529
864
|
keywords: Array<SeoTrackKeywordItem>;
|
|
530
865
|
language_code?: string;
|
|
531
866
|
location_code?: number;
|
|
532
867
|
}
|
|
533
868
|
|
|
869
|
+
export interface SeoSetupChecklist {
|
|
870
|
+
done_count: number;
|
|
871
|
+
items: Array<SeoSetupItem>;
|
|
872
|
+
total: number;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
export interface SeoSetupItem {
|
|
876
|
+
action: SeoTodayAction;
|
|
877
|
+
done: boolean;
|
|
878
|
+
hint: string;
|
|
879
|
+
key: "gsc" | "domain" | "competitors" | "prompts" | "fix_delivery";
|
|
880
|
+
label: string;
|
|
881
|
+
}
|
|
882
|
+
|
|
534
883
|
/**
|
|
535
884
|
* Mirrors `StartAuditRequest`. `max_pages` is the crawl ceiling and the
|
|
536
885
|
* thing the credit reservation is sized from.
|
|
@@ -540,6 +889,60 @@ export interface SeoStartAuditRequest {
|
|
|
540
889
|
max_pages?: number;
|
|
541
890
|
}
|
|
542
891
|
|
|
892
|
+
/** Today in Signals > SEO: KPIs, the briefing, the approval queue, movers, alerts and the setup checklist. */
|
|
893
|
+
export interface SeoToday {
|
|
894
|
+
alerts: Array<SeoTodayAlert>;
|
|
895
|
+
approval_queue: SeoApprovalQueue;
|
|
896
|
+
briefing: Array<SeoTodayCard>;
|
|
897
|
+
domain?: string | null;
|
|
898
|
+
end_of_day: SeoEndOfDay;
|
|
899
|
+
generated_at: string;
|
|
900
|
+
health_score?: number | null;
|
|
901
|
+
kpis: Array<SeoTodayKpi>;
|
|
902
|
+
movers: Array<SeoMover>;
|
|
903
|
+
setup: SeoSetupChecklist;
|
|
904
|
+
sources?: Record<string, boolean>;
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
export interface SeoTodayAction {
|
|
908
|
+
fix_id?: string | null;
|
|
909
|
+
href?: string | null;
|
|
910
|
+
kind: "goto_tab" | "settings" | "approve_fix" | "link";
|
|
911
|
+
label: string;
|
|
912
|
+
tab?: string | null;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
export interface SeoTodayAlert {
|
|
916
|
+
action?: SeoTodayAction | null;
|
|
917
|
+
body: string;
|
|
918
|
+
fired_at: string;
|
|
919
|
+
id: string;
|
|
920
|
+
kind: string;
|
|
921
|
+
payload?: Record<string, unknown>;
|
|
922
|
+
severity: "critical" | "high" | "medium" | "low";
|
|
923
|
+
title: string;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
export interface SeoTodayCard {
|
|
927
|
+
action: SeoTodayAction;
|
|
928
|
+
category: string;
|
|
929
|
+
confidence?: "measured" | "estimated" | "partial";
|
|
930
|
+
detail: string;
|
|
931
|
+
id: string;
|
|
932
|
+
severity: "critical" | "high" | "medium" | "low";
|
|
933
|
+
stake?: string | null;
|
|
934
|
+
title: string;
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
export interface SeoTodayKpi {
|
|
938
|
+
confidence?: "measured" | "estimated" | "partial";
|
|
939
|
+
delta_pct?: number | null;
|
|
940
|
+
hint?: string | null;
|
|
941
|
+
key: string;
|
|
942
|
+
label: string;
|
|
943
|
+
value?: number | null;
|
|
944
|
+
}
|
|
945
|
+
|
|
543
946
|
/** Mirrors `TrackKeywordItem`. */
|
|
544
947
|
export interface SeoTrackKeywordItem {
|
|
545
948
|
keyword: string;
|