diff --git a/browser/cdp.ts b/browser/cdp.ts new file mode 100644 index 00000000..9ebd2393 --- /dev/null +++ b/browser/cdp.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/browser/ for adapter imports +export * from '../src/browser/cdp.js'; diff --git a/browser/page.ts b/browser/page.ts new file mode 100644 index 00000000..a93eebf6 --- /dev/null +++ b/browser/page.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/browser/ for adapter imports +export * from '../src/browser/page.js'; diff --git a/browser/utils.ts b/browser/utils.ts new file mode 100644 index 00000000..27bf4c47 --- /dev/null +++ b/browser/utils.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/browser/ for adapter imports +export * from '../src/browser/utils.js'; diff --git a/src/clis/1688/item.test.ts b/clis/1688/item.test.ts similarity index 100% rename from src/clis/1688/item.test.ts rename to clis/1688/item.test.ts diff --git a/src/clis/1688/item.ts b/clis/1688/item.ts similarity index 100% rename from src/clis/1688/item.ts rename to clis/1688/item.ts diff --git a/src/clis/1688/search.test.ts b/clis/1688/search.test.ts similarity index 100% rename from src/clis/1688/search.test.ts rename to clis/1688/search.test.ts diff --git a/src/clis/1688/search.ts b/clis/1688/search.ts similarity index 100% rename from src/clis/1688/search.ts rename to clis/1688/search.ts diff --git a/src/clis/1688/shared.test.ts b/clis/1688/shared.test.ts similarity index 100% rename from src/clis/1688/shared.test.ts rename to clis/1688/shared.test.ts diff --git a/src/clis/1688/shared.ts b/clis/1688/shared.ts similarity index 100% rename from src/clis/1688/shared.ts rename to clis/1688/shared.ts diff --git a/src/clis/1688/store.test.ts b/clis/1688/store.test.ts similarity index 100% rename from src/clis/1688/store.test.ts rename to clis/1688/store.test.ts diff --git a/src/clis/1688/store.ts b/clis/1688/store.ts similarity index 100% rename from src/clis/1688/store.ts rename to clis/1688/store.ts diff --git a/src/clis/36kr/article.ts b/clis/36kr/article.ts similarity index 100% rename from src/clis/36kr/article.ts rename to clis/36kr/article.ts diff --git a/src/clis/36kr/hot.test.ts b/clis/36kr/hot.test.ts similarity index 100% rename from src/clis/36kr/hot.test.ts rename to clis/36kr/hot.test.ts diff --git a/src/clis/36kr/hot.ts b/clis/36kr/hot.ts similarity index 100% rename from src/clis/36kr/hot.ts rename to clis/36kr/hot.ts diff --git a/src/clis/36kr/news.test.ts b/clis/36kr/news.test.ts similarity index 100% rename from src/clis/36kr/news.test.ts rename to clis/36kr/news.test.ts diff --git a/src/clis/36kr/news.ts b/clis/36kr/news.ts similarity index 100% rename from src/clis/36kr/news.ts rename to clis/36kr/news.ts diff --git a/src/clis/36kr/search.ts b/clis/36kr/search.ts similarity index 100% rename from src/clis/36kr/search.ts rename to clis/36kr/search.ts diff --git a/src/clis/_shared/common.ts b/clis/_shared/common.ts similarity index 100% rename from src/clis/_shared/common.ts rename to clis/_shared/common.ts diff --git a/src/clis/_shared/desktop-commands.ts b/clis/_shared/desktop-commands.ts similarity index 100% rename from src/clis/_shared/desktop-commands.ts rename to clis/_shared/desktop-commands.ts diff --git a/src/clis/amazon/bestsellers.test.ts b/clis/amazon/bestsellers.test.ts similarity index 100% rename from src/clis/amazon/bestsellers.test.ts rename to clis/amazon/bestsellers.test.ts diff --git a/src/clis/amazon/bestsellers.ts b/clis/amazon/bestsellers.ts similarity index 100% rename from src/clis/amazon/bestsellers.ts rename to clis/amazon/bestsellers.ts diff --git a/src/clis/amazon/discussion.test.ts b/clis/amazon/discussion.test.ts similarity index 100% rename from src/clis/amazon/discussion.test.ts rename to clis/amazon/discussion.test.ts diff --git a/src/clis/amazon/discussion.ts b/clis/amazon/discussion.ts similarity index 100% rename from src/clis/amazon/discussion.ts rename to clis/amazon/discussion.ts diff --git a/src/clis/amazon/movers-shakers.ts b/clis/amazon/movers-shakers.ts similarity index 100% rename from src/clis/amazon/movers-shakers.ts rename to clis/amazon/movers-shakers.ts diff --git a/src/clis/amazon/new-releases.ts b/clis/amazon/new-releases.ts similarity index 100% rename from src/clis/amazon/new-releases.ts rename to clis/amazon/new-releases.ts diff --git a/src/clis/amazon/offer.test.ts b/clis/amazon/offer.test.ts similarity index 100% rename from src/clis/amazon/offer.test.ts rename to clis/amazon/offer.test.ts diff --git a/src/clis/amazon/offer.ts b/clis/amazon/offer.ts similarity index 100% rename from src/clis/amazon/offer.ts rename to clis/amazon/offer.ts diff --git a/src/clis/amazon/product.test.ts b/clis/amazon/product.test.ts similarity index 100% rename from src/clis/amazon/product.test.ts rename to clis/amazon/product.test.ts diff --git a/src/clis/amazon/product.ts b/clis/amazon/product.ts similarity index 100% rename from src/clis/amazon/product.ts rename to clis/amazon/product.ts diff --git a/src/clis/amazon/rankings.test.ts b/clis/amazon/rankings.test.ts similarity index 100% rename from src/clis/amazon/rankings.test.ts rename to clis/amazon/rankings.test.ts diff --git a/src/clis/amazon/rankings.ts b/clis/amazon/rankings.ts similarity index 100% rename from src/clis/amazon/rankings.ts rename to clis/amazon/rankings.ts diff --git a/src/clis/amazon/search.test.ts b/clis/amazon/search.test.ts similarity index 100% rename from src/clis/amazon/search.test.ts rename to clis/amazon/search.test.ts diff --git a/src/clis/amazon/search.ts b/clis/amazon/search.ts similarity index 100% rename from src/clis/amazon/search.ts rename to clis/amazon/search.ts diff --git a/src/clis/amazon/shared.test.ts b/clis/amazon/shared.test.ts similarity index 100% rename from src/clis/amazon/shared.test.ts rename to clis/amazon/shared.test.ts diff --git a/src/clis/amazon/shared.ts b/clis/amazon/shared.ts similarity index 100% rename from src/clis/amazon/shared.ts rename to clis/amazon/shared.ts diff --git a/src/clis/antigravity/SKILL.md b/clis/antigravity/SKILL.md similarity index 100% rename from src/clis/antigravity/SKILL.md rename to clis/antigravity/SKILL.md diff --git a/src/clis/antigravity/dump.ts b/clis/antigravity/dump.ts similarity index 100% rename from src/clis/antigravity/dump.ts rename to clis/antigravity/dump.ts diff --git a/src/clis/antigravity/extract-code.ts b/clis/antigravity/extract-code.ts similarity index 100% rename from src/clis/antigravity/extract-code.ts rename to clis/antigravity/extract-code.ts diff --git a/src/clis/antigravity/model.ts b/clis/antigravity/model.ts similarity index 100% rename from src/clis/antigravity/model.ts rename to clis/antigravity/model.ts diff --git a/src/clis/antigravity/new.ts b/clis/antigravity/new.ts similarity index 100% rename from src/clis/antigravity/new.ts rename to clis/antigravity/new.ts diff --git a/src/clis/antigravity/read.ts b/clis/antigravity/read.ts similarity index 100% rename from src/clis/antigravity/read.ts rename to clis/antigravity/read.ts diff --git a/src/clis/antigravity/send.ts b/clis/antigravity/send.ts similarity index 100% rename from src/clis/antigravity/send.ts rename to clis/antigravity/send.ts diff --git a/src/clis/antigravity/serve.ts b/clis/antigravity/serve.ts similarity index 100% rename from src/clis/antigravity/serve.ts rename to clis/antigravity/serve.ts diff --git a/src/clis/antigravity/status.ts b/clis/antigravity/status.ts similarity index 100% rename from src/clis/antigravity/status.ts rename to clis/antigravity/status.ts diff --git a/src/clis/antigravity/watch.ts b/clis/antigravity/watch.ts similarity index 100% rename from src/clis/antigravity/watch.ts rename to clis/antigravity/watch.ts diff --git a/src/clis/apple-podcasts/commands.test.ts b/clis/apple-podcasts/commands.test.ts similarity index 100% rename from src/clis/apple-podcasts/commands.test.ts rename to clis/apple-podcasts/commands.test.ts diff --git a/src/clis/apple-podcasts/episodes.ts b/clis/apple-podcasts/episodes.ts similarity index 100% rename from src/clis/apple-podcasts/episodes.ts rename to clis/apple-podcasts/episodes.ts diff --git a/src/clis/apple-podcasts/search.ts b/clis/apple-podcasts/search.ts similarity index 100% rename from src/clis/apple-podcasts/search.ts rename to clis/apple-podcasts/search.ts diff --git a/src/clis/apple-podcasts/top.ts b/clis/apple-podcasts/top.ts similarity index 100% rename from src/clis/apple-podcasts/top.ts rename to clis/apple-podcasts/top.ts diff --git a/src/clis/apple-podcasts/utils.test.ts b/clis/apple-podcasts/utils.test.ts similarity index 100% rename from src/clis/apple-podcasts/utils.test.ts rename to clis/apple-podcasts/utils.test.ts diff --git a/src/clis/apple-podcasts/utils.ts b/clis/apple-podcasts/utils.ts similarity index 100% rename from src/clis/apple-podcasts/utils.ts rename to clis/apple-podcasts/utils.ts diff --git a/src/clis/arxiv/paper.ts b/clis/arxiv/paper.ts similarity index 100% rename from src/clis/arxiv/paper.ts rename to clis/arxiv/paper.ts diff --git a/src/clis/arxiv/search.ts b/clis/arxiv/search.ts similarity index 100% rename from src/clis/arxiv/search.ts rename to clis/arxiv/search.ts diff --git a/src/clis/arxiv/utils.ts b/clis/arxiv/utils.ts similarity index 100% rename from src/clis/arxiv/utils.ts rename to clis/arxiv/utils.ts diff --git a/src/clis/band/bands.ts b/clis/band/bands.ts similarity index 100% rename from src/clis/band/bands.ts rename to clis/band/bands.ts diff --git a/src/clis/band/mentions.ts b/clis/band/mentions.ts similarity index 100% rename from src/clis/band/mentions.ts rename to clis/band/mentions.ts diff --git a/src/clis/band/post.ts b/clis/band/post.ts similarity index 100% rename from src/clis/band/post.ts rename to clis/band/post.ts diff --git a/src/clis/band/posts.ts b/clis/band/posts.ts similarity index 100% rename from src/clis/band/posts.ts rename to clis/band/posts.ts diff --git a/src/clis/barchart/flow.ts b/clis/barchart/flow.ts similarity index 100% rename from src/clis/barchart/flow.ts rename to clis/barchart/flow.ts diff --git a/src/clis/barchart/greeks.ts b/clis/barchart/greeks.ts similarity index 100% rename from src/clis/barchart/greeks.ts rename to clis/barchart/greeks.ts diff --git a/src/clis/barchart/options.ts b/clis/barchart/options.ts similarity index 100% rename from src/clis/barchart/options.ts rename to clis/barchart/options.ts diff --git a/src/clis/barchart/quote.ts b/clis/barchart/quote.ts similarity index 100% rename from src/clis/barchart/quote.ts rename to clis/barchart/quote.ts diff --git a/src/clis/bbc/news.ts b/clis/bbc/news.ts similarity index 100% rename from src/clis/bbc/news.ts rename to clis/bbc/news.ts diff --git a/src/clis/bilibili/comments.test.ts b/clis/bilibili/comments.test.ts similarity index 100% rename from src/clis/bilibili/comments.test.ts rename to clis/bilibili/comments.test.ts diff --git a/src/clis/bilibili/comments.ts b/clis/bilibili/comments.ts similarity index 100% rename from src/clis/bilibili/comments.ts rename to clis/bilibili/comments.ts diff --git a/src/clis/bilibili/download.ts b/clis/bilibili/download.ts similarity index 100% rename from src/clis/bilibili/download.ts rename to clis/bilibili/download.ts diff --git a/src/clis/bilibili/dynamic.test.ts b/clis/bilibili/dynamic.test.ts similarity index 100% rename from src/clis/bilibili/dynamic.test.ts rename to clis/bilibili/dynamic.test.ts diff --git a/src/clis/bilibili/dynamic.ts b/clis/bilibili/dynamic.ts similarity index 100% rename from src/clis/bilibili/dynamic.ts rename to clis/bilibili/dynamic.ts diff --git a/src/clis/bilibili/favorite.ts b/clis/bilibili/favorite.ts similarity index 100% rename from src/clis/bilibili/favorite.ts rename to clis/bilibili/favorite.ts diff --git a/src/clis/bilibili/feed.ts b/clis/bilibili/feed.ts similarity index 100% rename from src/clis/bilibili/feed.ts rename to clis/bilibili/feed.ts diff --git a/src/clis/bilibili/following.ts b/clis/bilibili/following.ts similarity index 100% rename from src/clis/bilibili/following.ts rename to clis/bilibili/following.ts diff --git a/src/clis/bilibili/history.ts b/clis/bilibili/history.ts similarity index 100% rename from src/clis/bilibili/history.ts rename to clis/bilibili/history.ts diff --git a/src/clis/bilibili/hot.yaml b/clis/bilibili/hot.yaml similarity index 100% rename from src/clis/bilibili/hot.yaml rename to clis/bilibili/hot.yaml diff --git a/src/clis/bilibili/me.ts b/clis/bilibili/me.ts similarity index 100% rename from src/clis/bilibili/me.ts rename to clis/bilibili/me.ts diff --git a/src/clis/bilibili/ranking.ts b/clis/bilibili/ranking.ts similarity index 100% rename from src/clis/bilibili/ranking.ts rename to clis/bilibili/ranking.ts diff --git a/src/clis/bilibili/search.ts b/clis/bilibili/search.ts similarity index 100% rename from src/clis/bilibili/search.ts rename to clis/bilibili/search.ts diff --git a/src/clis/bilibili/subtitle.test.ts b/clis/bilibili/subtitle.test.ts similarity index 100% rename from src/clis/bilibili/subtitle.test.ts rename to clis/bilibili/subtitle.test.ts diff --git a/src/clis/bilibili/subtitle.ts b/clis/bilibili/subtitle.ts similarity index 100% rename from src/clis/bilibili/subtitle.ts rename to clis/bilibili/subtitle.ts diff --git a/src/clis/bilibili/user-videos.ts b/clis/bilibili/user-videos.ts similarity index 100% rename from src/clis/bilibili/user-videos.ts rename to clis/bilibili/user-videos.ts diff --git a/src/clis/bilibili/utils.test.ts b/clis/bilibili/utils.test.ts similarity index 100% rename from src/clis/bilibili/utils.test.ts rename to clis/bilibili/utils.test.ts diff --git a/src/clis/bilibili/utils.ts b/clis/bilibili/utils.ts similarity index 100% rename from src/clis/bilibili/utils.ts rename to clis/bilibili/utils.ts diff --git a/src/clis/bloomberg/businessweek.ts b/clis/bloomberg/businessweek.ts similarity index 100% rename from src/clis/bloomberg/businessweek.ts rename to clis/bloomberg/businessweek.ts diff --git a/src/clis/bloomberg/economics.ts b/clis/bloomberg/economics.ts similarity index 100% rename from src/clis/bloomberg/economics.ts rename to clis/bloomberg/economics.ts diff --git a/src/clis/bloomberg/feeds.ts b/clis/bloomberg/feeds.ts similarity index 100% rename from src/clis/bloomberg/feeds.ts rename to clis/bloomberg/feeds.ts diff --git a/src/clis/bloomberg/industries.ts b/clis/bloomberg/industries.ts similarity index 100% rename from src/clis/bloomberg/industries.ts rename to clis/bloomberg/industries.ts diff --git a/src/clis/bloomberg/main.ts b/clis/bloomberg/main.ts similarity index 100% rename from src/clis/bloomberg/main.ts rename to clis/bloomberg/main.ts diff --git a/src/clis/bloomberg/markets.ts b/clis/bloomberg/markets.ts similarity index 100% rename from src/clis/bloomberg/markets.ts rename to clis/bloomberg/markets.ts diff --git a/src/clis/bloomberg/news.ts b/clis/bloomberg/news.ts similarity index 100% rename from src/clis/bloomberg/news.ts rename to clis/bloomberg/news.ts diff --git a/src/clis/bloomberg/opinions.ts b/clis/bloomberg/opinions.ts similarity index 100% rename from src/clis/bloomberg/opinions.ts rename to clis/bloomberg/opinions.ts diff --git a/src/clis/bloomberg/politics.ts b/clis/bloomberg/politics.ts similarity index 100% rename from src/clis/bloomberg/politics.ts rename to clis/bloomberg/politics.ts diff --git a/src/clis/bloomberg/tech.ts b/clis/bloomberg/tech.ts similarity index 100% rename from src/clis/bloomberg/tech.ts rename to clis/bloomberg/tech.ts diff --git a/src/clis/bloomberg/utils.test.ts b/clis/bloomberg/utils.test.ts similarity index 100% rename from src/clis/bloomberg/utils.test.ts rename to clis/bloomberg/utils.test.ts diff --git a/src/clis/bloomberg/utils.ts b/clis/bloomberg/utils.ts similarity index 100% rename from src/clis/bloomberg/utils.ts rename to clis/bloomberg/utils.ts diff --git a/src/clis/bluesky/feeds.yaml b/clis/bluesky/feeds.yaml similarity index 100% rename from src/clis/bluesky/feeds.yaml rename to clis/bluesky/feeds.yaml diff --git a/src/clis/bluesky/followers.yaml b/clis/bluesky/followers.yaml similarity index 100% rename from src/clis/bluesky/followers.yaml rename to clis/bluesky/followers.yaml diff --git a/src/clis/bluesky/following.yaml b/clis/bluesky/following.yaml similarity index 100% rename from src/clis/bluesky/following.yaml rename to clis/bluesky/following.yaml diff --git a/src/clis/bluesky/profile.yaml b/clis/bluesky/profile.yaml similarity index 100% rename from src/clis/bluesky/profile.yaml rename to clis/bluesky/profile.yaml diff --git a/src/clis/bluesky/search.yaml b/clis/bluesky/search.yaml similarity index 100% rename from src/clis/bluesky/search.yaml rename to clis/bluesky/search.yaml diff --git a/src/clis/bluesky/starter-packs.yaml b/clis/bluesky/starter-packs.yaml similarity index 100% rename from src/clis/bluesky/starter-packs.yaml rename to clis/bluesky/starter-packs.yaml diff --git a/src/clis/bluesky/thread.yaml b/clis/bluesky/thread.yaml similarity index 100% rename from src/clis/bluesky/thread.yaml rename to clis/bluesky/thread.yaml diff --git a/src/clis/bluesky/trending.yaml b/clis/bluesky/trending.yaml similarity index 100% rename from src/clis/bluesky/trending.yaml rename to clis/bluesky/trending.yaml diff --git a/src/clis/bluesky/user.yaml b/clis/bluesky/user.yaml similarity index 100% rename from src/clis/bluesky/user.yaml rename to clis/bluesky/user.yaml diff --git a/src/clis/boss/batchgreet.ts b/clis/boss/batchgreet.ts similarity index 100% rename from src/clis/boss/batchgreet.ts rename to clis/boss/batchgreet.ts diff --git a/src/clis/boss/chatlist.ts b/clis/boss/chatlist.ts similarity index 100% rename from src/clis/boss/chatlist.ts rename to clis/boss/chatlist.ts diff --git a/src/clis/boss/chatmsg.ts b/clis/boss/chatmsg.ts similarity index 100% rename from src/clis/boss/chatmsg.ts rename to clis/boss/chatmsg.ts diff --git a/src/clis/boss/detail.ts b/clis/boss/detail.ts similarity index 100% rename from src/clis/boss/detail.ts rename to clis/boss/detail.ts diff --git a/src/clis/boss/exchange.ts b/clis/boss/exchange.ts similarity index 100% rename from src/clis/boss/exchange.ts rename to clis/boss/exchange.ts diff --git a/src/clis/boss/greet.ts b/clis/boss/greet.ts similarity index 100% rename from src/clis/boss/greet.ts rename to clis/boss/greet.ts diff --git a/src/clis/boss/invite.ts b/clis/boss/invite.ts similarity index 100% rename from src/clis/boss/invite.ts rename to clis/boss/invite.ts diff --git a/src/clis/boss/joblist.ts b/clis/boss/joblist.ts similarity index 100% rename from src/clis/boss/joblist.ts rename to clis/boss/joblist.ts diff --git a/src/clis/boss/mark.ts b/clis/boss/mark.ts similarity index 100% rename from src/clis/boss/mark.ts rename to clis/boss/mark.ts diff --git a/src/clis/boss/recommend.ts b/clis/boss/recommend.ts similarity index 100% rename from src/clis/boss/recommend.ts rename to clis/boss/recommend.ts diff --git a/src/clis/boss/resume.ts b/clis/boss/resume.ts similarity index 100% rename from src/clis/boss/resume.ts rename to clis/boss/resume.ts diff --git a/src/clis/boss/search.ts b/clis/boss/search.ts similarity index 100% rename from src/clis/boss/search.ts rename to clis/boss/search.ts diff --git a/src/clis/boss/send.ts b/clis/boss/send.ts similarity index 100% rename from src/clis/boss/send.ts rename to clis/boss/send.ts diff --git a/src/clis/boss/stats.ts b/clis/boss/stats.ts similarity index 100% rename from src/clis/boss/stats.ts rename to clis/boss/stats.ts diff --git a/src/clis/boss/utils.ts b/clis/boss/utils.ts similarity index 100% rename from src/clis/boss/utils.ts rename to clis/boss/utils.ts diff --git a/src/clis/chaoxing/assignments.ts b/clis/chaoxing/assignments.ts similarity index 100% rename from src/clis/chaoxing/assignments.ts rename to clis/chaoxing/assignments.ts diff --git a/src/clis/chaoxing/exams.ts b/clis/chaoxing/exams.ts similarity index 100% rename from src/clis/chaoxing/exams.ts rename to clis/chaoxing/exams.ts diff --git a/src/clis/chaoxing/utils.test.ts b/clis/chaoxing/utils.test.ts similarity index 100% rename from src/clis/chaoxing/utils.test.ts rename to clis/chaoxing/utils.test.ts diff --git a/src/clis/chaoxing/utils.ts b/clis/chaoxing/utils.ts similarity index 100% rename from src/clis/chaoxing/utils.ts rename to clis/chaoxing/utils.ts diff --git a/src/clis/chatgpt/ask.ts b/clis/chatgpt/ask.ts similarity index 100% rename from src/clis/chatgpt/ask.ts rename to clis/chatgpt/ask.ts diff --git a/src/clis/chatgpt/ax.ts b/clis/chatgpt/ax.ts similarity index 100% rename from src/clis/chatgpt/ax.ts rename to clis/chatgpt/ax.ts diff --git a/src/clis/chatgpt/model.ts b/clis/chatgpt/model.ts similarity index 100% rename from src/clis/chatgpt/model.ts rename to clis/chatgpt/model.ts diff --git a/src/clis/chatgpt/new.ts b/clis/chatgpt/new.ts similarity index 100% rename from src/clis/chatgpt/new.ts rename to clis/chatgpt/new.ts diff --git a/src/clis/chatgpt/read.ts b/clis/chatgpt/read.ts similarity index 100% rename from src/clis/chatgpt/read.ts rename to clis/chatgpt/read.ts diff --git a/src/clis/chatgpt/send.ts b/clis/chatgpt/send.ts similarity index 100% rename from src/clis/chatgpt/send.ts rename to clis/chatgpt/send.ts diff --git a/src/clis/chatgpt/status.ts b/clis/chatgpt/status.ts similarity index 100% rename from src/clis/chatgpt/status.ts rename to clis/chatgpt/status.ts diff --git a/src/clis/chatwise/ask.ts b/clis/chatwise/ask.ts similarity index 100% rename from src/clis/chatwise/ask.ts rename to clis/chatwise/ask.ts diff --git a/src/clis/chatwise/export.ts b/clis/chatwise/export.ts similarity index 100% rename from src/clis/chatwise/export.ts rename to clis/chatwise/export.ts diff --git a/src/clis/chatwise/history.ts b/clis/chatwise/history.ts similarity index 100% rename from src/clis/chatwise/history.ts rename to clis/chatwise/history.ts diff --git a/src/clis/chatwise/model.ts b/clis/chatwise/model.ts similarity index 100% rename from src/clis/chatwise/model.ts rename to clis/chatwise/model.ts diff --git a/src/clis/chatwise/new.ts b/clis/chatwise/new.ts similarity index 100% rename from src/clis/chatwise/new.ts rename to clis/chatwise/new.ts diff --git a/src/clis/chatwise/read.ts b/clis/chatwise/read.ts similarity index 100% rename from src/clis/chatwise/read.ts rename to clis/chatwise/read.ts diff --git a/src/clis/chatwise/screenshot.ts b/clis/chatwise/screenshot.ts similarity index 100% rename from src/clis/chatwise/screenshot.ts rename to clis/chatwise/screenshot.ts diff --git a/src/clis/chatwise/send.ts b/clis/chatwise/send.ts similarity index 100% rename from src/clis/chatwise/send.ts rename to clis/chatwise/send.ts diff --git a/src/clis/chatwise/status.ts b/clis/chatwise/status.ts similarity index 100% rename from src/clis/chatwise/status.ts rename to clis/chatwise/status.ts diff --git a/src/clis/codex/ask.ts b/clis/codex/ask.ts similarity index 100% rename from src/clis/codex/ask.ts rename to clis/codex/ask.ts diff --git a/src/clis/codex/dump.ts b/clis/codex/dump.ts similarity index 100% rename from src/clis/codex/dump.ts rename to clis/codex/dump.ts diff --git a/src/clis/codex/export.ts b/clis/codex/export.ts similarity index 100% rename from src/clis/codex/export.ts rename to clis/codex/export.ts diff --git a/src/clis/codex/extract-diff.ts b/clis/codex/extract-diff.ts similarity index 100% rename from src/clis/codex/extract-diff.ts rename to clis/codex/extract-diff.ts diff --git a/src/clis/codex/history.ts b/clis/codex/history.ts similarity index 100% rename from src/clis/codex/history.ts rename to clis/codex/history.ts diff --git a/src/clis/codex/model.ts b/clis/codex/model.ts similarity index 100% rename from src/clis/codex/model.ts rename to clis/codex/model.ts diff --git a/src/clis/codex/new.ts b/clis/codex/new.ts similarity index 100% rename from src/clis/codex/new.ts rename to clis/codex/new.ts diff --git a/src/clis/codex/read.ts b/clis/codex/read.ts similarity index 100% rename from src/clis/codex/read.ts rename to clis/codex/read.ts diff --git a/src/clis/codex/screenshot.ts b/clis/codex/screenshot.ts similarity index 100% rename from src/clis/codex/screenshot.ts rename to clis/codex/screenshot.ts diff --git a/src/clis/codex/send.ts b/clis/codex/send.ts similarity index 100% rename from src/clis/codex/send.ts rename to clis/codex/send.ts diff --git a/src/clis/codex/status.ts b/clis/codex/status.ts similarity index 100% rename from src/clis/codex/status.ts rename to clis/codex/status.ts diff --git a/src/clis/coupang/add-to-cart.ts b/clis/coupang/add-to-cart.ts similarity index 100% rename from src/clis/coupang/add-to-cart.ts rename to clis/coupang/add-to-cart.ts diff --git a/src/clis/coupang/search.ts b/clis/coupang/search.ts similarity index 100% rename from src/clis/coupang/search.ts rename to clis/coupang/search.ts diff --git a/src/clis/coupang/utils.test.ts b/clis/coupang/utils.test.ts similarity index 100% rename from src/clis/coupang/utils.test.ts rename to clis/coupang/utils.test.ts diff --git a/src/clis/coupang/utils.ts b/clis/coupang/utils.ts similarity index 100% rename from src/clis/coupang/utils.ts rename to clis/coupang/utils.ts diff --git a/src/clis/ctrip/search.test.ts b/clis/ctrip/search.test.ts similarity index 100% rename from src/clis/ctrip/search.test.ts rename to clis/ctrip/search.test.ts diff --git a/src/clis/ctrip/search.ts b/clis/ctrip/search.ts similarity index 100% rename from src/clis/ctrip/search.ts rename to clis/ctrip/search.ts diff --git a/src/clis/cursor/ask.ts b/clis/cursor/ask.ts similarity index 100% rename from src/clis/cursor/ask.ts rename to clis/cursor/ask.ts diff --git a/src/clis/cursor/composer.ts b/clis/cursor/composer.ts similarity index 100% rename from src/clis/cursor/composer.ts rename to clis/cursor/composer.ts diff --git a/src/clis/cursor/dump.ts b/clis/cursor/dump.ts similarity index 100% rename from src/clis/cursor/dump.ts rename to clis/cursor/dump.ts diff --git a/src/clis/cursor/export.ts b/clis/cursor/export.ts similarity index 100% rename from src/clis/cursor/export.ts rename to clis/cursor/export.ts diff --git a/src/clis/cursor/extract-code.ts b/clis/cursor/extract-code.ts similarity index 100% rename from src/clis/cursor/extract-code.ts rename to clis/cursor/extract-code.ts diff --git a/src/clis/cursor/history.ts b/clis/cursor/history.ts similarity index 100% rename from src/clis/cursor/history.ts rename to clis/cursor/history.ts diff --git a/src/clis/cursor/model.ts b/clis/cursor/model.ts similarity index 100% rename from src/clis/cursor/model.ts rename to clis/cursor/model.ts diff --git a/src/clis/cursor/new.ts b/clis/cursor/new.ts similarity index 100% rename from src/clis/cursor/new.ts rename to clis/cursor/new.ts diff --git a/src/clis/cursor/read.ts b/clis/cursor/read.ts similarity index 100% rename from src/clis/cursor/read.ts rename to clis/cursor/read.ts diff --git a/src/clis/cursor/screenshot.ts b/clis/cursor/screenshot.ts similarity index 100% rename from src/clis/cursor/screenshot.ts rename to clis/cursor/screenshot.ts diff --git a/src/clis/cursor/send.ts b/clis/cursor/send.ts similarity index 100% rename from src/clis/cursor/send.ts rename to clis/cursor/send.ts diff --git a/src/clis/cursor/status.ts b/clis/cursor/status.ts similarity index 100% rename from src/clis/cursor/status.ts rename to clis/cursor/status.ts diff --git a/src/clis/devto/tag.yaml b/clis/devto/tag.yaml similarity index 100% rename from src/clis/devto/tag.yaml rename to clis/devto/tag.yaml diff --git a/src/clis/devto/top.yaml b/clis/devto/top.yaml similarity index 100% rename from src/clis/devto/top.yaml rename to clis/devto/top.yaml diff --git a/src/clis/devto/user.yaml b/clis/devto/user.yaml similarity index 100% rename from src/clis/devto/user.yaml rename to clis/devto/user.yaml diff --git a/src/clis/dictionary/examples.yaml b/clis/dictionary/examples.yaml similarity index 100% rename from src/clis/dictionary/examples.yaml rename to clis/dictionary/examples.yaml diff --git a/src/clis/dictionary/search.yaml b/clis/dictionary/search.yaml similarity index 100% rename from src/clis/dictionary/search.yaml rename to clis/dictionary/search.yaml diff --git a/src/clis/dictionary/synonyms.yaml b/clis/dictionary/synonyms.yaml similarity index 100% rename from src/clis/dictionary/synonyms.yaml rename to clis/dictionary/synonyms.yaml diff --git a/src/clis/discord-app/channels.ts b/clis/discord-app/channels.ts similarity index 100% rename from src/clis/discord-app/channels.ts rename to clis/discord-app/channels.ts diff --git a/src/clis/discord-app/members.ts b/clis/discord-app/members.ts similarity index 100% rename from src/clis/discord-app/members.ts rename to clis/discord-app/members.ts diff --git a/src/clis/discord-app/read.ts b/clis/discord-app/read.ts similarity index 100% rename from src/clis/discord-app/read.ts rename to clis/discord-app/read.ts diff --git a/src/clis/discord-app/search.ts b/clis/discord-app/search.ts similarity index 100% rename from src/clis/discord-app/search.ts rename to clis/discord-app/search.ts diff --git a/src/clis/discord-app/send.ts b/clis/discord-app/send.ts similarity index 100% rename from src/clis/discord-app/send.ts rename to clis/discord-app/send.ts diff --git a/src/clis/discord-app/servers.ts b/clis/discord-app/servers.ts similarity index 100% rename from src/clis/discord-app/servers.ts rename to clis/discord-app/servers.ts diff --git a/src/clis/discord-app/status.ts b/clis/discord-app/status.ts similarity index 100% rename from src/clis/discord-app/status.ts rename to clis/discord-app/status.ts diff --git a/src/clis/douban/book-hot.ts b/clis/douban/book-hot.ts similarity index 100% rename from src/clis/douban/book-hot.ts rename to clis/douban/book-hot.ts diff --git a/src/clis/douban/download.test.ts b/clis/douban/download.test.ts similarity index 100% rename from src/clis/douban/download.test.ts rename to clis/douban/download.test.ts diff --git a/src/clis/douban/download.ts b/clis/douban/download.ts similarity index 100% rename from src/clis/douban/download.ts rename to clis/douban/download.ts diff --git a/src/clis/douban/marks.ts b/clis/douban/marks.ts similarity index 100% rename from src/clis/douban/marks.ts rename to clis/douban/marks.ts diff --git a/src/clis/douban/movie-hot.ts b/clis/douban/movie-hot.ts similarity index 100% rename from src/clis/douban/movie-hot.ts rename to clis/douban/movie-hot.ts diff --git a/src/clis/douban/photos.ts b/clis/douban/photos.ts similarity index 100% rename from src/clis/douban/photos.ts rename to clis/douban/photos.ts diff --git a/src/clis/douban/reviews.ts b/clis/douban/reviews.ts similarity index 100% rename from src/clis/douban/reviews.ts rename to clis/douban/reviews.ts diff --git a/src/clis/douban/search.ts b/clis/douban/search.ts similarity index 100% rename from src/clis/douban/search.ts rename to clis/douban/search.ts diff --git a/src/clis/douban/subject.yaml b/clis/douban/subject.yaml similarity index 100% rename from src/clis/douban/subject.yaml rename to clis/douban/subject.yaml diff --git a/src/clis/douban/top250.yaml b/clis/douban/top250.yaml similarity index 100% rename from src/clis/douban/top250.yaml rename to clis/douban/top250.yaml diff --git a/src/clis/douban/utils.test.ts b/clis/douban/utils.test.ts similarity index 100% rename from src/clis/douban/utils.test.ts rename to clis/douban/utils.test.ts diff --git a/src/clis/douban/utils.ts b/clis/douban/utils.ts similarity index 100% rename from src/clis/douban/utils.ts rename to clis/douban/utils.ts diff --git a/src/clis/doubao-app/ask.ts b/clis/doubao-app/ask.ts similarity index 100% rename from src/clis/doubao-app/ask.ts rename to clis/doubao-app/ask.ts diff --git a/src/clis/doubao-app/dump.ts b/clis/doubao-app/dump.ts similarity index 100% rename from src/clis/doubao-app/dump.ts rename to clis/doubao-app/dump.ts diff --git a/src/clis/doubao-app/new.ts b/clis/doubao-app/new.ts similarity index 100% rename from src/clis/doubao-app/new.ts rename to clis/doubao-app/new.ts diff --git a/src/clis/doubao-app/read.ts b/clis/doubao-app/read.ts similarity index 100% rename from src/clis/doubao-app/read.ts rename to clis/doubao-app/read.ts diff --git a/src/clis/doubao-app/screenshot.ts b/clis/doubao-app/screenshot.ts similarity index 100% rename from src/clis/doubao-app/screenshot.ts rename to clis/doubao-app/screenshot.ts diff --git a/src/clis/doubao-app/send.ts b/clis/doubao-app/send.ts similarity index 100% rename from src/clis/doubao-app/send.ts rename to clis/doubao-app/send.ts diff --git a/src/clis/doubao-app/status.ts b/clis/doubao-app/status.ts similarity index 100% rename from src/clis/doubao-app/status.ts rename to clis/doubao-app/status.ts diff --git a/src/clis/doubao-app/utils.ts b/clis/doubao-app/utils.ts similarity index 100% rename from src/clis/doubao-app/utils.ts rename to clis/doubao-app/utils.ts diff --git a/src/clis/doubao/ask.ts b/clis/doubao/ask.ts similarity index 100% rename from src/clis/doubao/ask.ts rename to clis/doubao/ask.ts diff --git a/src/clis/doubao/detail.test.ts b/clis/doubao/detail.test.ts similarity index 100% rename from src/clis/doubao/detail.test.ts rename to clis/doubao/detail.test.ts diff --git a/src/clis/doubao/detail.ts b/clis/doubao/detail.ts similarity index 100% rename from src/clis/doubao/detail.ts rename to clis/doubao/detail.ts diff --git a/src/clis/doubao/history.test.ts b/clis/doubao/history.test.ts similarity index 100% rename from src/clis/doubao/history.test.ts rename to clis/doubao/history.test.ts diff --git a/src/clis/doubao/history.ts b/clis/doubao/history.ts similarity index 100% rename from src/clis/doubao/history.ts rename to clis/doubao/history.ts diff --git a/src/clis/doubao/meeting-summary.ts b/clis/doubao/meeting-summary.ts similarity index 100% rename from src/clis/doubao/meeting-summary.ts rename to clis/doubao/meeting-summary.ts diff --git a/src/clis/doubao/meeting-transcript.ts b/clis/doubao/meeting-transcript.ts similarity index 100% rename from src/clis/doubao/meeting-transcript.ts rename to clis/doubao/meeting-transcript.ts diff --git a/src/clis/doubao/new.ts b/clis/doubao/new.ts similarity index 100% rename from src/clis/doubao/new.ts rename to clis/doubao/new.ts diff --git a/src/clis/doubao/read.ts b/clis/doubao/read.ts similarity index 100% rename from src/clis/doubao/read.ts rename to clis/doubao/read.ts diff --git a/src/clis/doubao/send.ts b/clis/doubao/send.ts similarity index 100% rename from src/clis/doubao/send.ts rename to clis/doubao/send.ts diff --git a/src/clis/doubao/status.ts b/clis/doubao/status.ts similarity index 100% rename from src/clis/doubao/status.ts rename to clis/doubao/status.ts diff --git a/src/clis/doubao/utils.test.ts b/clis/doubao/utils.test.ts similarity index 100% rename from src/clis/doubao/utils.test.ts rename to clis/doubao/utils.test.ts diff --git a/src/clis/doubao/utils.ts b/clis/doubao/utils.ts similarity index 100% rename from src/clis/doubao/utils.ts rename to clis/doubao/utils.ts diff --git a/src/clis/douyin/_shared/browser-fetch.test.ts b/clis/douyin/_shared/browser-fetch.test.ts similarity index 100% rename from src/clis/douyin/_shared/browser-fetch.test.ts rename to clis/douyin/_shared/browser-fetch.test.ts diff --git a/src/clis/douyin/_shared/browser-fetch.ts b/clis/douyin/_shared/browser-fetch.ts similarity index 100% rename from src/clis/douyin/_shared/browser-fetch.ts rename to clis/douyin/_shared/browser-fetch.ts diff --git a/src/clis/douyin/_shared/creation-id.test.ts b/clis/douyin/_shared/creation-id.test.ts similarity index 100% rename from src/clis/douyin/_shared/creation-id.test.ts rename to clis/douyin/_shared/creation-id.test.ts diff --git a/src/clis/douyin/_shared/creation-id.ts b/clis/douyin/_shared/creation-id.ts similarity index 100% rename from src/clis/douyin/_shared/creation-id.ts rename to clis/douyin/_shared/creation-id.ts diff --git a/src/clis/douyin/_shared/imagex-upload.test.ts b/clis/douyin/_shared/imagex-upload.test.ts similarity index 100% rename from src/clis/douyin/_shared/imagex-upload.test.ts rename to clis/douyin/_shared/imagex-upload.test.ts diff --git a/src/clis/douyin/_shared/imagex-upload.ts b/clis/douyin/_shared/imagex-upload.ts similarity index 100% rename from src/clis/douyin/_shared/imagex-upload.ts rename to clis/douyin/_shared/imagex-upload.ts diff --git a/src/clis/douyin/_shared/public-api.ts b/clis/douyin/_shared/public-api.ts similarity index 100% rename from src/clis/douyin/_shared/public-api.ts rename to clis/douyin/_shared/public-api.ts diff --git a/src/clis/douyin/_shared/sts2.test.ts b/clis/douyin/_shared/sts2.test.ts similarity index 100% rename from src/clis/douyin/_shared/sts2.test.ts rename to clis/douyin/_shared/sts2.test.ts diff --git a/src/clis/douyin/_shared/sts2.ts b/clis/douyin/_shared/sts2.ts similarity index 100% rename from src/clis/douyin/_shared/sts2.ts rename to clis/douyin/_shared/sts2.ts diff --git a/src/clis/douyin/_shared/text-extra.test.ts b/clis/douyin/_shared/text-extra.test.ts similarity index 100% rename from src/clis/douyin/_shared/text-extra.test.ts rename to clis/douyin/_shared/text-extra.test.ts diff --git a/src/clis/douyin/_shared/text-extra.ts b/clis/douyin/_shared/text-extra.ts similarity index 100% rename from src/clis/douyin/_shared/text-extra.ts rename to clis/douyin/_shared/text-extra.ts diff --git a/src/clis/douyin/_shared/timing.test.ts b/clis/douyin/_shared/timing.test.ts similarity index 100% rename from src/clis/douyin/_shared/timing.test.ts rename to clis/douyin/_shared/timing.test.ts diff --git a/src/clis/douyin/_shared/timing.ts b/clis/douyin/_shared/timing.ts similarity index 100% rename from src/clis/douyin/_shared/timing.ts rename to clis/douyin/_shared/timing.ts diff --git a/src/clis/douyin/_shared/tos-upload-short-read.test.ts b/clis/douyin/_shared/tos-upload-short-read.test.ts similarity index 100% rename from src/clis/douyin/_shared/tos-upload-short-read.test.ts rename to clis/douyin/_shared/tos-upload-short-read.test.ts diff --git a/src/clis/douyin/_shared/tos-upload.test.ts b/clis/douyin/_shared/tos-upload.test.ts similarity index 100% rename from src/clis/douyin/_shared/tos-upload.test.ts rename to clis/douyin/_shared/tos-upload.test.ts diff --git a/src/clis/douyin/_shared/tos-upload.ts b/clis/douyin/_shared/tos-upload.ts similarity index 100% rename from src/clis/douyin/_shared/tos-upload.ts rename to clis/douyin/_shared/tos-upload.ts diff --git a/src/clis/douyin/_shared/transcode.test.ts b/clis/douyin/_shared/transcode.test.ts similarity index 100% rename from src/clis/douyin/_shared/transcode.test.ts rename to clis/douyin/_shared/transcode.test.ts diff --git a/src/clis/douyin/_shared/transcode.ts b/clis/douyin/_shared/transcode.ts similarity index 100% rename from src/clis/douyin/_shared/transcode.ts rename to clis/douyin/_shared/transcode.ts diff --git a/src/clis/douyin/_shared/types.ts b/clis/douyin/_shared/types.ts similarity index 100% rename from src/clis/douyin/_shared/types.ts rename to clis/douyin/_shared/types.ts diff --git a/src/clis/douyin/activities.test.ts b/clis/douyin/activities.test.ts similarity index 100% rename from src/clis/douyin/activities.test.ts rename to clis/douyin/activities.test.ts diff --git a/src/clis/douyin/activities.ts b/clis/douyin/activities.ts similarity index 100% rename from src/clis/douyin/activities.ts rename to clis/douyin/activities.ts diff --git a/src/clis/douyin/collections.test.ts b/clis/douyin/collections.test.ts similarity index 100% rename from src/clis/douyin/collections.test.ts rename to clis/douyin/collections.test.ts diff --git a/src/clis/douyin/collections.ts b/clis/douyin/collections.ts similarity index 100% rename from src/clis/douyin/collections.ts rename to clis/douyin/collections.ts diff --git a/src/clis/douyin/delete.test.ts b/clis/douyin/delete.test.ts similarity index 100% rename from src/clis/douyin/delete.test.ts rename to clis/douyin/delete.test.ts diff --git a/src/clis/douyin/delete.ts b/clis/douyin/delete.ts similarity index 100% rename from src/clis/douyin/delete.ts rename to clis/douyin/delete.ts diff --git a/src/clis/douyin/draft.test.ts b/clis/douyin/draft.test.ts similarity index 100% rename from src/clis/douyin/draft.test.ts rename to clis/douyin/draft.test.ts diff --git a/src/clis/douyin/draft.ts b/clis/douyin/draft.ts similarity index 100% rename from src/clis/douyin/draft.ts rename to clis/douyin/draft.ts diff --git a/src/clis/douyin/drafts.test.ts b/clis/douyin/drafts.test.ts similarity index 100% rename from src/clis/douyin/drafts.test.ts rename to clis/douyin/drafts.test.ts diff --git a/src/clis/douyin/drafts.ts b/clis/douyin/drafts.ts similarity index 100% rename from src/clis/douyin/drafts.ts rename to clis/douyin/drafts.ts diff --git a/src/clis/douyin/hashtag.test.ts b/clis/douyin/hashtag.test.ts similarity index 100% rename from src/clis/douyin/hashtag.test.ts rename to clis/douyin/hashtag.test.ts diff --git a/src/clis/douyin/hashtag.ts b/clis/douyin/hashtag.ts similarity index 100% rename from src/clis/douyin/hashtag.ts rename to clis/douyin/hashtag.ts diff --git a/src/clis/douyin/location.test.ts b/clis/douyin/location.test.ts similarity index 100% rename from src/clis/douyin/location.test.ts rename to clis/douyin/location.test.ts diff --git a/src/clis/douyin/location.ts b/clis/douyin/location.ts similarity index 100% rename from src/clis/douyin/location.ts rename to clis/douyin/location.ts diff --git a/src/clis/douyin/profile.test.ts b/clis/douyin/profile.test.ts similarity index 100% rename from src/clis/douyin/profile.test.ts rename to clis/douyin/profile.test.ts diff --git a/src/clis/douyin/profile.ts b/clis/douyin/profile.ts similarity index 100% rename from src/clis/douyin/profile.ts rename to clis/douyin/profile.ts diff --git a/src/clis/douyin/publish.test.ts b/clis/douyin/publish.test.ts similarity index 100% rename from src/clis/douyin/publish.test.ts rename to clis/douyin/publish.test.ts diff --git a/src/clis/douyin/publish.ts b/clis/douyin/publish.ts similarity index 100% rename from src/clis/douyin/publish.ts rename to clis/douyin/publish.ts diff --git a/src/clis/douyin/stats.test.ts b/clis/douyin/stats.test.ts similarity index 100% rename from src/clis/douyin/stats.test.ts rename to clis/douyin/stats.test.ts diff --git a/src/clis/douyin/stats.ts b/clis/douyin/stats.ts similarity index 100% rename from src/clis/douyin/stats.ts rename to clis/douyin/stats.ts diff --git a/src/clis/douyin/update.test.ts b/clis/douyin/update.test.ts similarity index 100% rename from src/clis/douyin/update.test.ts rename to clis/douyin/update.test.ts diff --git a/src/clis/douyin/update.ts b/clis/douyin/update.ts similarity index 100% rename from src/clis/douyin/update.ts rename to clis/douyin/update.ts diff --git a/src/clis/douyin/user-videos.test.ts b/clis/douyin/user-videos.test.ts similarity index 100% rename from src/clis/douyin/user-videos.test.ts rename to clis/douyin/user-videos.test.ts diff --git a/src/clis/douyin/user-videos.ts b/clis/douyin/user-videos.ts similarity index 100% rename from src/clis/douyin/user-videos.ts rename to clis/douyin/user-videos.ts diff --git a/src/clis/douyin/videos.test.ts b/clis/douyin/videos.test.ts similarity index 100% rename from src/clis/douyin/videos.test.ts rename to clis/douyin/videos.test.ts diff --git a/src/clis/douyin/videos.ts b/clis/douyin/videos.ts similarity index 100% rename from src/clis/douyin/videos.ts rename to clis/douyin/videos.ts diff --git a/src/clis/facebook/add-friend.yaml b/clis/facebook/add-friend.yaml similarity index 100% rename from src/clis/facebook/add-friend.yaml rename to clis/facebook/add-friend.yaml diff --git a/src/clis/facebook/events.yaml b/clis/facebook/events.yaml similarity index 100% rename from src/clis/facebook/events.yaml rename to clis/facebook/events.yaml diff --git a/src/clis/facebook/feed.yaml b/clis/facebook/feed.yaml similarity index 100% rename from src/clis/facebook/feed.yaml rename to clis/facebook/feed.yaml diff --git a/src/clis/facebook/friends.yaml b/clis/facebook/friends.yaml similarity index 100% rename from src/clis/facebook/friends.yaml rename to clis/facebook/friends.yaml diff --git a/src/clis/facebook/groups.yaml b/clis/facebook/groups.yaml similarity index 100% rename from src/clis/facebook/groups.yaml rename to clis/facebook/groups.yaml diff --git a/src/clis/facebook/join-group.yaml b/clis/facebook/join-group.yaml similarity index 100% rename from src/clis/facebook/join-group.yaml rename to clis/facebook/join-group.yaml diff --git a/src/clis/facebook/memories.yaml b/clis/facebook/memories.yaml similarity index 100% rename from src/clis/facebook/memories.yaml rename to clis/facebook/memories.yaml diff --git a/src/clis/facebook/notifications.yaml b/clis/facebook/notifications.yaml similarity index 100% rename from src/clis/facebook/notifications.yaml rename to clis/facebook/notifications.yaml diff --git a/src/clis/facebook/profile.yaml b/clis/facebook/profile.yaml similarity index 100% rename from src/clis/facebook/profile.yaml rename to clis/facebook/profile.yaml diff --git a/src/clis/facebook/search.test.ts b/clis/facebook/search.test.ts similarity index 100% rename from src/clis/facebook/search.test.ts rename to clis/facebook/search.test.ts diff --git a/src/clis/facebook/search.yaml b/clis/facebook/search.yaml similarity index 100% rename from src/clis/facebook/search.yaml rename to clis/facebook/search.yaml diff --git a/src/clis/gemini/ask.test.ts b/clis/gemini/ask.test.ts similarity index 100% rename from src/clis/gemini/ask.test.ts rename to clis/gemini/ask.test.ts diff --git a/src/clis/gemini/ask.ts b/clis/gemini/ask.ts similarity index 100% rename from src/clis/gemini/ask.ts rename to clis/gemini/ask.ts diff --git a/src/clis/gemini/image.ts b/clis/gemini/image.ts similarity index 100% rename from src/clis/gemini/image.ts rename to clis/gemini/image.ts diff --git a/src/clis/gemini/new.ts b/clis/gemini/new.ts similarity index 100% rename from src/clis/gemini/new.ts rename to clis/gemini/new.ts diff --git a/src/clis/gemini/reply-state.test.ts b/clis/gemini/reply-state.test.ts similarity index 100% rename from src/clis/gemini/reply-state.test.ts rename to clis/gemini/reply-state.test.ts diff --git a/src/clis/gemini/utils.test.ts b/clis/gemini/utils.test.ts similarity index 100% rename from src/clis/gemini/utils.test.ts rename to clis/gemini/utils.test.ts diff --git a/src/clis/gemini/utils.ts b/clis/gemini/utils.ts similarity index 100% rename from src/clis/gemini/utils.ts rename to clis/gemini/utils.ts diff --git a/src/clis/google/news.ts b/clis/google/news.ts similarity index 100% rename from src/clis/google/news.ts rename to clis/google/news.ts diff --git a/src/clis/google/search.ts b/clis/google/search.ts similarity index 100% rename from src/clis/google/search.ts rename to clis/google/search.ts diff --git a/src/clis/google/suggest.ts b/clis/google/suggest.ts similarity index 100% rename from src/clis/google/suggest.ts rename to clis/google/suggest.ts diff --git a/src/clis/google/trends.ts b/clis/google/trends.ts similarity index 100% rename from src/clis/google/trends.ts rename to clis/google/trends.ts diff --git a/src/clis/google/utils.test.ts b/clis/google/utils.test.ts similarity index 100% rename from src/clis/google/utils.test.ts rename to clis/google/utils.test.ts diff --git a/src/clis/google/utils.ts b/clis/google/utils.ts similarity index 100% rename from src/clis/google/utils.ts rename to clis/google/utils.ts diff --git a/src/clis/grok/ask.test.ts b/clis/grok/ask.test.ts similarity index 100% rename from src/clis/grok/ask.test.ts rename to clis/grok/ask.test.ts diff --git a/src/clis/grok/ask.ts b/clis/grok/ask.ts similarity index 100% rename from src/clis/grok/ask.ts rename to clis/grok/ask.ts diff --git a/src/clis/hackernews/ask.yaml b/clis/hackernews/ask.yaml similarity index 100% rename from src/clis/hackernews/ask.yaml rename to clis/hackernews/ask.yaml diff --git a/src/clis/hackernews/best.yaml b/clis/hackernews/best.yaml similarity index 100% rename from src/clis/hackernews/best.yaml rename to clis/hackernews/best.yaml diff --git a/src/clis/hackernews/jobs.yaml b/clis/hackernews/jobs.yaml similarity index 100% rename from src/clis/hackernews/jobs.yaml rename to clis/hackernews/jobs.yaml diff --git a/src/clis/hackernews/new.yaml b/clis/hackernews/new.yaml similarity index 100% rename from src/clis/hackernews/new.yaml rename to clis/hackernews/new.yaml diff --git a/src/clis/hackernews/search.yaml b/clis/hackernews/search.yaml similarity index 100% rename from src/clis/hackernews/search.yaml rename to clis/hackernews/search.yaml diff --git a/src/clis/hackernews/show.yaml b/clis/hackernews/show.yaml similarity index 100% rename from src/clis/hackernews/show.yaml rename to clis/hackernews/show.yaml diff --git a/src/clis/hackernews/top.yaml b/clis/hackernews/top.yaml similarity index 100% rename from src/clis/hackernews/top.yaml rename to clis/hackernews/top.yaml diff --git a/src/clis/hackernews/user.yaml b/clis/hackernews/user.yaml similarity index 100% rename from src/clis/hackernews/user.yaml rename to clis/hackernews/user.yaml diff --git a/src/clis/hf/top.ts b/clis/hf/top.ts similarity index 100% rename from src/clis/hf/top.ts rename to clis/hf/top.ts diff --git a/src/clis/hupu/detail.ts b/clis/hupu/detail.ts similarity index 100% rename from src/clis/hupu/detail.ts rename to clis/hupu/detail.ts diff --git a/src/clis/hupu/hot.yaml b/clis/hupu/hot.yaml similarity index 100% rename from src/clis/hupu/hot.yaml rename to clis/hupu/hot.yaml diff --git a/src/clis/hupu/like.ts b/clis/hupu/like.ts similarity index 100% rename from src/clis/hupu/like.ts rename to clis/hupu/like.ts diff --git a/src/clis/hupu/reply.ts b/clis/hupu/reply.ts similarity index 100% rename from src/clis/hupu/reply.ts rename to clis/hupu/reply.ts diff --git a/src/clis/hupu/search.ts b/clis/hupu/search.ts similarity index 100% rename from src/clis/hupu/search.ts rename to clis/hupu/search.ts diff --git a/src/clis/hupu/unlike.ts b/clis/hupu/unlike.ts similarity index 100% rename from src/clis/hupu/unlike.ts rename to clis/hupu/unlike.ts diff --git a/src/clis/hupu/utils.ts b/clis/hupu/utils.ts similarity index 100% rename from src/clis/hupu/utils.ts rename to clis/hupu/utils.ts diff --git a/src/clis/imdb/person.ts b/clis/imdb/person.ts similarity index 100% rename from src/clis/imdb/person.ts rename to clis/imdb/person.ts diff --git a/src/clis/imdb/reviews.ts b/clis/imdb/reviews.ts similarity index 100% rename from src/clis/imdb/reviews.ts rename to clis/imdb/reviews.ts diff --git a/src/clis/imdb/search.ts b/clis/imdb/search.ts similarity index 100% rename from src/clis/imdb/search.ts rename to clis/imdb/search.ts diff --git a/src/clis/imdb/title.ts b/clis/imdb/title.ts similarity index 100% rename from src/clis/imdb/title.ts rename to clis/imdb/title.ts diff --git a/src/clis/imdb/top.ts b/clis/imdb/top.ts similarity index 100% rename from src/clis/imdb/top.ts rename to clis/imdb/top.ts diff --git a/src/clis/imdb/trending.ts b/clis/imdb/trending.ts similarity index 100% rename from src/clis/imdb/trending.ts rename to clis/imdb/trending.ts diff --git a/src/clis/imdb/utils.test.ts b/clis/imdb/utils.test.ts similarity index 100% rename from src/clis/imdb/utils.test.ts rename to clis/imdb/utils.test.ts diff --git a/src/clis/imdb/utils.ts b/clis/imdb/utils.ts similarity index 100% rename from src/clis/imdb/utils.ts rename to clis/imdb/utils.ts diff --git a/src/clis/instagram/_shared/private-publish.test.ts b/clis/instagram/_shared/private-publish.test.ts similarity index 100% rename from src/clis/instagram/_shared/private-publish.test.ts rename to clis/instagram/_shared/private-publish.test.ts diff --git a/src/clis/instagram/_shared/private-publish.ts b/clis/instagram/_shared/private-publish.ts similarity index 100% rename from src/clis/instagram/_shared/private-publish.ts rename to clis/instagram/_shared/private-publish.ts diff --git a/src/clis/instagram/_shared/protocol-capture.test.ts b/clis/instagram/_shared/protocol-capture.test.ts similarity index 100% rename from src/clis/instagram/_shared/protocol-capture.test.ts rename to clis/instagram/_shared/protocol-capture.test.ts diff --git a/src/clis/instagram/_shared/protocol-capture.ts b/clis/instagram/_shared/protocol-capture.ts similarity index 100% rename from src/clis/instagram/_shared/protocol-capture.ts rename to clis/instagram/_shared/protocol-capture.ts diff --git a/src/clis/instagram/_shared/runtime-info.ts b/clis/instagram/_shared/runtime-info.ts similarity index 100% rename from src/clis/instagram/_shared/runtime-info.ts rename to clis/instagram/_shared/runtime-info.ts diff --git a/src/clis/instagram/comment.yaml b/clis/instagram/comment.yaml similarity index 100% rename from src/clis/instagram/comment.yaml rename to clis/instagram/comment.yaml diff --git a/src/clis/instagram/download.test.ts b/clis/instagram/download.test.ts similarity index 100% rename from src/clis/instagram/download.test.ts rename to clis/instagram/download.test.ts diff --git a/src/clis/instagram/download.ts b/clis/instagram/download.ts similarity index 100% rename from src/clis/instagram/download.ts rename to clis/instagram/download.ts diff --git a/src/clis/instagram/explore.yaml b/clis/instagram/explore.yaml similarity index 100% rename from src/clis/instagram/explore.yaml rename to clis/instagram/explore.yaml diff --git a/src/clis/instagram/follow.yaml b/clis/instagram/follow.yaml similarity index 100% rename from src/clis/instagram/follow.yaml rename to clis/instagram/follow.yaml diff --git a/src/clis/instagram/followers.yaml b/clis/instagram/followers.yaml similarity index 100% rename from src/clis/instagram/followers.yaml rename to clis/instagram/followers.yaml diff --git a/src/clis/instagram/following.yaml b/clis/instagram/following.yaml similarity index 100% rename from src/clis/instagram/following.yaml rename to clis/instagram/following.yaml diff --git a/src/clis/instagram/like.yaml b/clis/instagram/like.yaml similarity index 100% rename from src/clis/instagram/like.yaml rename to clis/instagram/like.yaml diff --git a/src/clis/instagram/note.test.ts b/clis/instagram/note.test.ts similarity index 100% rename from src/clis/instagram/note.test.ts rename to clis/instagram/note.test.ts diff --git a/src/clis/instagram/note.ts b/clis/instagram/note.ts similarity index 100% rename from src/clis/instagram/note.ts rename to clis/instagram/note.ts diff --git a/src/clis/instagram/post.test.ts b/clis/instagram/post.test.ts similarity index 100% rename from src/clis/instagram/post.test.ts rename to clis/instagram/post.test.ts diff --git a/src/clis/instagram/post.ts b/clis/instagram/post.ts similarity index 100% rename from src/clis/instagram/post.ts rename to clis/instagram/post.ts diff --git a/src/clis/instagram/profile.yaml b/clis/instagram/profile.yaml similarity index 100% rename from src/clis/instagram/profile.yaml rename to clis/instagram/profile.yaml diff --git a/src/clis/instagram/reel.test.ts b/clis/instagram/reel.test.ts similarity index 100% rename from src/clis/instagram/reel.test.ts rename to clis/instagram/reel.test.ts diff --git a/src/clis/instagram/reel.ts b/clis/instagram/reel.ts similarity index 100% rename from src/clis/instagram/reel.ts rename to clis/instagram/reel.ts diff --git a/src/clis/instagram/save.yaml b/clis/instagram/save.yaml similarity index 100% rename from src/clis/instagram/save.yaml rename to clis/instagram/save.yaml diff --git a/src/clis/instagram/saved.yaml b/clis/instagram/saved.yaml similarity index 100% rename from src/clis/instagram/saved.yaml rename to clis/instagram/saved.yaml diff --git a/src/clis/instagram/search.yaml b/clis/instagram/search.yaml similarity index 100% rename from src/clis/instagram/search.yaml rename to clis/instagram/search.yaml diff --git a/src/clis/instagram/story.test.ts b/clis/instagram/story.test.ts similarity index 100% rename from src/clis/instagram/story.test.ts rename to clis/instagram/story.test.ts diff --git a/src/clis/instagram/story.ts b/clis/instagram/story.ts similarity index 100% rename from src/clis/instagram/story.ts rename to clis/instagram/story.ts diff --git a/src/clis/instagram/unfollow.yaml b/clis/instagram/unfollow.yaml similarity index 100% rename from src/clis/instagram/unfollow.yaml rename to clis/instagram/unfollow.yaml diff --git a/src/clis/instagram/unlike.yaml b/clis/instagram/unlike.yaml similarity index 100% rename from src/clis/instagram/unlike.yaml rename to clis/instagram/unlike.yaml diff --git a/src/clis/instagram/unsave.yaml b/clis/instagram/unsave.yaml similarity index 100% rename from src/clis/instagram/unsave.yaml rename to clis/instagram/unsave.yaml diff --git a/src/clis/instagram/user.yaml b/clis/instagram/user.yaml similarity index 100% rename from src/clis/instagram/user.yaml rename to clis/instagram/user.yaml diff --git a/src/clis/jd/item.test.ts b/clis/jd/item.test.ts similarity index 100% rename from src/clis/jd/item.test.ts rename to clis/jd/item.test.ts diff --git a/src/clis/jd/item.ts b/clis/jd/item.ts similarity index 100% rename from src/clis/jd/item.ts rename to clis/jd/item.ts diff --git a/src/clis/jike/comment.ts b/clis/jike/comment.ts similarity index 100% rename from src/clis/jike/comment.ts rename to clis/jike/comment.ts diff --git a/src/clis/jike/create.ts b/clis/jike/create.ts similarity index 100% rename from src/clis/jike/create.ts rename to clis/jike/create.ts diff --git a/src/clis/jike/feed.ts b/clis/jike/feed.ts similarity index 100% rename from src/clis/jike/feed.ts rename to clis/jike/feed.ts diff --git a/src/clis/jike/like.ts b/clis/jike/like.ts similarity index 100% rename from src/clis/jike/like.ts rename to clis/jike/like.ts diff --git a/src/clis/jike/notifications.ts b/clis/jike/notifications.ts similarity index 100% rename from src/clis/jike/notifications.ts rename to clis/jike/notifications.ts diff --git a/src/clis/jike/post.yaml b/clis/jike/post.yaml similarity index 100% rename from src/clis/jike/post.yaml rename to clis/jike/post.yaml diff --git a/src/clis/jike/repost.ts b/clis/jike/repost.ts similarity index 100% rename from src/clis/jike/repost.ts rename to clis/jike/repost.ts diff --git a/src/clis/jike/search.ts b/clis/jike/search.ts similarity index 100% rename from src/clis/jike/search.ts rename to clis/jike/search.ts diff --git a/src/clis/jike/topic.yaml b/clis/jike/topic.yaml similarity index 100% rename from src/clis/jike/topic.yaml rename to clis/jike/topic.yaml diff --git a/src/clis/jike/user.yaml b/clis/jike/user.yaml similarity index 100% rename from src/clis/jike/user.yaml rename to clis/jike/user.yaml diff --git a/src/clis/jike/utils.ts b/clis/jike/utils.ts similarity index 100% rename from src/clis/jike/utils.ts rename to clis/jike/utils.ts diff --git a/src/clis/jimeng/generate.yaml b/clis/jimeng/generate.yaml similarity index 100% rename from src/clis/jimeng/generate.yaml rename to clis/jimeng/generate.yaml diff --git a/src/clis/jimeng/history.yaml b/clis/jimeng/history.yaml similarity index 100% rename from src/clis/jimeng/history.yaml rename to clis/jimeng/history.yaml diff --git a/src/clis/linkedin/search.ts b/clis/linkedin/search.ts similarity index 100% rename from src/clis/linkedin/search.ts rename to clis/linkedin/search.ts diff --git a/src/clis/linkedin/timeline.test.ts b/clis/linkedin/timeline.test.ts similarity index 100% rename from src/clis/linkedin/timeline.test.ts rename to clis/linkedin/timeline.test.ts diff --git a/src/clis/linkedin/timeline.ts b/clis/linkedin/timeline.ts similarity index 100% rename from src/clis/linkedin/timeline.ts rename to clis/linkedin/timeline.ts diff --git a/src/clis/linux-do/categories.yaml b/clis/linux-do/categories.yaml similarity index 100% rename from src/clis/linux-do/categories.yaml rename to clis/linux-do/categories.yaml diff --git a/src/clis/linux-do/category.ts b/clis/linux-do/category.ts similarity index 100% rename from src/clis/linux-do/category.ts rename to clis/linux-do/category.ts diff --git a/src/clis/linux-do/feed.test.ts b/clis/linux-do/feed.test.ts similarity index 100% rename from src/clis/linux-do/feed.test.ts rename to clis/linux-do/feed.test.ts diff --git a/src/clis/linux-do/feed.ts b/clis/linux-do/feed.ts similarity index 100% rename from src/clis/linux-do/feed.ts rename to clis/linux-do/feed.ts diff --git a/src/clis/linux-do/hot.ts b/clis/linux-do/hot.ts similarity index 100% rename from src/clis/linux-do/hot.ts rename to clis/linux-do/hot.ts diff --git a/src/clis/linux-do/latest.ts b/clis/linux-do/latest.ts similarity index 100% rename from src/clis/linux-do/latest.ts rename to clis/linux-do/latest.ts diff --git a/src/clis/linux-do/search.yaml b/clis/linux-do/search.yaml similarity index 100% rename from src/clis/linux-do/search.yaml rename to clis/linux-do/search.yaml diff --git a/src/clis/linux-do/tags.yaml b/clis/linux-do/tags.yaml similarity index 100% rename from src/clis/linux-do/tags.yaml rename to clis/linux-do/tags.yaml diff --git a/src/clis/linux-do/topic.yaml b/clis/linux-do/topic.yaml similarity index 100% rename from src/clis/linux-do/topic.yaml rename to clis/linux-do/topic.yaml diff --git a/src/clis/linux-do/user-posts.yaml b/clis/linux-do/user-posts.yaml similarity index 100% rename from src/clis/linux-do/user-posts.yaml rename to clis/linux-do/user-posts.yaml diff --git a/src/clis/linux-do/user-topics.yaml b/clis/linux-do/user-topics.yaml similarity index 100% rename from src/clis/linux-do/user-topics.yaml rename to clis/linux-do/user-topics.yaml diff --git a/src/clis/lobsters/active.yaml b/clis/lobsters/active.yaml similarity index 100% rename from src/clis/lobsters/active.yaml rename to clis/lobsters/active.yaml diff --git a/src/clis/lobsters/hot.yaml b/clis/lobsters/hot.yaml similarity index 100% rename from src/clis/lobsters/hot.yaml rename to clis/lobsters/hot.yaml diff --git a/src/clis/lobsters/newest.yaml b/clis/lobsters/newest.yaml similarity index 100% rename from src/clis/lobsters/newest.yaml rename to clis/lobsters/newest.yaml diff --git a/src/clis/lobsters/tag.yaml b/clis/lobsters/tag.yaml similarity index 100% rename from src/clis/lobsters/tag.yaml rename to clis/lobsters/tag.yaml diff --git a/src/clis/medium/feed.ts b/clis/medium/feed.ts similarity index 100% rename from src/clis/medium/feed.ts rename to clis/medium/feed.ts diff --git a/src/clis/medium/search.ts b/clis/medium/search.ts similarity index 100% rename from src/clis/medium/search.ts rename to clis/medium/search.ts diff --git a/src/clis/medium/user.ts b/clis/medium/user.ts similarity index 100% rename from src/clis/medium/user.ts rename to clis/medium/user.ts diff --git a/src/clis/medium/utils.ts b/clis/medium/utils.ts similarity index 100% rename from src/clis/medium/utils.ts rename to clis/medium/utils.ts diff --git a/src/clis/notebooklm/compat.test.ts b/clis/notebooklm/compat.test.ts similarity index 100% rename from src/clis/notebooklm/compat.test.ts rename to clis/notebooklm/compat.test.ts diff --git a/src/clis/notebooklm/current.ts b/clis/notebooklm/current.ts similarity index 100% rename from src/clis/notebooklm/current.ts rename to clis/notebooklm/current.ts diff --git a/src/clis/notebooklm/get.ts b/clis/notebooklm/get.ts similarity index 100% rename from src/clis/notebooklm/get.ts rename to clis/notebooklm/get.ts diff --git a/src/clis/notebooklm/history.test.ts b/clis/notebooklm/history.test.ts similarity index 100% rename from src/clis/notebooklm/history.test.ts rename to clis/notebooklm/history.test.ts diff --git a/src/clis/notebooklm/history.ts b/clis/notebooklm/history.ts similarity index 100% rename from src/clis/notebooklm/history.ts rename to clis/notebooklm/history.ts diff --git a/src/clis/notebooklm/list.ts b/clis/notebooklm/list.ts similarity index 100% rename from src/clis/notebooklm/list.ts rename to clis/notebooklm/list.ts diff --git a/src/clis/notebooklm/note-list.test.ts b/clis/notebooklm/note-list.test.ts similarity index 100% rename from src/clis/notebooklm/note-list.test.ts rename to clis/notebooklm/note-list.test.ts diff --git a/src/clis/notebooklm/note-list.ts b/clis/notebooklm/note-list.ts similarity index 100% rename from src/clis/notebooklm/note-list.ts rename to clis/notebooklm/note-list.ts diff --git a/src/clis/notebooklm/notes-get.test.ts b/clis/notebooklm/notes-get.test.ts similarity index 100% rename from src/clis/notebooklm/notes-get.test.ts rename to clis/notebooklm/notes-get.test.ts diff --git a/src/clis/notebooklm/notes-get.ts b/clis/notebooklm/notes-get.ts similarity index 100% rename from src/clis/notebooklm/notes-get.ts rename to clis/notebooklm/notes-get.ts diff --git a/src/clis/notebooklm/open.test.ts b/clis/notebooklm/open.test.ts similarity index 100% rename from src/clis/notebooklm/open.test.ts rename to clis/notebooklm/open.test.ts diff --git a/src/clis/notebooklm/open.ts b/clis/notebooklm/open.ts similarity index 100% rename from src/clis/notebooklm/open.ts rename to clis/notebooklm/open.ts diff --git a/src/clis/notebooklm/rpc.test.ts b/clis/notebooklm/rpc.test.ts similarity index 100% rename from src/clis/notebooklm/rpc.test.ts rename to clis/notebooklm/rpc.test.ts diff --git a/src/clis/notebooklm/rpc.ts b/clis/notebooklm/rpc.ts similarity index 100% rename from src/clis/notebooklm/rpc.ts rename to clis/notebooklm/rpc.ts diff --git a/src/clis/notebooklm/shared.ts b/clis/notebooklm/shared.ts similarity index 100% rename from src/clis/notebooklm/shared.ts rename to clis/notebooklm/shared.ts diff --git a/src/clis/notebooklm/source-fulltext.test.ts b/clis/notebooklm/source-fulltext.test.ts similarity index 100% rename from src/clis/notebooklm/source-fulltext.test.ts rename to clis/notebooklm/source-fulltext.test.ts diff --git a/src/clis/notebooklm/source-fulltext.ts b/clis/notebooklm/source-fulltext.ts similarity index 100% rename from src/clis/notebooklm/source-fulltext.ts rename to clis/notebooklm/source-fulltext.ts diff --git a/src/clis/notebooklm/source-get.test.ts b/clis/notebooklm/source-get.test.ts similarity index 100% rename from src/clis/notebooklm/source-get.test.ts rename to clis/notebooklm/source-get.test.ts diff --git a/src/clis/notebooklm/source-get.ts b/clis/notebooklm/source-get.ts similarity index 100% rename from src/clis/notebooklm/source-get.ts rename to clis/notebooklm/source-get.ts diff --git a/src/clis/notebooklm/source-guide.test.ts b/clis/notebooklm/source-guide.test.ts similarity index 100% rename from src/clis/notebooklm/source-guide.test.ts rename to clis/notebooklm/source-guide.test.ts diff --git a/src/clis/notebooklm/source-guide.ts b/clis/notebooklm/source-guide.ts similarity index 100% rename from src/clis/notebooklm/source-guide.ts rename to clis/notebooklm/source-guide.ts diff --git a/src/clis/notebooklm/source-list.ts b/clis/notebooklm/source-list.ts similarity index 100% rename from src/clis/notebooklm/source-list.ts rename to clis/notebooklm/source-list.ts diff --git a/src/clis/notebooklm/status.ts b/clis/notebooklm/status.ts similarity index 100% rename from src/clis/notebooklm/status.ts rename to clis/notebooklm/status.ts diff --git a/src/clis/notebooklm/summary.test.ts b/clis/notebooklm/summary.test.ts similarity index 100% rename from src/clis/notebooklm/summary.test.ts rename to clis/notebooklm/summary.test.ts diff --git a/src/clis/notebooklm/summary.ts b/clis/notebooklm/summary.ts similarity index 100% rename from src/clis/notebooklm/summary.ts rename to clis/notebooklm/summary.ts diff --git a/src/clis/notebooklm/utils.test.ts b/clis/notebooklm/utils.test.ts similarity index 100% rename from src/clis/notebooklm/utils.test.ts rename to clis/notebooklm/utils.test.ts diff --git a/src/clis/notebooklm/utils.ts b/clis/notebooklm/utils.ts similarity index 100% rename from src/clis/notebooklm/utils.ts rename to clis/notebooklm/utils.ts diff --git a/src/clis/notion/export.ts b/clis/notion/export.ts similarity index 100% rename from src/clis/notion/export.ts rename to clis/notion/export.ts diff --git a/src/clis/notion/favorites.ts b/clis/notion/favorites.ts similarity index 100% rename from src/clis/notion/favorites.ts rename to clis/notion/favorites.ts diff --git a/src/clis/notion/new.ts b/clis/notion/new.ts similarity index 100% rename from src/clis/notion/new.ts rename to clis/notion/new.ts diff --git a/src/clis/notion/read.ts b/clis/notion/read.ts similarity index 100% rename from src/clis/notion/read.ts rename to clis/notion/read.ts diff --git a/src/clis/notion/search.ts b/clis/notion/search.ts similarity index 100% rename from src/clis/notion/search.ts rename to clis/notion/search.ts diff --git a/src/clis/notion/sidebar.ts b/clis/notion/sidebar.ts similarity index 100% rename from src/clis/notion/sidebar.ts rename to clis/notion/sidebar.ts diff --git a/src/clis/notion/status.ts b/clis/notion/status.ts similarity index 100% rename from src/clis/notion/status.ts rename to clis/notion/status.ts diff --git a/src/clis/notion/write.ts b/clis/notion/write.ts similarity index 100% rename from src/clis/notion/write.ts rename to clis/notion/write.ts diff --git a/src/clis/ones/common.ts b/clis/ones/common.ts similarity index 100% rename from src/clis/ones/common.ts rename to clis/ones/common.ts diff --git a/src/clis/ones/enrich-tasks.ts b/clis/ones/enrich-tasks.ts similarity index 100% rename from src/clis/ones/enrich-tasks.ts rename to clis/ones/enrich-tasks.ts diff --git a/src/clis/ones/login.ts b/clis/ones/login.ts similarity index 100% rename from src/clis/ones/login.ts rename to clis/ones/login.ts diff --git a/src/clis/ones/logout.ts b/clis/ones/logout.ts similarity index 100% rename from src/clis/ones/logout.ts rename to clis/ones/logout.ts diff --git a/src/clis/ones/me.ts b/clis/ones/me.ts similarity index 100% rename from src/clis/ones/me.ts rename to clis/ones/me.ts diff --git a/src/clis/ones/my-tasks.ts b/clis/ones/my-tasks.ts similarity index 100% rename from src/clis/ones/my-tasks.ts rename to clis/ones/my-tasks.ts diff --git a/src/clis/ones/resolve-labels.ts b/clis/ones/resolve-labels.ts similarity index 100% rename from src/clis/ones/resolve-labels.ts rename to clis/ones/resolve-labels.ts diff --git a/src/clis/ones/task-helpers.test.ts b/clis/ones/task-helpers.test.ts similarity index 100% rename from src/clis/ones/task-helpers.test.ts rename to clis/ones/task-helpers.test.ts diff --git a/src/clis/ones/task-helpers.ts b/clis/ones/task-helpers.ts similarity index 100% rename from src/clis/ones/task-helpers.ts rename to clis/ones/task-helpers.ts diff --git a/src/clis/ones/task.ts b/clis/ones/task.ts similarity index 100% rename from src/clis/ones/task.ts rename to clis/ones/task.ts diff --git a/src/clis/ones/tasks.ts b/clis/ones/tasks.ts similarity index 100% rename from src/clis/ones/tasks.ts rename to clis/ones/tasks.ts diff --git a/src/clis/ones/token-info.ts b/clis/ones/token-info.ts similarity index 100% rename from src/clis/ones/token-info.ts rename to clis/ones/token-info.ts diff --git a/src/clis/ones/worklog.test.ts b/clis/ones/worklog.test.ts similarity index 100% rename from src/clis/ones/worklog.test.ts rename to clis/ones/worklog.test.ts diff --git a/src/clis/ones/worklog.ts b/clis/ones/worklog.ts similarity index 100% rename from src/clis/ones/worklog.ts rename to clis/ones/worklog.ts diff --git a/src/clis/paperreview/commands.test.ts b/clis/paperreview/commands.test.ts similarity index 100% rename from src/clis/paperreview/commands.test.ts rename to clis/paperreview/commands.test.ts diff --git a/src/clis/paperreview/feedback.ts b/clis/paperreview/feedback.ts similarity index 100% rename from src/clis/paperreview/feedback.ts rename to clis/paperreview/feedback.ts diff --git a/src/clis/paperreview/review.ts b/clis/paperreview/review.ts similarity index 100% rename from src/clis/paperreview/review.ts rename to clis/paperreview/review.ts diff --git a/src/clis/paperreview/submit.ts b/clis/paperreview/submit.ts similarity index 100% rename from src/clis/paperreview/submit.ts rename to clis/paperreview/submit.ts diff --git a/src/clis/paperreview/utils.test.ts b/clis/paperreview/utils.test.ts similarity index 100% rename from src/clis/paperreview/utils.test.ts rename to clis/paperreview/utils.test.ts diff --git a/src/clis/paperreview/utils.ts b/clis/paperreview/utils.ts similarity index 100% rename from src/clis/paperreview/utils.ts rename to clis/paperreview/utils.ts diff --git a/src/clis/pixiv/detail.yaml b/clis/pixiv/detail.yaml similarity index 100% rename from src/clis/pixiv/detail.yaml rename to clis/pixiv/detail.yaml diff --git a/src/clis/pixiv/download.test.ts b/clis/pixiv/download.test.ts similarity index 100% rename from src/clis/pixiv/download.test.ts rename to clis/pixiv/download.test.ts diff --git a/src/clis/pixiv/download.ts b/clis/pixiv/download.ts similarity index 100% rename from src/clis/pixiv/download.ts rename to clis/pixiv/download.ts diff --git a/src/clis/pixiv/illusts.test.ts b/clis/pixiv/illusts.test.ts similarity index 100% rename from src/clis/pixiv/illusts.test.ts rename to clis/pixiv/illusts.test.ts diff --git a/src/clis/pixiv/illusts.ts b/clis/pixiv/illusts.ts similarity index 100% rename from src/clis/pixiv/illusts.ts rename to clis/pixiv/illusts.ts diff --git a/src/clis/pixiv/ranking.yaml b/clis/pixiv/ranking.yaml similarity index 100% rename from src/clis/pixiv/ranking.yaml rename to clis/pixiv/ranking.yaml diff --git a/src/clis/pixiv/search.test.ts b/clis/pixiv/search.test.ts similarity index 100% rename from src/clis/pixiv/search.test.ts rename to clis/pixiv/search.test.ts diff --git a/src/clis/pixiv/search.ts b/clis/pixiv/search.ts similarity index 100% rename from src/clis/pixiv/search.ts rename to clis/pixiv/search.ts diff --git a/src/clis/pixiv/test-utils.ts b/clis/pixiv/test-utils.ts similarity index 100% rename from src/clis/pixiv/test-utils.ts rename to clis/pixiv/test-utils.ts diff --git a/src/clis/pixiv/user.yaml b/clis/pixiv/user.yaml similarity index 100% rename from src/clis/pixiv/user.yaml rename to clis/pixiv/user.yaml diff --git a/src/clis/pixiv/utils.ts b/clis/pixiv/utils.ts similarity index 100% rename from src/clis/pixiv/utils.ts rename to clis/pixiv/utils.ts diff --git a/src/clis/producthunt/browse.ts b/clis/producthunt/browse.ts similarity index 100% rename from src/clis/producthunt/browse.ts rename to clis/producthunt/browse.ts diff --git a/src/clis/producthunt/hot.ts b/clis/producthunt/hot.ts similarity index 100% rename from src/clis/producthunt/hot.ts rename to clis/producthunt/hot.ts diff --git a/src/clis/producthunt/posts.ts b/clis/producthunt/posts.ts similarity index 100% rename from src/clis/producthunt/posts.ts rename to clis/producthunt/posts.ts diff --git a/src/clis/producthunt/today.ts b/clis/producthunt/today.ts similarity index 100% rename from src/clis/producthunt/today.ts rename to clis/producthunt/today.ts diff --git a/src/clis/producthunt/utils.test.ts b/clis/producthunt/utils.test.ts similarity index 100% rename from src/clis/producthunt/utils.test.ts rename to clis/producthunt/utils.test.ts diff --git a/src/clis/producthunt/utils.ts b/clis/producthunt/utils.ts similarity index 100% rename from src/clis/producthunt/utils.ts rename to clis/producthunt/utils.ts diff --git a/src/clis/reddit/comment.ts b/clis/reddit/comment.ts similarity index 100% rename from src/clis/reddit/comment.ts rename to clis/reddit/comment.ts diff --git a/src/clis/reddit/frontpage.yaml b/clis/reddit/frontpage.yaml similarity index 100% rename from src/clis/reddit/frontpage.yaml rename to clis/reddit/frontpage.yaml diff --git a/src/clis/reddit/hot.yaml b/clis/reddit/hot.yaml similarity index 100% rename from src/clis/reddit/hot.yaml rename to clis/reddit/hot.yaml diff --git a/src/clis/reddit/popular.yaml b/clis/reddit/popular.yaml similarity index 100% rename from src/clis/reddit/popular.yaml rename to clis/reddit/popular.yaml diff --git a/src/clis/reddit/read.test.ts b/clis/reddit/read.test.ts similarity index 100% rename from src/clis/reddit/read.test.ts rename to clis/reddit/read.test.ts diff --git a/src/clis/reddit/read.ts b/clis/reddit/read.ts similarity index 100% rename from src/clis/reddit/read.ts rename to clis/reddit/read.ts diff --git a/src/clis/reddit/save.ts b/clis/reddit/save.ts similarity index 100% rename from src/clis/reddit/save.ts rename to clis/reddit/save.ts diff --git a/src/clis/reddit/saved.ts b/clis/reddit/saved.ts similarity index 100% rename from src/clis/reddit/saved.ts rename to clis/reddit/saved.ts diff --git a/src/clis/reddit/search.yaml b/clis/reddit/search.yaml similarity index 100% rename from src/clis/reddit/search.yaml rename to clis/reddit/search.yaml diff --git a/src/clis/reddit/subreddit.yaml b/clis/reddit/subreddit.yaml similarity index 100% rename from src/clis/reddit/subreddit.yaml rename to clis/reddit/subreddit.yaml diff --git a/src/clis/reddit/subscribe.ts b/clis/reddit/subscribe.ts similarity index 100% rename from src/clis/reddit/subscribe.ts rename to clis/reddit/subscribe.ts diff --git a/src/clis/reddit/upvote.ts b/clis/reddit/upvote.ts similarity index 100% rename from src/clis/reddit/upvote.ts rename to clis/reddit/upvote.ts diff --git a/src/clis/reddit/upvoted.ts b/clis/reddit/upvoted.ts similarity index 100% rename from src/clis/reddit/upvoted.ts rename to clis/reddit/upvoted.ts diff --git a/src/clis/reddit/user-comments.yaml b/clis/reddit/user-comments.yaml similarity index 100% rename from src/clis/reddit/user-comments.yaml rename to clis/reddit/user-comments.yaml diff --git a/src/clis/reddit/user-posts.yaml b/clis/reddit/user-posts.yaml similarity index 100% rename from src/clis/reddit/user-posts.yaml rename to clis/reddit/user-posts.yaml diff --git a/src/clis/reddit/user.yaml b/clis/reddit/user.yaml similarity index 100% rename from src/clis/reddit/user.yaml rename to clis/reddit/user.yaml diff --git a/src/clis/reuters/search.ts b/clis/reuters/search.ts similarity index 100% rename from src/clis/reuters/search.ts rename to clis/reuters/search.ts diff --git a/src/clis/sinablog/article.ts b/clis/sinablog/article.ts similarity index 100% rename from src/clis/sinablog/article.ts rename to clis/sinablog/article.ts diff --git a/src/clis/sinablog/hot.ts b/clis/sinablog/hot.ts similarity index 100% rename from src/clis/sinablog/hot.ts rename to clis/sinablog/hot.ts diff --git a/src/clis/sinablog/search.ts b/clis/sinablog/search.ts similarity index 100% rename from src/clis/sinablog/search.ts rename to clis/sinablog/search.ts diff --git a/src/clis/sinablog/user.ts b/clis/sinablog/user.ts similarity index 100% rename from src/clis/sinablog/user.ts rename to clis/sinablog/user.ts diff --git a/src/clis/sinablog/utils.ts b/clis/sinablog/utils.ts similarity index 100% rename from src/clis/sinablog/utils.ts rename to clis/sinablog/utils.ts diff --git a/src/clis/sinafinance/news.ts b/clis/sinafinance/news.ts similarity index 100% rename from src/clis/sinafinance/news.ts rename to clis/sinafinance/news.ts diff --git a/src/clis/sinafinance/rolling-news.ts b/clis/sinafinance/rolling-news.ts similarity index 100% rename from src/clis/sinafinance/rolling-news.ts rename to clis/sinafinance/rolling-news.ts diff --git a/src/clis/sinafinance/stock-rank.ts b/clis/sinafinance/stock-rank.ts similarity index 100% rename from src/clis/sinafinance/stock-rank.ts rename to clis/sinafinance/stock-rank.ts diff --git a/src/clis/sinafinance/stock.ts b/clis/sinafinance/stock.ts similarity index 100% rename from src/clis/sinafinance/stock.ts rename to clis/sinafinance/stock.ts diff --git a/src/clis/smzdm/search.ts b/clis/smzdm/search.ts similarity index 100% rename from src/clis/smzdm/search.ts rename to clis/smzdm/search.ts diff --git a/src/clis/spotify/spotify.ts b/clis/spotify/spotify.ts similarity index 100% rename from src/clis/spotify/spotify.ts rename to clis/spotify/spotify.ts diff --git a/src/clis/spotify/utils.test.ts b/clis/spotify/utils.test.ts similarity index 100% rename from src/clis/spotify/utils.test.ts rename to clis/spotify/utils.test.ts diff --git a/src/clis/spotify/utils.ts b/clis/spotify/utils.ts similarity index 100% rename from src/clis/spotify/utils.ts rename to clis/spotify/utils.ts diff --git a/src/clis/stackoverflow/bounties.yaml b/clis/stackoverflow/bounties.yaml similarity index 100% rename from src/clis/stackoverflow/bounties.yaml rename to clis/stackoverflow/bounties.yaml diff --git a/src/clis/stackoverflow/hot.yaml b/clis/stackoverflow/hot.yaml similarity index 100% rename from src/clis/stackoverflow/hot.yaml rename to clis/stackoverflow/hot.yaml diff --git a/src/clis/stackoverflow/search.yaml b/clis/stackoverflow/search.yaml similarity index 100% rename from src/clis/stackoverflow/search.yaml rename to clis/stackoverflow/search.yaml diff --git a/src/clis/stackoverflow/unanswered.yaml b/clis/stackoverflow/unanswered.yaml similarity index 100% rename from src/clis/stackoverflow/unanswered.yaml rename to clis/stackoverflow/unanswered.yaml diff --git a/src/clis/steam/top-sellers.yaml b/clis/steam/top-sellers.yaml similarity index 100% rename from src/clis/steam/top-sellers.yaml rename to clis/steam/top-sellers.yaml diff --git a/src/clis/substack/feed.ts b/clis/substack/feed.ts similarity index 100% rename from src/clis/substack/feed.ts rename to clis/substack/feed.ts diff --git a/src/clis/substack/publication.ts b/clis/substack/publication.ts similarity index 100% rename from src/clis/substack/publication.ts rename to clis/substack/publication.ts diff --git a/src/clis/substack/search.ts b/clis/substack/search.ts similarity index 100% rename from src/clis/substack/search.ts rename to clis/substack/search.ts diff --git a/src/clis/substack/utils.test.ts b/clis/substack/utils.test.ts similarity index 100% rename from src/clis/substack/utils.test.ts rename to clis/substack/utils.test.ts diff --git a/src/clis/substack/utils.ts b/clis/substack/utils.ts similarity index 100% rename from src/clis/substack/utils.ts rename to clis/substack/utils.ts diff --git a/src/clis/tieba/commands.test.ts b/clis/tieba/commands.test.ts similarity index 100% rename from src/clis/tieba/commands.test.ts rename to clis/tieba/commands.test.ts diff --git a/src/clis/tieba/hot.ts b/clis/tieba/hot.ts similarity index 100% rename from src/clis/tieba/hot.ts rename to clis/tieba/hot.ts diff --git a/src/clis/tieba/posts.ts b/clis/tieba/posts.ts similarity index 100% rename from src/clis/tieba/posts.ts rename to clis/tieba/posts.ts diff --git a/src/clis/tieba/read.ts b/clis/tieba/read.ts similarity index 100% rename from src/clis/tieba/read.ts rename to clis/tieba/read.ts diff --git a/src/clis/tieba/search.ts b/clis/tieba/search.ts similarity index 100% rename from src/clis/tieba/search.ts rename to clis/tieba/search.ts diff --git a/src/clis/tieba/utils.test.ts b/clis/tieba/utils.test.ts similarity index 100% rename from src/clis/tieba/utils.test.ts rename to clis/tieba/utils.test.ts diff --git a/src/clis/tieba/utils.ts b/clis/tieba/utils.ts similarity index 100% rename from src/clis/tieba/utils.ts rename to clis/tieba/utils.ts diff --git a/src/clis/tiktok/comment.yaml b/clis/tiktok/comment.yaml similarity index 100% rename from src/clis/tiktok/comment.yaml rename to clis/tiktok/comment.yaml diff --git a/src/clis/tiktok/explore.yaml b/clis/tiktok/explore.yaml similarity index 100% rename from src/clis/tiktok/explore.yaml rename to clis/tiktok/explore.yaml diff --git a/src/clis/tiktok/follow.yaml b/clis/tiktok/follow.yaml similarity index 100% rename from src/clis/tiktok/follow.yaml rename to clis/tiktok/follow.yaml diff --git a/src/clis/tiktok/following.yaml b/clis/tiktok/following.yaml similarity index 100% rename from src/clis/tiktok/following.yaml rename to clis/tiktok/following.yaml diff --git a/src/clis/tiktok/friends.yaml b/clis/tiktok/friends.yaml similarity index 100% rename from src/clis/tiktok/friends.yaml rename to clis/tiktok/friends.yaml diff --git a/src/clis/tiktok/like.yaml b/clis/tiktok/like.yaml similarity index 100% rename from src/clis/tiktok/like.yaml rename to clis/tiktok/like.yaml diff --git a/src/clis/tiktok/live.yaml b/clis/tiktok/live.yaml similarity index 100% rename from src/clis/tiktok/live.yaml rename to clis/tiktok/live.yaml diff --git a/src/clis/tiktok/notifications.yaml b/clis/tiktok/notifications.yaml similarity index 100% rename from src/clis/tiktok/notifications.yaml rename to clis/tiktok/notifications.yaml diff --git a/src/clis/tiktok/profile.yaml b/clis/tiktok/profile.yaml similarity index 100% rename from src/clis/tiktok/profile.yaml rename to clis/tiktok/profile.yaml diff --git a/src/clis/tiktok/save.yaml b/clis/tiktok/save.yaml similarity index 100% rename from src/clis/tiktok/save.yaml rename to clis/tiktok/save.yaml diff --git a/src/clis/tiktok/search.yaml b/clis/tiktok/search.yaml similarity index 100% rename from src/clis/tiktok/search.yaml rename to clis/tiktok/search.yaml diff --git a/src/clis/tiktok/unfollow.yaml b/clis/tiktok/unfollow.yaml similarity index 100% rename from src/clis/tiktok/unfollow.yaml rename to clis/tiktok/unfollow.yaml diff --git a/src/clis/tiktok/unlike.yaml b/clis/tiktok/unlike.yaml similarity index 100% rename from src/clis/tiktok/unlike.yaml rename to clis/tiktok/unlike.yaml diff --git a/src/clis/tiktok/unsave.yaml b/clis/tiktok/unsave.yaml similarity index 100% rename from src/clis/tiktok/unsave.yaml rename to clis/tiktok/unsave.yaml diff --git a/src/clis/tiktok/user.yaml b/clis/tiktok/user.yaml similarity index 100% rename from src/clis/tiktok/user.yaml rename to clis/tiktok/user.yaml diff --git a/src/clis/twitter/accept.ts b/clis/twitter/accept.ts similarity index 100% rename from src/clis/twitter/accept.ts rename to clis/twitter/accept.ts diff --git a/src/clis/twitter/article.ts b/clis/twitter/article.ts similarity index 100% rename from src/clis/twitter/article.ts rename to clis/twitter/article.ts diff --git a/src/clis/twitter/block.ts b/clis/twitter/block.ts similarity index 100% rename from src/clis/twitter/block.ts rename to clis/twitter/block.ts diff --git a/src/clis/twitter/bookmark.ts b/clis/twitter/bookmark.ts similarity index 100% rename from src/clis/twitter/bookmark.ts rename to clis/twitter/bookmark.ts diff --git a/src/clis/twitter/bookmarks.ts b/clis/twitter/bookmarks.ts similarity index 100% rename from src/clis/twitter/bookmarks.ts rename to clis/twitter/bookmarks.ts diff --git a/src/clis/twitter/delete.test.ts b/clis/twitter/delete.test.ts similarity index 100% rename from src/clis/twitter/delete.test.ts rename to clis/twitter/delete.test.ts diff --git a/src/clis/twitter/delete.ts b/clis/twitter/delete.ts similarity index 100% rename from src/clis/twitter/delete.ts rename to clis/twitter/delete.ts diff --git a/src/clis/twitter/download.ts b/clis/twitter/download.ts similarity index 100% rename from src/clis/twitter/download.ts rename to clis/twitter/download.ts diff --git a/src/clis/twitter/follow.ts b/clis/twitter/follow.ts similarity index 100% rename from src/clis/twitter/follow.ts rename to clis/twitter/follow.ts diff --git a/src/clis/twitter/followers.ts b/clis/twitter/followers.ts similarity index 100% rename from src/clis/twitter/followers.ts rename to clis/twitter/followers.ts diff --git a/src/clis/twitter/following.ts b/clis/twitter/following.ts similarity index 100% rename from src/clis/twitter/following.ts rename to clis/twitter/following.ts diff --git a/src/clis/twitter/hide-reply.ts b/clis/twitter/hide-reply.ts similarity index 100% rename from src/clis/twitter/hide-reply.ts rename to clis/twitter/hide-reply.ts diff --git a/src/clis/twitter/like.ts b/clis/twitter/like.ts similarity index 100% rename from src/clis/twitter/like.ts rename to clis/twitter/like.ts diff --git a/src/clis/twitter/likes.test.ts b/clis/twitter/likes.test.ts similarity index 100% rename from src/clis/twitter/likes.test.ts rename to clis/twitter/likes.test.ts diff --git a/src/clis/twitter/likes.ts b/clis/twitter/likes.ts similarity index 100% rename from src/clis/twitter/likes.ts rename to clis/twitter/likes.ts diff --git a/src/clis/twitter/notifications.ts b/clis/twitter/notifications.ts similarity index 100% rename from src/clis/twitter/notifications.ts rename to clis/twitter/notifications.ts diff --git a/src/clis/twitter/post.test.ts b/clis/twitter/post.test.ts similarity index 100% rename from src/clis/twitter/post.test.ts rename to clis/twitter/post.test.ts diff --git a/src/clis/twitter/post.ts b/clis/twitter/post.ts similarity index 100% rename from src/clis/twitter/post.ts rename to clis/twitter/post.ts diff --git a/src/clis/twitter/profile.ts b/clis/twitter/profile.ts similarity index 100% rename from src/clis/twitter/profile.ts rename to clis/twitter/profile.ts diff --git a/src/clis/twitter/reply-dm.ts b/clis/twitter/reply-dm.ts similarity index 100% rename from src/clis/twitter/reply-dm.ts rename to clis/twitter/reply-dm.ts diff --git a/src/clis/twitter/reply.test.ts b/clis/twitter/reply.test.ts similarity index 100% rename from src/clis/twitter/reply.test.ts rename to clis/twitter/reply.test.ts diff --git a/src/clis/twitter/reply.ts b/clis/twitter/reply.ts similarity index 100% rename from src/clis/twitter/reply.ts rename to clis/twitter/reply.ts diff --git a/src/clis/twitter/search.test.ts b/clis/twitter/search.test.ts similarity index 100% rename from src/clis/twitter/search.test.ts rename to clis/twitter/search.test.ts diff --git a/src/clis/twitter/search.ts b/clis/twitter/search.ts similarity index 100% rename from src/clis/twitter/search.ts rename to clis/twitter/search.ts diff --git a/src/clis/twitter/shared.ts b/clis/twitter/shared.ts similarity index 100% rename from src/clis/twitter/shared.ts rename to clis/twitter/shared.ts diff --git a/src/clis/twitter/thread.ts b/clis/twitter/thread.ts similarity index 100% rename from src/clis/twitter/thread.ts rename to clis/twitter/thread.ts diff --git a/src/clis/twitter/timeline.test.ts b/clis/twitter/timeline.test.ts similarity index 100% rename from src/clis/twitter/timeline.test.ts rename to clis/twitter/timeline.test.ts diff --git a/src/clis/twitter/timeline.ts b/clis/twitter/timeline.ts similarity index 100% rename from src/clis/twitter/timeline.ts rename to clis/twitter/timeline.ts diff --git a/src/clis/twitter/trending.ts b/clis/twitter/trending.ts similarity index 100% rename from src/clis/twitter/trending.ts rename to clis/twitter/trending.ts diff --git a/src/clis/twitter/unblock.ts b/clis/twitter/unblock.ts similarity index 100% rename from src/clis/twitter/unblock.ts rename to clis/twitter/unblock.ts diff --git a/src/clis/twitter/unbookmark.ts b/clis/twitter/unbookmark.ts similarity index 100% rename from src/clis/twitter/unbookmark.ts rename to clis/twitter/unbookmark.ts diff --git a/src/clis/twitter/unfollow.ts b/clis/twitter/unfollow.ts similarity index 100% rename from src/clis/twitter/unfollow.ts rename to clis/twitter/unfollow.ts diff --git a/src/clis/v2ex/daily.ts b/clis/v2ex/daily.ts similarity index 100% rename from src/clis/v2ex/daily.ts rename to clis/v2ex/daily.ts diff --git a/src/clis/v2ex/hot.yaml b/clis/v2ex/hot.yaml similarity index 100% rename from src/clis/v2ex/hot.yaml rename to clis/v2ex/hot.yaml diff --git a/src/clis/v2ex/latest.yaml b/clis/v2ex/latest.yaml similarity index 100% rename from src/clis/v2ex/latest.yaml rename to clis/v2ex/latest.yaml diff --git a/src/clis/v2ex/me.ts b/clis/v2ex/me.ts similarity index 100% rename from src/clis/v2ex/me.ts rename to clis/v2ex/me.ts diff --git a/src/clis/v2ex/member.yaml b/clis/v2ex/member.yaml similarity index 100% rename from src/clis/v2ex/member.yaml rename to clis/v2ex/member.yaml diff --git a/src/clis/v2ex/node.yaml b/clis/v2ex/node.yaml similarity index 100% rename from src/clis/v2ex/node.yaml rename to clis/v2ex/node.yaml diff --git a/src/clis/v2ex/nodes.yaml b/clis/v2ex/nodes.yaml similarity index 100% rename from src/clis/v2ex/nodes.yaml rename to clis/v2ex/nodes.yaml diff --git a/src/clis/v2ex/notifications.ts b/clis/v2ex/notifications.ts similarity index 100% rename from src/clis/v2ex/notifications.ts rename to clis/v2ex/notifications.ts diff --git a/src/clis/v2ex/replies.yaml b/clis/v2ex/replies.yaml similarity index 100% rename from src/clis/v2ex/replies.yaml rename to clis/v2ex/replies.yaml diff --git a/src/clis/v2ex/topic.yaml b/clis/v2ex/topic.yaml similarity index 100% rename from src/clis/v2ex/topic.yaml rename to clis/v2ex/topic.yaml diff --git a/src/clis/v2ex/user.yaml b/clis/v2ex/user.yaml similarity index 100% rename from src/clis/v2ex/user.yaml rename to clis/v2ex/user.yaml diff --git a/src/clis/web/read.ts b/clis/web/read.ts similarity index 100% rename from src/clis/web/read.ts rename to clis/web/read.ts diff --git a/src/clis/weibo/comments.ts b/clis/weibo/comments.ts similarity index 100% rename from src/clis/weibo/comments.ts rename to clis/weibo/comments.ts diff --git a/src/clis/weibo/feed.ts b/clis/weibo/feed.ts similarity index 100% rename from src/clis/weibo/feed.ts rename to clis/weibo/feed.ts diff --git a/src/clis/weibo/hot.ts b/clis/weibo/hot.ts similarity index 100% rename from src/clis/weibo/hot.ts rename to clis/weibo/hot.ts diff --git a/src/clis/weibo/me.ts b/clis/weibo/me.ts similarity index 100% rename from src/clis/weibo/me.ts rename to clis/weibo/me.ts diff --git a/src/clis/weibo/post.ts b/clis/weibo/post.ts similarity index 100% rename from src/clis/weibo/post.ts rename to clis/weibo/post.ts diff --git a/src/clis/weibo/search.ts b/clis/weibo/search.ts similarity index 100% rename from src/clis/weibo/search.ts rename to clis/weibo/search.ts diff --git a/src/clis/weibo/user.ts b/clis/weibo/user.ts similarity index 100% rename from src/clis/weibo/user.ts rename to clis/weibo/user.ts diff --git a/src/clis/weibo/utils.ts b/clis/weibo/utils.ts similarity index 100% rename from src/clis/weibo/utils.ts rename to clis/weibo/utils.ts diff --git a/src/clis/weixin/download.ts b/clis/weixin/download.ts similarity index 100% rename from src/clis/weixin/download.ts rename to clis/weixin/download.ts diff --git a/src/clis/weread/book.ts b/clis/weread/book.ts similarity index 100% rename from src/clis/weread/book.ts rename to clis/weread/book.ts diff --git a/src/clis/weread/commands.test.ts b/clis/weread/commands.test.ts similarity index 100% rename from src/clis/weread/commands.test.ts rename to clis/weread/commands.test.ts diff --git a/src/clis/weread/highlights.ts b/clis/weread/highlights.ts similarity index 100% rename from src/clis/weread/highlights.ts rename to clis/weread/highlights.ts diff --git a/src/clis/weread/notebooks.ts b/clis/weread/notebooks.ts similarity index 100% rename from src/clis/weread/notebooks.ts rename to clis/weread/notebooks.ts diff --git a/src/clis/weread/notes.ts b/clis/weread/notes.ts similarity index 100% rename from src/clis/weread/notes.ts rename to clis/weread/notes.ts diff --git a/src/clis/weread/private-api-regression.test.ts b/clis/weread/private-api-regression.test.ts similarity index 100% rename from src/clis/weread/private-api-regression.test.ts rename to clis/weread/private-api-regression.test.ts diff --git a/src/clis/weread/ranking.ts b/clis/weread/ranking.ts similarity index 100% rename from src/clis/weread/ranking.ts rename to clis/weread/ranking.ts diff --git a/src/clis/weread/search-regression.test.ts b/clis/weread/search-regression.test.ts similarity index 100% rename from src/clis/weread/search-regression.test.ts rename to clis/weread/search-regression.test.ts diff --git a/src/clis/weread/search.ts b/clis/weread/search.ts similarity index 100% rename from src/clis/weread/search.ts rename to clis/weread/search.ts diff --git a/src/clis/weread/shelf.ts b/clis/weread/shelf.ts similarity index 100% rename from src/clis/weread/shelf.ts rename to clis/weread/shelf.ts diff --git a/src/clis/weread/utils.test.ts b/clis/weread/utils.test.ts similarity index 100% rename from src/clis/weread/utils.test.ts rename to clis/weread/utils.test.ts diff --git a/src/clis/weread/utils.ts b/clis/weread/utils.ts similarity index 100% rename from src/clis/weread/utils.ts rename to clis/weread/utils.ts diff --git a/src/clis/wikipedia/random.ts b/clis/wikipedia/random.ts similarity index 100% rename from src/clis/wikipedia/random.ts rename to clis/wikipedia/random.ts diff --git a/src/clis/wikipedia/search.ts b/clis/wikipedia/search.ts similarity index 100% rename from src/clis/wikipedia/search.ts rename to clis/wikipedia/search.ts diff --git a/src/clis/wikipedia/summary.ts b/clis/wikipedia/summary.ts similarity index 100% rename from src/clis/wikipedia/summary.ts rename to clis/wikipedia/summary.ts diff --git a/src/clis/wikipedia/trending.ts b/clis/wikipedia/trending.ts similarity index 100% rename from src/clis/wikipedia/trending.ts rename to clis/wikipedia/trending.ts diff --git a/src/clis/wikipedia/utils.ts b/clis/wikipedia/utils.ts similarity index 100% rename from src/clis/wikipedia/utils.ts rename to clis/wikipedia/utils.ts diff --git a/src/clis/xianyu/chat.test.ts b/clis/xianyu/chat.test.ts similarity index 100% rename from src/clis/xianyu/chat.test.ts rename to clis/xianyu/chat.test.ts diff --git a/src/clis/xianyu/chat.ts b/clis/xianyu/chat.ts similarity index 100% rename from src/clis/xianyu/chat.ts rename to clis/xianyu/chat.ts diff --git a/src/clis/xianyu/item.test.ts b/clis/xianyu/item.test.ts similarity index 100% rename from src/clis/xianyu/item.test.ts rename to clis/xianyu/item.test.ts diff --git a/src/clis/xianyu/item.ts b/clis/xianyu/item.ts similarity index 100% rename from src/clis/xianyu/item.ts rename to clis/xianyu/item.ts diff --git a/src/clis/xianyu/search.test.ts b/clis/xianyu/search.test.ts similarity index 100% rename from src/clis/xianyu/search.test.ts rename to clis/xianyu/search.test.ts diff --git a/src/clis/xianyu/search.ts b/clis/xianyu/search.ts similarity index 100% rename from src/clis/xianyu/search.ts rename to clis/xianyu/search.ts diff --git a/src/clis/xianyu/utils.ts b/clis/xianyu/utils.ts similarity index 100% rename from src/clis/xianyu/utils.ts rename to clis/xianyu/utils.ts diff --git a/src/clis/xiaoe/catalog.yaml b/clis/xiaoe/catalog.yaml similarity index 100% rename from src/clis/xiaoe/catalog.yaml rename to clis/xiaoe/catalog.yaml diff --git a/src/clis/xiaoe/content.yaml b/clis/xiaoe/content.yaml similarity index 100% rename from src/clis/xiaoe/content.yaml rename to clis/xiaoe/content.yaml diff --git a/src/clis/xiaoe/courses.yaml b/clis/xiaoe/courses.yaml similarity index 100% rename from src/clis/xiaoe/courses.yaml rename to clis/xiaoe/courses.yaml diff --git a/src/clis/xiaoe/detail.yaml b/clis/xiaoe/detail.yaml similarity index 100% rename from src/clis/xiaoe/detail.yaml rename to clis/xiaoe/detail.yaml diff --git a/src/clis/xiaoe/play-url.yaml b/clis/xiaoe/play-url.yaml similarity index 100% rename from src/clis/xiaoe/play-url.yaml rename to clis/xiaoe/play-url.yaml diff --git a/src/clis/xiaohongshu/comments.test.ts b/clis/xiaohongshu/comments.test.ts similarity index 100% rename from src/clis/xiaohongshu/comments.test.ts rename to clis/xiaohongshu/comments.test.ts diff --git a/src/clis/xiaohongshu/comments.ts b/clis/xiaohongshu/comments.ts similarity index 100% rename from src/clis/xiaohongshu/comments.ts rename to clis/xiaohongshu/comments.ts diff --git a/src/clis/xiaohongshu/creator-note-detail.test.ts b/clis/xiaohongshu/creator-note-detail.test.ts similarity index 100% rename from src/clis/xiaohongshu/creator-note-detail.test.ts rename to clis/xiaohongshu/creator-note-detail.test.ts diff --git a/src/clis/xiaohongshu/creator-note-detail.ts b/clis/xiaohongshu/creator-note-detail.ts similarity index 100% rename from src/clis/xiaohongshu/creator-note-detail.ts rename to clis/xiaohongshu/creator-note-detail.ts diff --git a/src/clis/xiaohongshu/creator-notes-summary.test.ts b/clis/xiaohongshu/creator-notes-summary.test.ts similarity index 100% rename from src/clis/xiaohongshu/creator-notes-summary.test.ts rename to clis/xiaohongshu/creator-notes-summary.test.ts diff --git a/src/clis/xiaohongshu/creator-notes-summary.ts b/clis/xiaohongshu/creator-notes-summary.ts similarity index 100% rename from src/clis/xiaohongshu/creator-notes-summary.ts rename to clis/xiaohongshu/creator-notes-summary.ts diff --git a/src/clis/xiaohongshu/creator-notes.test.ts b/clis/xiaohongshu/creator-notes.test.ts similarity index 100% rename from src/clis/xiaohongshu/creator-notes.test.ts rename to clis/xiaohongshu/creator-notes.test.ts diff --git a/src/clis/xiaohongshu/creator-notes.ts b/clis/xiaohongshu/creator-notes.ts similarity index 100% rename from src/clis/xiaohongshu/creator-notes.ts rename to clis/xiaohongshu/creator-notes.ts diff --git a/src/clis/xiaohongshu/creator-profile.ts b/clis/xiaohongshu/creator-profile.ts similarity index 100% rename from src/clis/xiaohongshu/creator-profile.ts rename to clis/xiaohongshu/creator-profile.ts diff --git a/src/clis/xiaohongshu/creator-stats.ts b/clis/xiaohongshu/creator-stats.ts similarity index 100% rename from src/clis/xiaohongshu/creator-stats.ts rename to clis/xiaohongshu/creator-stats.ts diff --git a/src/clis/xiaohongshu/download.test.ts b/clis/xiaohongshu/download.test.ts similarity index 100% rename from src/clis/xiaohongshu/download.test.ts rename to clis/xiaohongshu/download.test.ts diff --git a/src/clis/xiaohongshu/download.ts b/clis/xiaohongshu/download.ts similarity index 100% rename from src/clis/xiaohongshu/download.ts rename to clis/xiaohongshu/download.ts diff --git a/src/clis/xiaohongshu/feed.yaml b/clis/xiaohongshu/feed.yaml similarity index 100% rename from src/clis/xiaohongshu/feed.yaml rename to clis/xiaohongshu/feed.yaml diff --git a/src/clis/xiaohongshu/note-helpers.ts b/clis/xiaohongshu/note-helpers.ts similarity index 100% rename from src/clis/xiaohongshu/note-helpers.ts rename to clis/xiaohongshu/note-helpers.ts diff --git a/src/clis/xiaohongshu/note.test.ts b/clis/xiaohongshu/note.test.ts similarity index 100% rename from src/clis/xiaohongshu/note.test.ts rename to clis/xiaohongshu/note.test.ts diff --git a/src/clis/xiaohongshu/note.ts b/clis/xiaohongshu/note.ts similarity index 100% rename from src/clis/xiaohongshu/note.ts rename to clis/xiaohongshu/note.ts diff --git a/src/clis/xiaohongshu/notifications.yaml b/clis/xiaohongshu/notifications.yaml similarity index 100% rename from src/clis/xiaohongshu/notifications.yaml rename to clis/xiaohongshu/notifications.yaml diff --git a/src/clis/xiaohongshu/publish.test.ts b/clis/xiaohongshu/publish.test.ts similarity index 100% rename from src/clis/xiaohongshu/publish.test.ts rename to clis/xiaohongshu/publish.test.ts diff --git a/src/clis/xiaohongshu/publish.ts b/clis/xiaohongshu/publish.ts similarity index 100% rename from src/clis/xiaohongshu/publish.ts rename to clis/xiaohongshu/publish.ts diff --git a/src/clis/xiaohongshu/search.test.ts b/clis/xiaohongshu/search.test.ts similarity index 100% rename from src/clis/xiaohongshu/search.test.ts rename to clis/xiaohongshu/search.test.ts diff --git a/src/clis/xiaohongshu/search.ts b/clis/xiaohongshu/search.ts similarity index 100% rename from src/clis/xiaohongshu/search.ts rename to clis/xiaohongshu/search.ts diff --git a/src/clis/xiaohongshu/user-helpers.test.ts b/clis/xiaohongshu/user-helpers.test.ts similarity index 100% rename from src/clis/xiaohongshu/user-helpers.test.ts rename to clis/xiaohongshu/user-helpers.test.ts diff --git a/src/clis/xiaohongshu/user-helpers.ts b/clis/xiaohongshu/user-helpers.ts similarity index 100% rename from src/clis/xiaohongshu/user-helpers.ts rename to clis/xiaohongshu/user-helpers.ts diff --git a/src/clis/xiaohongshu/user.ts b/clis/xiaohongshu/user.ts similarity index 100% rename from src/clis/xiaohongshu/user.ts rename to clis/xiaohongshu/user.ts diff --git a/src/clis/xiaoyuzhou/episode.ts b/clis/xiaoyuzhou/episode.ts similarity index 100% rename from src/clis/xiaoyuzhou/episode.ts rename to clis/xiaoyuzhou/episode.ts diff --git a/src/clis/xiaoyuzhou/podcast-episodes.ts b/clis/xiaoyuzhou/podcast-episodes.ts similarity index 100% rename from src/clis/xiaoyuzhou/podcast-episodes.ts rename to clis/xiaoyuzhou/podcast-episodes.ts diff --git a/src/clis/xiaoyuzhou/podcast.ts b/clis/xiaoyuzhou/podcast.ts similarity index 100% rename from src/clis/xiaoyuzhou/podcast.ts rename to clis/xiaoyuzhou/podcast.ts diff --git a/src/clis/xiaoyuzhou/utils.test.ts b/clis/xiaoyuzhou/utils.test.ts similarity index 100% rename from src/clis/xiaoyuzhou/utils.test.ts rename to clis/xiaoyuzhou/utils.test.ts diff --git a/src/clis/xiaoyuzhou/utils.ts b/clis/xiaoyuzhou/utils.ts similarity index 100% rename from src/clis/xiaoyuzhou/utils.ts rename to clis/xiaoyuzhou/utils.ts diff --git a/src/clis/xueqiu/comments.test.ts b/clis/xueqiu/comments.test.ts similarity index 100% rename from src/clis/xueqiu/comments.test.ts rename to clis/xueqiu/comments.test.ts diff --git a/src/clis/xueqiu/comments.ts b/clis/xueqiu/comments.ts similarity index 100% rename from src/clis/xueqiu/comments.ts rename to clis/xueqiu/comments.ts diff --git a/src/clis/xueqiu/danjuan-utils.test.ts b/clis/xueqiu/danjuan-utils.test.ts similarity index 100% rename from src/clis/xueqiu/danjuan-utils.test.ts rename to clis/xueqiu/danjuan-utils.test.ts diff --git a/src/clis/xueqiu/danjuan-utils.ts b/clis/xueqiu/danjuan-utils.ts similarity index 100% rename from src/clis/xueqiu/danjuan-utils.ts rename to clis/xueqiu/danjuan-utils.ts diff --git a/src/clis/xueqiu/earnings-date.yaml b/clis/xueqiu/earnings-date.yaml similarity index 100% rename from src/clis/xueqiu/earnings-date.yaml rename to clis/xueqiu/earnings-date.yaml diff --git a/src/clis/xueqiu/feed.yaml b/clis/xueqiu/feed.yaml similarity index 100% rename from src/clis/xueqiu/feed.yaml rename to clis/xueqiu/feed.yaml diff --git a/src/clis/xueqiu/fund-holdings.ts b/clis/xueqiu/fund-holdings.ts similarity index 100% rename from src/clis/xueqiu/fund-holdings.ts rename to clis/xueqiu/fund-holdings.ts diff --git a/src/clis/xueqiu/fund-snapshot.ts b/clis/xueqiu/fund-snapshot.ts similarity index 100% rename from src/clis/xueqiu/fund-snapshot.ts rename to clis/xueqiu/fund-snapshot.ts diff --git a/src/clis/xueqiu/hot-stock.yaml b/clis/xueqiu/hot-stock.yaml similarity index 100% rename from src/clis/xueqiu/hot-stock.yaml rename to clis/xueqiu/hot-stock.yaml diff --git a/src/clis/xueqiu/hot.yaml b/clis/xueqiu/hot.yaml similarity index 100% rename from src/clis/xueqiu/hot.yaml rename to clis/xueqiu/hot.yaml diff --git a/src/clis/xueqiu/search.yaml b/clis/xueqiu/search.yaml similarity index 100% rename from src/clis/xueqiu/search.yaml rename to clis/xueqiu/search.yaml diff --git a/src/clis/xueqiu/stock.yaml b/clis/xueqiu/stock.yaml similarity index 100% rename from src/clis/xueqiu/stock.yaml rename to clis/xueqiu/stock.yaml diff --git a/src/clis/xueqiu/watchlist.yaml b/clis/xueqiu/watchlist.yaml similarity index 100% rename from src/clis/xueqiu/watchlist.yaml rename to clis/xueqiu/watchlist.yaml diff --git a/src/clis/yahoo-finance/quote.ts b/clis/yahoo-finance/quote.ts similarity index 100% rename from src/clis/yahoo-finance/quote.ts rename to clis/yahoo-finance/quote.ts diff --git a/src/clis/yollomi/background.ts b/clis/yollomi/background.ts similarity index 100% rename from src/clis/yollomi/background.ts rename to clis/yollomi/background.ts diff --git a/src/clis/yollomi/edit.ts b/clis/yollomi/edit.ts similarity index 100% rename from src/clis/yollomi/edit.ts rename to clis/yollomi/edit.ts diff --git a/src/clis/yollomi/face-swap.ts b/clis/yollomi/face-swap.ts similarity index 100% rename from src/clis/yollomi/face-swap.ts rename to clis/yollomi/face-swap.ts diff --git a/src/clis/yollomi/generate.ts b/clis/yollomi/generate.ts similarity index 100% rename from src/clis/yollomi/generate.ts rename to clis/yollomi/generate.ts diff --git a/src/clis/yollomi/models.ts b/clis/yollomi/models.ts similarity index 100% rename from src/clis/yollomi/models.ts rename to clis/yollomi/models.ts diff --git a/src/clis/yollomi/object-remover.ts b/clis/yollomi/object-remover.ts similarity index 100% rename from src/clis/yollomi/object-remover.ts rename to clis/yollomi/object-remover.ts diff --git a/src/clis/yollomi/remove-bg.ts b/clis/yollomi/remove-bg.ts similarity index 100% rename from src/clis/yollomi/remove-bg.ts rename to clis/yollomi/remove-bg.ts diff --git a/src/clis/yollomi/restore.ts b/clis/yollomi/restore.ts similarity index 100% rename from src/clis/yollomi/restore.ts rename to clis/yollomi/restore.ts diff --git a/src/clis/yollomi/try-on.ts b/clis/yollomi/try-on.ts similarity index 100% rename from src/clis/yollomi/try-on.ts rename to clis/yollomi/try-on.ts diff --git a/src/clis/yollomi/upload.ts b/clis/yollomi/upload.ts similarity index 100% rename from src/clis/yollomi/upload.ts rename to clis/yollomi/upload.ts diff --git a/src/clis/yollomi/upscale.ts b/clis/yollomi/upscale.ts similarity index 100% rename from src/clis/yollomi/upscale.ts rename to clis/yollomi/upscale.ts diff --git a/src/clis/yollomi/utils.ts b/clis/yollomi/utils.ts similarity index 100% rename from src/clis/yollomi/utils.ts rename to clis/yollomi/utils.ts diff --git a/src/clis/yollomi/video.ts b/clis/yollomi/video.ts similarity index 100% rename from src/clis/yollomi/video.ts rename to clis/yollomi/video.ts diff --git a/src/clis/youtube/channel.ts b/clis/youtube/channel.ts similarity index 100% rename from src/clis/youtube/channel.ts rename to clis/youtube/channel.ts diff --git a/src/clis/youtube/comments.ts b/clis/youtube/comments.ts similarity index 100% rename from src/clis/youtube/comments.ts rename to clis/youtube/comments.ts diff --git a/src/clis/youtube/search.ts b/clis/youtube/search.ts similarity index 100% rename from src/clis/youtube/search.ts rename to clis/youtube/search.ts diff --git a/src/clis/youtube/transcript-group.test.ts b/clis/youtube/transcript-group.test.ts similarity index 100% rename from src/clis/youtube/transcript-group.test.ts rename to clis/youtube/transcript-group.test.ts diff --git a/src/clis/youtube/transcript-group.ts b/clis/youtube/transcript-group.ts similarity index 100% rename from src/clis/youtube/transcript-group.ts rename to clis/youtube/transcript-group.ts diff --git a/src/clis/youtube/transcript.ts b/clis/youtube/transcript.ts similarity index 100% rename from src/clis/youtube/transcript.ts rename to clis/youtube/transcript.ts diff --git a/src/clis/youtube/utils.test.ts b/clis/youtube/utils.test.ts similarity index 100% rename from src/clis/youtube/utils.test.ts rename to clis/youtube/utils.test.ts diff --git a/src/clis/youtube/utils.ts b/clis/youtube/utils.ts similarity index 100% rename from src/clis/youtube/utils.ts rename to clis/youtube/utils.ts diff --git a/src/clis/youtube/video.ts b/clis/youtube/video.ts similarity index 100% rename from src/clis/youtube/video.ts rename to clis/youtube/video.ts diff --git a/src/clis/yuanbao/ask.test.ts b/clis/yuanbao/ask.test.ts similarity index 100% rename from src/clis/yuanbao/ask.test.ts rename to clis/yuanbao/ask.test.ts diff --git a/src/clis/yuanbao/ask.ts b/clis/yuanbao/ask.ts similarity index 100% rename from src/clis/yuanbao/ask.ts rename to clis/yuanbao/ask.ts diff --git a/src/clis/yuanbao/new.test.ts b/clis/yuanbao/new.test.ts similarity index 100% rename from src/clis/yuanbao/new.test.ts rename to clis/yuanbao/new.test.ts diff --git a/src/clis/yuanbao/new.ts b/clis/yuanbao/new.ts similarity index 100% rename from src/clis/yuanbao/new.ts rename to clis/yuanbao/new.ts diff --git a/src/clis/yuanbao/shared.ts b/clis/yuanbao/shared.ts similarity index 100% rename from src/clis/yuanbao/shared.ts rename to clis/yuanbao/shared.ts diff --git a/src/clis/zhihu/download.test.ts b/clis/zhihu/download.test.ts similarity index 100% rename from src/clis/zhihu/download.test.ts rename to clis/zhihu/download.test.ts diff --git a/src/clis/zhihu/download.ts b/clis/zhihu/download.ts similarity index 100% rename from src/clis/zhihu/download.ts rename to clis/zhihu/download.ts diff --git a/src/clis/zhihu/hot.yaml b/clis/zhihu/hot.yaml similarity index 100% rename from src/clis/zhihu/hot.yaml rename to clis/zhihu/hot.yaml diff --git a/src/clis/zhihu/question.test.ts b/clis/zhihu/question.test.ts similarity index 100% rename from src/clis/zhihu/question.test.ts rename to clis/zhihu/question.test.ts diff --git a/src/clis/zhihu/question.ts b/clis/zhihu/question.ts similarity index 100% rename from src/clis/zhihu/question.ts rename to clis/zhihu/question.ts diff --git a/src/clis/zhihu/search.yaml b/clis/zhihu/search.yaml similarity index 100% rename from src/clis/zhihu/search.yaml rename to clis/zhihu/search.yaml diff --git a/src/clis/zsxq/dynamics.ts b/clis/zsxq/dynamics.ts similarity index 100% rename from src/clis/zsxq/dynamics.ts rename to clis/zsxq/dynamics.ts diff --git a/src/clis/zsxq/groups.ts b/clis/zsxq/groups.ts similarity index 100% rename from src/clis/zsxq/groups.ts rename to clis/zsxq/groups.ts diff --git a/src/clis/zsxq/search.test.ts b/clis/zsxq/search.test.ts similarity index 100% rename from src/clis/zsxq/search.test.ts rename to clis/zsxq/search.test.ts diff --git a/src/clis/zsxq/search.ts b/clis/zsxq/search.ts similarity index 100% rename from src/clis/zsxq/search.ts rename to clis/zsxq/search.ts diff --git a/src/clis/zsxq/topic.test.ts b/clis/zsxq/topic.test.ts similarity index 100% rename from src/clis/zsxq/topic.test.ts rename to clis/zsxq/topic.test.ts diff --git a/src/clis/zsxq/topic.ts b/clis/zsxq/topic.ts similarity index 100% rename from src/clis/zsxq/topic.ts rename to clis/zsxq/topic.ts diff --git a/src/clis/zsxq/topics.test.ts b/clis/zsxq/topics.test.ts similarity index 100% rename from src/clis/zsxq/topics.test.ts rename to clis/zsxq/topics.test.ts diff --git a/src/clis/zsxq/topics.ts b/clis/zsxq/topics.ts similarity index 100% rename from src/clis/zsxq/topics.ts rename to clis/zsxq/topics.ts diff --git a/src/clis/zsxq/utils.ts b/clis/zsxq/utils.ts similarity index 100% rename from src/clis/zsxq/utils.ts rename to clis/zsxq/utils.ts diff --git a/download/article-download.ts b/download/article-download.ts new file mode 100644 index 00000000..4ab20305 --- /dev/null +++ b/download/article-download.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/download/ for adapter imports +export * from '../src/download/article-download.js'; diff --git a/download/index.ts b/download/index.ts new file mode 100644 index 00000000..fa7b90c2 --- /dev/null +++ b/download/index.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/download/ for adapter imports +export * from '../src/download/index.js'; diff --git a/download/media-download.ts b/download/media-download.ts new file mode 100644 index 00000000..54ba1de2 --- /dev/null +++ b/download/media-download.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/download/ for adapter imports +export * from '../src/download/media-download.js'; diff --git a/download/progress.ts b/download/progress.ts new file mode 100644 index 00000000..ce148f4a --- /dev/null +++ b/download/progress.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/download/ for adapter imports +export * from '../src/download/progress.js'; diff --git a/errors.ts b/errors.ts new file mode 100644 index 00000000..5700bfe3 --- /dev/null +++ b/errors.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../errors.js +export * from './src/errors.js'; diff --git a/launcher.ts b/launcher.ts new file mode 100644 index 00000000..6f5a74e3 --- /dev/null +++ b/launcher.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../launcher.js +export * from './src/launcher.js'; diff --git a/logger.ts b/logger.ts new file mode 100644 index 00000000..16be96e6 --- /dev/null +++ b/logger.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../logger.js +export * from './src/logger.js'; diff --git a/package.json b/package.json index 6d48c834..1ba5e6f3 100644 --- a/package.json +++ b/package.json @@ -9,25 +9,42 @@ "node": ">=20.0.0" }, "type": "module", - "main": "dist/main.js", + "main": "dist/src/main.js", "bin": { - "opencli": "dist/main.js" + "opencli": "dist/src/main.js" }, "exports": { - ".": "./dist/main.js", - "./registry": "./dist/registry-api.js" + ".": "./dist/src/main.js", + "./registry": "./dist/src/registry-api.js" }, + "files": [ + "dist/src/", + "dist/clis/", + "dist/cli-manifest.json", + "dist/registry.*", + "dist/errors.*", + "dist/types.*", + "dist/utils.*", + "dist/logger.*", + "dist/launcher.*", + "dist/browser/", + "dist/download/", + "dist/pipeline/", + "scripts/", + "README.md", + "LICENSE" + ], "scripts": { "dev": "tsx src/main.ts", "dev:bun": "bun src/main.ts", "build": "npm run clean-dist && tsc && npm run clean-yaml && npm run copy-yaml && npm run build-manifest", - "build-manifest": "node dist/build-manifest.js", + "build-manifest": "node dist/src/build-manifest.js", "clean-dist": "node scripts/clean-dist.cjs", "clean-yaml": "node scripts/clean-yaml.cjs", "copy-yaml": "node scripts/copy-yaml.cjs", - "start": "node dist/main.js", - "start:bun": "bun dist/main.js", - "postinstall": "node scripts/postinstall.js || true", + "start": "node dist/src/main.js", + "start:bun": "bun dist/src/main.js", + "postinstall": "node scripts/postinstall.js || true; node scripts/fetch-adapters.js || true", "typecheck": "tsc --noEmit", "lint": "tsc --noEmit", "prepare": "[ -d src ] && npm run build || true", diff --git a/pipeline/index.ts b/pipeline/index.ts new file mode 100644 index 00000000..be62318c --- /dev/null +++ b/pipeline/index.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/pipeline/ for adapter imports +export * from '../src/pipeline/index.js'; diff --git a/registry.ts b/registry.ts new file mode 100644 index 00000000..de5e6041 --- /dev/null +++ b/registry.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../registry.js +export * from './src/registry.js'; diff --git a/scripts/copy-yaml.cjs b/scripts/copy-yaml.cjs index 27c9d811..ca69b539 100644 --- a/scripts/copy-yaml.cjs +++ b/scripts/copy-yaml.cjs @@ -1,5 +1,5 @@ /** - * Copy YAML files from src/clis/ to dist/clis/. + * Copy YAML files from clis/ to dist/clis/. */ const { readdirSync, copyFileSync, mkdirSync, existsSync, statSync } = require('fs'); const path = require('path'); @@ -18,11 +18,11 @@ function walk(src, dst) { } } -walk('src/clis', 'dist/clis'); +walk('clis', 'dist/clis'); // Copy external CLI registry to dist/ const extSrc = 'src/external-clis.yaml'; if (existsSync(extSrc)) { - mkdirSync('dist', { recursive: true }); - copyFileSync(extSrc, 'dist/external-clis.yaml'); + mkdirSync('dist/src', { recursive: true }); + copyFileSync(extSrc, 'dist/src/external-clis.yaml'); } diff --git a/scripts/fetch-adapters.js b/scripts/fetch-adapters.js new file mode 100644 index 00000000..0d03f425 --- /dev/null +++ b/scripts/fetch-adapters.js @@ -0,0 +1,156 @@ +#!/usr/bin/env node + +/** + * Copy official CLI adapters from the installed package to ~/.opencli/clis/. + * + * Update strategy (file-level granularity via adapter-manifest.json): + * - Official files (in new manifest) are unconditionally overwritten + * - Removed official files (in old manifest but not new) are cleaned up + * - User-created files (never in any manifest) are preserved + * - Skips if already installed at the same version + * + * Only runs on global install (npm install -g) or explicit OPENCLI_FETCH=1. + * No network calls — copies directly from dist/clis/ in the installed package. + * + * This is an ESM script (package.json type: module). No TypeScript, no src/ imports. + */ + +import { existsSync, mkdirSync, rmSync, cpSync, readFileSync, writeFileSync, readdirSync, statSync, unlinkSync } from 'node:fs'; +import { join, resolve, dirname } from 'node:path'; +import { homedir } from 'node:os'; + +const OPENCLI_DIR = join(homedir(), '.opencli'); +const USER_CLIS_DIR = join(OPENCLI_DIR, 'clis'); +const MANIFEST_PATH = join(OPENCLI_DIR, 'adapter-manifest.json'); +const PACKAGE_ROOT = resolve(import.meta.dirname, '..'); +const BUILTIN_CLIS = join(PACKAGE_ROOT, 'dist', 'clis'); + +function log(msg) { + console.log(`[opencli] ${msg}`); +} + +function getPackageVersion() { + try { + return JSON.parse(readFileSync(join(PACKAGE_ROOT, 'package.json'), 'utf-8')).version; + } catch { + return 'unknown'; + } +} + +/** + * Read existing manifest. Returns { version, files } or null. + */ +function readManifest() { + try { + return JSON.parse(readFileSync(MANIFEST_PATH, 'utf-8')); + } catch { + return null; + } +} + +/** + * Collect all relative file paths under a directory. + */ +function walkFiles(dir, prefix = '') { + const results = []; + if (!existsSync(dir)) return results; + for (const entry of readdirSync(dir)) { + const full = join(dir, entry); + const rel = prefix ? `${prefix}/${entry}` : entry; + if (statSync(full).isDirectory()) { + results.push(...walkFiles(full, rel)); + } else { + results.push(rel); + } + } + return results; +} + +/** + * Remove empty parent directories up to (but not including) stopAt. + */ +function pruneEmptyDirs(filePath, stopAt) { + let dir = dirname(filePath); + while (dir !== stopAt && dir.startsWith(stopAt)) { + try { + const entries = readdirSync(dir); + if (entries.length > 0) break; + rmSync(dir); + dir = dirname(dir); + } catch { + break; + } + } +} + +export function fetchAdapters() { + const currentVersion = getPackageVersion(); + const oldManifest = readManifest(); + + // Skip if already installed at the same version + if (currentVersion !== 'unknown' && oldManifest?.version === currentVersion) { + log(`Adapters already up to date (v${currentVersion})`); + return; + } + + if (!existsSync(BUILTIN_CLIS)) { + log('Warning: dist/clis/ not found in package — skipping adapter copy'); + return; + } + + const newOfficialFiles = new Set(walkFiles(BUILTIN_CLIS)); + const oldOfficialFiles = new Set(oldManifest?.files ?? []); + mkdirSync(USER_CLIS_DIR, { recursive: true }); + + // 1. Copy official files (unconditionally overwrite) + let copied = 0; + for (const relPath of newOfficialFiles) { + const src = join(BUILTIN_CLIS, relPath); + const dst = join(USER_CLIS_DIR, relPath); + mkdirSync(dirname(dst), { recursive: true }); + cpSync(src, dst, { force: true }); + copied++; + } + + // 2. Remove files that were official but are no longer (upstream deleted) + let removed = 0; + for (const relPath of oldOfficialFiles) { + if (!newOfficialFiles.has(relPath)) { + const dst = join(USER_CLIS_DIR, relPath); + try { + unlinkSync(dst); + pruneEmptyDirs(dst, USER_CLIS_DIR); + removed++; + } catch { + // File may not exist locally + } + } + } + + // 3. Write updated manifest + writeFileSync(MANIFEST_PATH, JSON.stringify({ + version: currentVersion, + files: [...newOfficialFiles].sort(), + updatedAt: new Date().toISOString(), + }, null, 2)); + + log(`Installed ${copied} adapter files to ${USER_CLIS_DIR}` + + (removed > 0 ? `, removed ${removed} deprecated files` : '')); +} + +function main() { + // Skip in CI + if (process.env.CI || process.env.CONTINUOUS_INTEGRATION) return; + // Allow opt-out + if (process.env.OPENCLI_SKIP_FETCH === '1') return; + + // Only run on global install, explicit trigger, or first-run fallback + const isGlobal = process.env.npm_config_global === 'true'; + const isExplicit = process.env.OPENCLI_FETCH === '1'; + const isFirstRun = process.env._OPENCLI_FIRST_RUN === '1'; + if (!isGlobal && !isExplicit && !isFirstRun) return; + + fetchAdapters(); +} + +main(); diff --git a/src/build-manifest.ts b/src/build-manifest.ts index d2cee791..f5073520 100644 --- a/src/build-manifest.ts +++ b/src/build-manifest.ts @@ -17,8 +17,8 @@ import { getErrorMessage } from './errors.js'; import { fullName, getRegistry, type CliCommand } from './registry.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const CLIS_DIR = path.resolve(__dirname, 'clis'); -const OUTPUT = path.resolve(__dirname, '..', 'dist', 'cli-manifest.json'); +const CLIS_DIR = path.resolve(__dirname, '..', 'clis'); +const OUTPUT = path.resolve(__dirname, '..', 'cli-manifest.json'); export interface ManifestEntry { site: string; @@ -254,14 +254,15 @@ async function main(): Promise { // entry-point loses its executable permission, causing "Permission denied". // See: https://github.com/jackwener/opencli/issues/446 if (process.platform !== 'win32') { - const pkgPath = path.resolve(__dirname, '..', 'package.json'); + const projectRoot = path.resolve(__dirname, '..', '..'); + const pkgPath = path.resolve(projectRoot, 'package.json'); try { const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8')); const bins: Record = typeof pkg.bin === 'string' ? { [pkg.name ?? 'cli']: pkg.bin } : pkg.bin ?? {}; for (const binPath of Object.values(bins)) { - const abs = path.resolve(__dirname, '..', binPath); + const abs = path.resolve(projectRoot, binPath); if (fs.existsSync(abs)) { fs.chmodSync(abs, 0o755); console.log(`✅ Restored executable permission: ${binPath}`); diff --git a/src/cli.ts b/src/cli.ts index 1871b35d..e0b576fb 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -972,7 +972,7 @@ cli({ .description('Start Anthropic-compatible API proxy for Antigravity') .option('--port ', 'Server port (default: 8082)', '8082') .action(async (opts) => { - const { startServe } = await import('./clis/antigravity/serve.js'); + const { startServe } = await import('../clis/antigravity/serve.js'); await startServe({ port: parseInt(opts.port) }); }); diff --git a/src/discovery.ts b/src/discovery.ts index 024d8e08..b572b434 100644 --- a/src/discovery.ts +++ b/src/discovery.ts @@ -57,25 +57,64 @@ async function writeCompatShimIfNeeded(filePath: string, content: string): Promi } /** - * Create runtime shim files under ~/.opencli so legacy user TS CLIs can keep - * importing ../../registry(.js) and ../../errors(.js). + * Create runtime shim files under ~/.opencli so user CLIs can keep + * importing ../../registry(.js), ../../errors(.js), etc. + * + * Adapters use relative imports like `../../registry.js` which, from + * ~/.opencli/clis//.js, resolve to ~/.opencli/registry.js. + * We create shim files that re-export from the installed opencli runtime. */ export async function ensureUserCliCompatShims(baseDir: string = USER_OPENCLI_DIR): Promise { await fs.promises.mkdir(baseDir, { recursive: true }); - const registryUrl = pathToFileURL(resolveHostRuntimeModulePath('registry-api')).href; - const errorsUrl = pathToFileURL(resolveHostRuntimeModulePath('errors')).href; + // Map of shim name → runtime module name (resolved via resolveHostRuntimeModulePath) + const rootShims: Array<[string, string]> = [ + ['registry', 'registry-api'], + ['errors', 'errors'], + ['types', 'types'], + ['utils', 'utils'], + ['logger', 'logger'], + ['launcher', 'launcher'], + ]; + + // Subdirectory shims: [subdir, filename, runtime module path relative to src/] + const subdirShims: Array<[string, string, string]> = [ + ['browser', 'cdp', 'browser/cdp'], + ['browser', 'page', 'browser/page'], + ['browser', 'utils', 'browser/utils'], + ['download', 'index', 'download/index'], + ['download', 'article-download', 'download/article-download'], + ['download', 'media-download', 'download/media-download'], + ['download', 'progress', 'download/progress'], + ['pipeline', 'index', 'pipeline/index'], + ]; + + const writes: Promise[] = []; + + // Root-level shims (both with and without .js extension) + for (const [shimName, moduleName] of rootShims) { + const url = pathToFileURL(resolveHostRuntimeModulePath(moduleName)).href; + const content = `export * from '${url}';\n`; + writes.push(writeCompatShimIfNeeded(path.join(baseDir, shimName), content)); + writes.push(writeCompatShimIfNeeded(path.join(baseDir, `${shimName}.js`), content)); + } + + // Subdirectory shims + for (const [subdir, filename, runtimePath] of subdirShims) { + const dir = path.join(baseDir, subdir); + await fs.promises.mkdir(dir, { recursive: true }); + const url = pathToFileURL(resolveHostRuntimeModulePath(runtimePath)).href; + const content = `export * from '${url}';\n`; + writes.push(writeCompatShimIfNeeded(path.join(dir, `${filename}.js`), content)); + } - await Promise.all([ - writeCompatShimIfNeeded(path.join(baseDir, 'registry'), `export * from '${registryUrl}';\n`), - writeCompatShimIfNeeded(path.join(baseDir, 'registry.js'), `export * from '${registryUrl}';\n`), - writeCompatShimIfNeeded(path.join(baseDir, 'errors'), `export * from '${errorsUrl}';\n`), - writeCompatShimIfNeeded(path.join(baseDir, 'errors.js'), `export * from '${errorsUrl}';\n`), - writeCompatShimIfNeeded( - path.join(baseDir, 'package.json'), - `${JSON.stringify({ name: 'opencli-user-runtime', private: true, type: 'module' }, null, 2)}\n`, - ), - ]); + // package.json for ESM resolution + writes.push(writeCompatShimIfNeeded( + path.join(baseDir, 'package.json'), + `${JSON.stringify({ name: 'opencli-user-runtime', private: true, type: 'module' }, null, 2)}\n`, + )); + + await Promise.all(writes); // Create node_modules/@jackwener/opencli symlink so user TS CLIs can import // from '@jackwener/opencli/registry' (the package export). @@ -100,6 +139,44 @@ export async function ensureUserCliCompatShims(baseDir: string = USER_OPENCLI_DI } } +const ADAPTER_MANIFEST_PATH = path.join(USER_OPENCLI_DIR, 'adapter-manifest.json'); + +/** + * First-run fallback: if postinstall was skipped (--ignore-scripts) or failed, + * trigger adapter fetch on first CLI invocation when ~/.opencli/clis/ is empty. + */ +export async function ensureUserAdapters(): Promise { + // If adapter manifest already exists, adapters were fetched — nothing to do + try { + await fs.promises.access(ADAPTER_MANIFEST_PATH); + return; + } catch { + // No manifest — first run or postinstall was skipped + } + + // Check if clis dir has any content (could be manually populated) + try { + const entries = await fs.promises.readdir(USER_CLIS_DIR); + if (entries.length > 0) return; + } catch { + // Dir doesn't exist — needs fetch + } + + log.info('First run detected — fetching adapters...'); + try { + const { execFileSync } = await import('node:child_process'); + const scriptPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', 'scripts', 'fetch-adapters.js'); + execFileSync(process.execPath, [scriptPath], { + stdio: 'inherit', + env: { ...process.env, _OPENCLI_FIRST_RUN: '1' }, + timeout: 120_000, + }); + } catch (err) { + log.warn(`Could not fetch adapters on first run: ${getErrorMessage(err)}`); + log.warn('Built-in adapters from the package will be used.'); + } +} + /** * Discover and register CLI commands. * Uses pre-compiled manifest when available for instant startup. diff --git a/src/main.ts b/src/main.ts index 4fdb3e9b..14d21bad 100644 --- a/src/main.ts +++ b/src/main.ts @@ -16,7 +16,7 @@ if (process.platform !== 'win32') { import * as os from 'node:os'; import * as path from 'node:path'; import { fileURLToPath } from 'node:url'; -import { discoverClis, discoverPlugins, ensureUserCliCompatShims, USER_CLIS_DIR } from './discovery.js'; +import { discoverClis, discoverPlugins, ensureUserCliCompatShims, ensureUserAdapters, USER_CLIS_DIR } from './discovery.js'; import { getCompletions } from './completion.js'; import { runCli } from './cli.js'; import { emitHook } from './hooks.js'; @@ -28,11 +28,12 @@ installNodeNetwork(); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const BUILTIN_CLIS = path.resolve(__dirname, 'clis'); +const BUILTIN_CLIS = path.resolve(__dirname, '..', 'clis'); const USER_CLIS = USER_CLIS_DIR; // Sequential: plugins must run after built-in discovery so they can override built-in commands. await ensureUserCliCompatShims(); +await ensureUserAdapters(); await discoverClis(BUILTIN_CLIS, USER_CLIS); await discoverPlugins(); diff --git a/src/record.ts b/src/record.ts index 81d33c6c..c4932b6f 100644 --- a/src/record.ts +++ b/src/record.ts @@ -818,7 +818,7 @@ export function renderRecordSummary(result: RecordResult): string { } if (result.candidateCount > 0) { lines.push(''); - lines.push(chalk.dim(` Copy a candidate to src/clis/${result.site}/ and run: npm run build`)); + lines.push(chalk.dim(` Copy a candidate to clis/${result.site}/ and run: npm run build`)); } return lines.join('\n'); } diff --git a/src/weixin-download.test.ts b/src/weixin-download.test.ts index b18e313a..3a5c93f3 100644 --- a/src/weixin-download.test.ts +++ b/src/weixin-download.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; async function loadModule() { - return import('./clis/weixin/download.js'); + return import('../clis/weixin/download.js'); } describe('weixin publish time extraction', () => { diff --git a/tsconfig.json b/tsconfig.json index 78c9b747..ff1aab0e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,7 @@ "module": "Node16", "moduleResolution": "Node16", "outDir": "dist", - "rootDir": "src", + "rootDir": ".", "strict": true, "esModuleInterop": true, "skipLibCheck": true, @@ -12,6 +12,18 @@ "declaration": true, "incremental": true }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules", "dist"] + "include": [ + "src/**/*.ts", + "clis/**/*.ts", + "registry.ts", + "errors.ts", + "types.ts", + "utils.ts", + "logger.ts", + "launcher.ts", + "browser/**/*.ts", + "download/**/*.ts", + "pipeline/**/*.ts" + ], + "exclude": ["node_modules", "dist", "extension"] } diff --git a/types.ts b/types.ts new file mode 100644 index 00000000..a9cc95b6 --- /dev/null +++ b/types.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../types.js +export * from './src/types.js'; diff --git a/utils.ts b/utils.ts new file mode 100644 index 00000000..c829e09c --- /dev/null +++ b/utils.ts @@ -0,0 +1,2 @@ +// Shim: re-exports from src/ so adapters in clis/ can import ../../utils.js +export * from './src/utils.js'; diff --git a/vitest.config.ts b/vitest.config.ts index 8b22bdc8..0c1cc470 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,14 +9,14 @@ export default defineConfig({ test: { name: 'unit', include: ['src/**/*.test.ts'], - exclude: ['src/clis/**/*.test.ts'], + exclude: ['clis/**/*.test.ts'], sequence: { groupOrder: 0 }, }, }, { test: { name: 'adapter', - include: ['src/clis/**/*.test.ts'], + include: ['clis/**/*.test.ts'], sequence: { groupOrder: 1 }, }, },