mastra-scavio 0.7.0 → 0.7.2

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 CHANGED
@@ -199,16 +199,15 @@ Most calls cost 1 credit. Every tool states its own cost in its description, so
199
199
  | All other Kuaishou tools | 1 |
200
200
  | `scavioYoutubeSearch`, `scavioYoutubeShorts` | 2 |
201
201
  | `scavioYoutubeStreams` | 3 |
202
- | `scavioYoutubeTranscript` | 8 |
202
+ | `scavioYoutubeTranscript` | 5 |
203
203
  | All other YouTube tools | 1 |
204
204
  | `scavioLinkedinPerson`, `scavioLinkedinPersonAbout`, `scavioLinkedinCompany`, `scavioLinkedinPost` | 1 |
205
205
  | `scavioLinkedinPersonPosts`, `scavioLinkedinCompanyPosts`, `scavioLinkedinSearchJobs`, `scavioLinkedinPostComments` | 10 |
206
206
  | `scavioLinkedinJob` | 30 |
207
- | `scavioInstagramUserPosts` | 2 |
208
- | `scavioInstagramPost`, `scavioInstagramCommentReplies` | 8 |
209
- | All other Instagram tools | 10 |
207
+ | `scavioInstagramProfile`, `scavioInstagramUserReels`, `scavioInstagramUserTagged` | 1 |
208
+ | All other Instagram tools | 2 |
210
209
 
211
- Instagram is priced per endpoint rather than flat, on three tiers: 10 where both upstream legs are billed, 8 for the two calls with no fallback leg to hedge (`scavioInstagramPost`, `scavioInstagramCommentReplies`), and 2 for `scavioInstagramUserPosts`, whose cheap leg is the primary one. Prefer `scavioInstagramUserPosts` over `scavioInstagramUserReels` when the timeline will do — same shape of data, one fifth of the cost. Paginated tools bill per page. See [scavio.dev/docs](https://scavio.dev/docs).
210
+ Instagram is priced per endpoint rather than flat: profile, reels and tagged 1 credit (reels and tagged 2 the first time a username is looked up), every other Instagram tool 2, and the user and hashtag searches 8 when called with a `cursor`. Any Instagram request can cost up to 10 when it needs extra work; `credits_used` in the response is the exact charge. Paginated tools bill per page. See [scavio.dev/docs](https://scavio.dev/docs).
212
211
 
213
212
  ### These surfaces are priced by the request body
214
213
 
package/dist/index.cjs CHANGED
@@ -794,8 +794,8 @@ var youtubeToolSpecs = [
794
794
  id: "scavio-youtube-transcript",
795
795
  platform: "youtube",
796
796
  endpoint: "/api/v1/youtube/transcript",
797
- credits: 8,
798
- description: 'Fetch a YouTube video transcript via Scavio (8 credits - the most expensive YouTube tool, call it once and cache the text). Returns the whole transcript as one string in data.content, plain text by default or SRT with format "srt".',
797
+ credits: 5,
798
+ description: 'Fetch a YouTube video transcript via Scavio (5 credits - the most expensive YouTube tool, call it once and cache the text). Returns the whole transcript as one string in data.content, plain text by default or SRT with format "srt".',
799
799
  inputSchema: import_zod4.z.object({
800
800
  video_id: videoId,
801
801
  language: import_zod4.z.string().optional().describe('Caption language code. Defaults to "en".'),
@@ -1461,8 +1461,8 @@ var instagramToolSpecs = [
1461
1461
  id: "scavio-instagram-profile",
1462
1462
  platform: "instagram",
1463
1463
  endpoint: "/api/v1/instagram/profile",
1464
- credits: 10,
1465
- description: "Fetch an Instagram profile via Scavio (10 credits). The profile is inlined at the root of data - pk, username, full_name, biography, follower_count, following_count, is_private, is_verified, profile_pic_url - with no data.user wrapper. Provide username or user_id.",
1464
+ credits: 1,
1465
+ description: "Fetch an Instagram profile via Scavio (1 credit). The profile is inlined at the root of data - pk, username, full_name, biography, follower_count, following_count, is_private, is_verified, profile_pic_url - with no data.user wrapper. Provide username or user_id.",
1466
1466
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId }),
1467
1467
  call: (client, input) => client.instagram.profile(input)
1468
1468
  }),
@@ -1472,7 +1472,7 @@ var instagramToolSpecs = [
1472
1472
  platform: "instagram",
1473
1473
  endpoint: "/api/v1/instagram/user/posts",
1474
1474
  credits: 2,
1475
- description: "Fetch an account's Instagram timeline posts via Scavio (2 credits - the cheapest Instagram tool by 5x, because its primary upstream leg is the cheap one). Items usually arrive at data.data with data.pagination_token; a fallback leg answers with data.items and next_max_id instead, so read both. Prefer this over the reels and tagged tools when you just need recent media.",
1475
+ description: "Fetch an account's Instagram timeline posts via Scavio (2 credits per page). Items arrive at data.data; pass data.pagination_token as cursor for the next page. Use it when you need the whole timeline; the reels tool is cheaper (1 credit) when reels alone will do.",
1476
1476
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId, count: feedCount, cursor: cursor5 }),
1477
1477
  call: (client, input) => client.instagram.userPosts(input)
1478
1478
  }),
