@huyuan-ai/cli 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/UPGRADE.md +23 -0
- package/dist/cli/program.js +2 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/constants.d.ts +15 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +32 -10
- package/dist/constants.js.map +1 -1
- package/dist/core/gateway-token.d.ts +5 -0
- package/dist/core/gateway-token.d.ts.map +1 -0
- package/dist/core/gateway-token.js +53 -0
- package/dist/core/gateway-token.js.map +1 -0
- package/dist/core/huyuan-skill.d.ts +5 -0
- package/dist/core/huyuan-skill.d.ts.map +1 -0
- package/dist/core/huyuan-skill.js +80 -0
- package/dist/core/huyuan-skill.js.map +1 -0
- package/dist/core/install.d.ts.map +1 -1
- package/dist/core/install.js +4 -47
- package/dist/core/install.js.map +1 -1
- package/dist/core/skills-hub.d.ts +22 -0
- package/dist/core/skills-hub.d.ts.map +1 -0
- package/dist/core/skills-hub.js +131 -0
- package/dist/core/skills-hub.js.map +1 -0
- package/dist/integrations/opencli/bootstrap.js +2 -2
- package/dist/integrations/opencli/bootstrap.js.map +1 -1
- package/dist/integrations/opencli/commands/doubao-ask-with-citations.js +1 -1
- package/dist/integrations/opencli/commands/doubao-ask-with-citations.js.map +1 -1
- package/dist/integrations/opencli/execute-registry-command.js +3 -3
- package/dist/integrations/opencli/execute-registry-command.js.map +1 -1
- package/dist/sites/huyuan-skill/check.d.ts +2 -0
- package/dist/sites/huyuan-skill/check.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/check.js +103 -0
- package/dist/sites/huyuan-skill/check.js.map +1 -0
- package/dist/sites/huyuan-skill/install-from-hub.d.ts +3 -0
- package/dist/sites/huyuan-skill/install-from-hub.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/install-from-hub.js +60 -0
- package/dist/sites/huyuan-skill/install-from-hub.js.map +1 -0
- package/dist/sites/huyuan-skill/list.d.ts +2 -0
- package/dist/sites/huyuan-skill/list.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/list.js +44 -0
- package/dist/sites/huyuan-skill/list.js.map +1 -0
- package/dist/sites/huyuan-skill/register.d.ts +4 -0
- package/dist/sites/huyuan-skill/register.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/register.js +69 -0
- package/dist/sites/huyuan-skill/register.js.map +1 -0
- package/dist/sites/huyuan-skill/search.d.ts +2 -0
- package/dist/sites/huyuan-skill/search.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/search.js +45 -0
- package/dist/sites/huyuan-skill/search.js.map +1 -0
- package/dist/sites/huyuan-skill/skill-md-version.d.ts +11 -0
- package/dist/sites/huyuan-skill/skill-md-version.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/skill-md-version.js +74 -0
- package/dist/sites/huyuan-skill/skill-md-version.js.map +1 -0
- package/dist/sites/huyuan-skill/skills-hub.d.ts +24 -0
- package/dist/sites/huyuan-skill/skills-hub.d.ts.map +1 -0
- package/dist/sites/huyuan-skill/skills-hub.js +131 -0
- package/dist/sites/huyuan-skill/skills-hub.js.map +1 -0
- package/dist/utils/install-root.d.ts +5 -0
- package/dist/utils/install-root.d.ts.map +1 -0
- package/dist/utils/install-root.js +13 -0
- package/dist/utils/install-root.js.map +1 -0
- package/package.json +5 -3
- package/vendor/opencli/dist/cli-manifest.json +546 -2
- package/vendor/opencli/dist/clis/1688/item.js +3 -3
- package/vendor/opencli/dist/clis/1688/search.js +2 -2
- package/vendor/opencli/dist/clis/1688/shared.d.ts +1 -1
- package/vendor/opencli/dist/clis/1688/shared.js +1 -1
- package/vendor/opencli/dist/clis/1688/store.js +2 -2
- package/vendor/opencli/dist/clis/36kr/article.js +2 -2
- package/vendor/opencli/dist/clis/36kr/hot.js +12 -6
- package/vendor/opencli/dist/clis/36kr/news.js +1 -1
- package/vendor/opencli/dist/clis/36kr/search.js +12 -6
- package/vendor/opencli/dist/clis/_shared/desktop-commands.d.ts +5 -5
- package/vendor/opencli/dist/clis/_shared/desktop-commands.js +1 -1
- package/vendor/opencli/dist/clis/amazon/bestsellers.js +1 -1
- package/vendor/opencli/dist/clis/amazon/discussion.js +2 -2
- package/vendor/opencli/dist/clis/amazon/movers-shakers.js +1 -1
- package/vendor/opencli/dist/clis/amazon/new-releases.js +1 -1
- package/vendor/opencli/dist/clis/amazon/offer.js +2 -2
- package/vendor/opencli/dist/clis/amazon/product.js +2 -2
- package/vendor/opencli/dist/clis/amazon/rankings.d.ts +1 -1
- package/vendor/opencli/dist/clis/amazon/rankings.js +2 -2
- package/vendor/opencli/dist/clis/amazon/search.js +2 -2
- package/vendor/opencli/dist/clis/amazon/shared.d.ts +1 -1
- package/vendor/opencli/dist/clis/amazon/shared.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/dump.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/dump.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/extract-code.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/extract-code.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/model.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/model.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/new.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/read.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/send.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/serve.js +3 -3
- package/vendor/opencli/dist/clis/antigravity/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/status.js +1 -1
- package/vendor/opencli/dist/clis/antigravity/watch.d.ts +1 -1
- package/vendor/opencli/dist/clis/antigravity/watch.js +1 -1
- package/vendor/opencli/dist/clis/apple-podcasts/commands.test.js +1 -1
- package/vendor/opencli/dist/clis/apple-podcasts/episodes.js +2 -2
- package/vendor/opencli/dist/clis/apple-podcasts/search.js +2 -2
- package/vendor/opencli/dist/clis/apple-podcasts/top.js +2 -2
- package/vendor/opencli/dist/clis/apple-podcasts/utils.js +1 -1
- package/vendor/opencli/dist/clis/arxiv/paper.js +2 -2
- package/vendor/opencli/dist/clis/arxiv/search.js +2 -2
- package/vendor/opencli/dist/clis/arxiv/utils.js +1 -1
- package/vendor/opencli/dist/clis/band/bands.js +2 -2
- package/vendor/opencli/dist/clis/band/mentions.js +2 -2
- package/vendor/opencli/dist/clis/band/post.js +4 -4
- package/vendor/opencli/dist/clis/band/posts.js +2 -2
- package/vendor/opencli/dist/clis/barchart/flow.js +1 -1
- package/vendor/opencli/dist/clis/barchart/greeks.js +1 -1
- package/vendor/opencli/dist/clis/barchart/options.js +1 -1
- package/vendor/opencli/dist/clis/barchart/quote.js +1 -1
- package/vendor/opencli/dist/clis/bbc/news.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/comments.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/comments.test.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/download.js +3 -3
- package/vendor/opencli/dist/clis/bilibili/dynamic.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/dynamic.test.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/favorite.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/feed.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/following.js +2 -2
- package/vendor/opencli/dist/clis/bilibili/history.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/me.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/ranking.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/search.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/subtitle.js +2 -2
- package/vendor/opencli/dist/clis/bilibili/subtitle.test.js +2 -2
- package/vendor/opencli/dist/clis/bilibili/user-videos.js +1 -1
- package/vendor/opencli/dist/clis/bilibili/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/bilibili/utils.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/businessweek.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/economics.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/feeds.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/industries.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/main.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/markets.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/news.js +2 -2
- package/vendor/opencli/dist/clis/bloomberg/opinions.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/politics.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/tech.js +1 -1
- package/vendor/opencli/dist/clis/bloomberg/utils.js +1 -1
- package/vendor/opencli/dist/clis/boss/batchgreet.js +1 -1
- package/vendor/opencli/dist/clis/boss/chatlist.js +1 -1
- package/vendor/opencli/dist/clis/boss/chatmsg.js +1 -1
- package/vendor/opencli/dist/clis/boss/detail.js +1 -1
- package/vendor/opencli/dist/clis/boss/exchange.js +1 -1
- package/vendor/opencli/dist/clis/boss/greet.js +1 -1
- package/vendor/opencli/dist/clis/boss/invite.js +1 -1
- package/vendor/opencli/dist/clis/boss/joblist.js +1 -1
- package/vendor/opencli/dist/clis/boss/mark.js +2 -2
- package/vendor/opencli/dist/clis/boss/recommend.js +1 -1
- package/vendor/opencli/dist/clis/boss/resume.js +1 -1
- package/vendor/opencli/dist/clis/boss/search.js +1 -1
- package/vendor/opencli/dist/clis/boss/send.js +2 -2
- package/vendor/opencli/dist/clis/boss/stats.js +1 -1
- package/vendor/opencli/dist/clis/boss/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/chaoxing/assignments.js +2 -2
- package/vendor/opencli/dist/clis/chaoxing/exams.js +1 -1
- package/vendor/opencli/dist/clis/chaoxing/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/ask.js +2 -2
- package/vendor/opencli/dist/clis/chatgpt/model.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/model.js +2 -2
- package/vendor/opencli/dist/clis/chatgpt/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/new.js +2 -2
- package/vendor/opencli/dist/clis/chatgpt/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/read.js +2 -2
- package/vendor/opencli/dist/clis/chatgpt/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/send.js +2 -2
- package/vendor/opencli/dist/clis/chatgpt/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatgpt/status.js +2 -2
- package/vendor/opencli/dist/clis/chatwise/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/ask.js +2 -2
- package/vendor/opencli/dist/clis/chatwise/export.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/export.js +1 -1
- package/vendor/opencli/dist/clis/chatwise/history.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/history.js +1 -1
- package/vendor/opencli/dist/clis/chatwise/model.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/model.js +2 -2
- package/vendor/opencli/dist/clis/chatwise/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/read.js +1 -1
- package/vendor/opencli/dist/clis/chatwise/screenshot.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/chatwise/send.js +2 -2
- package/vendor/opencli/dist/clis/chatwise/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/ask.js +2 -2
- package/vendor/opencli/dist/clis/codex/dump.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/export.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/export.js +1 -1
- package/vendor/opencli/dist/clis/codex/extract-diff.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/extract-diff.js +1 -1
- package/vendor/opencli/dist/clis/codex/history.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/history.js +1 -1
- package/vendor/opencli/dist/clis/codex/model.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/model.js +1 -1
- package/vendor/opencli/dist/clis/codex/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/read.js +1 -1
- package/vendor/opencli/dist/clis/codex/screenshot.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/codex/send.js +2 -2
- package/vendor/opencli/dist/clis/codex/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/coupang/add-to-cart.js +1 -1
- package/vendor/opencli/dist/clis/coupang/search.js +1 -1
- package/vendor/opencli/dist/clis/ctrip/search.js +2 -2
- package/vendor/opencli/dist/clis/ctrip/search.test.js +1 -1
- package/vendor/opencli/dist/clis/cursor/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/ask.js +2 -2
- package/vendor/opencli/dist/clis/cursor/composer.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/composer.js +2 -2
- package/vendor/opencli/dist/clis/cursor/dump.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/export.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/export.js +1 -1
- package/vendor/opencli/dist/clis/cursor/extract-code.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/extract-code.js +1 -1
- package/vendor/opencli/dist/clis/cursor/history.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/history.js +1 -1
- package/vendor/opencli/dist/clis/cursor/model.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/model.js +1 -1
- package/vendor/opencli/dist/clis/cursor/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/read.js +2 -2
- package/vendor/opencli/dist/clis/cursor/screenshot.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/cursor/send.js +2 -2
- package/vendor/opencli/dist/clis/cursor/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/channels.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/channels.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/members.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/members.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/read.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/search.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/search.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/send.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/servers.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/servers.js +1 -1
- package/vendor/opencli/dist/clis/discord-app/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/discord-app/status.js +1 -1
- package/vendor/opencli/dist/clis/douban/book-hot.js +1 -1
- package/vendor/opencli/dist/clis/douban/download.js +4 -4
- package/vendor/opencli/dist/clis/douban/download.test.js +3 -3
- package/vendor/opencli/dist/clis/douban/marks.js +1 -1
- package/vendor/opencli/dist/clis/douban/movie-hot.js +1 -1
- package/vendor/opencli/dist/clis/douban/photos.js +1 -1
- package/vendor/opencli/dist/clis/douban/reviews.js +1 -1
- package/vendor/opencli/dist/clis/douban/search.js +1 -1
- package/vendor/opencli/dist/clis/douban/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/douban/utils.js +1 -1
- package/vendor/opencli/dist/clis/doubao/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/ask.js +1 -1
- package/vendor/opencli/dist/clis/doubao/detail.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/detail.js +1 -1
- package/vendor/opencli/dist/clis/doubao/detail.test.js +1 -1
- package/vendor/opencli/dist/clis/doubao/history.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/history.js +1 -1
- package/vendor/opencli/dist/clis/doubao/history.test.js +1 -1
- package/vendor/opencli/dist/clis/doubao/meeting-summary.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/meeting-summary.js +1 -1
- package/vendor/opencli/dist/clis/doubao/meeting-transcript.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/meeting-transcript.js +1 -1
- package/vendor/opencli/dist/clis/doubao/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/new.js +1 -1
- package/vendor/opencli/dist/clis/doubao/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/read.js +1 -1
- package/vendor/opencli/dist/clis/doubao/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/send.js +1 -1
- package/vendor/opencli/dist/clis/doubao/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao/status.js +1 -1
- package/vendor/opencli/dist/clis/doubao/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/ask.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/dump.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/dump.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/new.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/read.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/screenshot.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/screenshot.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/send.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/send.js +1 -1
- package/vendor/opencli/dist/clis/doubao-app/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/doubao-app/status.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/browser-fetch.d.ts +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/browser-fetch.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/imagex-upload.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/imagex-upload.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/public-api.d.ts +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/sts2.d.ts +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/sts2.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/sts2.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/tos-upload-short-read.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/tos-upload.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/transcode.d.ts +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/transcode.js +1 -1
- package/vendor/opencli/dist/clis/douyin/_shared/transcode.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/activities.js +1 -1
- package/vendor/opencli/dist/clis/douyin/activities.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/collections.js +1 -1
- package/vendor/opencli/dist/clis/douyin/collections.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/delete.js +1 -1
- package/vendor/opencli/dist/clis/douyin/delete.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/draft.js +2 -2
- package/vendor/opencli/dist/clis/douyin/draft.test.js +2 -2
- package/vendor/opencli/dist/clis/douyin/drafts.js +1 -1
- package/vendor/opencli/dist/clis/douyin/drafts.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/hashtag.js +2 -2
- package/vendor/opencli/dist/clis/douyin/hashtag.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/location.js +1 -1
- package/vendor/opencli/dist/clis/douyin/location.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/profile.js +2 -2
- package/vendor/opencli/dist/clis/douyin/profile.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/publish.js +2 -2
- package/vendor/opencli/dist/clis/douyin/publish.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/stats.js +1 -1
- package/vendor/opencli/dist/clis/douyin/stats.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/update.js +2 -2
- package/vendor/opencli/dist/clis/douyin/update.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/user-videos.js +1 -1
- package/vendor/opencli/dist/clis/douyin/user-videos.test.js +1 -1
- package/vendor/opencli/dist/clis/douyin/videos.js +1 -1
- package/vendor/opencli/dist/clis/douyin/videos.test.js +1 -1
- package/vendor/opencli/dist/clis/facebook/search.test.js +1 -1
- package/vendor/opencli/dist/clis/gemini/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/gemini/ask.js +1 -1
- package/vendor/opencli/dist/clis/gemini/deep-research-result.d.ts +1 -0
- package/vendor/opencli/dist/clis/gemini/deep-research-result.js +91 -0
- package/vendor/opencli/dist/clis/gemini/deep-research-result.test.js +154 -0
- package/vendor/opencli/dist/clis/gemini/deep-research.d.ts +1 -0
- package/vendor/opencli/dist/clis/gemini/deep-research.js +98 -0
- package/vendor/opencli/dist/clis/gemini/deep-research.test.js +184 -0
- package/vendor/opencli/dist/clis/gemini/image.d.ts +1 -1
- package/vendor/opencli/dist/clis/gemini/image.js +2 -2
- package/vendor/opencli/dist/clis/gemini/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/gemini/new.js +1 -1
- package/vendor/opencli/dist/clis/gemini/reply-state.test.js +30 -0
- package/vendor/opencli/dist/clis/gemini/utils.d.ts +30 -1
- package/vendor/opencli/dist/clis/gemini/utils.js +1014 -2
- package/vendor/opencli/dist/clis/gemini/utils.test.js +21 -1
- package/vendor/opencli/dist/clis/google/news.js +2 -2
- package/vendor/opencli/dist/clis/google/search.js +2 -2
- package/vendor/opencli/dist/clis/google/suggest.js +2 -2
- package/vendor/opencli/dist/clis/google/trends.js +2 -2
- package/vendor/opencli/dist/clis/grok/ask.d.ts +2 -2
- package/vendor/opencli/dist/clis/grok/ask.js +1 -1
- package/vendor/opencli/dist/clis/hf/top.js +2 -2
- package/vendor/opencli/dist/clis/hupu/detail.js +1 -1
- package/vendor/opencli/dist/clis/hupu/like.js +2 -2
- package/vendor/opencli/dist/clis/hupu/mentions.js +159 -0
- package/vendor/opencli/dist/clis/hupu/reply.js +2 -2
- package/vendor/opencli/dist/clis/hupu/search.js +1 -1
- package/vendor/opencli/dist/clis/hupu/unlike.js +2 -2
- package/vendor/opencli/dist/clis/hupu/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/hupu/utils.js +1 -1
- package/vendor/opencli/dist/clis/imdb/person.js +2 -2
- package/vendor/opencli/dist/clis/imdb/reviews.js +2 -2
- package/vendor/opencli/dist/clis/imdb/search.js +2 -2
- package/vendor/opencli/dist/clis/imdb/title.js +2 -2
- package/vendor/opencli/dist/clis/imdb/top.js +2 -2
- package/vendor/opencli/dist/clis/imdb/trending.js +2 -2
- package/vendor/opencli/dist/clis/imdb/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/imdb/utils.js +1 -1
- package/vendor/opencli/dist/clis/instagram/_shared/private-publish.d.ts +1 -1
- package/vendor/opencli/dist/clis/instagram/_shared/private-publish.js +1 -1
- package/vendor/opencli/dist/clis/instagram/_shared/protocol-capture.d.ts +1 -1
- package/vendor/opencli/dist/clis/instagram/_shared/runtime-info.d.ts +1 -1
- package/vendor/opencli/dist/clis/instagram/download.js +3 -3
- package/vendor/opencli/dist/clis/instagram/download.test.js +4 -4
- package/vendor/opencli/dist/clis/instagram/note.js +2 -2
- package/vendor/opencli/dist/clis/instagram/note.test.js +2 -2
- package/vendor/opencli/dist/clis/instagram/post.js +2 -2
- package/vendor/opencli/dist/clis/instagram/post.test.js +2 -2
- package/vendor/opencli/dist/clis/instagram/reel.js +3 -3
- package/vendor/opencli/dist/clis/instagram/reel.test.js +2 -2
- package/vendor/opencli/dist/clis/instagram/story.js +2 -2
- package/vendor/opencli/dist/clis/instagram/story.test.js +2 -2
- package/vendor/opencli/dist/clis/jd/item.js +1 -1
- package/vendor/opencli/dist/clis/jd/item.test.js +1 -1
- package/vendor/opencli/dist/clis/jike/comment.js +1 -1
- package/vendor/opencli/dist/clis/jike/create.js +1 -1
- package/vendor/opencli/dist/clis/jike/feed.js +1 -1
- package/vendor/opencli/dist/clis/jike/like.js +1 -1
- package/vendor/opencli/dist/clis/jike/notifications.js +1 -1
- package/vendor/opencli/dist/clis/jike/repost.js +1 -1
- package/vendor/opencli/dist/clis/jike/search.js +1 -1
- package/vendor/opencli/dist/clis/lesswrong/_helpers.d.ts +15 -0
- package/vendor/opencli/dist/clis/lesswrong/_helpers.js +75 -0
- package/vendor/opencli/dist/clis/lesswrong/comments.js +64 -0
- package/vendor/opencli/dist/clis/lesswrong/curated.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/frontpage.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/new.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/read.js +45 -0
- package/vendor/opencli/dist/clis/lesswrong/sequences.js +27 -0
- package/vendor/opencli/dist/clis/lesswrong/shortform.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/tag.js +45 -0
- package/vendor/opencli/dist/clis/lesswrong/tags.js +27 -0
- package/vendor/opencli/dist/clis/lesswrong/top-month.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/top-week.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/top-year.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/top.js +30 -0
- package/vendor/opencli/dist/clis/lesswrong/user-posts.js +41 -0
- package/vendor/opencli/dist/clis/lesswrong/user.js +44 -0
- package/vendor/opencli/dist/clis/linkedin/search.js +2 -2
- package/vendor/opencli/dist/clis/linkedin/timeline.js +2 -2
- package/vendor/opencli/dist/clis/linkedin/timeline.test.js +1 -1
- package/vendor/opencli/dist/clis/linux-do/category.js +1 -1
- package/vendor/opencli/dist/clis/linux-do/feed.d.ts +2 -2
- package/vendor/opencli/dist/clis/linux-do/feed.js +2 -2
- package/vendor/opencli/dist/clis/linux-do/hot.js +1 -1
- package/vendor/opencli/dist/clis/linux-do/latest.js +1 -1
- package/vendor/opencli/dist/clis/medium/feed.js +1 -1
- package/vendor/opencli/dist/clis/medium/search.js +1 -1
- package/vendor/opencli/dist/clis/medium/user.js +1 -1
- package/vendor/opencli/dist/clis/medium/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/medium/utils.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/compat.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/current.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/get.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/history.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/history.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/list.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/note-list.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/note-list.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/notes-get.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/notes-get.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/open.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/open.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/rpc.d.ts +1 -1
- package/vendor/opencli/dist/clis/notebooklm/rpc.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/rpc.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/source-fulltext.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/source-fulltext.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/source-get.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/source-get.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/source-guide.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/source-guide.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/source-list.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/status.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/summary.js +2 -2
- package/vendor/opencli/dist/clis/notebooklm/summary.test.js +1 -1
- package/vendor/opencli/dist/clis/notebooklm/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/notebooklm/utils.js +1 -1
- package/vendor/opencli/dist/clis/notion/export.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/export.js +1 -1
- package/vendor/opencli/dist/clis/notion/favorites.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/favorites.js +1 -1
- package/vendor/opencli/dist/clis/notion/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/new.js +1 -1
- package/vendor/opencli/dist/clis/notion/read.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/read.js +1 -1
- package/vendor/opencli/dist/clis/notion/search.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/search.js +1 -1
- package/vendor/opencli/dist/clis/notion/sidebar.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/sidebar.js +1 -1
- package/vendor/opencli/dist/clis/notion/status.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/status.js +1 -1
- package/vendor/opencli/dist/clis/notion/write.d.ts +1 -1
- package/vendor/opencli/dist/clis/notion/write.js +1 -1
- package/vendor/opencli/dist/clis/ones/common.d.ts +1 -1
- package/vendor/opencli/dist/clis/ones/common.js +1 -1
- package/vendor/opencli/dist/clis/ones/enrich-tasks.d.ts +1 -1
- package/vendor/opencli/dist/clis/ones/login.js +2 -2
- package/vendor/opencli/dist/clis/ones/logout.js +1 -1
- package/vendor/opencli/dist/clis/ones/me.js +2 -2
- package/vendor/opencli/dist/clis/ones/my-tasks.js +2 -2
- package/vendor/opencli/dist/clis/ones/resolve-labels.d.ts +1 -1
- package/vendor/opencli/dist/clis/ones/task-helpers.js +1 -1
- package/vendor/opencli/dist/clis/ones/task.js +2 -2
- package/vendor/opencli/dist/clis/ones/tasks.js +2 -2
- package/vendor/opencli/dist/clis/ones/token-info.js +2 -2
- package/vendor/opencli/dist/clis/ones/worklog.js +2 -2
- package/vendor/opencli/dist/clis/paperreview/commands.test.js +1 -1
- package/vendor/opencli/dist/clis/paperreview/feedback.js +2 -2
- package/vendor/opencli/dist/clis/paperreview/review.js +2 -2
- package/vendor/opencli/dist/clis/paperreview/submit.js +2 -2
- package/vendor/opencli/dist/clis/paperreview/utils.js +1 -1
- package/vendor/opencli/dist/clis/paperreview/utils.test.js +1 -1
- package/vendor/opencli/dist/clis/pixiv/download.js +4 -4
- package/vendor/opencli/dist/clis/pixiv/download.test.js +3 -3
- package/vendor/opencli/dist/clis/pixiv/illusts.js +2 -2
- package/vendor/opencli/dist/clis/pixiv/illusts.test.js +2 -2
- package/vendor/opencli/dist/clis/pixiv/search.js +1 -1
- package/vendor/opencli/dist/clis/pixiv/search.test.js +2 -2
- package/vendor/opencli/dist/clis/pixiv/test-utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/pixiv/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/pixiv/utils.js +1 -1
- package/vendor/opencli/dist/clis/producthunt/browse.js +2 -2
- package/vendor/opencli/dist/clis/producthunt/hot.js +2 -2
- package/vendor/opencli/dist/clis/producthunt/posts.js +1 -1
- package/vendor/opencli/dist/clis/producthunt/today.js +1 -1
- package/vendor/opencli/dist/clis/reddit/comment.js +2 -2
- package/vendor/opencli/dist/clis/reddit/read.js +2 -2
- package/vendor/opencli/dist/clis/reddit/read.test.js +1 -1
- package/vendor/opencli/dist/clis/reddit/save.js +2 -2
- package/vendor/opencli/dist/clis/reddit/saved.js +2 -2
- package/vendor/opencli/dist/clis/reddit/subscribe.js +2 -2
- package/vendor/opencli/dist/clis/reddit/upvote.js +2 -2
- package/vendor/opencli/dist/clis/reddit/upvoted.js +2 -2
- package/vendor/opencli/dist/clis/reuters/search.js +1 -1
- package/vendor/opencli/dist/clis/sinablog/article.js +1 -1
- package/vendor/opencli/dist/clis/sinablog/hot.js +1 -1
- package/vendor/opencli/dist/clis/sinablog/search.js +1 -1
- package/vendor/opencli/dist/clis/sinablog/user.js +1 -1
- package/vendor/opencli/dist/clis/sinablog/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/sinafinance/news.js +2 -2
- package/vendor/opencli/dist/clis/sinafinance/rolling-news.js +1 -1
- package/vendor/opencli/dist/clis/sinafinance/stock-rank.js +1 -1
- package/vendor/opencli/dist/clis/sinafinance/stock.js +2 -2
- package/vendor/opencli/dist/clis/smzdm/search.js +1 -1
- package/vendor/opencli/dist/clis/spotify/spotify.js +2 -2
- package/vendor/opencli/dist/clis/spotify/utils.js +1 -1
- package/vendor/opencli/dist/clis/substack/feed.js +1 -1
- package/vendor/opencli/dist/clis/substack/publication.js +1 -1
- package/vendor/opencli/dist/clis/substack/search.js +2 -2
- package/vendor/opencli/dist/clis/substack/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/substack/utils.js +1 -1
- package/vendor/opencli/dist/clis/tieba/commands.test.js +1 -1
- package/vendor/opencli/dist/clis/tieba/hot.js +2 -2
- package/vendor/opencli/dist/clis/tieba/posts.js +2 -2
- package/vendor/opencli/dist/clis/tieba/read.js +2 -2
- package/vendor/opencli/dist/clis/tieba/search.js +2 -2
- package/vendor/opencli/dist/clis/twitter/accept.js +2 -2
- package/vendor/opencli/dist/clis/twitter/article.js +2 -2
- package/vendor/opencli/dist/clis/twitter/block.js +2 -2
- package/vendor/opencli/dist/clis/twitter/bookmark.js +2 -2
- package/vendor/opencli/dist/clis/twitter/bookmarks.js +2 -2
- package/vendor/opencli/dist/clis/twitter/delete.d.ts +6 -0
- package/vendor/opencli/dist/clis/twitter/delete.js +82 -47
- package/vendor/opencli/dist/clis/twitter/delete.test.d.ts +1 -0
- package/vendor/opencli/dist/clis/twitter/delete.test.js +73 -0
- package/vendor/opencli/dist/clis/twitter/download.js +3 -3
- package/vendor/opencli/dist/clis/twitter/follow.js +2 -2
- package/vendor/opencli/dist/clis/twitter/followers.js +2 -2
- package/vendor/opencli/dist/clis/twitter/following.js +2 -2
- package/vendor/opencli/dist/clis/twitter/hide-reply.js +2 -2
- package/vendor/opencli/dist/clis/twitter/like.js +2 -2
- package/vendor/opencli/dist/clis/twitter/likes.js +2 -2
- package/vendor/opencli/dist/clis/twitter/notifications.js +2 -2
- package/vendor/opencli/dist/clis/twitter/post.js +2 -2
- package/vendor/opencli/dist/clis/twitter/post.test.js +1 -1
- package/vendor/opencli/dist/clis/twitter/profile.js +2 -2
- package/vendor/opencli/dist/clis/twitter/reply-dm.js +2 -2
- package/vendor/opencli/dist/clis/twitter/reply.js +2 -2
- package/vendor/opencli/dist/clis/twitter/reply.test.js +1 -1
- package/vendor/opencli/dist/clis/twitter/search.js +2 -2
- package/vendor/opencli/dist/clis/twitter/search.test.js +1 -1
- package/vendor/opencli/dist/clis/twitter/shared.d.ts +1 -1
- package/vendor/opencli/dist/clis/twitter/thread.js +2 -2
- package/vendor/opencli/dist/clis/twitter/timeline.js +2 -2
- package/vendor/opencli/dist/clis/twitter/trending.js +2 -2
- package/vendor/opencli/dist/clis/twitter/unblock.js +2 -2
- package/vendor/opencli/dist/clis/twitter/unbookmark.js +2 -2
- package/vendor/opencli/dist/clis/twitter/unfollow.js +2 -2
- package/vendor/opencli/dist/clis/v2ex/daily.js +2 -2
- package/vendor/opencli/dist/clis/v2ex/me.js +2 -2
- package/vendor/opencli/dist/clis/v2ex/notifications.js +2 -2
- package/vendor/opencli/dist/clis/web/read.js +2 -2
- package/vendor/opencli/dist/clis/weibo/comments.js +1 -1
- package/vendor/opencli/dist/clis/weibo/feed.js +1 -1
- package/vendor/opencli/dist/clis/weibo/hot.js +1 -1
- package/vendor/opencli/dist/clis/weibo/me.js +2 -2
- package/vendor/opencli/dist/clis/weibo/post.js +2 -2
- package/vendor/opencli/dist/clis/weibo/search.js +2 -2
- package/vendor/opencli/dist/clis/weibo/user.js +2 -2
- package/vendor/opencli/dist/clis/weibo/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/weibo/utils.js +1 -1
- package/vendor/opencli/dist/clis/weixin/download.js +2 -2
- package/vendor/opencli/dist/clis/weread/book.js +2 -2
- package/vendor/opencli/dist/clis/weread/commands.test.js +2 -2
- package/vendor/opencli/dist/clis/weread/highlights.js +1 -1
- package/vendor/opencli/dist/clis/weread/notebooks.js +1 -1
- package/vendor/opencli/dist/clis/weread/notes.js +1 -1
- package/vendor/opencli/dist/clis/weread/private-api-regression.test.js +2 -2
- package/vendor/opencli/dist/clis/weread/ranking.js +1 -1
- package/vendor/opencli/dist/clis/weread/search-regression.test.js +1 -1
- package/vendor/opencli/dist/clis/weread/search.js +1 -1
- package/vendor/opencli/dist/clis/weread/shelf.js +3 -3
- package/vendor/opencli/dist/clis/weread/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/weread/utils.js +1 -1
- package/vendor/opencli/dist/clis/wikipedia/random.js +2 -2
- package/vendor/opencli/dist/clis/wikipedia/search.js +2 -2
- package/vendor/opencli/dist/clis/wikipedia/summary.js +2 -2
- package/vendor/opencli/dist/clis/wikipedia/trending.js +2 -2
- package/vendor/opencli/dist/clis/wikipedia/utils.js +1 -1
- package/vendor/opencli/dist/clis/xianyu/chat.js +2 -2
- package/vendor/opencli/dist/clis/xianyu/item.js +2 -2
- package/vendor/opencli/dist/clis/xianyu/item.test.js +2 -2
- package/vendor/opencli/dist/clis/xianyu/search.js +2 -2
- package/vendor/opencli/dist/clis/xianyu/utils.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/comments.js +2 -2
- package/vendor/opencli/dist/clis/xiaohongshu/comments.test.js +3 -3
- package/vendor/opencli/dist/clis/xiaohongshu/creator-note-detail.d.ts +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-note-detail.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-note-detail.test.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-notes-summary.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-notes.d.ts +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-notes.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-notes.test.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-profile.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/creator-stats.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/download.js +3 -3
- package/vendor/opencli/dist/clis/xiaohongshu/download.test.js +3 -3
- package/vendor/opencli/dist/clis/xiaohongshu/note-helpers.d.ts +2 -2
- package/vendor/opencli/dist/clis/xiaohongshu/note-helpers.js +5 -3
- package/vendor/opencli/dist/clis/xiaohongshu/note.d.ts +4 -0
- package/vendor/opencli/dist/clis/xiaohongshu/note.js +10 -12
- package/vendor/opencli/dist/clis/xiaohongshu/note.test.js +6 -6
- package/vendor/opencli/dist/clis/xiaohongshu/publish.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/publish.test.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/search.js +2 -2
- package/vendor/opencli/dist/clis/xiaohongshu/search.test.js +1 -1
- package/vendor/opencli/dist/clis/xiaohongshu/user.js +1 -1
- package/vendor/opencli/dist/clis/xiaoyuzhou/episode.js +2 -2
- package/vendor/opencli/dist/clis/xiaoyuzhou/podcast-episodes.js +2 -2
- package/vendor/opencli/dist/clis/xiaoyuzhou/podcast.js +2 -2
- package/vendor/opencli/dist/clis/xiaoyuzhou/utils.js +1 -1
- package/vendor/opencli/dist/clis/xueqiu/comments.d.ts +1 -1
- package/vendor/opencli/dist/clis/xueqiu/comments.js +4 -4
- package/vendor/opencli/dist/clis/xueqiu/comments.test.js +3 -3
- package/vendor/opencli/dist/clis/xueqiu/danjuan-utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/xueqiu/fund-holdings.js +1 -1
- package/vendor/opencli/dist/clis/xueqiu/fund-snapshot.js +1 -1
- package/vendor/opencli/dist/clis/yahoo-finance/quote.js +1 -1
- package/vendor/opencli/dist/clis/yollomi/background.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/edit.js +5 -5
- package/vendor/opencli/dist/clis/yollomi/face-swap.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/generate.js +5 -5
- package/vendor/opencli/dist/clis/yollomi/models.js +1 -1
- package/vendor/opencli/dist/clis/yollomi/object-remover.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/remove-bg.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/restore.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/try-on.js +4 -4
- package/vendor/opencli/dist/clis/yollomi/upload.js +5 -5
- package/vendor/opencli/dist/clis/yollomi/upscale.js +5 -5
- package/vendor/opencli/dist/clis/yollomi/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/yollomi/utils.js +1 -1
- package/vendor/opencli/dist/clis/yollomi/video.js +5 -5
- package/vendor/opencli/dist/clis/youtube/channel.js +2 -2
- package/vendor/opencli/dist/clis/youtube/comments.js +2 -2
- package/vendor/opencli/dist/clis/youtube/search.js +1 -1
- package/vendor/opencli/dist/clis/youtube/transcript.js +2 -2
- package/vendor/opencli/dist/clis/youtube/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/youtube/video.js +2 -2
- package/vendor/opencli/dist/clis/yuanbao/ask.d.ts +1 -1
- package/vendor/opencli/dist/clis/yuanbao/ask.js +36 -53
- package/vendor/opencli/dist/clis/yuanbao/ask.test.js +1 -1
- package/vendor/opencli/dist/clis/yuanbao/new.d.ts +1 -1
- package/vendor/opencli/dist/clis/yuanbao/new.js +1 -1
- package/vendor/opencli/dist/clis/yuanbao/new.test.js +1 -1
- package/vendor/opencli/dist/clis/yuanbao/shared.d.ts +2 -2
- package/vendor/opencli/dist/clis/yuanbao/shared.js +1 -1
- package/vendor/opencli/dist/clis/zhihu/download.js +2 -2
- package/vendor/opencli/dist/clis/zhihu/question.js +2 -2
- package/vendor/opencli/dist/clis/zhihu/question.test.js +2 -2
- package/vendor/opencli/dist/clis/zsxq/dynamics.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/groups.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/search.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/search.test.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/topic.js +2 -2
- package/vendor/opencli/dist/clis/zsxq/topic.test.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/topics.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/topics.test.js +1 -1
- package/vendor/opencli/dist/clis/zsxq/utils.d.ts +1 -1
- package/vendor/opencli/dist/clis/zsxq/utils.js +1 -1
- package/vendor/opencli/dist/{build-manifest.js → src/build-manifest.js} +5 -4
- package/vendor/opencli/dist/{cascade.js → src/cascade.js} +16 -31
- package/vendor/opencli/dist/src/cli.d.ts +22 -0
- package/vendor/opencli/dist/{cli.js → src/cli.js} +78 -8
- package/vendor/opencli/dist/{cli.test.js → src/cli.test.js} +84 -1
- package/vendor/opencli/dist/{commanderAdapter.d.ts → src/commanderAdapter.d.ts} +1 -0
- package/vendor/opencli/dist/{commanderAdapter.js → src/commanderAdapter.js} +26 -46
- package/vendor/opencli/dist/src/diagnostic.d.ts +38 -0
- package/vendor/opencli/dist/src/diagnostic.js +71 -0
- package/vendor/opencli/dist/src/diagnostic.test.d.ts +1 -0
- package/vendor/opencli/dist/src/diagnostic.test.js +84 -0
- package/vendor/opencli/dist/{discovery.d.ts → src/discovery.d.ts} +11 -2
- package/vendor/opencli/dist/{discovery.js → src/discovery.js} +71 -37
- package/vendor/opencli/dist/src/doctor.test.d.ts +1 -0
- package/vendor/opencli/dist/src/download/index.test.d.ts +1 -0
- package/vendor/opencli/dist/src/electron-apps.test.d.ts +1 -0
- package/vendor/opencli/dist/src/engine.test.d.ts +1 -0
- package/vendor/opencli/dist/{engine.test.js → src/engine.test.js} +6 -5
- package/vendor/opencli/dist/src/errors.test.d.ts +1 -0
- package/vendor/opencli/dist/{execution.js → src/execution.js} +25 -4
- package/vendor/opencli/dist/src/execution.test.d.ts +1 -0
- package/vendor/opencli/dist/src/extension-manifest-regression.test.d.ts +1 -0
- package/vendor/opencli/dist/src/external.test.d.ts +1 -0
- package/vendor/opencli/dist/{interceptor.d.ts → src/interceptor.d.ts} +2 -0
- package/vendor/opencli/dist/{interceptor.js → src/interceptor.js} +3 -6
- package/vendor/opencli/dist/src/launcher.test.d.ts +1 -0
- package/vendor/opencli/dist/{logger.d.ts → src/logger.d.ts} +4 -0
- package/vendor/opencli/dist/{logger.js → src/logger.js} +8 -0
- package/vendor/opencli/dist/{main.js → src/main.js} +3 -2
- package/vendor/opencli/dist/src/node-network.test.d.ts +1 -0
- package/vendor/opencli/dist/src/output.test.d.ts +1 -0
- package/vendor/opencli/dist/src/package-exports.test.d.ts +1 -0
- package/vendor/opencli/dist/src/package-exports.test.js +112 -0
- package/vendor/opencli/dist/src/pipeline/steps/download.test.d.ts +1 -0
- package/vendor/opencli/dist/src/pipeline/steps/fetch.test.d.ts +1 -0
- package/vendor/opencli/dist/{record.js → src/record.js} +1 -1
- package/vendor/opencli/dist/src/record.test.d.ts +1 -0
- package/vendor/opencli/dist/{registry-api.d.ts → src/registry-api.d.ts} +1 -1
- package/vendor/opencli/dist/src/runtime-detect.test.d.ts +1 -0
- package/vendor/opencli/dist/src/serialization.test.d.ts +1 -0
- package/vendor/opencli/dist/{synthesize.d.ts → src/synthesize.d.ts} +0 -4
- package/vendor/opencli/dist/{synthesize.js → src/synthesize.js} +4 -15
- package/vendor/opencli/dist/src/tui.test.d.ts +1 -0
- package/vendor/opencli/dist/{utils.d.ts → src/utils.d.ts} +3 -0
- package/vendor/opencli/dist/{utils.js → src/utils.js} +22 -0
- package/vendor/opencli/dist/{version.js → src/version.js} +7 -1
- package/vendor/opencli/dist/src/weixin-download.test.d.ts +1 -0
- package/vendor/opencli/dist/{weixin-download.test.js → src/weixin-download.test.js} +1 -1
- package/vendor/opencli/dist/cli.d.ts +0 -9
- /package/vendor/opencli/dist/{browser.test.d.ts → clis/gemini/deep-research-result.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser/cdp.test.d.ts → clis/gemini/deep-research.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser/daemon-client.test.d.ts → clis/hupu/mentions.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser/dom-helpers.test.d.ts → clis/lesswrong/comments.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser/page.test.d.ts → clis/lesswrong/curated.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser/stealth.test.d.ts → clis/lesswrong/frontpage.d.ts} +0 -0
- /package/vendor/opencli/dist/{build-manifest.test.d.ts → clis/lesswrong/new.d.ts} +0 -0
- /package/vendor/opencli/dist/{capabilityRouting.test.d.ts → clis/lesswrong/read.d.ts} +0 -0
- /package/vendor/opencli/dist/{cli.test.d.ts → clis/lesswrong/sequences.d.ts} +0 -0
- /package/vendor/opencli/dist/{commanderAdapter.test.d.ts → clis/lesswrong/shortform.d.ts} +0 -0
- /package/vendor/opencli/dist/{commands/daemon.test.d.ts → clis/lesswrong/tag.d.ts} +0 -0
- /package/vendor/opencli/dist/{completion.test.d.ts → clis/lesswrong/tags.d.ts} +0 -0
- /package/vendor/opencli/dist/{daemon.test.d.ts → clis/lesswrong/top-month.d.ts} +0 -0
- /package/vendor/opencli/dist/{doctor.test.d.ts → clis/lesswrong/top-week.d.ts} +0 -0
- /package/vendor/opencli/dist/{download/index.test.d.ts → clis/lesswrong/top-year.d.ts} +0 -0
- /package/vendor/opencli/dist/{electron-apps.test.d.ts → clis/lesswrong/top.d.ts} +0 -0
- /package/vendor/opencli/dist/{engine.test.d.ts → clis/lesswrong/user-posts.d.ts} +0 -0
- /package/vendor/opencli/dist/{errors.test.d.ts → clis/lesswrong/user.d.ts} +0 -0
- /package/vendor/opencli/dist/{analysis.d.ts → src/analysis.d.ts} +0 -0
- /package/vendor/opencli/dist/{analysis.js → src/analysis.js} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/base-page.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/base-page.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/bridge.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/bridge.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/cdp.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/cdp.js +0 -0
- /package/vendor/opencli/dist/{extension-manifest-regression.test.d.ts → src/browser/cdp.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/cdp.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/daemon-client.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/daemon-client.js +0 -0
- /package/vendor/opencli/dist/{external.test.d.ts → src/browser/daemon-client.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/daemon-client.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/discover.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/discover.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-helpers.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-helpers.js +0 -0
- /package/vendor/opencli/dist/{launcher.test.d.ts → src/browser/dom-helpers.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-helpers.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-snapshot.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-snapshot.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-snapshot.test.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/dom-snapshot.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/errors.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/errors.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/index.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/index.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/page.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/page.js +0 -0
- /package/vendor/opencli/dist/{node-network.test.d.ts → src/browser/page.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/page.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/stealth.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/stealth.js +0 -0
- /package/vendor/opencli/dist/{output.test.d.ts → src/browser/stealth.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/stealth.test.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/tabs.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/tabs.js +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/utils.d.ts +0 -0
- /package/vendor/opencli/dist/{browser → src/browser}/utils.js +0 -0
- /package/vendor/opencli/dist/{execution.test.d.ts → src/browser.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{browser.test.js → src/browser.test.js} +0 -0
- /package/vendor/opencli/dist/{build-manifest.d.ts → src/build-manifest.d.ts} +0 -0
- /package/vendor/opencli/dist/{pipeline/steps/download.test.d.ts → src/build-manifest.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{build-manifest.test.js → src/build-manifest.test.js} +0 -0
- /package/vendor/opencli/dist/{capabilityRouting.d.ts → src/capabilityRouting.d.ts} +0 -0
- /package/vendor/opencli/dist/{capabilityRouting.js → src/capabilityRouting.js} +0 -0
- /package/vendor/opencli/dist/{pipeline/steps/fetch.test.d.ts → src/capabilityRouting.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{capabilityRouting.test.js → src/capabilityRouting.test.js} +0 -0
- /package/vendor/opencli/dist/{cascade.d.ts → src/cascade.d.ts} +0 -0
- /package/vendor/opencli/dist/{record.test.d.ts → src/cli.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{runtime-detect.test.d.ts → src/commanderAdapter.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{commanderAdapter.test.js → src/commanderAdapter.test.js} +0 -0
- /package/vendor/opencli/dist/{commands → src/commands}/daemon.d.ts +0 -0
- /package/vendor/opencli/dist/{commands → src/commands}/daemon.js +0 -0
- /package/vendor/opencli/dist/{serialization.test.d.ts → src/commands/daemon.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{commands → src/commands}/daemon.test.js +0 -0
- /package/vendor/opencli/dist/{completion.d.ts → src/completion.d.ts} +0 -0
- /package/vendor/opencli/dist/{completion.js → src/completion.js} +0 -0
- /package/vendor/opencli/dist/{tui.test.d.ts → src/completion.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{completion.test.js → src/completion.test.js} +0 -0
- /package/vendor/opencli/dist/{constants.d.ts → src/constants.d.ts} +0 -0
- /package/vendor/opencli/dist/{constants.js → src/constants.js} +0 -0
- /package/vendor/opencli/dist/{daemon.d.ts → src/daemon.d.ts} +0 -0
- /package/vendor/opencli/dist/{daemon.js → src/daemon.js} +0 -0
- /package/vendor/opencli/dist/{weixin-download.test.d.ts → src/daemon.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{daemon.test.js → src/daemon.test.js} +0 -0
- /package/vendor/opencli/dist/{doctor.d.ts → src/doctor.d.ts} +0 -0
- /package/vendor/opencli/dist/{doctor.js → src/doctor.js} +0 -0
- /package/vendor/opencli/dist/{doctor.test.js → src/doctor.test.js} +0 -0
- /package/vendor/opencli/dist/{download → src/download}/article-download.d.ts +0 -0
- /package/vendor/opencli/dist/{download → src/download}/article-download.js +0 -0
- /package/vendor/opencli/dist/{download → src/download}/index.d.ts +0 -0
- /package/vendor/opencli/dist/{download → src/download}/index.js +0 -0
- /package/vendor/opencli/dist/{download → src/download}/index.test.js +0 -0
- /package/vendor/opencli/dist/{download → src/download}/media-download.d.ts +0 -0
- /package/vendor/opencli/dist/{download → src/download}/media-download.js +0 -0
- /package/vendor/opencli/dist/{download → src/download}/progress.d.ts +0 -0
- /package/vendor/opencli/dist/{download → src/download}/progress.js +0 -0
- /package/vendor/opencli/dist/{electron-apps.d.ts → src/electron-apps.d.ts} +0 -0
- /package/vendor/opencli/dist/{electron-apps.js → src/electron-apps.js} +0 -0
- /package/vendor/opencli/dist/{electron-apps.test.js → src/electron-apps.test.js} +0 -0
- /package/vendor/opencli/dist/{errors.d.ts → src/errors.d.ts} +0 -0
- /package/vendor/opencli/dist/{errors.js → src/errors.js} +0 -0
- /package/vendor/opencli/dist/{errors.test.js → src/errors.test.js} +0 -0
- /package/vendor/opencli/dist/{execution.d.ts → src/execution.d.ts} +0 -0
- /package/vendor/opencli/dist/{execution.test.js → src/execution.test.js} +0 -0
- /package/vendor/opencli/dist/{explore.d.ts → src/explore.d.ts} +0 -0
- /package/vendor/opencli/dist/{explore.js → src/explore.js} +0 -0
- /package/vendor/opencli/dist/{extension-manifest-regression.test.js → src/extension-manifest-regression.test.js} +0 -0
- /package/vendor/opencli/dist/{external-clis.yaml → src/external-clis.yaml} +0 -0
- /package/vendor/opencli/dist/{external.d.ts → src/external.d.ts} +0 -0
- /package/vendor/opencli/dist/{external.js → src/external.js} +0 -0
- /package/vendor/opencli/dist/{external.test.js → src/external.test.js} +0 -0
- /package/vendor/opencli/dist/{generate.d.ts → src/generate.d.ts} +0 -0
- /package/vendor/opencli/dist/{generate.js → src/generate.js} +0 -0
- /package/vendor/opencli/dist/{hooks.d.ts → src/hooks.d.ts} +0 -0
- /package/vendor/opencli/dist/{hooks.js → src/hooks.js} +0 -0
- /package/vendor/opencli/dist/{hooks.test.d.ts → src/hooks.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{hooks.test.js → src/hooks.test.js} +0 -0
- /package/vendor/opencli/dist/{idle-manager.d.ts → src/idle-manager.d.ts} +0 -0
- /package/vendor/opencli/dist/{idle-manager.js → src/idle-manager.js} +0 -0
- /package/vendor/opencli/dist/{interceptor.test.d.ts → src/interceptor.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{interceptor.test.js → src/interceptor.test.js} +0 -0
- /package/vendor/opencli/dist/{launcher.d.ts → src/launcher.d.ts} +0 -0
- /package/vendor/opencli/dist/{launcher.js → src/launcher.js} +0 -0
- /package/vendor/opencli/dist/{launcher.test.js → src/launcher.test.js} +0 -0
- /package/vendor/opencli/dist/{main.d.ts → src/main.d.ts} +0 -0
- /package/vendor/opencli/dist/{node-network.d.ts → src/node-network.d.ts} +0 -0
- /package/vendor/opencli/dist/{node-network.js → src/node-network.js} +0 -0
- /package/vendor/opencli/dist/{node-network.test.js → src/node-network.test.js} +0 -0
- /package/vendor/opencli/dist/{output.d.ts → src/output.d.ts} +0 -0
- /package/vendor/opencli/dist/{output.js → src/output.js} +0 -0
- /package/vendor/opencli/dist/{output.test.js → src/output.test.js} +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/executor.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/executor.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/executor.test.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/executor.test.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/index.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/index.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/registry.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/registry.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/browser.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/browser.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/download.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/download.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/download.test.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/fetch.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/fetch.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/fetch.test.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/intercept.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/intercept.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/tap.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/tap.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/transform.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/steps/transform.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/template.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/template.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/template.test.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/template.test.js +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/transform.test.d.ts +0 -0
- /package/vendor/opencli/dist/{pipeline → src/pipeline}/transform.test.js +0 -0
- /package/vendor/opencli/dist/{plugin-manifest.d.ts → src/plugin-manifest.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin-manifest.js → src/plugin-manifest.js} +0 -0
- /package/vendor/opencli/dist/{plugin-manifest.test.d.ts → src/plugin-manifest.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin-manifest.test.js → src/plugin-manifest.test.js} +0 -0
- /package/vendor/opencli/dist/{plugin-scaffold.d.ts → src/plugin-scaffold.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin-scaffold.js → src/plugin-scaffold.js} +0 -0
- /package/vendor/opencli/dist/{plugin-scaffold.test.d.ts → src/plugin-scaffold.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin-scaffold.test.js → src/plugin-scaffold.test.js} +0 -0
- /package/vendor/opencli/dist/{plugin.d.ts → src/plugin.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin.js → src/plugin.js} +0 -0
- /package/vendor/opencli/dist/{plugin.test.d.ts → src/plugin.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{plugin.test.js → src/plugin.test.js} +0 -0
- /package/vendor/opencli/dist/{record.d.ts → src/record.d.ts} +0 -0
- /package/vendor/opencli/dist/{record.test.js → src/record.test.js} +0 -0
- /package/vendor/opencli/dist/{registry-api.js → src/registry-api.js} +0 -0
- /package/vendor/opencli/dist/{registry.d.ts → src/registry.d.ts} +0 -0
- /package/vendor/opencli/dist/{registry.js → src/registry.js} +0 -0
- /package/vendor/opencli/dist/{registry.test.d.ts → src/registry.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{registry.test.js → src/registry.test.js} +0 -0
- /package/vendor/opencli/dist/{runtime-detect.d.ts → src/runtime-detect.d.ts} +0 -0
- /package/vendor/opencli/dist/{runtime-detect.js → src/runtime-detect.js} +0 -0
- /package/vendor/opencli/dist/{runtime-detect.test.js → src/runtime-detect.test.js} +0 -0
- /package/vendor/opencli/dist/{runtime.d.ts → src/runtime.d.ts} +0 -0
- /package/vendor/opencli/dist/{runtime.js → src/runtime.js} +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/framework.d.ts +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/framework.js +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/interact.d.ts +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/interact.js +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/store.d.ts +0 -0
- /package/vendor/opencli/dist/{scripts → src/scripts}/store.js +0 -0
- /package/vendor/opencli/dist/{serialization.d.ts → src/serialization.d.ts} +0 -0
- /package/vendor/opencli/dist/{serialization.js → src/serialization.js} +0 -0
- /package/vendor/opencli/dist/{serialization.test.js → src/serialization.test.js} +0 -0
- /package/vendor/opencli/dist/{snapshotFormatter.d.ts → src/snapshotFormatter.d.ts} +0 -0
- /package/vendor/opencli/dist/{snapshotFormatter.js → src/snapshotFormatter.js} +0 -0
- /package/vendor/opencli/dist/{snapshotFormatter.test.d.ts → src/snapshotFormatter.test.d.ts} +0 -0
- /package/vendor/opencli/dist/{snapshotFormatter.test.js → src/snapshotFormatter.test.js} +0 -0
- /package/vendor/opencli/dist/{tui.d.ts → src/tui.d.ts} +0 -0
- /package/vendor/opencli/dist/{tui.js → src/tui.js} +0 -0
- /package/vendor/opencli/dist/{tui.test.js → src/tui.test.js} +0 -0
- /package/vendor/opencli/dist/{types.d.ts → src/types.d.ts} +0 -0
- /package/vendor/opencli/dist/{types.js → src/types.js} +0 -0
- /package/vendor/opencli/dist/{update-check.d.ts → src/update-check.d.ts} +0 -0
- /package/vendor/opencli/dist/{update-check.js → src/update-check.js} +0 -0
- /package/vendor/opencli/dist/{validate.d.ts → src/validate.d.ts} +0 -0
- /package/vendor/opencli/dist/{validate.js → src/validate.js} +0 -0
- /package/vendor/opencli/dist/{verify.d.ts → src/verify.d.ts} +0 -0
- /package/vendor/opencli/dist/{verify.js → src/verify.js} +0 -0
- /package/vendor/opencli/dist/{version.d.ts → src/version.d.ts} +0 -0
- /package/vendor/opencli/dist/{yaml-schema.d.ts → src/yaml-schema.d.ts} +0 -0
- /package/vendor/opencli/dist/{yaml-schema.js → src/yaml-schema.js} +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `@huyuan-ai/cli`
|
|
2
2
|
|
|
3
|
-
企业场景下的 AI 助手与技能管理命令行工具。**npm 包名**为 **`@huyuan-ai/cli`**,安装后**命令行入口**为 **`huyuan-ai-cli`**(见 `package.json` 的 `bin`)。集成 [OpenCLI](https://github.com/jackwener/opencli)(Git Submodule)用于浏览器侧能力(如豆包对话),并通过自研 **Token Gateway**
|
|
3
|
+
企业场景下的 AI 助手与技能管理命令行工具。**npm 包名**为 **`@huyuan-ai/cli`**,安装后**命令行入口**为 **`huyuan-ai-cli`**(见 `package.json` 的 `bin`)。集成 [OpenCLI](https://github.com/jackwener/opencli)(Git Submodule)用于浏览器侧能力(如豆包对话),并通过自研 **Token Gateway** 从 **skills-hub** 单仓同步技能到本地。
|
|
4
4
|
|
|
5
5
|
## 从 npm 全局安装
|
|
6
6
|
|
|
@@ -12,7 +12,7 @@ huyuan-ai-cli --help
|
|
|
12
12
|
## 功能概览
|
|
13
13
|
|
|
14
14
|
- **登录**:将企业授权 Key 写入 `~/.huyuan-ai/config.json`
|
|
15
|
-
-
|
|
15
|
+
- **安装技能**:`huyuan-skill install` 等子命令用 Key 向网关换取短期令牌后,经 GitHub Contents API 按索引将技能目录同步到本地(默认 `~/.agents/skills`)
|
|
16
16
|
- **豆包对话**:`doubao ask` 在 OpenCLI 已加载的 registry 上执行 `doubao/ask`(需已登录,且依赖 OpenCLI 浏览器/Bridge 环境)
|
|
17
17
|
|
|
18
18
|
更细的架构、目录约定与开发约束见 **[AGENTS.md](./AGENTS.md)**。
|
|
@@ -60,7 +60,7 @@ huyuan-ai-cli --help
|
|
|
60
60
|
| 命令 | 说明 |
|
|
61
61
|
|------|------|
|
|
62
62
|
| `huyuan-ai-cli login <key>` | 保存企业授权 Key |
|
|
63
|
-
| `huyuan-ai-cli install <
|
|
63
|
+
| `huyuan-ai-cli huyuan-skill install <skillId>` | 从 skills-hub 索引安装技能到本地(需已 `login` 与网关环境变量) |
|
|
64
64
|
| `huyuan-ai-cli doubao ask <prompt>` | 豆包对话(需已 `login`) |
|
|
65
65
|
|
|
66
66
|
查看子命令帮助:`huyuan-ai-cli doubao ask --help`
|
|
@@ -71,8 +71,9 @@ huyuan-ai-cli --help
|
|
|
71
71
|
|
|
72
72
|
| 变量 | 说明 |
|
|
73
73
|
|------|------|
|
|
74
|
-
| `HUYUAN_TOKEN_GATEWAY_URL` | Token Gateway
|
|
75
|
-
| `
|
|
74
|
+
| `HUYUAN_TOKEN_GATEWAY_URL` | 可选;默认 `https://skills.xds365.com`(Token Gateway 根地址)。覆盖示例:`https://your-app.vercel.app`,详见 [src/constants.ts](src/constants.ts) |
|
|
75
|
+
| `HUYUAN_SKILL_HUB_OWNER` / `HUYUAN_SKILL_HUB_REPO` 等 | 可选;覆盖 skills-hub 单仓 owner、仓库名、分支与索引文件名,默认见 [src/constants.ts](src/constants.ts) |
|
|
76
|
+
| `INSTALL_ROOT` | 可选;技能落地根目录,默认 `~/.agents/skills` |
|
|
76
77
|
|
|
77
78
|
### 版本更新提示
|
|
78
79
|
|
|
@@ -98,7 +99,7 @@ huyuan-ai-cli --help
|
|
|
98
99
|
src/
|
|
99
100
|
index.ts # 入口
|
|
100
101
|
cli/program.ts # Commander 装配
|
|
101
|
-
core/ #
|
|
102
|
+
core/ # 登录、网关换 token 等平台能力
|
|
102
103
|
sites/doubao/ # 豆包子命令(可扩展其他 sites)
|
|
103
104
|
integrations/opencli/ # OpenCLI bootstrap 与 registry 执行封装
|
|
104
105
|
utils/config.ts # 本地配置
|
package/UPGRADE.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# @huyuan-ai/cli 升级说明
|
|
2
|
+
|
|
3
|
+
本文档说明各版本相对上一版本的重要变更,以及从旧版升级时的注意点。
|
|
4
|
+
|
|
5
|
+
## 1.3.0
|
|
6
|
+
|
|
7
|
+
### 新增
|
|
8
|
+
|
|
9
|
+
- **全局命令 `huyuan-opencli`**:与 `huyuan-ai-cli` 一并安装时,可直接在命令行使用上游 OpenCLI 的 CLI 入口(`list`、`doubao` 等子命令与独立安装 `@jackwener/opencli` 时的 `opencli` 一致)。命令名使用 `huyuan-opencli`,避免与本机已存在的 `opencli` 可执行文件在 PATH 上冲突。
|
|
10
|
+
|
|
11
|
+
### 升级步骤
|
|
12
|
+
|
|
13
|
+
1. 更新包,例如:`pnpm add -g @huyuan-ai/cli@latest` 或 `npm install -g @huyuan-ai/cli@latest`(按你本机习惯选择包管理器)。
|
|
14
|
+
2. 若从源码或 `pnpm link` 使用,在仓库根目录执行 `pnpm run build`,确保 `vendor/opencli/dist` 已构建。
|
|
15
|
+
3. 验证:`huyuan-ai-cli --help` 与 `huyuan-opencli --help` 均可正常输出。
|
|
16
|
+
|
|
17
|
+
### 说明
|
|
18
|
+
|
|
19
|
+
- `huyuan-opencli` 与 `huyuan-ai-cli` 共用同一套已构建的 `vendor/opencli/dist/clis` 与用户目录 `~/.opencli/clis`;企业封装能力仍以 `huyuan-ai-cli` 为主,`huyuan-opencli` 便于需要与上游 OpenCLI 命令行行为完全对齐的场景。
|
|
20
|
+
|
|
21
|
+
## 1.2.0 及更早
|
|
22
|
+
|
|
23
|
+
更早版本的变更若需追溯,请查看仓库提交历史或发布标签说明。
|
package/dist/cli/program.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import {
|
|
3
|
+
import { registerHuyuanSkill } from '../sites/huyuan-skill/register.js';
|
|
4
4
|
import { registerLogin } from '../core/login.js';
|
|
5
5
|
import { registerDoubao } from '../sites/doubao/register.js';
|
|
6
6
|
const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
|
|
@@ -14,7 +14,7 @@ export function createProgram() {
|
|
|
14
14
|
.version(pkg.version)
|
|
15
15
|
.enablePositionalOptions();
|
|
16
16
|
registerLogin(program);
|
|
17
|
-
|
|
17
|
+
registerHuyuanSkill(program);
|
|
18
18
|
registerDoubao(program);
|
|
19
19
|
return program;
|
|
20
20
|
}
|
package/dist/cli/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAC/C,CAAC;AAEzB,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,+DAA+D;IAC/D,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,OAAO;SACJ,IAAI,CAAC,eAAe,CAAC;SACrB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;SACpB,uBAAuB,EAAE,CAAC;IAE7B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export declare const
|
|
1
|
+
/** 未设置 `HUYUAN_TOKEN_GATEWAY_URL` 时使用的 Token Gateway 根地址(不含尾斜杠) */
|
|
2
|
+
export declare const DEFAULT_TOKEN_GATEWAY_URL = "https://skills.xds365.com";
|
|
3
3
|
/**
|
|
4
4
|
* 解析用于 GET 临时安装令牌的完整 URL(通常为 `{base}/api/token`)。
|
|
5
|
-
*
|
|
5
|
+
* 默认 base 为互远技能中心;可通过 `HUYUAN_TOKEN_GATEWAY_URL` 覆盖。
|
|
6
6
|
*/
|
|
7
7
|
export declare function getTokenRequestUrl(): string;
|
|
8
|
-
|
|
8
|
+
/** skills-hub 单仓默认 owner(GitHub) */
|
|
9
|
+
export declare const DEFAULT_SKILL_HUB_OWNER = "WeDAOLabs";
|
|
10
|
+
/** skills-hub 仓库名 */
|
|
11
|
+
export declare const DEFAULT_SKILL_HUB_REPO = "skills-hub";
|
|
12
|
+
/** 默认分支 */
|
|
13
|
+
export declare const DEFAULT_SKILL_HUB_BRANCH = "main";
|
|
14
|
+
/** 仓库根目录技能索引文件名 */
|
|
15
|
+
export declare const DEFAULT_SKILL_HUB_INDEX_FILE = "skills.index.yaml";
|
|
16
|
+
export declare function getSkillHubOwner(): string;
|
|
17
|
+
export declare function getSkillHubRepo(): string;
|
|
18
|
+
export declare function getSkillHubBranch(): string;
|
|
19
|
+
export declare function getSkillHubIndexFile(): string;
|
|
9
20
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAerE;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,oCAAoC;AACpC,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAEnD,qBAAqB;AACrB,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD,WAAW;AACX,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C,mBAAmB;AACnB,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAEhE,wBAAgB,gBAAgB,IAAI,MAAM,CAGzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
|
package/dist/constants.js
CHANGED
|
@@ -1,29 +1,51 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export const
|
|
1
|
+
/** 未设置 `HUYUAN_TOKEN_GATEWAY_URL` 时使用的 Token Gateway 根地址(不含尾斜杠) */
|
|
2
|
+
export const DEFAULT_TOKEN_GATEWAY_URL = 'https://skills.xds365.com';
|
|
3
3
|
/**
|
|
4
4
|
* 部署在 Vercel 的 Token Gateway 根地址,不含尾斜杠。
|
|
5
5
|
* 例:`https://your-project.vercel.app`
|
|
6
6
|
*
|
|
7
|
+
* 未设置或为空时使用 {@link DEFAULT_TOKEN_GATEWAY_URL}。
|
|
8
|
+
*
|
|
7
9
|
* 若已配置为完整 token 端点且以 `/api/token` 结尾,将原样使用,不再拼接路径。
|
|
8
10
|
*/
|
|
9
|
-
const envGateway = () =>
|
|
11
|
+
const envGateway = () => {
|
|
12
|
+
const o = process.env.HUYUAN_TOKEN_GATEWAY_URL?.trim();
|
|
13
|
+
return o && o.length > 0 ? o : DEFAULT_TOKEN_GATEWAY_URL;
|
|
14
|
+
};
|
|
10
15
|
/**
|
|
11
16
|
* 解析用于 GET 临时安装令牌的完整 URL(通常为 `{base}/api/token`)。
|
|
12
|
-
*
|
|
17
|
+
* 默认 base 为互远技能中心;可通过 `HUYUAN_TOKEN_GATEWAY_URL` 覆盖。
|
|
13
18
|
*/
|
|
14
19
|
export function getTokenRequestUrl() {
|
|
15
20
|
const raw = envGateway();
|
|
16
|
-
if (!raw) {
|
|
17
|
-
throw new Error('未配置授权网关:请设置环境变量 HUYUAN_TOKEN_GATEWAY_URL(例如 https://your-app.vercel.app)');
|
|
18
|
-
}
|
|
19
21
|
if (/\/api\/token\/?$/i.test(raw)) {
|
|
20
22
|
return raw.replace(/\/$/, '');
|
|
21
23
|
}
|
|
22
24
|
const base = raw.replace(/\/$/, '');
|
|
23
25
|
return `${base}/api/token`;
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
/** skills-hub 单仓默认 owner(GitHub) */
|
|
28
|
+
export const DEFAULT_SKILL_HUB_OWNER = 'WeDAOLabs';
|
|
29
|
+
/** skills-hub 仓库名 */
|
|
30
|
+
export const DEFAULT_SKILL_HUB_REPO = 'skills-hub';
|
|
31
|
+
/** 默认分支 */
|
|
32
|
+
export const DEFAULT_SKILL_HUB_BRANCH = 'main';
|
|
33
|
+
/** 仓库根目录技能索引文件名 */
|
|
34
|
+
export const DEFAULT_SKILL_HUB_INDEX_FILE = 'skills.index.yaml';
|
|
35
|
+
export function getSkillHubOwner() {
|
|
36
|
+
const o = process.env.HUYUAN_SKILL_HUB_OWNER?.trim();
|
|
37
|
+
return o && o.length > 0 ? o : DEFAULT_SKILL_HUB_OWNER;
|
|
38
|
+
}
|
|
39
|
+
export function getSkillHubRepo() {
|
|
40
|
+
const o = process.env.HUYUAN_SKILL_HUB_REPO?.trim();
|
|
41
|
+
return o && o.length > 0 ? o : DEFAULT_SKILL_HUB_REPO;
|
|
42
|
+
}
|
|
43
|
+
export function getSkillHubBranch() {
|
|
44
|
+
const o = process.env.HUYUAN_SKILL_HUB_BRANCH?.trim();
|
|
45
|
+
return o && o.length > 0 ? o : DEFAULT_SKILL_HUB_BRANCH;
|
|
46
|
+
}
|
|
47
|
+
export function getSkillHubIndexFile() {
|
|
48
|
+
const o = process.env.HUYUAN_SKILL_HUB_INDEX_FILE?.trim();
|
|
49
|
+
return o && o.length > 0 ? o : DEFAULT_SKILL_HUB_INDEX_FILE;
|
|
28
50
|
}
|
|
29
51
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;AAC3D,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,YAAY,CAAC;AAC7B,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAEnD,qBAAqB;AACrB,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAEnD,WAAW;AACX,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,mBAAmB;AACnB,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-token.d.ts","sourceRoot":"","sources":["../../src/core/gateway-token.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAyCzD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { getTokenRequestUrl } from '../constants.js';
|
|
3
|
+
import { auth } from '../utils/config.js';
|
|
4
|
+
function isTokenPayload(data) {
|
|
5
|
+
return (typeof data === 'object' &&
|
|
6
|
+
data !== null &&
|
|
7
|
+
'token' in data &&
|
|
8
|
+
typeof data.token === 'string' &&
|
|
9
|
+
data.token.length > 0);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 使用已保存的企业 Key 从网关换取 GitHub 可用的临时令牌。
|
|
13
|
+
*/
|
|
14
|
+
export async function fetchGatewayToken() {
|
|
15
|
+
const entKey = auth.getEnterpriseKey();
|
|
16
|
+
if (!entKey) {
|
|
17
|
+
throw new Error("未发现授权信息,请先执行 huyuan-ai-cli login <your-key>");
|
|
18
|
+
}
|
|
19
|
+
const tokenUrl = getTokenRequestUrl();
|
|
20
|
+
let token;
|
|
21
|
+
try {
|
|
22
|
+
const { data, status } = await axios.get(tokenUrl, {
|
|
23
|
+
params: { key: entKey },
|
|
24
|
+
timeout: 15_000,
|
|
25
|
+
validateStatus: () => true,
|
|
26
|
+
});
|
|
27
|
+
if (status === 401 || status === 403) {
|
|
28
|
+
throw new Error('授权失败:企业 Key 已过期或无权访问');
|
|
29
|
+
}
|
|
30
|
+
if (status < 200 || status >= 300) {
|
|
31
|
+
throw new Error(`授权中心请求失败(HTTP ${String(status)})`);
|
|
32
|
+
}
|
|
33
|
+
if (!isTokenPayload(data)) {
|
|
34
|
+
throw new Error('授权中心返回无效令牌');
|
|
35
|
+
}
|
|
36
|
+
token = data.token;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (axios.isAxiosError(err)) {
|
|
40
|
+
const s = err.response?.status;
|
|
41
|
+
if (s === 401 || s === 403) {
|
|
42
|
+
throw new Error('授权失败:企业 Key 已过期或无权访问');
|
|
43
|
+
}
|
|
44
|
+
if (s !== undefined) {
|
|
45
|
+
throw new Error(`授权中心请求失败(HTTP ${String(s)})`);
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`无法连接授权中心:${err.message}`);
|
|
48
|
+
}
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
51
|
+
return token;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=gateway-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-token.js","sourceRoot":"","sources":["../../src/core/gateway-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,IAAI;QACf,OAAQ,IAA2B,CAAC,KAAK,KAAK,QAAQ;QACrD,IAA0B,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAU,QAAQ,EAAE;YAC1D,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;YACvB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
export declare function listRemoteSkills(): Promise<void>;
|
|
3
|
+
export declare function installSkillFromHub(skillId: string): Promise<void>;
|
|
4
|
+
export declare function registerHuyuanSkill(program: Command): void;
|
|
5
|
+
//# sourceMappingURL=huyuan-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huyuan-skill.d.ts","sourceRoot":"","sources":["../../src/core/huyuan-skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBtD;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBxE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B1D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import Table from 'cli-table3';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fetchGatewayToken } from './gateway-token.js';
|
|
4
|
+
import { assertSkillEntryExists, downloadSkillTree, fetchSkillsIndex, findSkillById, } from './skills-hub.js';
|
|
5
|
+
import { getSkillInstallRoot } from '../utils/install-root.js';
|
|
6
|
+
const SKILL_ID_PATTERN = /^[a-zA-Z0-9._-]+$/;
|
|
7
|
+
const SKILL_ID_MAX_LEN = 100;
|
|
8
|
+
function assertValidSkillId(skillId) {
|
|
9
|
+
if (!skillId || skillId.length > SKILL_ID_MAX_LEN) {
|
|
10
|
+
throw new Error(`无效的技能 id:长度应在 1~${String(SKILL_ID_MAX_LEN)} 之间`);
|
|
11
|
+
}
|
|
12
|
+
if (!SKILL_ID_PATTERN.test(skillId)) {
|
|
13
|
+
throw new Error('无效的技能 id:仅允许字母、数字、点、下划线与连字符');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function listRemoteSkills() {
|
|
17
|
+
console.log('正在连接 Huyuan 授权中心...');
|
|
18
|
+
const token = await fetchGatewayToken();
|
|
19
|
+
console.log('正在获取技能索引...');
|
|
20
|
+
const index = await fetchSkillsIndex(token);
|
|
21
|
+
const table = new Table({
|
|
22
|
+
head: ['id', 'version', 'name', 'description'],
|
|
23
|
+
wordWrap: true,
|
|
24
|
+
});
|
|
25
|
+
for (const s of index.skills) {
|
|
26
|
+
table.push([
|
|
27
|
+
s.id,
|
|
28
|
+
s.version ?? '',
|
|
29
|
+
s.name ?? '',
|
|
30
|
+
s.description ?? '',
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
console.log(table.toString());
|
|
34
|
+
console.log(`TOTAL: ${String(index.skills.length)}`);
|
|
35
|
+
}
|
|
36
|
+
export async function installSkillFromHub(skillId) {
|
|
37
|
+
assertValidSkillId(skillId);
|
|
38
|
+
console.log('正在连接 Huyuan 授权中心...');
|
|
39
|
+
const token = await fetchGatewayToken();
|
|
40
|
+
console.log('正在获取技能索引...');
|
|
41
|
+
const index = await fetchSkillsIndex(token);
|
|
42
|
+
const entry = findSkillById(index, skillId);
|
|
43
|
+
if (!entry) {
|
|
44
|
+
throw new Error(`未找到技能:${skillId}(请先执行 huyuan-ai-cli huyuan-skill list 查看可用技能)`);
|
|
45
|
+
}
|
|
46
|
+
const root = getSkillInstallRoot();
|
|
47
|
+
const targetAbs = path.join(root, skillId);
|
|
48
|
+
console.log(`正在安装技能: ${skillId}...`);
|
|
49
|
+
await downloadSkillTree(token, entry, targetAbs);
|
|
50
|
+
await assertSkillEntryExists(targetAbs);
|
|
51
|
+
console.log(`安装完成:${targetAbs}`);
|
|
52
|
+
}
|
|
53
|
+
export function registerHuyuanSkill(program) {
|
|
54
|
+
const g = program
|
|
55
|
+
.command('huyuan-skill')
|
|
56
|
+
.description('互远技能仓库(skills-hub):列出与安装');
|
|
57
|
+
g.command('list')
|
|
58
|
+
.description('列出远端 skills.index.yaml 中的技能')
|
|
59
|
+
.action(async () => {
|
|
60
|
+
try {
|
|
61
|
+
await listRemoteSkills();
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
g.command('install <skillId>')
|
|
69
|
+
.description('按索引安装技能到本地(默认目录见 INSTALL_ROOT 或 ~/.agents/skills)')
|
|
70
|
+
.action(async (skillId) => {
|
|
71
|
+
try {
|
|
72
|
+
await installSkillFromHub(skillId);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
76
|
+
process.exitCode = 1;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=huyuan-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huyuan-skill.js","sourceRoot":"","sources":["../../src/core/huyuan-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBnE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYtD"}
|
package/dist/core/install.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
1
|
import { execa } from 'execa';
|
|
3
|
-
import { getSkillGithubOrg
|
|
4
|
-
import {
|
|
2
|
+
import { getSkillGithubOrg } from '../constants.js';
|
|
3
|
+
import { fetchGatewayToken } from './gateway-token.js';
|
|
5
4
|
const SKILL_NAME_PATTERN = /^[a-zA-Z0-9._-]+$/;
|
|
6
5
|
const SKILL_NAME_MAX_LEN = 100;
|
|
7
6
|
function assertValidSkillName(skillName) {
|
|
@@ -12,53 +11,11 @@ function assertValidSkillName(skillName) {
|
|
|
12
11
|
throw new Error('无效的技能名称:仅允许字母、数字、点、下划线与连字符');
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
|
-
function isTokenPayload(data) {
|
|
16
|
-
return (typeof data === 'object' &&
|
|
17
|
-
data !== null &&
|
|
18
|
-
'token' in data &&
|
|
19
|
-
typeof data.token === 'string' &&
|
|
20
|
-
data.token.length > 0);
|
|
21
|
-
}
|
|
22
14
|
export async function installSkill(skillName) {
|
|
23
15
|
assertValidSkillName(skillName);
|
|
24
|
-
const entKey = auth.getEnterpriseKey();
|
|
25
|
-
if (!entKey) {
|
|
26
|
-
throw new Error("未发现授权信息,请先执行 huyuan-ai-cli login <your-key>");
|
|
27
|
-
}
|
|
28
|
-
const tokenUrl = getTokenRequestUrl();
|
|
29
|
-
const org = getSkillGithubOrg();
|
|
30
16
|
console.log('正在连接 Huyuan 授权中心...');
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const { data, status } = await axios.get(tokenUrl, {
|
|
34
|
-
params: { key: entKey },
|
|
35
|
-
timeout: 15_000,
|
|
36
|
-
validateStatus: () => true,
|
|
37
|
-
});
|
|
38
|
-
if (status === 401 || status === 403) {
|
|
39
|
-
throw new Error('授权失败:企业 Key 已过期或无权访问此技能');
|
|
40
|
-
}
|
|
41
|
-
if (status < 200 || status >= 300) {
|
|
42
|
-
throw new Error(`授权中心请求失败(HTTP ${String(status)})`);
|
|
43
|
-
}
|
|
44
|
-
if (!isTokenPayload(data)) {
|
|
45
|
-
throw new Error('授权中心返回无效令牌');
|
|
46
|
-
}
|
|
47
|
-
token = data.token;
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
if (axios.isAxiosError(err)) {
|
|
51
|
-
const s = err.response?.status;
|
|
52
|
-
if (s === 401 || s === 403) {
|
|
53
|
-
throw new Error('授权失败:企业 Key 已过期或无权访问此技能');
|
|
54
|
-
}
|
|
55
|
-
if (s !== undefined) {
|
|
56
|
-
throw new Error(`授权中心请求失败(HTTP ${String(s)})`);
|
|
57
|
-
}
|
|
58
|
-
throw new Error(`无法连接授权中心:${err.message}`);
|
|
59
|
-
}
|
|
60
|
-
throw err;
|
|
61
|
-
}
|
|
17
|
+
const token = await fetchGatewayToken();
|
|
18
|
+
const org = getSkillGithubOrg();
|
|
62
19
|
const authenticatedUrl = `https://x-access-token:${encodeURIComponent(token)}@github.com/${org}/${skillName}.git`;
|
|
63
20
|
console.log(`正在安装私有技能: ${skillName}...`);
|
|
64
21
|
try {
|
package/dist/core/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/core/install.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kBAAkB,kBAAkB,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAEhC,MAAM,gBAAgB,GAAG,0BAA0B,kBAAkB,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,SAAS,MAAM,CAAC;IAElH,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,KAAK,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;YAC/D,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,YAAY,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SkillIndexEntry = {
|
|
2
|
+
id: string;
|
|
3
|
+
version?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
path: string;
|
|
7
|
+
};
|
|
8
|
+
export type SkillsIndexFile = {
|
|
9
|
+
schemaVersion?: number;
|
|
10
|
+
skills: SkillIndexEntry[];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 拉取并解析 skills.index.yaml
|
|
14
|
+
*/
|
|
15
|
+
export declare function fetchSkillsIndex(token: string): Promise<SkillsIndexFile>;
|
|
16
|
+
export declare function findSkillById(index: SkillsIndexFile, skillId: string): SkillIndexEntry | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* 将索引 path 所在目录(SKILL.md 的父目录)完整下载到 targetDir。
|
|
19
|
+
*/
|
|
20
|
+
export declare function downloadSkillTree(token: string, indexEntry: SkillIndexEntry, targetDir: string): Promise<void>;
|
|
21
|
+
export declare function assertSkillEntryExists(targetDir: string): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=skills-hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-hub.d.ts","sourceRoot":"","sources":["../../src/core/skills-hub.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AA2CF;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAoC9E;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,SAAS,CAE7B;AAsED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import yaml from 'js-yaml';
|
|
3
|
+
import { access, constants as fsConstants, mkdir, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { getSkillHubBranch, getSkillHubIndexFile, getSkillHubOwner, getSkillHubRepo, } from '../constants.js';
|
|
6
|
+
const USER_AGENT = 'huyuan-ai-cli';
|
|
7
|
+
function encodeGithubPath(repoPath) {
|
|
8
|
+
return repoPath
|
|
9
|
+
.split('/')
|
|
10
|
+
.filter((s) => s.length > 0)
|
|
11
|
+
.map(encodeURIComponent)
|
|
12
|
+
.join('/');
|
|
13
|
+
}
|
|
14
|
+
function contentsUrl(owner, repo, repoPath, branch) {
|
|
15
|
+
const encoded = encodeGithubPath(repoPath);
|
|
16
|
+
return `https://api.github.com/repos/${owner}/${repo}/contents/${encoded}?ref=${encodeURIComponent(branch)}`;
|
|
17
|
+
}
|
|
18
|
+
async function axiosGithub(token, url, accept, responseType = 'json') {
|
|
19
|
+
const { data, status } = await axios.get(url, {
|
|
20
|
+
headers: {
|
|
21
|
+
Authorization: `Bearer ${token}`,
|
|
22
|
+
Accept: accept,
|
|
23
|
+
'User-Agent': USER_AGENT,
|
|
24
|
+
},
|
|
25
|
+
responseType: responseType === 'text' ? 'text' : 'json',
|
|
26
|
+
validateStatus: () => true,
|
|
27
|
+
});
|
|
28
|
+
return { status, data };
|
|
29
|
+
}
|
|
30
|
+
function githubHttpError(status, context) {
|
|
31
|
+
if (status === 401 || status === 403) {
|
|
32
|
+
return new Error(`${context}:GitHub 拒绝访问(HTTP ${String(status)}),请检查授权是否仍有效`);
|
|
33
|
+
}
|
|
34
|
+
if (status === 404) {
|
|
35
|
+
return new Error(`${context}:远端不存在(HTTP 404)`);
|
|
36
|
+
}
|
|
37
|
+
return new Error(`${context}:请求失败(HTTP ${String(status)})`);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 拉取并解析 skills.index.yaml
|
|
41
|
+
*/
|
|
42
|
+
export async function fetchSkillsIndex(token) {
|
|
43
|
+
const owner = getSkillHubOwner();
|
|
44
|
+
const repo = getSkillHubRepo();
|
|
45
|
+
const branch = getSkillHubBranch();
|
|
46
|
+
const indexFile = getSkillHubIndexFile();
|
|
47
|
+
const url = contentsUrl(owner, repo, indexFile, branch);
|
|
48
|
+
const { status, data } = await axiosGithub(token, url, 'application/vnd.github.raw', 'text');
|
|
49
|
+
if (status < 200 || status >= 300 || typeof data !== 'string') {
|
|
50
|
+
throw githubHttpError(status, '读取技能索引');
|
|
51
|
+
}
|
|
52
|
+
const parsed = yaml.load(data);
|
|
53
|
+
if (typeof parsed !== 'object' ||
|
|
54
|
+
parsed === null ||
|
|
55
|
+
!('skills' in parsed) ||
|
|
56
|
+
!Array.isArray(parsed.skills)) {
|
|
57
|
+
throw new Error('技能索引格式无效:缺少 skills 列表');
|
|
58
|
+
}
|
|
59
|
+
const skills = parsed.skills;
|
|
60
|
+
for (const s of skills) {
|
|
61
|
+
if (!s || typeof s.id !== 'string' || typeof s.path !== 'string') {
|
|
62
|
+
throw new Error('技能索引格式无效:某项缺少 id 或 path');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return parsed;
|
|
66
|
+
}
|
|
67
|
+
export function findSkillById(index, skillId) {
|
|
68
|
+
return index.skills.find((s) => s.id === skillId);
|
|
69
|
+
}
|
|
70
|
+
async function downloadFile(token, repoPath, destAbs) {
|
|
71
|
+
const owner = getSkillHubOwner();
|
|
72
|
+
const repo = getSkillHubRepo();
|
|
73
|
+
const branch = getSkillHubBranch();
|
|
74
|
+
const url = contentsUrl(owner, repo, repoPath, branch);
|
|
75
|
+
const { status, data } = await axiosGithub(token, url, 'application/vnd.github.raw', 'text');
|
|
76
|
+
if (status < 200 || status >= 300 || typeof data !== 'string') {
|
|
77
|
+
throw githubHttpError(status, `下载 ${repoPath}`);
|
|
78
|
+
}
|
|
79
|
+
await mkdir(path.dirname(destAbs), { recursive: true });
|
|
80
|
+
await writeFile(destAbs, data, 'utf-8');
|
|
81
|
+
}
|
|
82
|
+
async function downloadDirRecursive(token, repoDir, destDir) {
|
|
83
|
+
const owner = getSkillHubOwner();
|
|
84
|
+
const repo = getSkillHubRepo();
|
|
85
|
+
const branch = getSkillHubBranch();
|
|
86
|
+
const url = contentsUrl(owner, repo, repoDir, branch);
|
|
87
|
+
const { status, data } = await axiosGithub(token, url, 'application/vnd.github+json', 'json');
|
|
88
|
+
if (status < 200 || status >= 300) {
|
|
89
|
+
throw githubHttpError(status, `读取目录 ${repoDir}`);
|
|
90
|
+
}
|
|
91
|
+
if (!Array.isArray(data)) {
|
|
92
|
+
throw new Error(`目录响应异常:${repoDir}`);
|
|
93
|
+
}
|
|
94
|
+
for (const raw of data) {
|
|
95
|
+
const item = raw;
|
|
96
|
+
const t = item.type;
|
|
97
|
+
const itemPath = item.path;
|
|
98
|
+
if (!t || !itemPath) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const rel = itemPath.startsWith(`${repoDir}/`)
|
|
102
|
+
? itemPath.slice(repoDir.length + 1)
|
|
103
|
+
: itemPath;
|
|
104
|
+
if (t === 'file') {
|
|
105
|
+
await downloadFile(token, itemPath, path.join(destDir, rel));
|
|
106
|
+
}
|
|
107
|
+
else if (t === 'dir') {
|
|
108
|
+
await downloadDirRecursive(token, itemPath, path.join(destDir, rel));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 将索引 path 所在目录(SKILL.md 的父目录)完整下载到 targetDir。
|
|
114
|
+
*/
|
|
115
|
+
export async function downloadSkillTree(token, indexEntry, targetDir) {
|
|
116
|
+
const skillPath = indexEntry.path.replace(/\\/g, '/');
|
|
117
|
+
const dirInRepo = path.posix.dirname(skillPath);
|
|
118
|
+
await rm(targetDir, { recursive: true, force: true });
|
|
119
|
+
await mkdir(targetDir, { recursive: true });
|
|
120
|
+
await downloadDirRecursive(token, dirInRepo, targetDir);
|
|
121
|
+
}
|
|
122
|
+
export async function assertSkillEntryExists(targetDir) {
|
|
123
|
+
const entry = path.join(targetDir, 'SKILL.md');
|
|
124
|
+
try {
|
|
125
|
+
await access(entry, fsConstants.F_OK);
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
throw new Error(`安装校验失败:未找到 ${entry}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=skills-hub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-hub.js","sourceRoot":"","sources":["../../src/core/skills-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,IAAI,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,UAAU,GAAG,eAAe,CAAC;AAenC,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,QAAQ;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,GAAG,CAAC,kBAAkB,CAAC;SACvB,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB,EAAE,MAAc;IAChF,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,gCAAgC,KAAK,IAAI,IAAI,aAAa,OAAO,QAAQ,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,GAAW,EACX,MAAc,EACd,eAAgC,MAAM;IAEtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;QAC5C,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,UAAU;SACzB;QACD,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACvD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;KAC3B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAe;IACtD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACrC,OAAO,IAAI,KAAK,CAAC,GAAG,OAAO,qBAAqB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,KAAK,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,GAAG,OAAO,cAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa;IAClD,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAExD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CACxC,KAAK,EACL,GAAG,EACH,4BAA4B,EAC5B,MAAM,CACP,CAAC;IAEF,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAY,CAAC;IAC1C,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;QACrB,CAAC,KAAK,CAAC,OAAO,CAAE,MAA8B,CAAC,MAAM,CAAC,EACtD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAI,MAAwC,CAAC,MAAM,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAsB,EACtB,OAAe;IAEf,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,QAAgB,EAChB,OAAe;IAEf,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CACxC,KAAK,EACL,GAAG,EACH,4BAA4B,EAC5B,MAAM,CACP,CAAC;IAEF,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAAa,EACb,OAAe,EACf,OAAe;IAEf,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CACxC,KAAK,EACL,GAAG,EACH,6BAA6B,EAC7B,MAAM,CACP,CAAC;IAEF,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClC,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAuC,CAAC;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,QAAQ,CAAC;QACb,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;YACjB,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,UAA2B,EAC3B,SAAiB;IAEjB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|