@rnsk/toolkits 0.0.7 → 0.0.8
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 +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +17 -1
- package/dist/toolkits/cloudflare/icon.d.ts +5 -0
- package/dist/toolkits/cloudflare/icon.js +14 -0
- package/dist/toolkits/cloudflare/manifest.d.ts +3 -0
- package/dist/toolkits/cloudflare/manifest.js +36 -0
- package/dist/toolkits/cloudflare/tools/client.d.ts +19 -0
- package/dist/toolkits/cloudflare/tools/client.js +57 -0
- package/dist/toolkits/cloudflare/tools/create-dns-record.d.ts +14 -0
- package/dist/toolkits/cloudflare/tools/create-dns-record.js +32 -0
- package/dist/toolkits/cloudflare/tools/create-list.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/create-list.js +28 -0
- package/dist/toolkits/cloudflare/tools/create-zone.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/create-zone.js +37 -0
- package/dist/toolkits/cloudflare/tools/delete-dns-record.d.ts +6 -0
- package/dist/toolkits/cloudflare/tools/delete-dns-record.js +24 -0
- package/dist/toolkits/cloudflare/tools/delete-list.d.ts +6 -0
- package/dist/toolkits/cloudflare/tools/delete-list.js +24 -0
- package/dist/toolkits/cloudflare/tools/delete-zone.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/delete-zone.js +23 -0
- package/dist/toolkits/cloudflare/tools/get-bot-management-settings.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/get-bot-management-settings.js +23 -0
- package/dist/toolkits/cloudflare/tools/index.d.ts +277 -0
- package/dist/toolkits/cloudflare/tools/index.js +165 -0
- package/dist/toolkits/cloudflare/tools/list-account-members.d.ts +10 -0
- package/dist/toolkits/cloudflare/tools/list-account-members.js +33 -0
- package/dist/toolkits/cloudflare/tools/list-accounts.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/list-accounts.js +28 -0
- package/dist/toolkits/cloudflare/tools/list-dns-records.d.ts +15 -0
- package/dist/toolkits/cloudflare/tools/list-dns-records.js +47 -0
- package/dist/toolkits/cloudflare/tools/list-firewall-rules.d.ts +10 -0
- package/dist/toolkits/cloudflare/tools/list-firewall-rules.js +30 -0
- package/dist/toolkits/cloudflare/tools/list-monitors.d.ts +9 -0
- package/dist/toolkits/cloudflare/tools/list-monitors.js +29 -0
- package/dist/toolkits/cloudflare/tools/list-pools.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/list-pools.js +28 -0
- package/dist/toolkits/cloudflare/tools/list-tunnels.d.ts +9 -0
- package/dist/toolkits/cloudflare/tools/list-tunnels.js +29 -0
- package/dist/toolkits/cloudflare/tools/list-waf-lists.d.ts +5 -0
- package/dist/toolkits/cloudflare/tools/list-waf-lists.js +23 -0
- package/dist/toolkits/cloudflare/tools/list-zones.d.ts +13 -0
- package/dist/toolkits/cloudflare/tools/list-zones.js +38 -0
- package/dist/toolkits/cloudflare/tools/update-dns-record.d.ts +13 -0
- package/dist/toolkits/cloudflare/tools/update-dns-record.js +39 -0
- package/dist/toolkits/cloudflare/tools/update-list.d.ts +7 -0
- package/dist/toolkits/cloudflare/tools/update-list.js +27 -0
- package/dist/toolkits/cloudflare/tools/update-tunnel-configuration.d.ts +7 -0
- package/dist/toolkits/cloudflare/tools/update-tunnel-configuration.js +28 -0
- package/dist/toolkits/cloudflare/tools/update-zone.d.ts +8 -0
- package/dist/toolkits/cloudflare/tools/update-zone.js +32 -0
- package/dist/toolkits/figma/icon.d.ts +5 -0
- package/dist/toolkits/figma/icon.js +6 -0
- package/dist/toolkits/figma/manifest.d.ts +3 -0
- package/dist/toolkits/figma/manifest.js +58 -0
- package/dist/toolkits/figma/tools/add-comment-to-a-file.d.ts +8 -0
- package/dist/toolkits/figma/tools/add-comment-to-a-file.js +43 -0
- package/dist/toolkits/figma/tools/add-reaction-to-a-comment.d.ts +7 -0
- package/dist/toolkits/figma/tools/add-reaction-to-a-comment.js +31 -0
- package/dist/toolkits/figma/tools/client.d.ts +20 -0
- package/dist/toolkits/figma/tools/client.js +36 -0
- package/dist/toolkits/figma/tools/create-a-webhook.d.ts +12 -0
- package/dist/toolkits/figma/tools/create-a-webhook.js +45 -0
- package/dist/toolkits/figma/tools/create-dev-resources.d.ts +28 -0
- package/dist/toolkits/figma/tools/create-dev-resources.js +53 -0
- package/dist/toolkits/figma/tools/create-modify-delete-variables.d.ts +9 -0
- package/dist/toolkits/figma/tools/create-modify-delete-variables.js +43 -0
- package/dist/toolkits/figma/tools/delete-a-comment.d.ts +6 -0
- package/dist/toolkits/figma/tools/delete-a-comment.js +29 -0
- package/dist/toolkits/figma/tools/delete-a-reaction.d.ts +7 -0
- package/dist/toolkits/figma/tools/delete-a-reaction.js +31 -0
- package/dist/toolkits/figma/tools/delete-a-webhook.d.ts +5 -0
- package/dist/toolkits/figma/tools/delete-a-webhook.js +28 -0
- package/dist/toolkits/figma/tools/delete-dev-resource.d.ts +6 -0
- package/dist/toolkits/figma/tools/delete-dev-resource.js +29 -0
- package/dist/toolkits/figma/tools/design-tokens-to-tailwind.d.ts +26 -0
- package/dist/toolkits/figma/tools/design-tokens-to-tailwind.js +119 -0
- package/dist/toolkits/figma/tools/detect-background.d.ts +27 -0
- package/dist/toolkits/figma/tools/detect-background.js +124 -0
- package/dist/toolkits/figma/tools/discover-figma-resources.d.ts +38 -0
- package/dist/toolkits/figma/tools/discover-figma-resources.js +99 -0
- package/dist/toolkits/figma/tools/download-figma-images.d.ts +26 -0
- package/dist/toolkits/figma/tools/download-figma-images.js +86 -0
- package/dist/toolkits/figma/tools/extract-design-tokens.d.ts +46 -0
- package/dist/toolkits/figma/tools/extract-design-tokens.js +146 -0
- package/dist/toolkits/figma/tools/extract-prototype-interactions.d.ts +38 -0
- package/dist/toolkits/figma/tools/extract-prototype-interactions.js +80 -0
- package/dist/toolkits/figma/tools/get-a-webhook.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-a-webhook.js +26 -0
- package/dist/toolkits/figma/tools/get-activity-logs.d.ts +10 -0
- package/dist/toolkits/figma/tools/get-activity-logs.js +33 -0
- package/dist/toolkits/figma/tools/get-comments-in-a-file.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-comments-in-a-file.js +29 -0
- package/dist/toolkits/figma/tools/get-component-set.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-component-set.js +26 -0
- package/dist/toolkits/figma/tools/get-component2.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-component2.js +26 -0
- package/dist/toolkits/figma/tools/get-current-user.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-current-user.js +25 -0
- package/dist/toolkits/figma/tools/get-dev-resources.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-dev-resources.js +29 -0
- package/dist/toolkits/figma/tools/get-file-component-sets.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-component-sets.js +26 -0
- package/dist/toolkits/figma/tools/get-file-components.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-components.js +26 -0
- package/dist/toolkits/figma/tools/get-file-json.d.ts +12 -0
- package/dist/toolkits/figma/tools/get-file-json.js +49 -0
- package/dist/toolkits/figma/tools/get-file-metadata.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-metadata.js +26 -0
- package/dist/toolkits/figma/tools/get-file-nodes.d.ts +10 -0
- package/dist/toolkits/figma/tools/get-file-nodes.js +34 -0
- package/dist/toolkits/figma/tools/get-file-styles.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-file-styles.js +26 -0
- package/dist/toolkits/figma/tools/get-files-in-a-project.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-files-in-a-project.js +29 -0
- package/dist/toolkits/figma/tools/get-image-fills.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-image-fills.js +26 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-component-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-style-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-action-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-action-data.js +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-usage-data.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-library-analytics-variable-usage-data.js +4 -0
- package/dist/toolkits/figma/tools/get-local-variables.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-local-variables.js +26 -0
- package/dist/toolkits/figma/tools/get-payments.d.ts +9 -0
- package/dist/toolkits/figma/tools/get-payments.js +38 -0
- package/dist/toolkits/figma/tools/get-projects-in-a-team.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-projects-in-a-team.js +26 -0
- package/dist/toolkits/figma/tools/get-published-variables.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-published-variables.js +26 -0
- package/dist/toolkits/figma/tools/get-reactions-for-a-comment.d.ts +7 -0
- package/dist/toolkits/figma/tools/get-reactions-for-a-comment.js +30 -0
- package/dist/toolkits/figma/tools/get-scim-service-provider-config.d.ts +4 -0
- package/dist/toolkits/figma/tools/get-scim-service-provider-config.js +27 -0
- package/dist/toolkits/figma/tools/get-style.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-style.js +26 -0
- package/dist/toolkits/figma/tools/get-team-component-sets.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-component-sets.js +33 -0
- package/dist/toolkits/figma/tools/get-team-components.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-components.js +33 -0
- package/dist/toolkits/figma/tools/get-team-styles.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-team-styles.js +33 -0
- package/dist/toolkits/figma/tools/get-team-webhooks.d.ts +6 -0
- package/dist/toolkits/figma/tools/get-team-webhooks.js +29 -0
- package/dist/toolkits/figma/tools/get-versions-of-a-file.d.ts +8 -0
- package/dist/toolkits/figma/tools/get-versions-of-a-file.js +31 -0
- package/dist/toolkits/figma/tools/get-webhook-requests.d.ts +5 -0
- package/dist/toolkits/figma/tools/get-webhook-requests.js +26 -0
- package/dist/toolkits/figma/tools/index.d.ts +629 -0
- package/dist/toolkits/figma/tools/index.js +110 -0
- package/dist/toolkits/figma/tools/library-analytics-shared.d.ts +4 -0
- package/dist/toolkits/figma/tools/library-analytics-shared.js +40 -0
- package/dist/toolkits/figma/tools/render-images-of-file-nodes.d.ts +15 -0
- package/dist/toolkits/figma/tools/render-images-of-file-nodes.js +49 -0
- package/dist/toolkits/figma/tools/update-a-webhook.d.ts +10 -0
- package/dist/toolkits/figma/tools/update-a-webhook.js +45 -0
- package/dist/toolkits/figma/tools/update-dev-resources.d.ts +10 -0
- package/dist/toolkits/figma/tools/update-dev-resources.js +34 -0
- package/dist/toolkits/google-ads/icon.d.ts +5 -0
- package/dist/toolkits/google-ads/icon.js +18 -0
- package/dist/toolkits/google-ads/manifest.d.ts +3 -0
- package/dist/toolkits/google-ads/manifest.js +41 -0
- package/dist/toolkits/google-ads/tools/add-or-remove-to-customer-list.d.ts +30 -0
- package/dist/toolkits/google-ads/tools/add-or-remove-to-customer-list.js +69 -0
- package/dist/toolkits/google-ads/tools/client.d.ts +62 -0
- package/dist/toolkits/google-ads/tools/client.js +102 -0
- package/dist/toolkits/google-ads/tools/create-callout-asset.d.ts +23 -0
- package/dist/toolkits/google-ads/tools/create-callout-asset.js +62 -0
- package/dist/toolkits/google-ads/tools/create-customer-list.d.ts +9 -0
- package/dist/toolkits/google-ads/tools/create-customer-list.js +42 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-id.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-id.js +38 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-name.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-campaign-by-name.js +37 -0
- package/dist/toolkits/google-ads/tools/get-conversion-action-tag-snippets.d.ts +28 -0
- package/dist/toolkits/google-ads/tools/get-conversion-action-tag-snippets.js +33 -0
- package/dist/toolkits/google-ads/tools/get-customer-lists.d.ts +32 -0
- package/dist/toolkits/google-ads/tools/get-customer-lists.js +41 -0
- package/dist/toolkits/google-ads/tools/get-rmf-report.d.ts +60 -0
- package/dist/toolkits/google-ads/tools/get-rmf-report.js +97 -0
- package/dist/toolkits/google-ads/tools/index.d.ts +520 -0
- package/dist/toolkits/google-ads/tools/index.js +230 -0
- package/dist/toolkits/google-ads/tools/list-accessible-customers.d.ts +5 -0
- package/dist/toolkits/google-ads/tools/list-accessible-customers.js +26 -0
- package/dist/toolkits/google-ads/tools/list-sub-accounts.d.ts +51 -0
- package/dist/toolkits/google-ads/tools/list-sub-accounts.js +55 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-ads.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-ads.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-bid-modifiers.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-bid-modifiers.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-criteria.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-group-criteria.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-groups.d.ts +10 -0
- package/dist/toolkits/google-ads/tools/mutate-ad-groups.js +38 -0
- package/dist/toolkits/google-ads/tools/mutate-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-bidding-strategies.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-bidding-strategies.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-assets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-assets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-budgets.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-budgets.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-criteria.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-criteria.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-labels.d.ts +10 -0
- package/dist/toolkits/google-ads/tools/mutate-campaign-labels.js +38 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns-v2.d.ts +17 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns-v2.js +58 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns.d.ts +16 -0
- package/dist/toolkits/google-ads/tools/mutate-campaigns.js +53 -0
- package/dist/toolkits/google-ads/tools/mutate-conversion-actions.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-conversion-actions.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-customer-assets.d.ts +17 -0
- package/dist/toolkits/google-ads/tools/mutate-customer-assets.js +51 -0
- package/dist/toolkits/google-ads/tools/mutate-labels.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-labels.js +40 -0
- package/dist/toolkits/google-ads/tools/mutate-portfolio-bidding-strategies.d.ts +11 -0
- package/dist/toolkits/google-ads/tools/mutate-portfolio-bidding-strategies.js +41 -0
- package/dist/toolkits/google-ads/tools/search-stream-gaql.d.ts +37 -0
- package/dist/toolkits/google-ads/tools/search-stream-gaql.js +41 -0
- package/dist/toolkits/google-classroom/icon.d.ts +5 -0
- package/dist/toolkits/google-classroom/icon.js +42 -0
- package/dist/toolkits/google-classroom/manifest.d.ts +3 -0
- package/dist/toolkits/google-classroom/manifest.js +67 -0
- package/dist/toolkits/google-classroom/tools/aliases.d.ts +17 -0
- package/dist/toolkits/google-classroom/tools/aliases.js +70 -0
- package/dist/toolkits/google-classroom/tools/announcement-addons.d.ts +27 -0
- package/dist/toolkits/google-classroom/tools/announcement-addons.js +87 -0
- package/dist/toolkits/google-classroom/tools/announcements.d.ts +54 -0
- package/dist/toolkits/google-classroom/tools/announcements.js +158 -0
- package/dist/toolkits/google-classroom/tools/client.d.ts +18 -0
- package/dist/toolkits/google-classroom/tools/client.js +41 -0
- package/dist/toolkits/google-classroom/tools/courses.d.ts +60 -0
- package/dist/toolkits/google-classroom/tools/courses.js +189 -0
- package/dist/toolkits/google-classroom/tools/coursework-addons.d.ts +25 -0
- package/dist/toolkits/google-classroom/tools/coursework-addons.js +85 -0
- package/dist/toolkits/google-classroom/tools/coursework.d.ts +113 -0
- package/dist/toolkits/google-classroom/tools/coursework.js +248 -0
- package/dist/toolkits/google-classroom/tools/index.d.ts +608 -0
- package/dist/toolkits/google-classroom/tools/index.js +81 -0
- package/dist/toolkits/google-classroom/tools/invitations.d.ts +22 -0
- package/dist/toolkits/google-classroom/tools/invitations.js +89 -0
- package/dist/toolkits/google-classroom/tools/materials-addons.d.ts +13 -0
- package/dist/toolkits/google-classroom/tools/materials-addons.js +45 -0
- package/dist/toolkits/google-classroom/tools/materials.d.ts +44 -0
- package/dist/toolkits/google-classroom/tools/materials.js +132 -0
- package/dist/toolkits/google-classroom/tools/misc.d.ts +20 -0
- package/dist/toolkits/google-classroom/tools/misc.js +51 -0
- package/dist/toolkits/google-classroom/tools/posts-addons.d.ts +17 -0
- package/dist/toolkits/google-classroom/tools/posts-addons.js +49 -0
- package/dist/toolkits/google-classroom/tools/roster.d.ts +48 -0
- package/dist/toolkits/google-classroom/tools/roster.js +180 -0
- package/dist/toolkits/google-classroom/tools/topics.d.ts +29 -0
- package/dist/toolkits/google-classroom/tools/topics.js +117 -0
- package/dist/toolkits/google-tasks/icon.d.ts +5 -0
- package/dist/toolkits/google-tasks/icon.js +6 -0
- package/dist/toolkits/google-tasks/manifest.d.ts +3 -0
- package/dist/toolkits/google-tasks/manifest.js +40 -0
- package/dist/toolkits/google-tasks/tools/batch-execute.d.ts +34 -0
- package/dist/toolkits/google-tasks/tools/batch-execute.js +95 -0
- package/dist/toolkits/google-tasks/tools/clear-tasks.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/clear-tasks.js +29 -0
- package/dist/toolkits/google-tasks/tools/create-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/create-task-list.js +30 -0
- package/dist/toolkits/google-tasks/tools/create-task.d.ts +12 -0
- package/dist/toolkits/google-tasks/tools/create-task.js +47 -0
- package/dist/toolkits/google-tasks/tools/delete-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/delete-task-list.js +29 -0
- package/dist/toolkits/google-tasks/tools/delete-task.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/delete-task.js +28 -0
- package/dist/toolkits/google-tasks/tools/get-task-list.d.ts +5 -0
- package/dist/toolkits/google-tasks/tools/get-task-list.js +27 -0
- package/dist/toolkits/google-tasks/tools/get-task.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/get-task.js +28 -0
- package/dist/toolkits/google-tasks/tools/index.d.ts +249 -0
- package/dist/toolkits/google-tasks/tools/index.js +125 -0
- package/dist/toolkits/google-tasks/tools/list-all-tasks.d.ts +41 -0
- package/dist/toolkits/google-tasks/tools/list-all-tasks.js +106 -0
- package/dist/toolkits/google-tasks/tools/list-task-lists.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/list-task-lists.js +30 -0
- package/dist/toolkits/google-tasks/tools/list-tasks.d.ts +15 -0
- package/dist/toolkits/google-tasks/tools/list-tasks.js +50 -0
- package/dist/toolkits/google-tasks/tools/move-task.d.ts +9 -0
- package/dist/toolkits/google-tasks/tools/move-task.js +37 -0
- package/dist/toolkits/google-tasks/tools/update-task-full.d.ts +14 -0
- package/dist/toolkits/google-tasks/tools/update-task-full.js +55 -0
- package/dist/toolkits/google-tasks/tools/update-task-list.d.ts +6 -0
- package/dist/toolkits/google-tasks/tools/update-task-list.js +31 -0
- package/dist/toolkits/google-tasks/tools/update-task.d.ts +11 -0
- package/dist/toolkits/google-tasks/tools/update-task.js +47 -0
- package/dist/toolkits/google-tasks/tools/utils.d.ts +15 -0
- package/dist/toolkits/google-tasks/tools/utils.js +33 -0
- package/dist/toolkits/groww/icon.d.ts +5 -0
- package/dist/toolkits/groww/icon.js +21 -0
- package/dist/toolkits/groww/manifest.d.ts +3 -0
- package/dist/toolkits/groww/manifest.js +32 -0
- package/dist/toolkits/groww/tools/historical.d.ts +32 -0
- package/dist/toolkits/groww/tools/historical.js +85 -0
- package/dist/toolkits/groww/tools/index.d.ts +394 -0
- package/dist/toolkits/groww/tools/index.js +222 -0
- package/dist/toolkits/groww/tools/instruments.d.ts +51 -0
- package/dist/toolkits/groww/tools/instruments.js +120 -0
- package/dist/toolkits/groww/tools/live-data.d.ts +30 -0
- package/dist/toolkits/groww/tools/live-data.js +101 -0
- package/dist/toolkits/groww/tools/margin.d.ts +18 -0
- package/dist/toolkits/groww/tools/margin.js +52 -0
- package/dist/toolkits/groww/tools/orders.d.ts +57 -0
- package/dist/toolkits/groww/tools/orders.js +170 -0
- package/dist/toolkits/groww/tools/portfolio.d.ts +13 -0
- package/dist/toolkits/groww/tools/portfolio.js +58 -0
- package/dist/toolkits/groww/tools/smart-orders.d.ts +72 -0
- package/dist/toolkits/groww/tools/smart-orders.js +200 -0
- package/dist/toolkits/groww/tools/user.d.ts +4 -0
- package/dist/toolkits/groww/tools/user.js +21 -0
- package/dist/toolkits/groww/tools/utils.d.ts +18 -0
- package/dist/toolkits/groww/tools/utils.js +52 -0
- package/dist/toolkits/reddit/icon.d.ts +5 -0
- package/dist/toolkits/reddit/icon.js +6 -0
- package/dist/toolkits/reddit/manifest.d.ts +3 -0
- package/dist/toolkits/reddit/manifest.js +55 -0
- package/dist/toolkits/reddit/tools/check-username-available.d.ts +29 -0
- package/dist/toolkits/reddit/tools/check-username-available.js +30 -0
- package/dist/toolkits/reddit/tools/client.d.ts +10 -0
- package/dist/toolkits/reddit/tools/client.js +75 -0
- package/dist/toolkits/reddit/tools/create-post.d.ts +10 -0
- package/dist/toolkits/reddit/tools/create-post.js +59 -0
- package/dist/toolkits/reddit/tools/delete-comment.d.ts +29 -0
- package/dist/toolkits/reddit/tools/delete-comment.js +30 -0
- package/dist/toolkits/reddit/tools/delete-post.d.ts +29 -0
- package/dist/toolkits/reddit/tools/delete-post.js +30 -0
- package/dist/toolkits/reddit/tools/edit-comment-or-post.d.ts +6 -0
- package/dist/toolkits/reddit/tools/edit-comment-or-post.js +35 -0
- package/dist/toolkits/reddit/tools/get-controversial-posts.d.ts +10 -0
- package/dist/toolkits/reddit/tools/get-controversial-posts.js +45 -0
- package/dist/toolkits/reddit/tools/get-listing-by-sort.d.ts +11 -0
- package/dist/toolkits/reddit/tools/get-listing-by-sort.js +47 -0
- package/dist/toolkits/reddit/tools/get-oauth-scopes.d.ts +4 -0
- package/dist/toolkits/reddit/tools/get-oauth-scopes.js +28 -0
- package/dist/toolkits/reddit/tools/get-random-post.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-random-post.js +32 -0
- package/dist/toolkits/reddit/tools/get-subreddit-rules.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-subreddit-rules.js +29 -0
- package/dist/toolkits/reddit/tools/get-user-about.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-user-about.js +29 -0
- package/dist/toolkits/reddit/tools/get-user-flair.d.ts +8 -0
- package/dist/toolkits/reddit/tools/get-user-flair.js +32 -0
- package/dist/toolkits/reddit/tools/get-user-prefs.d.ts +5 -0
- package/dist/toolkits/reddit/tools/get-user-prefs.js +32 -0
- package/dist/toolkits/reddit/tools/index.d.ts +355 -0
- package/dist/toolkits/reddit/tools/index.js +173 -0
- package/dist/toolkits/reddit/tools/list-subreddit-post-flairs.d.ts +25 -0
- package/dist/toolkits/reddit/tools/list-subreddit-post-flairs.js +30 -0
- package/dist/toolkits/reddit/tools/post-comment.d.ts +6 -0
- package/dist/toolkits/reddit/tools/post-comment.js +35 -0
- package/dist/toolkits/reddit/tools/retrieve-post-comments.d.ts +8 -0
- package/dist/toolkits/reddit/tools/retrieve-post-comments.js +39 -0
- package/dist/toolkits/reddit/tools/retrieve-posts-from-subreddit.d.ts +12 -0
- package/dist/toolkits/reddit/tools/retrieve-posts-from-subreddit.js +56 -0
- package/dist/toolkits/reddit/tools/retrieve-specific-comment-or-post.d.ts +25 -0
- package/dist/toolkits/reddit/tools/retrieve-specific-comment-or-post.js +32 -0
- package/dist/toolkits/reddit/tools/search-across-subreddits.d.ts +12 -0
- package/dist/toolkits/reddit/tools/search-across-subreddits.js +59 -0
- package/dist/toolkits/reddit/tools/search-subreddits.d.ts +12 -0
- package/dist/toolkits/reddit/tools/search-subreddits.js +49 -0
- package/dist/toolkits/reddit/tools/toggle-inbox-replies.d.ts +34 -0
- package/dist/toolkits/reddit/tools/toggle-inbox-replies.js +31 -0
- package/dist/toolkits/youtube/icon.d.ts +5 -0
- package/dist/toolkits/youtube/icon.js +20 -0
- package/dist/toolkits/youtube/manifest.d.ts +3 -0
- package/dist/toolkits/youtube/manifest.js +48 -0
- package/dist/toolkits/youtube/tools/add-video-to-playlist.d.ts +7 -0
- package/dist/toolkits/youtube/tools/add-video-to-playlist.js +38 -0
- package/dist/toolkits/youtube/tools/client.d.ts +23 -0
- package/dist/toolkits/youtube/tools/client.js +55 -0
- package/dist/toolkits/youtube/tools/create-channel-section.d.ts +13 -0
- package/dist/toolkits/youtube/tools/create-channel-section.js +42 -0
- package/dist/toolkits/youtube/tools/create-comment-reply.d.ts +6 -0
- package/dist/toolkits/youtube/tools/create-comment-reply.js +31 -0
- package/dist/toolkits/youtube/tools/create-playlist.d.ts +7 -0
- package/dist/toolkits/youtube/tools/create-playlist.js +38 -0
- package/dist/toolkits/youtube/tools/delete-channel-section.d.ts +27 -0
- package/dist/toolkits/youtube/tools/delete-channel-section.js +30 -0
- package/dist/toolkits/youtube/tools/delete-comment.d.ts +26 -0
- package/dist/toolkits/youtube/tools/delete-comment.js +29 -0
- package/dist/toolkits/youtube/tools/delete-playlist-item.d.ts +26 -0
- package/dist/toolkits/youtube/tools/delete-playlist-item.js +29 -0
- package/dist/toolkits/youtube/tools/delete-playlist.d.ts +35 -0
- package/dist/toolkits/youtube/tools/delete-playlist.js +33 -0
- package/dist/toolkits/youtube/tools/delete-video.d.ts +35 -0
- package/dist/toolkits/youtube/tools/delete-video.js +33 -0
- package/dist/toolkits/youtube/tools/download-caption-track.d.ts +21 -0
- package/dist/toolkits/youtube/tools/download-caption-track.js +30 -0
- package/dist/toolkits/youtube/tools/get-channel-activities.d.ts +10 -0
- package/dist/toolkits/youtube/tools/get-channel-activities.js +33 -0
- package/dist/toolkits/youtube/tools/get-channel-id-by-handle.d.ts +5 -0
- package/dist/toolkits/youtube/tools/get-channel-id-by-handle.js +31 -0
- package/dist/toolkits/youtube/tools/get-channel-statistics.d.ts +9 -0
- package/dist/toolkits/youtube/tools/get-channel-statistics.js +53 -0
- package/dist/toolkits/youtube/tools/get-video-details-batch.d.ts +55 -0
- package/dist/toolkits/youtube/tools/get-video-details-batch.js +51 -0
- package/dist/toolkits/youtube/tools/get-video-rating.d.ts +6 -0
- package/dist/toolkits/youtube/tools/get-video-rating.js +29 -0
- package/dist/toolkits/youtube/tools/index.d.ts +959 -0
- package/dist/toolkits/youtube/tools/index.js +104 -0
- package/dist/toolkits/youtube/tools/list-caption-track.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-caption-track.js +29 -0
- package/dist/toolkits/youtube/tools/list-channel-sections.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-channel-sections.js +36 -0
- package/dist/toolkits/youtube/tools/list-channel-videos.d.ts +9 -0
- package/dist/toolkits/youtube/tools/list-channel-videos.js +76 -0
- package/dist/toolkits/youtube/tools/list-channels.d.ts +14 -0
- package/dist/toolkits/youtube/tools/list-channels.js +40 -0
- package/dist/toolkits/youtube/tools/list-comment-threads.d.ts +15 -0
- package/dist/toolkits/youtube/tools/list-comment-threads.js +38 -0
- package/dist/toolkits/youtube/tools/list-comments.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-comments.js +35 -0
- package/dist/toolkits/youtube/tools/list-i18n-languages.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-i18n-languages.js +29 -0
- package/dist/toolkits/youtube/tools/list-i18n-regions.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-i18n-regions.js +29 -0
- package/dist/toolkits/youtube/tools/list-live-chat-messages.d.ts +10 -0
- package/dist/toolkits/youtube/tools/list-live-chat-messages.js +33 -0
- package/dist/toolkits/youtube/tools/list-playlist-images.d.ts +11 -0
- package/dist/toolkits/youtube/tools/list-playlist-images.js +36 -0
- package/dist/toolkits/youtube/tools/list-playlist-items.d.ts +11 -0
- package/dist/toolkits/youtube/tools/list-playlist-items.js +34 -0
- package/dist/toolkits/youtube/tools/list-super-chat-events.d.ts +8 -0
- package/dist/toolkits/youtube/tools/list-super-chat-events.js +31 -0
- package/dist/toolkits/youtube/tools/list-user-playlists.d.ts +7 -0
- package/dist/toolkits/youtube/tools/list-user-playlists.js +30 -0
- package/dist/toolkits/youtube/tools/list-user-subscriptions.d.ts +7 -0
- package/dist/toolkits/youtube/tools/list-user-subscriptions.js +30 -0
- package/dist/toolkits/youtube/tools/list-video-abuse-report-reasons.d.ts +6 -0
- package/dist/toolkits/youtube/tools/list-video-abuse-report-reasons.js +29 -0
- package/dist/toolkits/youtube/tools/list-video-categories.d.ts +8 -0
- package/dist/toolkits/youtube/tools/list-video-categories.js +33 -0
- package/dist/toolkits/youtube/tools/mark-comment-as-spam.d.ts +26 -0
- package/dist/toolkits/youtube/tools/mark-comment-as-spam.js +29 -0
- package/dist/toolkits/youtube/tools/multipart-upload-video.d.ts +25 -0
- package/dist/toolkits/youtube/tools/multipart-upload-video.js +40 -0
- package/dist/toolkits/youtube/tools/post-comment.d.ts +7 -0
- package/dist/toolkits/youtube/tools/post-comment.js +34 -0
- package/dist/toolkits/youtube/tools/rate-video.d.ts +30 -0
- package/dist/toolkits/youtube/tools/rate-video.js +30 -0
- package/dist/toolkits/youtube/tools/report-video-abuse.d.ts +27 -0
- package/dist/toolkits/youtube/tools/report-video-abuse.js +40 -0
- package/dist/toolkits/youtube/tools/search-youtube.d.ts +14 -0
- package/dist/toolkits/youtube/tools/search-youtube.js +37 -0
- package/dist/toolkits/youtube/tools/set-comment-moderation-status.d.ts +27 -0
- package/dist/toolkits/youtube/tools/set-comment-moderation-status.js +34 -0
- package/dist/toolkits/youtube/tools/subscribe-channel.d.ts +5 -0
- package/dist/toolkits/youtube/tools/subscribe-channel.js +30 -0
- package/dist/toolkits/youtube/tools/unsubscribe-channel.d.ts +26 -0
- package/dist/toolkits/youtube/tools/unsubscribe-channel.js +29 -0
- package/dist/toolkits/youtube/tools/update-caption.d.ts +11 -0
- package/dist/toolkits/youtube/tools/update-caption.js +36 -0
- package/dist/toolkits/youtube/tools/update-channel-section.d.ts +15 -0
- package/dist/toolkits/youtube/tools/update-channel-section.js +45 -0
- package/dist/toolkits/youtube/tools/update-channel.d.ts +10 -0
- package/dist/toolkits/youtube/tools/update-channel.js +42 -0
- package/dist/toolkits/youtube/tools/update-comment.d.ts +6 -0
- package/dist/toolkits/youtube/tools/update-comment.js +31 -0
- package/dist/toolkits/youtube/tools/update-playlist-item.d.ts +19 -0
- package/dist/toolkits/youtube/tools/update-playlist-item.js +47 -0
- package/dist/toolkits/youtube/tools/update-playlist.d.ts +16 -0
- package/dist/toolkits/youtube/tools/update-playlist.js +44 -0
- package/dist/toolkits/youtube/tools/update-thumbnail.d.ts +6 -0
- package/dist/toolkits/youtube/tools/update-thumbnail.js +38 -0
- package/dist/toolkits/youtube/tools/update-video.d.ts +10 -0
- package/dist/toolkits/youtube/tools/update-video.js +56 -0
- package/dist/toolkits/youtube/tools/upload-shared.d.ts +15 -0
- package/dist/toolkits/youtube/tools/upload-shared.js +21 -0
- package/dist/toolkits/youtube/tools/upload-video.d.ts +30 -0
- package/dist/toolkits/youtube/tools/upload-video.js +56 -0
- package/package.json +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { redditGet } from './client.js';
|
|
5
|
+
export const redditRetrievePostsFromSubreddit = tool({
|
|
6
|
+
description: 'Get posts from a public subreddit sorted by hot, new, top, rising, or controversial. Post data is nested under data.children[].data; paginate with the data.after cursor. Compare created_utc client-side for date filtering. Also covers new/top listings (set timeFilter for top/controversial windows).',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
redditToken: z.string().optional().describe('Injected by system; do not provide'),
|
|
9
|
+
subreddit: z.string().describe("Subreddit name without the 'r/' prefix, e.g. 'technology'"),
|
|
10
|
+
sort: z
|
|
11
|
+
.enum(['hot', 'new', 'top', 'rising', 'controversial'])
|
|
12
|
+
.optional()
|
|
13
|
+
.default('hot')
|
|
14
|
+
.describe('Sort order for posts'),
|
|
15
|
+
timeFilter: z
|
|
16
|
+
.enum(['hour', 'day', 'week', 'month', 'year', 'all'])
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Time window for 'top' and 'controversial' sorts"),
|
|
19
|
+
maxResults: z
|
|
20
|
+
.number()
|
|
21
|
+
.min(0)
|
|
22
|
+
.max(100)
|
|
23
|
+
.optional()
|
|
24
|
+
.default(5)
|
|
25
|
+
.describe('Max posts to return (max 100); 0 means maximum'),
|
|
26
|
+
after: z.string().optional().describe('Fullname cursor for the next page'),
|
|
27
|
+
before: z.string().optional().describe('Fullname cursor for the previous page'),
|
|
28
|
+
count: z.number().min(0).optional().describe('Number of items already seen (pagination)'),
|
|
29
|
+
show: z.string().optional().describe("Pass 'all' to include normally filtered items"),
|
|
30
|
+
}),
|
|
31
|
+
execute: async ({ redditToken, subreddit, sort = 'hot', timeFilter, maxResults = 5, after, before, count, show, }) => {
|
|
32
|
+
try {
|
|
33
|
+
if (!redditToken) {
|
|
34
|
+
return { error: 'Reddit token is required. Connect Reddit first.' };
|
|
35
|
+
}
|
|
36
|
+
return await redditGet(redditToken, `/r/${subreddit}/${sort}`, {
|
|
37
|
+
t: timeFilter,
|
|
38
|
+
limit: maxResults === 0 ? 100 : maxResults,
|
|
39
|
+
after,
|
|
40
|
+
before,
|
|
41
|
+
count,
|
|
42
|
+
show,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error?.details !== undefined) {
|
|
47
|
+
return { error: 'Failed to retrieve posts from subreddit', details: error.details };
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
error: 'Error retrieving posts from subreddit',
|
|
51
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=retrieve-posts-from-subreddit.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const redditRetrieveSpecificCommentOrPost: import("ai").Tool<{
|
|
2
|
+
id: string;
|
|
3
|
+
redditToken?: string | undefined;
|
|
4
|
+
}, {
|
|
5
|
+
error: string;
|
|
6
|
+
things?: undefined;
|
|
7
|
+
details?: undefined;
|
|
8
|
+
message?: undefined;
|
|
9
|
+
} | {
|
|
10
|
+
things: any;
|
|
11
|
+
error?: undefined;
|
|
12
|
+
details?: undefined;
|
|
13
|
+
message?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
error: string;
|
|
16
|
+
details: any;
|
|
17
|
+
things?: undefined;
|
|
18
|
+
message?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
error: string;
|
|
21
|
+
message: string;
|
|
22
|
+
things?: undefined;
|
|
23
|
+
details?: undefined;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=retrieve-specific-comment-or-post.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { redditGet } from './client.js';
|
|
5
|
+
export const redditRetrieveSpecificCommentOrPost = tool({
|
|
6
|
+
description: 'Get detailed information for a single comment or post by its fullname ID. Returns only that item without surrounding thread context — use redditRetrievePostComments for full discussions. Deleted or removed items may return empty payloads.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
redditToken: z.string().optional().describe('Injected by system; do not provide'),
|
|
9
|
+
id: z
|
|
10
|
+
.string()
|
|
11
|
+
.describe("Fullname ID with type prefix (t1_ for comments, t3_ for posts), e.g. 't1_abc123'"),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ redditToken, id }) => {
|
|
14
|
+
try {
|
|
15
|
+
if (!redditToken) {
|
|
16
|
+
return { error: 'Reddit token is required. Connect Reddit first.' };
|
|
17
|
+
}
|
|
18
|
+
const data = await redditGet(redditToken, '/api/info', { id });
|
|
19
|
+
return { things: data?.data?.children ?? [] };
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error?.details !== undefined) {
|
|
23
|
+
return { error: 'Failed to retrieve comment or post', details: error.details };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
error: 'Error retrieving comment or post',
|
|
27
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=retrieve-specific-comment-or-post.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const redditSearchAcrossSubreddits: import("ai").Tool<{
|
|
2
|
+
sort: "new" | "comments" | "relevance" | "hot" | "top";
|
|
3
|
+
limit: number;
|
|
4
|
+
searchQuery: string;
|
|
5
|
+
restrictSr: boolean;
|
|
6
|
+
before?: string | undefined;
|
|
7
|
+
after?: string | undefined;
|
|
8
|
+
redditToken?: string | undefined;
|
|
9
|
+
timeFilter?: "all" | "year" | "month" | "day" | "hour" | "week" | undefined;
|
|
10
|
+
resultType?: ("user" | "link" | "sr")[] | undefined;
|
|
11
|
+
}, any>;
|
|
12
|
+
//# sourceMappingURL=search-across-subreddits.d.ts.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { redditGet } from './client.js';
|
|
5
|
+
export const redditSearchAcrossSubreddits = tool({
|
|
6
|
+
description: 'Search Reddit for posts using a query with Reddit search operators (title:, author:, subreddit:, url:, site:, flair:). Supports sort, time windows, pagination via the after cursor, and restricting to posts (links).',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
redditToken: z.string().optional().describe('Injected by system; do not provide'),
|
|
9
|
+
searchQuery: z.string().describe('Search query; raw http(s) URLs are not allowed, use url: or site: operators'),
|
|
10
|
+
sort: z
|
|
11
|
+
.enum(['relevance', 'hot', 'new', 'top', 'comments'])
|
|
12
|
+
.optional()
|
|
13
|
+
.default('relevance')
|
|
14
|
+
.describe('Sort order for search results'),
|
|
15
|
+
timeFilter: z
|
|
16
|
+
.enum(['hour', 'day', 'week', 'month', 'year', 'all'])
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('Restrict results to a time period'),
|
|
19
|
+
limit: z.number().min(1).max(100).optional().default(5).describe('Max results to return (max 100)'),
|
|
20
|
+
after: z.string().optional().describe('Pagination cursor for the next page'),
|
|
21
|
+
before: z.string().optional().describe('Pagination cursor for the previous page'),
|
|
22
|
+
restrictSr: z
|
|
23
|
+
.boolean()
|
|
24
|
+
.optional()
|
|
25
|
+
.default(true)
|
|
26
|
+
.describe('Confine the search to posts and comments within subreddits'),
|
|
27
|
+
resultType: z
|
|
28
|
+
.array(z.enum(['sr', 'link', 'user']))
|
|
29
|
+
.optional()
|
|
30
|
+
.describe("Content types to include; must include 'link' for post results"),
|
|
31
|
+
}),
|
|
32
|
+
execute: async ({ redditToken, searchQuery, sort = 'relevance', timeFilter, limit = 5, after, before, restrictSr = true, resultType, }) => {
|
|
33
|
+
try {
|
|
34
|
+
if (!redditToken) {
|
|
35
|
+
return { error: 'Reddit token is required. Connect Reddit first.' };
|
|
36
|
+
}
|
|
37
|
+
return await redditGet(redditToken, '/search', {
|
|
38
|
+
q: searchQuery,
|
|
39
|
+
sort,
|
|
40
|
+
t: timeFilter,
|
|
41
|
+
limit,
|
|
42
|
+
after,
|
|
43
|
+
before,
|
|
44
|
+
restrict_sr: restrictSr,
|
|
45
|
+
type: resultType?.join(','),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error?.details !== undefined) {
|
|
50
|
+
return { error: 'Failed to search Reddit', details: error.details };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
error: 'Error searching Reddit',
|
|
54
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=search-across-subreddits.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const redditSearchSubreddits: import("ai").Tool<{
|
|
2
|
+
query: string;
|
|
3
|
+
sort: "activity" | "relevance";
|
|
4
|
+
limit: number;
|
|
5
|
+
count?: number | undefined;
|
|
6
|
+
show?: string | undefined;
|
|
7
|
+
before?: string | undefined;
|
|
8
|
+
after?: string | undefined;
|
|
9
|
+
redditToken?: string | undefined;
|
|
10
|
+
showUsers?: boolean | undefined;
|
|
11
|
+
}, any>;
|
|
12
|
+
//# sourceMappingURL=search-subreddits.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { redditGet } from './client.js';
|
|
5
|
+
export const redditSearchSubreddits = tool({
|
|
6
|
+
description: 'Search for subreddits by title and description to find communities matching a topic or keyword. Returns subscriber counts, descriptions, and metadata. Supports pagination via after/before cursors.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
redditToken: z.string().optional().describe('Injected by system; do not provide'),
|
|
9
|
+
query: z.string().describe('Search query for subreddit titles and descriptions'),
|
|
10
|
+
sort: z
|
|
11
|
+
.enum(['relevance', 'activity'])
|
|
12
|
+
.optional()
|
|
13
|
+
.default('relevance')
|
|
14
|
+
.describe('Sort order for search results'),
|
|
15
|
+
limit: z.number().min(1).max(100).optional().default(25).describe('Max subreddits to return (max 100)'),
|
|
16
|
+
after: z.string().optional().describe('Fullname cursor for the next page'),
|
|
17
|
+
before: z.string().optional().describe('Fullname cursor for the previous page'),
|
|
18
|
+
count: z.number().min(0).optional().describe('Number of items already seen (pagination)'),
|
|
19
|
+
show: z.string().optional().describe("Pass 'all' to include normally filtered items"),
|
|
20
|
+
showUsers: z.boolean().optional().describe('Include matching users in the results'),
|
|
21
|
+
}),
|
|
22
|
+
execute: async ({ redditToken, query, sort = 'relevance', limit = 25, after, before, count, show, showUsers }) => {
|
|
23
|
+
try {
|
|
24
|
+
if (!redditToken) {
|
|
25
|
+
return { error: 'Reddit token is required. Connect Reddit first.' };
|
|
26
|
+
}
|
|
27
|
+
return await redditGet(redditToken, '/subreddits/search', {
|
|
28
|
+
q: query,
|
|
29
|
+
sort,
|
|
30
|
+
limit,
|
|
31
|
+
after,
|
|
32
|
+
before,
|
|
33
|
+
count,
|
|
34
|
+
show,
|
|
35
|
+
show_users: showUsers,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error?.details !== undefined) {
|
|
40
|
+
return { error: 'Failed to search subreddits', details: error.details };
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
error: 'Error searching subreddits',
|
|
44
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=search-subreddits.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const redditToggleInboxReplies: import("ai").Tool<{
|
|
2
|
+
id: string;
|
|
3
|
+
state: boolean;
|
|
4
|
+
redditToken?: string | undefined;
|
|
5
|
+
}, {
|
|
6
|
+
error: string;
|
|
7
|
+
success?: undefined;
|
|
8
|
+
id?: undefined;
|
|
9
|
+
state?: undefined;
|
|
10
|
+
details?: undefined;
|
|
11
|
+
message?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
success: boolean;
|
|
14
|
+
id: string;
|
|
15
|
+
state: boolean;
|
|
16
|
+
error?: undefined;
|
|
17
|
+
details?: undefined;
|
|
18
|
+
message?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
error: string;
|
|
21
|
+
details: any;
|
|
22
|
+
success?: undefined;
|
|
23
|
+
id?: undefined;
|
|
24
|
+
state?: undefined;
|
|
25
|
+
message?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
error: string;
|
|
28
|
+
message: string;
|
|
29
|
+
success?: undefined;
|
|
30
|
+
id?: undefined;
|
|
31
|
+
state?: undefined;
|
|
32
|
+
details?: undefined;
|
|
33
|
+
}>;
|
|
34
|
+
//# sourceMappingURL=toggle-inbox-replies.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { redditPost } from './client.js';
|
|
5
|
+
export const redditToggleInboxReplies = tool({
|
|
6
|
+
description: 'Enable or disable inbox reply notifications for your own submission or comment. Provide the item fullname ID (t3_ for posts, t1_ for comments) and the desired state.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
redditToken: z.string().optional().describe('Injected by system; do not provide'),
|
|
9
|
+
id: z.string().describe("Fullname of your post or comment, e.g. 't3_abc123' or 't1_def456'"),
|
|
10
|
+
state: z.boolean().describe('True to receive inbox replies, false to mute them'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async ({ redditToken, id, state }) => {
|
|
13
|
+
try {
|
|
14
|
+
if (!redditToken) {
|
|
15
|
+
return { error: 'Reddit token is required. Connect Reddit first.' };
|
|
16
|
+
}
|
|
17
|
+
await redditPost(redditToken, '/api/sendreplies', { id, state });
|
|
18
|
+
return { success: true, id, state };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (error?.details !== undefined) {
|
|
22
|
+
return { error: 'Failed to toggle inbox replies', details: error.details };
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
error: 'Error toggling inbox replies',
|
|
26
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=toggle-inbox-replies.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const SVG = `<svg width="800px" height="800px" viewBox="0 -7 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
|
|
3
|
+
<title>Youtube-color</title>
|
|
4
|
+
<desc>Created with Sketch.</desc>
|
|
5
|
+
<defs>
|
|
6
|
+
|
|
7
|
+
</defs>
|
|
8
|
+
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
9
|
+
<g id="Color-" transform="translate(-200.000000, -368.000000)" fill="#CE1312">
|
|
10
|
+
<path d="M219.044,391.269916 L219.0425,377.687742 L232.0115,384.502244 L219.044,391.269916 Z M247.52,375.334163 C247.52,375.334163 247.0505,372.003199 245.612,370.536366 C243.7865,368.610299 241.7405,368.601235 240.803,368.489448 C234.086,368 224.0105,368 224.0105,368 L223.9895,368 C223.9895,368 213.914,368 207.197,368.489448 C206.258,368.601235 204.2135,368.610299 202.3865,370.536366 C200.948,372.003199 200.48,375.334163 200.48,375.334163 C200.48,375.334163 200,379.246723 200,383.157773 L200,386.82561 C200,390.73817 200.48,394.64922 200.48,394.64922 C200.48,394.64922 200.948,397.980184 202.3865,399.447016 C204.2135,401.373084 206.612,401.312658 207.68,401.513574 C211.52,401.885191 224,402 224,402 C224,402 234.086,401.984894 240.803,401.495446 C241.7405,401.382148 243.7865,401.373084 245.612,399.447016 C247.0505,397.980184 247.52,394.64922 247.52,394.64922 C247.52,394.64922 248,390.73817 248,386.82561 L248,383.157773 C248,379.246723 247.52,375.334163 247.52,375.334163 L247.52,375.334163 Z" id="Youtube">
|
|
11
|
+
|
|
12
|
+
</path>
|
|
13
|
+
</g>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>`;
|
|
16
|
+
export const YOUTUBE_ICON = {
|
|
17
|
+
kind: 'svg',
|
|
18
|
+
dataUri: `data:image/svg+xml;base64,${Buffer.from(SVG).toString('base64')}`,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { defineToolkit, defineTool } from '../../core/define.js';
|
|
2
|
+
import { inferToolScope } from '../../core/scope.js';
|
|
3
|
+
import { YOUTUBE_ICON } from './icon.js';
|
|
4
|
+
import { youtubeTools } from './tools/index.js';
|
|
5
|
+
export default defineToolkit({
|
|
6
|
+
id: 'youtube',
|
|
7
|
+
displayName: 'YouTube',
|
|
8
|
+
shortDescription: 'Search, upload, and manage YouTube videos, playlists, channels, and comments.',
|
|
9
|
+
category: 'Entertainment & Media',
|
|
10
|
+
icon: YOUTUBE_ICON,
|
|
11
|
+
auth: {
|
|
12
|
+
type: 'oauth2',
|
|
13
|
+
tokenField: 'youtubeToken',
|
|
14
|
+
provider: {
|
|
15
|
+
slug: 'youtube',
|
|
16
|
+
env: { clientId: 'YOUTUBE_CLIENT_ID', clientSecret: 'YOUTUBE_CLIENT_SECRET' },
|
|
17
|
+
authorizeUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
|
|
18
|
+
tokenUrl: 'https://oauth2.googleapis.com/token',
|
|
19
|
+
scopes: [
|
|
20
|
+
'https://www.googleapis.com/auth/youtube',
|
|
21
|
+
'https://www.googleapis.com/auth/youtube.force-ssl',
|
|
22
|
+
'https://www.googleapis.com/auth/youtube.readonly',
|
|
23
|
+
'https://www.googleapis.com/auth/youtube.upload',
|
|
24
|
+
'https://www.googleapis.com/auth/youtubepartner',
|
|
25
|
+
'https://www.googleapis.com/auth/youtubepartner-channel-audit',
|
|
26
|
+
],
|
|
27
|
+
exchangeStyle: 'form',
|
|
28
|
+
extraAuthParams: { access_type: 'offline', prompt: 'consent' },
|
|
29
|
+
connectDescription: 'Connect YouTube to search, upload, and manage videos, playlists, and channels.',
|
|
30
|
+
callbackPath: '/api/auth/youtube/callback',
|
|
31
|
+
stateCookie: 'youtube_oauth_state',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
allowedHosts: ['www.googleapis.com', 'youtube.googleapis.com'],
|
|
35
|
+
tools: youtubeTools.map((entry) => defineTool({
|
|
36
|
+
name: entry.name,
|
|
37
|
+
description: entry.description,
|
|
38
|
+
tool: entry.tool,
|
|
39
|
+
requiredAuth: entry.requiredAuth,
|
|
40
|
+
scope: entry.scope ?? inferToolScope(entry.name),
|
|
41
|
+
})),
|
|
42
|
+
meta: {
|
|
43
|
+
since: '0.0.8',
|
|
44
|
+
homepage: 'https://www.youtube.com',
|
|
45
|
+
docsUrl: 'https://developers.google.com/youtube/v3/docs',
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { youtubeRequest, youtubeTokenField } from './client.js';
|
|
5
|
+
export const addVideoToPlaylist = tool({
|
|
6
|
+
description: 'Adds a video to a playlist by inserting a playlist item. Use when organizing videos into playlists or building curated collections.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
youtubeToken: youtubeTokenField,
|
|
9
|
+
playlistId: z.string().describe('Playlist ID to add the video to (use listUserPlaylists to discover IDs)'),
|
|
10
|
+
videoId: z.string().describe('YouTube video ID to add (typically 11 characters)'),
|
|
11
|
+
position: z.number().min(0).optional().describe('Zero-based insert position; omit to append to the end'),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ youtubeToken, playlistId, videoId, position }) => {
|
|
14
|
+
try {
|
|
15
|
+
const snippet = {
|
|
16
|
+
playlistId,
|
|
17
|
+
resourceId: { kind: 'youtube#video', videoId },
|
|
18
|
+
};
|
|
19
|
+
if (position !== undefined)
|
|
20
|
+
snippet.position = position;
|
|
21
|
+
const result = await youtubeRequest(youtubeToken, '/playlistItems', {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
query: { part: 'snippet,contentDetails,status' },
|
|
24
|
+
body: { snippet },
|
|
25
|
+
});
|
|
26
|
+
if (!result.ok)
|
|
27
|
+
return { error: 'Failed to add video to playlist', details: result.error };
|
|
28
|
+
return result.data;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
return {
|
|
32
|
+
error: 'Error adding video to playlist',
|
|
33
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=add-video-to-playlist.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const YOUTUBE_API_BASE = "https://www.googleapis.com/youtube/v3";
|
|
3
|
+
export declare const YOUTUBE_UPLOAD_BASE = "https://www.googleapis.com/upload/youtube/v3";
|
|
4
|
+
export declare const youtubeTokenField: z.ZodString;
|
|
5
|
+
export declare const onBehalfOfContentOwnerField: z.ZodOptional<z.ZodString>;
|
|
6
|
+
export declare function buildQuery(params: Record<string, string | number | boolean | undefined>): string;
|
|
7
|
+
export declare function youtubeRequest(youtubeToken: string, path: string, options?: {
|
|
8
|
+
method?: string;
|
|
9
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
10
|
+
body?: unknown;
|
|
11
|
+
responseType?: 'json' | 'text';
|
|
12
|
+
}): Promise<{
|
|
13
|
+
ok: false;
|
|
14
|
+
error: any;
|
|
15
|
+
data?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
ok: true;
|
|
18
|
+
data: any;
|
|
19
|
+
error?: undefined;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function chunk<T>(items: T[], size: number): T[][];
|
|
22
|
+
export declare function extractHandle(input: string): string;
|
|
23
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export const YOUTUBE_API_BASE = 'https://www.googleapis.com/youtube/v3';
|
|
4
|
+
export const YOUTUBE_UPLOAD_BASE = 'https://www.googleapis.com/upload/youtube/v3';
|
|
5
|
+
export const youtubeTokenField = z.string().describe('The YouTube OAuth access token (Bearer)');
|
|
6
|
+
export const onBehalfOfContentOwnerField = z
|
|
7
|
+
.string()
|
|
8
|
+
.optional()
|
|
9
|
+
.describe('For content partners only: CMS user acting on behalf of this content owner');
|
|
10
|
+
export function buildQuery(params) {
|
|
11
|
+
const search = new URLSearchParams();
|
|
12
|
+
for (const [key, value] of Object.entries(params)) {
|
|
13
|
+
if (value !== undefined)
|
|
14
|
+
search.set(key, String(value));
|
|
15
|
+
}
|
|
16
|
+
const qs = search.toString();
|
|
17
|
+
return qs ? `?${qs}` : '';
|
|
18
|
+
}
|
|
19
|
+
export async function youtubeRequest(youtubeToken, path, options) {
|
|
20
|
+
const url = `${YOUTUBE_API_BASE}${path}${buildQuery(options?.query ?? {})}`;
|
|
21
|
+
const response = await fetch(url, {
|
|
22
|
+
method: options?.method ?? 'GET',
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: `Bearer ${youtubeToken}`,
|
|
25
|
+
...(options?.body !== undefined ? { 'Content-Type': 'application/json' } : {}),
|
|
26
|
+
},
|
|
27
|
+
body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,
|
|
28
|
+
});
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
const details = await response.json().catch(() => ({}));
|
|
31
|
+
return { ok: false, error: details };
|
|
32
|
+
}
|
|
33
|
+
if (response.status === 204) {
|
|
34
|
+
return { ok: true, data: { success: true } };
|
|
35
|
+
}
|
|
36
|
+
if (options?.responseType === 'text') {
|
|
37
|
+
return { ok: true, data: await response.text() };
|
|
38
|
+
}
|
|
39
|
+
const data = await response.json().catch(() => ({}));
|
|
40
|
+
return { ok: true, data };
|
|
41
|
+
}
|
|
42
|
+
export function chunk(items, size) {
|
|
43
|
+
const out = [];
|
|
44
|
+
for (let i = 0; i < items.length; i += size)
|
|
45
|
+
out.push(items.slice(i, i + size));
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
export function extractHandle(input) {
|
|
49
|
+
const trimmed = input.trim();
|
|
50
|
+
const urlMatch = trimmed.match(/youtube\.com\/@([^/?#\s]+)/i);
|
|
51
|
+
if (urlMatch)
|
|
52
|
+
return urlMatch[1];
|
|
53
|
+
return trimmed.startsWith('@') ? trimmed.slice(1) : trimmed;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const createChannelSection: import("ai").Tool<{
|
|
2
|
+
snippet: {
|
|
3
|
+
type: "allPlaylists" | "completedEvents" | "liveEvents" | "multipleChannels" | "multiplePlaylists" | "popularUploads" | "recentUploads" | "singlePlaylist" | "subscriptions" | "upcomingEvents";
|
|
4
|
+
title?: string | undefined;
|
|
5
|
+
position?: number | undefined;
|
|
6
|
+
};
|
|
7
|
+
youtubeToken: string;
|
|
8
|
+
contentDetails?: {
|
|
9
|
+
playlists?: string[] | undefined;
|
|
10
|
+
channels?: string[] | undefined;
|
|
11
|
+
} | undefined;
|
|
12
|
+
}, any>;
|
|
13
|
+
//# sourceMappingURL=create-channel-section.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { youtubeRequest, youtubeTokenField } from './client.js';
|
|
5
|
+
const sectionType = z.enum(['allPlaylists', 'completedEvents', 'liveEvents', 'multipleChannels', 'multiplePlaylists', 'popularUploads', 'recentUploads', 'singlePlaylist', 'subscriptions', 'upcomingEvents']);
|
|
6
|
+
export const createChannelSection = tool({
|
|
7
|
+
description: 'Creates a channel section (featured playlists, recent uploads, featured channels) on the authenticated user channel.',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
youtubeToken: youtubeTokenField,
|
|
10
|
+
snippet: z.object({
|
|
11
|
+
type: sectionType.describe('Section type (required)'),
|
|
12
|
+
title: z.string().max(100).optional().describe('Title; only for multiplePlaylists/multipleChannels, no angle brackets'),
|
|
13
|
+
position: z.number().min(0).optional().describe('Zero-based position; omit to append'),
|
|
14
|
+
}),
|
|
15
|
+
contentDetails: z.object({
|
|
16
|
+
playlists: z.array(z.string()).optional().describe('Playlist IDs (exactly one for singlePlaylist)'),
|
|
17
|
+
channels: z.array(z.string()).optional().describe('Channel IDs for multipleChannels (not your own)'),
|
|
18
|
+
}).optional(),
|
|
19
|
+
}),
|
|
20
|
+
execute: async ({ youtubeToken, snippet, contentDetails }) => {
|
|
21
|
+
try {
|
|
22
|
+
const body = { snippet };
|
|
23
|
+
if (contentDetails)
|
|
24
|
+
body.contentDetails = contentDetails;
|
|
25
|
+
const result = await youtubeRequest(youtubeToken, '/channelSections', {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
query: { part: 'snippet,contentDetails' },
|
|
28
|
+
body,
|
|
29
|
+
});
|
|
30
|
+
if (!result.ok)
|
|
31
|
+
return { error: 'Failed to create channel section', details: result.error };
|
|
32
|
+
return result.data;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return {
|
|
36
|
+
error: 'Error creating channel section',
|
|
37
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=create-channel-section.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { youtubeRequest, youtubeTokenField } from './client.js';
|
|
5
|
+
export const createCommentReply = tool({
|
|
6
|
+
description: 'Replies to an existing comment. Use when responding to users or engaging in video conversations.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
youtubeToken: youtubeTokenField,
|
|
9
|
+
parentId: z.string().describe('ID of the parent comment to reply to'),
|
|
10
|
+
textOriginal: z.string().min(1).describe('Reply text (cannot be empty)'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async ({ youtubeToken, parentId, textOriginal }) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await youtubeRequest(youtubeToken, '/comments', {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
query: { part: 'snippet' },
|
|
17
|
+
body: { snippet: { parentId, textOriginal } },
|
|
18
|
+
});
|
|
19
|
+
if (!result.ok)
|
|
20
|
+
return { error: 'Failed to create comment reply', details: result.error };
|
|
21
|
+
return result.data;
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return {
|
|
25
|
+
error: 'Error creating comment reply',
|
|
26
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=create-comment-reply.js.map
|