@@ -1481,8 +1481,8 @@ var instagramToolSpecs = [
1481
1481
  id: "scavio-instagram-user-reels",
1482
1482
  platform: "instagram",
1483
1483
  endpoint: "/api/v1/instagram/user/reels",
1484
- credits: 10,
1485
- description: "Fetch an account's Instagram reels via Scavio (10 credits). Returns data.items with data.next_max_id. Five times the price of scavio-instagram-user-posts, so use it only when you specifically need reels rather than the timeline.",
1484
+ credits: 1,
1485
+ description: "Fetch an account's Instagram reels via Scavio (1 credit; 2 the first time a username is looked up). Returns data.items with data.next_max_id.",
1486
1486
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId, count: feedCount, cursor: cursor5 }),
1487
1487
  call: (client, input) => client.instagram.userReels(input)
1488
1488
  }),
@@ -1491,8 +1491,8 @@ var instagramToolSpecs = [
1491
1491
  id: "scavio-instagram-user-tagged",
1492
1492
  platform: "instagram",
1493
1493
  endpoint: "/api/v1/instagram/user/tagged",
1494
- credits: 10,
1495
- description: "Fetch the posts an Instagram account is tagged in via Scavio (10 credits). Returns data.items with data.more_available and data.next_max_id. This is other accounts posting about them - use it for brand mentions and creator collaborations, not for their own feed.",
1494
+ credits: 1,
1495
+ description: "Fetch the posts an Instagram account is tagged in via Scavio (1 credit; 2 the first time a username is looked up). Returns data.items with data.next_max_id. Video items carry video_url null - fetch the video with scavio-instagram-post. This is other accounts posting about them - use it for brand mentions and creator collaborations, not for their own feed.",
1496
1496
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId, count: feedCount, cursor: cursor5 }),
1497
1497
  call: (client, input) => client.instagram.userTagged(input)
1498
1498
  }),
@@ -1501,8 +1501,8 @@ var instagramToolSpecs = [
1501
1501
  id: "scavio-instagram-user-stories",
1502
1502
  platform: "instagram",
1503
1503
  endpoint: "/api/v1/instagram/user/stories",
1504
- credits: 10,
1505
- description: "Fetch an Instagram account's currently active stories via Scavio (10 credits). Returns data.items and data.reels. Stories expire after 24 hours and there is no pagination here - no count, no cursor. Provide username or user_id.",
1504
+ credits: 2,
1505
+ description: "Fetch an Instagram account's currently active stories via Scavio (2 credits). Returns data.items and data.reels. Stories expire after 24 hours and there is no pagination here - no count, no cursor. Provide username or user_id.",
1506
1506
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId }),
1507
1507
  call: (client, input) => client.instagram.userStories(input)
