socialdatax-skills 0.2.42 → 0.2.44
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
|
@@ -89,7 +89,7 @@ Common search phrases for this skill package:
|
|
|
89
89
|
- Reserved future SocialDataX namespace names for existing platform listings without draft files yet: `com.socialdatax/kuaishou-insights`, `com.socialdatax/bilibili-insights`, `com.socialdatax/weibo-insights`, `com.socialdatax/wechat-channels-insights`, `com.socialdatax/zhihu-insights`, `com.socialdatax/instagram-insights`, `com.socialdatax/x-insights`, `com.socialdatax/youtube-insights`, and `com.socialdatax/tiktok-insights`.
|
|
90
90
|
- Hosted endpoint without a repo-tracked standalone listing: Sensitive Words Check.
|
|
91
91
|
- Unified MCP registry name: none; this package installs skills and calls explicit hosted MCP entries.
|
|
92
|
-
- Current public capability version: `0.2.
|
|
92
|
+
- Current public capability version: `0.2.44`
|
|
93
93
|
|
|
94
94
|
## Direct CLI
|
|
95
95
|
|
|
@@ -169,6 +169,7 @@ npx -y socialdatax-skills@latest weibo search --keyword "露营" --pretty
|
|
|
169
169
|
npx -y socialdatax-skills@latest weibo detail --post-id "<post_id>" --pretty
|
|
170
170
|
npx -y socialdatax-skills@latest weibo detail --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
171
171
|
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --pretty
|
|
172
|
+
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --sort-type time_descending --pretty
|
|
172
173
|
npx -y socialdatax-skills@latest weibo comments --post-id "<post_id>" --all --include-replies --pretty
|
|
173
174
|
npx -y socialdatax-skills@latest weibo comments --post-url "<weibo_post_url_or_share_text>" --pretty
|
|
174
175
|
npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-id "<comment_id>" --pretty
|
|
@@ -193,6 +194,7 @@ npx -y socialdatax-skills@latest wechat comments --object-id "<object_id>" --obj
|
|
|
193
194
|
npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty
|
|
194
195
|
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty
|
|
195
196
|
npx -y socialdatax-skills@latest wechat user-info --user-id "<v2_finder_user_id>" --pretty
|
|
197
|
+
npx -y socialdatax-skills@latest wechat user-info --url "<wechat_work_url_or_share_text>" --pretty
|
|
196
198
|
npx -y socialdatax-skills@latest wechat user-posts --user-id "<v2_finder_user_id>" --pretty
|
|
197
199
|
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_work_url_or_share_text>" --pretty
|
|
198
200
|
npx -y socialdatax-skills@latest wechat transcript --url "<wechat_video_url_or_share_text>" --pretty
|
|
@@ -277,7 +279,7 @@ YouTube reply pagination starts from the returned first-level comment `reply_tok
|
|
|
277
279
|
XHS comments accept optional `--sort-type` values: `default`,
|
|
278
280
|
`time_descending`, and `like_count_descending`; omit it for the platform
|
|
279
281
|
default comment order.
|
|
280
|
-
Bilibili and YouTube comments accept optional `--sort-type` values: `hot` and
|
|
282
|
+
Bilibili, Weibo, and YouTube comments accept optional `--sort-type` values: `hot` and
|
|
281
283
|
`time_descending`; Zhihu comments accept `default` and `time_descending`.
|
|
282
284
|
Omit comment sort values for the platform default order.
|
|
283
285
|
|
|
@@ -529,7 +531,7 @@ Current Weibo workflows include:
|
|
|
529
531
|
- Fetch the current Weibo / 微博 hot-search list.
|
|
530
532
|
- Search related Weibo posts by keyword.
|
|
531
533
|
- Resolve a Weibo post URL, short link, share text, or post_id into structured post details.
|
|
532
|
-
- Fetch paginated first-level comments for comment analysis
|
|
534
|
+
- Fetch paginated first-level comments for comment analysis, optionally sorted by `hot` or `time_descending`.
|
|
533
535
|
- Fetch paginated replies under a first-level comment.
|
|
534
536
|
- Continue Weibo list pagination only when `next_page_token` is non-empty; an empty string means there are no more results to request.
|
|
535
537
|
- Read Weibo creator profile data from a user profile link or user_id.
|
|
@@ -705,8 +707,8 @@ Current Sensitive Words Check workflows include:
|
|
|
705
707
|
| `weibo_search_posts` | Search Weibo posts by keyword with optional `page_token` continuation; do not pass `page`. |
|
|
706
708
|
| `weibo_get_post_detail_by_post_id` | Fetch structured Weibo post details when the caller already has a post_id. |
|
|
707
709
|
| `weibo_get_post_detail_by_post_url` | Resolve a Weibo post URL, short link, or share text into structured post details. |
|
|
708
|
-
| `weibo_get_post_comments_by_post_id` | Fetch paginated first-level comments
|
|
709
|
-
| `weibo_get_post_comments_by_post_url` | Fetch paginated first-level comments
|
|
710
|
+
| `weibo_get_post_comments_by_post_id` | Fetch paginated first-level comments by post_id with optional `sort_type` (`hot` or `time_descending`). |
|
|
711
|
+
| `weibo_get_post_comments_by_post_url` | Fetch paginated first-level comments from a Weibo post URL, short link, or share text with optional `sort_type` (`hot` or `time_descending`). |
|
|
710
712
|
| `weibo_get_post_comment_replies_by_comment_id` | Fetch paginated replies under a first-level comment by post_id and comment_id. |
|
|
711
713
|
| `weibo_get_post_liker_list_by_post_id` | Fetch paginated users who liked a Weibo post by post_id. |
|
|
712
714
|
| `weibo_get_post_liker_list_by_post_url` | Fetch paginated users who liked a Weibo post from a post page link, short link, or share text. |
|
package/cli.mjs
CHANGED
|
@@ -22,7 +22,7 @@ import { decryptWechatMediaCommand } from "./lib/media/wechat-decrypt.mjs";
|
|
|
22
22
|
export { decryptWechatMediaCommand };
|
|
23
23
|
|
|
24
24
|
const PACKAGE_NAME = "socialdatax-skills";
|
|
25
|
-
const PACKAGE_VERSION = "0.2.
|
|
25
|
+
const PACKAGE_VERSION = "0.2.44";
|
|
26
26
|
const PACKAGE_SPEC = `${PACKAGE_NAME}@latest`;
|
|
27
27
|
const LOG_PREFIX = `[${PACKAGE_NAME}]`;
|
|
28
28
|
const MIN_NODE_VERSION = "20.18.1";
|
|
@@ -702,6 +702,7 @@ const WEIBO_DIRECT_ACTION_OPTIONS = {
|
|
|
702
702
|
"all",
|
|
703
703
|
"maxItems",
|
|
704
704
|
"includeReplies",
|
|
705
|
+
"sortType",
|
|
705
706
|
"pretty",
|
|
706
707
|
],
|
|
707
708
|
replies: [
|
|
@@ -739,6 +740,7 @@ const WEIBO_OPTION_DISPLAY_NAMES = {
|
|
|
739
740
|
sinceDays: "--since-days",
|
|
740
741
|
all: "--all",
|
|
741
742
|
includeReplies: "--include-replies",
|
|
743
|
+
sortType: "--sort-type",
|
|
742
744
|
postId: "--post-id",
|
|
743
745
|
postUrl: "--post-url",
|
|
744
746
|
commentId: "--comment-id",
|
|
@@ -751,6 +753,7 @@ const WEIBO_OPTION_DISPLAY_NAMES = {
|
|
|
751
753
|
outputDir: "--output-dir",
|
|
752
754
|
proxy: "--proxy",
|
|
753
755
|
};
|
|
756
|
+
const WEIBO_COMMENT_SORT_TYPES = ["hot", "time_descending"];
|
|
754
757
|
const WECHAT_DIRECT_ACTION_OPTIONS = {
|
|
755
758
|
"hot-search": ["pretty"],
|
|
756
759
|
search: [
|
|
@@ -788,7 +791,7 @@ const WECHAT_DIRECT_ACTION_OPTIONS = {
|
|
|
788
791
|
"includeReplies",
|
|
789
792
|
"pretty",
|
|
790
793
|
],
|
|
791
|
-
"user-info": ["userId", "pretty"],
|
|
794
|
+
"user-info": ["userId", "url", "pretty"],
|
|
792
795
|
"user-posts": [
|
|
793
796
|
"userId",
|
|
794
797
|
"url",
|
|
@@ -1251,11 +1254,13 @@ const PLATFORMS = {
|
|
|
1251
1254
|
},
|
|
1252
1255
|
{
|
|
1253
1256
|
name: "weibo_get_post_comments_by_post_id",
|
|
1254
|
-
description:
|
|
1257
|
+
description:
|
|
1258
|
+
"Fetch paginated first-level comments by post_id with optional hot or newest-first sorting.",
|
|
1255
1259
|
},
|
|
1256
1260
|
{
|
|
1257
1261
|
name: "weibo_get_post_comments_by_post_url",
|
|
1258
|
-
description:
|
|
1262
|
+
description:
|
|
1263
|
+
"Fetch paginated first-level comments from a Weibo post URL, short link, or share text with optional hot or newest-first sorting.",
|
|
1259
1264
|
},
|
|
1260
1265
|
{
|
|
1261
1266
|
name: "weibo_get_post_comment_replies_by_comment_id",
|
|
@@ -3077,6 +3082,9 @@ function printHelp() {
|
|
|
3077
3082
|
console.log(` npx -y ${PACKAGE_SPEC} wechat user-info --user-id "<v2_finder_user_id>" --pretty`);
|
|
3078
3083
|
console.log(" Call the WeChat Channels / 视频号 creator profile tool with a v2_...@finder user_id.");
|
|
3079
3084
|
console.log("");
|
|
3085
|
+
console.log(` npx -y ${PACKAGE_SPEC} wechat user-info --url "<wechat_work_url_or_share_text>" --pretty`);
|
|
3086
|
+
console.log(" Resolve a WeChat Channels / 视频号 video or image-post link or share text into creator profile data.");
|
|
3087
|
+
console.log("");
|
|
3080
3088
|
console.log(` npx -y ${PACKAGE_SPEC} wechat user-posts --user-id "<v2_finder_user_id>" --pretty`);
|
|
3081
3089
|
console.log(" Call the WeChat Channels / 视频号 creator videos and image posts tool with a v2_...@finder user_id.");
|
|
3082
3090
|
console.log("");
|
|
@@ -3354,7 +3362,7 @@ function printHelp() {
|
|
|
3354
3362
|
console.log(" --publish-time-range <all|day|week|month|three_months|half_year|year>");
|
|
3355
3363
|
console.log(" Zhihu search publish-time filter; omit for no filter.");
|
|
3356
3364
|
console.log(" --sort-type <hot|time_descending>");
|
|
3357
|
-
console.log(" X search
|
|
3365
|
+
console.log(" X search, Weibo comments, and YouTube comments sort; omit for default sort.");
|
|
3358
3366
|
console.log(" --sort-type <general|time_descending|view_count_descending|rating>");
|
|
3359
3367
|
console.log(" YouTube search sort; omit for default sort.");
|
|
3360
3368
|
console.log(" --video-type <all|video|movie>");
|
|
@@ -4400,6 +4408,7 @@ function buildWeiboOperation(action, options) {
|
|
|
4400
4408
|
idDisplay: "--post-id",
|
|
4401
4409
|
urlDisplay: "--post-url",
|
|
4402
4410
|
pageToken: options.pageToken,
|
|
4411
|
+
extraArguments: buildWeiboCommentsExtraArguments(options),
|
|
4403
4412
|
}),
|
|
4404
4413
|
PLATFORMS.weibo
|
|
4405
4414
|
);
|
|
@@ -4531,12 +4540,15 @@ function buildWechatOperation(action, options) {
|
|
|
4531
4540
|
case "user-info":
|
|
4532
4541
|
return buildDirectOperation(
|
|
4533
4542
|
"user-info",
|
|
4534
|
-
|
|
4543
|
+
buildOneOfCall(options, {
|
|
4535
4544
|
idOption: "userId",
|
|
4536
|
-
|
|
4545
|
+
urlOption: "url",
|
|
4546
|
+
idTool: "wechat_get_user_info_by_user_id",
|
|
4547
|
+
urlTool: "wechat_get_user_info_by_url",
|
|
4537
4548
|
idArgument: "user_id",
|
|
4549
|
+
urlArgument: "url",
|
|
4538
4550
|
idDisplay: "--user-id",
|
|
4539
|
-
|
|
4551
|
+
urlDisplay: "--url",
|
|
4540
4552
|
}),
|
|
4541
4553
|
PLATFORMS.wechat
|
|
4542
4554
|
);
|
|
@@ -5129,6 +5141,19 @@ function buildXhsCommentsExtraArguments(options) {
|
|
|
5129
5141
|
return toolArguments;
|
|
5130
5142
|
}
|
|
5131
5143
|
|
|
5144
|
+
function buildWeiboCommentsExtraArguments(options) {
|
|
5145
|
+
const toolArguments = {};
|
|
5146
|
+
if (options.sortType !== undefined) {
|
|
5147
|
+
toolArguments.sort_type = parseAllowedStringOption(
|
|
5148
|
+
options.sortType,
|
|
5149
|
+
"--sort-type",
|
|
5150
|
+
WEIBO_COMMENT_SORT_TYPES,
|
|
5151
|
+
WEIBO_COMMENT_SORT_TYPES.join(", ")
|
|
5152
|
+
);
|
|
5153
|
+
}
|
|
5154
|
+
return toolArguments;
|
|
5155
|
+
}
|
|
5156
|
+
|
|
5132
5157
|
function buildTranscriptCall(
|
|
5133
5158
|
options,
|
|
5134
5159
|
{
|
package/package.json
CHANGED
|
@@ -242,6 +242,7 @@ Optional arguments:
|
|
|
242
242
|
- TikTok `--post-id <post_id>` or `--url <tiktok_post_url_or_share_text>`: use for first-level comments; replies require `--post-id <post_id>` and `--comment-id <comment_id>`.
|
|
243
243
|
- Weibo `--post-id <post_id>`: preferred when the Weibo post ID is already known and should anchor the comment thread.
|
|
244
244
|
- Weibo `--post-url <weibo_post_url_or_share_text>`: use for a Weibo post URL, short link, or share text for first-level comments.
|
|
245
|
+
- Weibo comments `--sort-type <hot|time_descending>`: optional first-level comment sort order; omit it for the default `hot` order, and keep it unchanged when continuing with `--page-token`.
|
|
245
246
|
- WeChat Channels / 视频号 `--object-id <object_id>` and `--object-nonce-id <object_nonce_id>`: use together when both values are already known and should anchor the comment thread.
|
|
246
247
|
- WeChat Channels / 视频号 `--url <wechat_video_url_or_share_text>`: use for a WeChat Channels video link or share text for first-level comments.
|
|
247
248
|
- `--source-client socialdatax-skills --source-platform npm --source-skill media-comments`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
@@ -300,8 +301,8 @@ If MCP tools are already available in the current agent, use one of these tools:
|
|
|
300
301
|
- `tiktok_get_post_comments_by_post_id`: use when the TikTok post_id is known.
|
|
301
302
|
- `tiktok_get_post_comments_by_url`: use for TikTok post URLs or share text.
|
|
302
303
|
- `tiktok_get_post_comment_replies`: use when the TikTok post_id and first-level comment ID are known.
|
|
303
|
-
- `weibo_get_post_comments_by_post_id`: use when the post_id is known
|
|
304
|
-
- `weibo_get_post_comments_by_post_url`: use for Weibo post URLs, short links, or share text
|
|
304
|
+
- `weibo_get_post_comments_by_post_id`: use when the post_id is known; optional `sort_type` accepts `hot` or `time_descending`.
|
|
305
|
+
- `weibo_get_post_comments_by_post_url`: use for Weibo post URLs, short links, or share text; optional `sort_type` accepts `hot` or `time_descending`.
|
|
305
306
|
- `weibo_get_post_comment_replies_by_comment_id`: use when the post_id and first-level comment ID are known.
|
|
306
307
|
- For Weibo comments and replies, continue only when `next_page_token` is non-empty; an empty string means there are no more comments or replies to request.
|
|
307
308
|
- `wechat_get_video_comments_by_object_id`: use when both object_id and object_nonce_id are known.
|
|
@@ -142,6 +142,10 @@ npx -y socialdatax-skills@latest weibo user-info \
|
|
|
142
142
|
npx -y socialdatax-skills@latest wechat user-info \
|
|
143
143
|
--user-id "<v2_finder_user_id>" --pretty --source-client socialdatax-skills \
|
|
144
144
|
--source-platform npm --source-skill media-user-info
|
|
145
|
+
|
|
146
|
+
npx -y socialdatax-skills@latest wechat user-info \
|
|
147
|
+
--url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills \
|
|
148
|
+
--source-platform npm --source-skill media-user-info
|
|
145
149
|
```
|
|
146
150
|
|
|
147
151
|
Optional arguments:
|
|
@@ -166,9 +170,10 @@ Optional arguments:
|
|
|
166
170
|
- Weibo `--user-id <user_id>`: preferred when the creator user_id is already known.
|
|
167
171
|
- Weibo `--profile-url <profile_url>`: use for a Weibo user profile URL.
|
|
168
172
|
- WeChat Channels / 视频号 `--user-id <v2_finder_user_id>`: use when the creator `v2_...@finder` user_id is already known.
|
|
173
|
+
- WeChat Channels / 视频号 `--url <wechat_work_url_or_share_text>`: use for a video or image-post link or share text that can resolve the creator profile.
|
|
169
174
|
- `--source-client socialdatax-skills --source-platform npm --source-skill media-user-info`: usage attribution for this Agent Skill; keep these values unchanged when running examples from this Skill.
|
|
170
175
|
|
|
171
|
-
Use
|
|
176
|
+
Use exactly one supported identifier or URL entrypoint for a single command; do not combine them.
|
|
172
177
|
|
|
173
178
|
The command prints JSON with `platform`, `tool`, `arguments`, and `data`.
|
|
174
179
|
|
|
@@ -190,9 +195,9 @@ MCP tools matching the direct CLI commands above:
|
|
|
190
195
|
- YOUTUBE: `youtube_get_channel_info_by_url`
|
|
191
196
|
- TIKTOK: `tiktok_get_user_info_by_tiktok_id`, `tiktok_get_user_info_by_profile_url`
|
|
192
197
|
- WEIBO: `weibo_get_user_info_by_user_id`, `weibo_get_user_info_by_profile_url`
|
|
193
|
-
- WECHAT: `wechat_get_user_info_by_user_id`
|
|
198
|
+
- WECHAT: `wechat_get_user_info_by_user_id`, `wechat_get_user_info_by_url`
|
|
194
199
|
|
|
195
|
-
MCP-only tools not available through the direct CLI: `douyin_get_user_info_by_douyin_id
|
|
200
|
+
MCP-only tools not available through the direct CLI: `douyin_get_user_info_by_douyin_id`
|
|
196
201
|
|
|
197
202
|
If MCP tools are already available in the current agent, use one of these tools:
|
|
198
203
|
- `xhs_get_user_info_by_user_id`: preferred when `user_id` is already known from search, detail, comments, or creator note lists.
|
|
@@ -254,6 +254,7 @@ npx -y socialdatax-skills@latest weibo replies --post-id "<post_id>" --comment-i
|
|
|
254
254
|
npx -y socialdatax-skills@latest wechat detail --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
255
255
|
npx -y socialdatax-skills@latest wechat article --url "<mp_article_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
256
256
|
npx -y socialdatax-skills@latest wechat comments --url "<wechat_video_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
257
|
+
npx -y socialdatax-skills@latest wechat user-info --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
257
258
|
npx -y socialdatax-skills@latest wechat user-posts --url "<wechat_work_url_or_share_text>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
258
259
|
npx -y socialdatax-skills@latest wechat replies --object-id "<object_id>" --object-nonce-id "<object_nonce_id>" --comment-id "<comment_id>" --pretty --source-client socialdatax-skills --source-platform npm --source-skill socialdatax-content-research-assistant
|
|
259
260
|
```
|
|
@@ -326,9 +327,9 @@ MCP tools matching the direct CLI commands above:
|
|
|
326
327
|
- YOUTUBE: `youtube_search_videos`, `youtube_get_video_detail_by_url`, `youtube_get_video_comments_by_url`, `youtube_get_channel_info_by_url`, `youtube_get_user_posted_videos_by_channel_url`, `youtube_get_video_comment_replies`
|
|
327
328
|
- TIKTOK: `tiktok_search_posts`, `tiktok_get_post_detail_by_url`, `tiktok_get_post_comments_by_post_id`, `tiktok_get_user_info_by_tiktok_id`, `tiktok_get_user_posts_by_tiktok_id`, `tiktok_get_post_comments_by_url`, `tiktok_get_post_comment_replies`, `tiktok_get_user_info_by_profile_url`, `tiktok_get_user_posts_by_profile_url`
|
|
328
329
|
- WEIBO: `weibo_get_hot_search_list`, `weibo_search_posts`, `weibo_get_post_detail_by_post_id`, `weibo_get_post_comments_by_post_id`, `weibo_get_user_info_by_user_id`, `weibo_get_user_posts_by_user_id`, `weibo_get_post_detail_by_post_url`, `weibo_get_post_comments_by_post_url`, `weibo_get_post_liker_list_by_post_id`, `weibo_get_post_repost_list_by_post_id`, `weibo_get_user_info_by_profile_url`, `weibo_get_user_posts_by_profile_url`, `weibo_get_post_comment_replies_by_comment_id`
|
|
329
|
-
- WECHAT: `wechat_get_hot_search_list`, `wechat_search_videos`, `wechat_get_video_detail_by_encrypted_object_id`, `wechat_get_video_comments_by_object_id`, `wechat_get_user_info_by_user_id`, `wechat_get_user_posted_videos_by_user_id`, `wechat_get_video_detail_by_url`, `wechat_get_mp_article_detail_by_url`, `wechat_get_video_comments_by_url`, `wechat_get_user_posted_videos_by_url`, `wechat_get_video_comment_replies_by_comment_id`
|
|
330
|
+
- WECHAT: `wechat_get_hot_search_list`, `wechat_search_videos`, `wechat_get_video_detail_by_encrypted_object_id`, `wechat_get_video_comments_by_object_id`, `wechat_get_user_info_by_user_id`, `wechat_get_user_posted_videos_by_user_id`, `wechat_get_video_detail_by_url`, `wechat_get_mp_article_detail_by_url`, `wechat_get_video_comments_by_url`, `wechat_get_user_info_by_url`, `wechat_get_user_posted_videos_by_url`, `wechat_get_video_comment_replies_by_comment_id`
|
|
330
331
|
|
|
331
|
-
MCP-only tools not available through the direct CLI: `douyin_search_users`, `douyin_get_user_info_by_douyin_id`, `weibo_get_post_liker_list_by_post_url`, `weibo_get_post_repost_list_by_post_url
|
|
332
|
+
MCP-only tools not available through the direct CLI: `douyin_search_users`, `douyin_get_user_info_by_douyin_id`, `weibo_get_post_liker_list_by_post_url`, `weibo_get_post_repost_list_by_post_url`
|
|
332
333
|
|
|
333
334
|
Use the automatically listed MCP tools above as the source of truth for tool names. Pick the narrowest tool for the user's platform and task. For search pagination, omit `page_token` on the first request and pass only the complete returned `next_page_token` when continuing the same chain.
|
|
334
335
|
|