1508
1508
  }),
@@ -1511,8 +1511,8 @@ var instagramToolSpecs = [
1511
1511
  id: "scavio-instagram-post",
1512
1512
  platform: "instagram",
1513
1513
  endpoint: "/api/v1/instagram/post",
1514
- credits: 8,
1515
- description: "Fetch one Instagram post via Scavio (8 credits - cheaper than most Instagram tools because there is no fallback leg to hedge). The post is data.items[0]: caption, like_count, comment_count, media_type (1 image, 2 video, 8 carousel), video_versions[].url for video and image_versions2.candidates for the cover. It also carries the media_id that scavio-instagram-comment-replies requires. Provide url, media_id or shortcode.",
1514
+ credits: 2,
1515
+ description: "Fetch one Instagram post via Scavio (2 credits). The post is data.items[0]: caption, like_count, comment_count, media_type (1 image, 2 video, 8 carousel), video_versions[].url for video and image_versions2.candidates for the cover. It also carries the media_id that scavio-instagram-comment-replies requires. Provide url, media_id or shortcode.",
1516
1516
  inputSchema: import_zod8.z.object({
1517
1517
  url: import_zod8.z.string().optional().describe("Full Instagram post URL."),
1518
1518
  media_id: import_zod8.z.string().optional().describe("Instagram media id. Highest precedence - url and shortcode are ignored with it."),
@@ -1525,13 +1525,13 @@ var instagramToolSpecs = [
1525
1525
  id: "scavio-instagram-post-comments",
1526
1526
  platform: "instagram",
1527
1527
  endpoint: "/api/v1/instagram/post/comments",
1528
- credits: 10,
1529
- description: "Fetch the comments on an Instagram post via Scavio (10 credits). Returns data.comments with data.comment_count, data.has_more_comments and data.next_min_id. Identify the post by shortcode or url ONLY - media_id is not accepted here, unlike the post and replies tools.",
1528
+ credits: 2,
1529
+ description: "Fetch the comments on an Instagram post via Scavio (2 credits per page). Returns data.comments with data.comment_count, data.has_more_comments and data.next_min_id. Identify the post by shortcode or url ONLY - media_id is not accepted here, unlike the post and replies tools.",
1530
1530
  inputSchema: import_zod8.z.object({
1531
1531
  shortcode: import_zod8.z.string().optional().describe("Shortcode from the post URL, e.g. 'DUajw4YkorV'."),
1532
1532
  url: import_zod8.z.string().optional().describe("Full Instagram post URL. It is parsed down to the shortcode, so /p/, /reel/ and /tv/ links work and others fail."),
1533
1533
  cursor: cursor5,
1534
- sort_order: import_zod8.z.enum(["popular", "newest"]).optional().describe("popular (default) or newest. A fallback leg can silently ignore it.")
1534
+ sort_order: import_zod8.z.enum(["popular", "newest"]).optional().describe("popular (default) or newest.")
1535
1535
  }),
1536
1536
  call: (client, input) => client.instagram.postComments(input)
1537
1537
  }),
@@ -1540,8 +1540,8 @@ var instagramToolSpecs = [
1540
1540
  id: "scavio-instagram-comment-replies",
1541
1541
  platform: "instagram",
1542
1542
  endpoint: "/api/v1/instagram/post/comments/replies",
1543
- credits: 8,
1544
- description: "Fetch the replies to one Instagram comment via Scavio (8 credits - no fallback leg to hedge). Returns data.child_comments with data.next_min_child_id. Requires media_id plus comment_id: the comments tool does not return a media_id, so resolve it with scavio-instagram-post first. A shortcode or url will not work here.",
1543
+ credits: 2,
1544
+ description: "Fetch the replies to one Instagram comment via Scavio (2 credits). Returns data.child_comments; when data.has_more_tail_child_comments is true, pass data.next_min_child_cursor as cursor. Requires media_id plus comment_id: the comments tool does not return a media_id, so resolve it with scavio-instagram-post first. A shortcode or url will not work here.",
1545
1545
  inputSchema: import_zod8.z.object({
1546
1546
  media_id: import_zod8.z.string().describe("Instagram media id, from scavio-instagram-post."),
1547
1547
  comment_id: import_zod8.z.string().describe("Parent comment id, from scavio-instagram-post-comments."),
@@ -1554,8 +1554,8 @@ var instagramToolSpecs = [
1554
1554
  id: "scavio-instagram-search-users",
1555
1555
  platform: "instagram",
1556
1556
  endpoint: "/api/v1/instagram/search/users",
1557
- credits: 10,
1558
- description: "Search Instagram accounts by keyword via Scavio (10 credits). Returns data.users with data.rank_token. Page size is not controllable - there is no count - and a fallback leg can reset paging to page 1, so treat deep paging as unreliable.",
1557
+ credits: 2,
1558
+ description: "Search Instagram accounts by keyword via Scavio (2 credits; a request with a cursor costs 8). Returns data.users with data.rank_token. Page size is not controllable - there is no count - so the first page is usually the one to use.",
1559
1559
  inputSchema: import_zod8.z.object({ keyword: keyword2, cursor: cursor5 }),
1560
1560
  call: (client, input) => client.instagram.searchUsers(input)
1561
1561
  }),
@@ -1564,8 +1564,8 @@ var instagramToolSpecs = [
1564
1564
  id: "scavio-instagram-search-hashtags",
1565
1565
  platform: "instagram",
1566
1566
  endpoint: "/api/v1/instagram/search/hashtags",
1567
- credits: 10,
1568
- description: "Search Instagram hashtags by keyword via Scavio (10 credits). Returns data.hashtags with media counts and data.rank_token. Same no-count, unreliable-deep-paging caveat as the user search.",
1567
+ credits: 2,
1568
+ description: "Search Instagram hashtags by keyword via Scavio (2 credits; a request with a cursor costs 8). Returns data.hashtags with media counts and data.rank_token. No count parameter, same as the user search.",
1569
1569
  inputSchema: import_zod8.z.object({ keyword: keyword2, cursor: cursor5 }),
1570
1570
  call: (client, input) => client.instagram.searchHashtags(input)
1571
1571
  }),
@@ -1574,8 +1574,8 @@ var instagramToolSpecs = [
1574
1574
  id: "scavio-instagram-user-followers",
1575
1575
  platform: "instagram",
1576
1576
  endpoint: "/api/v1/instagram/user/followers",
1577
- credits: 10,
1578
- description: "List an Instagram account's followers via Scavio (10 credits). Returns data.users with data.has_more; the followers response often carries no continuation id, so paging can end earlier than followings. Each page costs another 10 credits - cap how deep you walk.",
1577
+ credits: 2,
1578
+ description: "List an Instagram account's followers via Scavio (2 credits per page). Returns data.users with data.has_more, and data.next_max_id when there is a next page. Each page costs another 2 credits - cap how deep you walk.",
1579
1579
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId, count: followCount, cursor: cursor5 }),
1580
1580
  call: (client, input) => client.instagram.userFollowers(input)
1581
1581
  }),
@@ -1584,8 +1584,8 @@ var instagramToolSpecs = [
1584
1584
  id: "scavio-instagram-user-followings",
1585
1585
  platform: "instagram",
1586
1586
  endpoint: "/api/v1/instagram/user/followings",
1587
- credits: 10,
1588
- description: "List the accounts an Instagram user follows via Scavio (10 credits). Returns data.users with data.next_max_id and data.has_more. The public name is followings (plural), matching TikTok.",
1587
+ credits: 2,
1588
+ description: "List the accounts an Instagram user follows via Scavio (2 credits per page). Returns data.users with data.next_max_id and data.has_more. The public name is followings (plural), matching TikTok.",
1589
1589
  inputSchema: import_zod8.z.object({ username: username2, user_id: userId, count: followCount, cursor: cursor5 }),
1590
1590
  call: (client, input) => client.instagram.userFollowings(input)
1591
1591
  })