@zenalexa/unicli 0.220.0 → 0.221.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +35 -22
- package/README.md +23 -17
- package/README.zh-CN.md +23 -17
- package/dist/adapters/anilist/web.d.ts +11 -0
- package/dist/adapters/anilist/web.d.ts.map +1 -0
- package/dist/adapters/anilist/web.js +284 -0
- package/dist/adapters/anilist/web.js.map +1 -0
- package/dist/adapters/bangumi/web.d.ts +14 -0
- package/dist/adapters/bangumi/web.d.ts.map +1 -0
- package/dist/adapters/bangumi/web.js +257 -0
- package/dist/adapters/bangumi/web.js.map +1 -0
- package/dist/adapters/bilibili/comments.js +66 -4
- package/dist/adapters/bilibili/comments.js.map +1 -1
- package/dist/adapters/bilibili/compat.js +2 -2
- package/dist/adapters/bilibili/compat.js.map +1 -1
- package/dist/adapters/bilibili/download.js +4 -4
- package/dist/adapters/bilibili/download.js.map +1 -1
- package/dist/adapters/bilibili/wbi.d.ts.map +1 -1
- package/dist/adapters/bilibili/wbi.js +3 -3
- package/dist/adapters/bilibili/wbi.js.map +1 -1
- package/dist/adapters/cipo/_shared.d.ts +21 -0
- package/dist/adapters/cipo/_shared.d.ts.map +1 -0
- package/dist/adapters/cipo/_shared.js +67 -0
- package/dist/adapters/cipo/_shared.js.map +1 -0
- package/dist/adapters/cipo/get.d.ts +19 -0
- package/dist/adapters/cipo/get.d.ts.map +1 -0
- package/dist/adapters/cipo/get.js +140 -0
- package/dist/adapters/cipo/get.js.map +1 -0
- package/dist/adapters/cipo/legal-status.d.ts +19 -0
- package/dist/adapters/cipo/legal-status.d.ts.map +1 -0
- package/dist/adapters/cipo/legal-status.js +111 -0
- package/dist/adapters/cipo/legal-status.js.map +1 -0
- package/dist/adapters/cipo/search.d.ts +20 -0
- package/dist/adapters/cipo/search.d.ts.map +1 -0
- package/dist/adapters/cipo/search.js +148 -0
- package/dist/adapters/cipo/search.js.map +1 -0
- package/dist/adapters/cnipa/_shared.d.ts +47 -0
- package/dist/adapters/cnipa/_shared.d.ts.map +1 -0
- package/dist/adapters/cnipa/_shared.js +97 -0
- package/dist/adapters/cnipa/_shared.js.map +1 -0
- package/dist/adapters/cnipa/get.d.ts +19 -0
- package/dist/adapters/cnipa/get.d.ts.map +1 -0
- package/dist/adapters/cnipa/get.js +149 -0
- package/dist/adapters/cnipa/get.js.map +1 -0
- package/dist/adapters/cnipa/legal-status.d.ts +19 -0
- package/dist/adapters/cnipa/legal-status.d.ts.map +1 -0
- package/dist/adapters/cnipa/legal-status.js +119 -0
- package/dist/adapters/cnipa/legal-status.js.map +1 -0
- package/dist/adapters/cnipa/search.d.ts +21 -0
- package/dist/adapters/cnipa/search.d.ts.map +1 -0
- package/dist/adapters/cnipa/search.js +170 -0
- package/dist/adapters/cnipa/search.js.map +1 -0
- package/dist/adapters/dlsite/web.d.ts +31 -0
- package/dist/adapters/dlsite/web.d.ts.map +1 -0
- package/dist/adapters/dlsite/web.js +455 -0
- package/dist/adapters/dlsite/web.js.map +1 -0
- package/dist/adapters/ehentai/web.d.ts +66 -0
- package/dist/adapters/ehentai/web.d.ts.map +1 -0
- package/dist/adapters/ehentai/web.js +608 -0
- package/dist/adapters/ehentai/web.js.map +1 -0
- package/dist/adapters/espacenet/_shared.d.ts +21 -0
- package/dist/adapters/espacenet/_shared.d.ts.map +1 -0
- package/dist/adapters/espacenet/_shared.js +67 -0
- package/dist/adapters/espacenet/_shared.js.map +1 -0
- package/dist/adapters/espacenet/family.d.ts +19 -0
- package/dist/adapters/espacenet/family.d.ts.map +1 -0
- package/dist/adapters/espacenet/family.js +118 -0
- package/dist/adapters/espacenet/family.js.map +1 -0
- package/dist/adapters/espacenet/get.d.ts +19 -0
- package/dist/adapters/espacenet/get.d.ts.map +1 -0
- package/dist/adapters/espacenet/get.js +130 -0
- package/dist/adapters/espacenet/get.js.map +1 -0
- package/dist/adapters/espacenet/legal-status.d.ts +19 -0
- package/dist/adapters/espacenet/legal-status.d.ts.map +1 -0
- package/dist/adapters/espacenet/legal-status.js +110 -0
- package/dist/adapters/espacenet/legal-status.js.map +1 -0
- package/dist/adapters/espacenet/search.d.ts +20 -0
- package/dist/adapters/espacenet/search.d.ts.map +1 -0
- package/dist/adapters/espacenet/search.js +165 -0
- package/dist/adapters/espacenet/search.js.map +1 -0
- package/dist/adapters/facebook/subtitles.d.ts +9 -0
- package/dist/adapters/facebook/subtitles.d.ts.map +1 -0
- package/dist/adapters/facebook/subtitles.js +42 -0
- package/dist/adapters/facebook/subtitles.js.map +1 -0
- package/dist/adapters/fips/_shared.d.ts +21 -0
- package/dist/adapters/fips/_shared.d.ts.map +1 -0
- package/dist/adapters/fips/_shared.js +77 -0
- package/dist/adapters/fips/_shared.js.map +1 -0
- package/dist/adapters/fips/get.d.ts +19 -0
- package/dist/adapters/fips/get.d.ts.map +1 -0
- package/dist/adapters/fips/get.js +139 -0
- package/dist/adapters/fips/get.js.map +1 -0
- package/dist/adapters/fips/search.d.ts +20 -0
- package/dist/adapters/fips/search.d.ts.map +1 -0
- package/dist/adapters/fips/search.js +148 -0
- package/dist/adapters/fips/search.js.map +1 -0
- package/dist/adapters/freepatentsonline-web/_shared.d.ts +72 -0
- package/dist/adapters/freepatentsonline-web/_shared.d.ts.map +1 -0
- package/dist/adapters/freepatentsonline-web/_shared.js +216 -0
- package/dist/adapters/freepatentsonline-web/_shared.js.map +1 -0
- package/dist/adapters/freepatentsonline-web/get.d.ts +21 -0
- package/dist/adapters/freepatentsonline-web/get.d.ts.map +1 -0
- package/dist/adapters/freepatentsonline-web/get.js +127 -0
- package/dist/adapters/freepatentsonline-web/get.js.map +1 -0
- package/dist/adapters/freepatentsonline-web/search.d.ts +22 -0
- package/dist/adapters/freepatentsonline-web/search.d.ts.map +1 -0
- package/dist/adapters/freepatentsonline-web/search.js +149 -0
- package/dist/adapters/freepatentsonline-web/search.js.map +1 -0
- package/dist/adapters/google-patents-web/_shared.d.ts +110 -0
- package/dist/adapters/google-patents-web/_shared.d.ts.map +1 -0
- package/dist/adapters/google-patents-web/_shared.js +164 -0
- package/dist/adapters/google-patents-web/_shared.js.map +1 -0
- package/dist/adapters/google-patents-web/get.d.ts +36 -0
- package/dist/adapters/google-patents-web/get.d.ts.map +1 -0
- package/dist/adapters/google-patents-web/get.js +187 -0
- package/dist/adapters/google-patents-web/get.js.map +1 -0
- package/dist/adapters/google-patents-web/search.d.ts +23 -0
- package/dist/adapters/google-patents-web/search.d.ts.map +1 -0
- package/dist/adapters/google-patents-web/search.js +169 -0
- package/dist/adapters/google-patents-web/search.js.map +1 -0
- package/dist/adapters/inpi-br/_shared.d.ts +21 -0
- package/dist/adapters/inpi-br/_shared.d.ts.map +1 -0
- package/dist/adapters/inpi-br/_shared.js +67 -0
- package/dist/adapters/inpi-br/_shared.js.map +1 -0
- package/dist/adapters/inpi-br/get.d.ts +19 -0
- package/dist/adapters/inpi-br/get.d.ts.map +1 -0
- package/dist/adapters/inpi-br/get.js +142 -0
- package/dist/adapters/inpi-br/get.js.map +1 -0
- package/dist/adapters/inpi-br/search.d.ts +20 -0
- package/dist/adapters/inpi-br/search.d.ts.map +1 -0
- package/dist/adapters/inpi-br/search.js +154 -0
- package/dist/adapters/inpi-br/search.js.map +1 -0
- package/dist/adapters/instagram/subtitles.d.ts +9 -0
- package/dist/adapters/instagram/subtitles.d.ts.map +1 -0
- package/dist/adapters/instagram/subtitles.js +42 -0
- package/dist/adapters/instagram/subtitles.js.map +1 -0
- package/dist/adapters/jikan/web.d.ts +9 -0
- package/dist/adapters/jikan/web.d.ts.map +1 -0
- package/dist/adapters/jikan/web.js +154 -0
- package/dist/adapters/jikan/web.js.map +1 -0
- package/dist/adapters/kitsu/web.d.ts +9 -0
- package/dist/adapters/kitsu/web.d.ts.map +1 -0
- package/dist/adapters/kitsu/web.js +97 -0
- package/dist/adapters/kitsu/web.js.map +1 -0
- package/dist/adapters/mangadex/web.d.ts +10 -0
- package/dist/adapters/mangadex/web.d.ts.map +1 -0
- package/dist/adapters/mangadex/web.js +188 -0
- package/dist/adapters/mangadex/web.js.map +1 -0
- package/dist/adapters/mastodon/statuses.d.ts +40 -0
- package/dist/adapters/mastodon/statuses.d.ts.map +1 -0
- package/dist/adapters/mastodon/statuses.js +153 -0
- package/dist/adapters/mastodon/statuses.js.map +1 -0
- package/dist/adapters/moegirl/web.d.ts +23 -0
- package/dist/adapters/moegirl/web.d.ts.map +1 -0
- package/dist/adapters/moegirl/web.js +269 -0
- package/dist/adapters/moegirl/web.js.map +1 -0
- package/dist/adapters/reddit/comments.d.ts +9 -0
- package/dist/adapters/reddit/comments.d.ts.map +1 -0
- package/dist/adapters/reddit/comments.js +124 -0
- package/dist/adapters/reddit/comments.js.map +1 -0
- package/dist/adapters/safebooru/web.d.ts +10 -0
- package/dist/adapters/safebooru/web.d.ts.map +1 -0
- package/dist/adapters/safebooru/web.js +120 -0
- package/dist/adapters/safebooru/web.js.map +1 -0
- package/dist/adapters/threads/post.d.ts +32 -0
- package/dist/adapters/threads/post.d.ts.map +1 -0
- package/dist/adapters/threads/post.js +287 -0
- package/dist/adapters/threads/post.js.map +1 -0
- package/dist/adapters/tiktok/subtitles.d.ts +9 -0
- package/dist/adapters/tiktok/subtitles.d.ts.map +1 -0
- package/dist/adapters/tiktok/subtitles.js +42 -0
- package/dist/adapters/tiktok/subtitles.js.map +1 -0
- package/dist/adapters/twitter/accept.js +2 -2
- package/dist/adapters/twitter/accept.js.map +1 -1
- package/dist/adapters/twitter/browser-fallback.d.ts +26 -0
- package/dist/adapters/twitter/browser-fallback.d.ts.map +1 -0
- package/dist/adapters/twitter/browser-fallback.js +93 -0
- package/dist/adapters/twitter/browser-fallback.js.map +1 -0
- package/dist/adapters/twitter/browser-state.d.ts +11 -0
- package/dist/adapters/twitter/browser-state.d.ts.map +1 -0
- package/dist/adapters/twitter/browser-state.js +46 -0
- package/dist/adapters/twitter/browser-state.js.map +1 -0
- package/dist/adapters/twitter/client.d.ts.map +1 -1
- package/dist/adapters/twitter/client.js +36 -13
- package/dist/adapters/twitter/client.js.map +1 -1
- package/dist/adapters/twitter/reply-dm.js +2 -2
- package/dist/adapters/twitter/reply-dm.js.map +1 -1
- package/dist/adapters/twitter/reply.js +1 -0
- package/dist/adapters/twitter/reply.js.map +1 -1
- package/dist/adapters/twitter/search.js +11 -18
- package/dist/adapters/twitter/search.js.map +1 -1
- package/dist/adapters/twitter/thread.d.ts +14 -0
- package/dist/adapters/twitter/thread.d.ts.map +1 -1
- package/dist/adapters/twitter/thread.js +28 -2
- package/dist/adapters/twitter/thread.js.map +1 -1
- package/dist/adapters/twitter/trending.js +13 -59
- package/dist/adapters/twitter/trending.js.map +1 -1
- package/dist/adapters/vndb/web.d.ts +10 -0
- package/dist/adapters/vndb/web.d.ts.map +1 -0
- package/dist/adapters/vndb/web.js +321 -0
- package/dist/adapters/vndb/web.js.map +1 -0
- package/dist/adapters/xiaohongshu/browser-state.d.ts +19 -0
- package/dist/adapters/xiaohongshu/browser-state.d.ts.map +1 -0
- package/dist/adapters/xiaohongshu/browser-state.js +67 -0
- package/dist/adapters/xiaohongshu/browser-state.js.map +1 -0
- package/dist/adapters/xiaohongshu/comments.js +28 -5
- package/dist/adapters/xiaohongshu/comments.js.map +1 -1
- package/dist/adapters/xiaohongshu/download.js +49 -11
- package/dist/adapters/xiaohongshu/download.js.map +1 -1
- package/dist/adapters/xiaohongshu/search.d.ts.map +1 -1
- package/dist/adapters/xiaohongshu/search.js +11 -5
- package/dist/adapters/xiaohongshu/search.js.map +1 -1
- package/dist/adapters/xiaohongshu/trending.d.ts +9 -0
- package/dist/adapters/xiaohongshu/trending.d.ts.map +1 -0
- package/dist/adapters/xiaohongshu/trending.js +94 -0
- package/dist/adapters/xiaohongshu/trending.js.map +1 -0
- package/dist/adapters/youtube/comments.d.ts +80 -0
- package/dist/adapters/youtube/comments.d.ts.map +1 -1
- package/dist/adapters/youtube/comments.js +108 -12
- package/dist/adapters/youtube/comments.js.map +1 -1
- package/dist/adapters/youtube/subtitles.d.ts +9 -0
- package/dist/adapters/youtube/subtitles.d.ts.map +1 -0
- package/dist/adapters/youtube/subtitles.js +42 -0
- package/dist/adapters/youtube/subtitles.js.map +1 -0
- package/dist/adapters/yt-dlp/subtitles.d.ts +9 -0
- package/dist/adapters/yt-dlp/subtitles.d.ts.map +1 -0
- package/dist/adapters/yt-dlp/subtitles.js +41 -0
- package/dist/adapters/yt-dlp/subtitles.js.map +1 -0
- package/dist/adapters/zhihu/answer-detail.d.ts +39 -0
- package/dist/adapters/zhihu/answer-detail.d.ts.map +1 -0
- package/dist/adapters/zhihu/answer-detail.js +204 -0
- package/dist/adapters/zhihu/answer-detail.js.map +1 -0
- package/dist/adapters/zhihu/comment.d.ts +9 -0
- package/dist/adapters/zhihu/comment.d.ts.map +1 -0
- package/dist/adapters/zhihu/comment.js +149 -0
- package/dist/adapters/zhihu/comment.js.map +1 -0
- package/dist/adapters/zhihu/recommend.d.ts +36 -0
- package/dist/adapters/zhihu/recommend.d.ts.map +1 -0
- package/dist/adapters/zhihu/recommend.js +151 -0
- package/dist/adapters/zhihu/recommend.js.map +1 -0
- package/dist/agents/codex-pack.d.ts +62 -0
- package/dist/agents/codex-pack.d.ts.map +1 -0
- package/dist/agents/codex-pack.js +163 -0
- package/dist/agents/codex-pack.js.map +1 -0
- package/dist/browser/bridge.d.ts.map +1 -1
- package/dist/browser/bridge.js +14 -3
- package/dist/browser/bridge.js.map +1 -1
- package/dist/browser/daemon-client.d.ts +6 -0
- package/dist/browser/daemon-client.d.ts.map +1 -1
- package/dist/browser/daemon-client.js +75 -15
- package/dist/browser/daemon-client.js.map +1 -1
- package/dist/browser/daemon.js +39 -15
- package/dist/browser/daemon.js.map +1 -1
- package/dist/browser/protocol.d.ts +1 -0
- package/dist/browser/protocol.d.ts.map +1 -1
- package/dist/browser/protocol.js +1 -0
- package/dist/browser/protocol.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +6 -43
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/approvals.d.ts.map +1 -1
- package/dist/commands/approvals.js +1 -37
- package/dist/commands/approvals.js.map +1 -1
- package/dist/commands/browser/adapter.d.ts.map +1 -1
- package/dist/commands/browser/adapter.js +17 -3
- package/dist/commands/browser/adapter.js.map +1 -1
- package/dist/commands/browser/index.d.ts.map +1 -1
- package/dist/commands/browser/index.js +7 -2
- package/dist/commands/browser/index.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +7 -3
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +6 -7
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/dispatch.d.ts +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +31 -5
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +10 -5
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/patent-doctor.d.ts +48 -0
- package/dist/commands/patent-doctor.d.ts.map +1 -0
- package/dist/commands/patent-doctor.js +109 -0
- package/dist/commands/patent-doctor.js.map +1 -0
- package/dist/commands/patent.d.ts +78 -0
- package/dist/commands/patent.d.ts.map +1 -0
- package/dist/commands/patent.js +919 -0
- package/dist/commands/patent.js.map +1 -0
- package/dist/commands/social.d.ts +19 -0
- package/dist/commands/social.d.ts.map +1 -0
- package/dist/commands/social.js +236 -0
- package/dist/commands/social.js.map +1 -0
- package/dist/core/command-contract-lint.d.ts +10 -0
- package/dist/core/command-contract-lint.d.ts.map +1 -0
- package/dist/core/command-contract-lint.js +41 -0
- package/dist/core/command-contract-lint.js.map +1 -0
- package/dist/core/command-contract.d.ts +100 -0
- package/dist/core/command-contract.d.ts.map +1 -0
- package/dist/core/command-contract.js +174 -0
- package/dist/core/command-contract.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/registry.d.ts +1 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +11 -2
- package/dist/core/registry.js.map +1 -1
- package/dist/discovery/aliases.d.ts +2 -2
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +464 -6
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +4 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/discovery/search.d.ts.map +1 -1
- package/dist/discovery/search.js +147 -2
- package/dist/discovery/search.js.map +1 -1
- package/dist/engine/approval-presenter.d.ts +10 -0
- package/dist/engine/approval-presenter.d.ts.map +1 -0
- package/dist/engine/approval-presenter.js +45 -0
- package/dist/engine/approval-presenter.js.map +1 -0
- package/dist/engine/approval-store.d.ts +4 -0
- package/dist/engine/approval-store.d.ts.map +1 -1
- package/dist/engine/approval-store.js +85 -11
- package/dist/engine/approval-store.js.map +1 -1
- package/dist/engine/args.d.ts.map +1 -1
- package/dist/engine/args.js +18 -1
- package/dist/engine/args.js.map +1 -1
- package/dist/engine/artifact-validation.d.ts +29 -0
- package/dist/engine/artifact-validation.d.ts.map +1 -0
- package/dist/engine/artifact-validation.js +211 -0
- package/dist/engine/artifact-validation.js.map +1 -0
- package/dist/engine/auth/oauth2-cc.d.ts +67 -0
- package/dist/engine/auth/oauth2-cc.d.ts.map +1 -0
- package/dist/engine/auth/oauth2-cc.js +120 -0
- package/dist/engine/auth/oauth2-cc.js.map +1 -0
- package/dist/engine/browser/diagnostics.d.ts +38 -0
- package/dist/engine/browser/diagnostics.d.ts.map +1 -0
- package/dist/engine/browser/diagnostics.js +40 -0
- package/dist/engine/browser/diagnostics.js.map +1 -0
- package/dist/engine/cookies.d.ts +10 -0
- package/dist/engine/cookies.d.ts.map +1 -1
- package/dist/engine/cookies.js +64 -0
- package/dist/engine/cookies.js.map +1 -1
- package/dist/engine/download.d.ts +5 -0
- package/dist/engine/download.d.ts.map +1 -1
- package/dist/engine/download.js +11 -4
- package/dist/engine/download.js.map +1 -1
- package/dist/engine/executor.d.ts +1 -0
- package/dist/engine/executor.d.ts.map +1 -1
- package/dist/engine/executor.js +25 -0
- package/dist/engine/executor.js.map +1 -1
- package/dist/engine/framework.d.ts +5 -5
- package/dist/engine/framework.js +5 -5
- package/dist/engine/harden.d.ts +1 -1
- package/dist/engine/harden.js +1 -1
- package/dist/engine/invoke.d.ts +1 -0
- package/dist/engine/invoke.d.ts.map +1 -1
- package/dist/engine/invoke.js +1 -0
- package/dist/engine/invoke.js.map +1 -1
- package/dist/engine/kernel/errors.d.ts +11 -0
- package/dist/engine/kernel/errors.d.ts.map +1 -0
- package/dist/engine/kernel/errors.js +15 -0
- package/dist/engine/kernel/errors.js.map +1 -0
- package/dist/engine/kernel/execute.d.ts +7 -18
- package/dist/engine/kernel/execute.d.ts.map +1 -1
- package/dist/engine/kernel/execute.js +25 -410
- package/dist/engine/kernel/execute.js.map +1 -1
- package/dist/engine/kernel/stages.d.ts +44 -0
- package/dist/engine/kernel/stages.d.ts.map +1 -0
- package/dist/engine/kernel/stages.js +429 -0
- package/dist/engine/kernel/stages.js.map +1 -0
- package/dist/engine/kernel/types.d.ts +21 -1
- package/dist/engine/kernel/types.d.ts.map +1 -1
- package/dist/engine/normalizer/patent-envelope.d.ts +61 -0
- package/dist/engine/normalizer/patent-envelope.d.ts.map +1 -0
- package/dist/engine/normalizer/patent-envelope.js +132 -0
- package/dist/engine/normalizer/patent-envelope.js.map +1 -0
- package/dist/engine/research.d.ts +5 -7
- package/dist/engine/research.d.ts.map +1 -1
- package/dist/engine/research.js +6 -9
- package/dist/engine/research.js.map +1 -1
- package/dist/engine/steps/browser-helpers.d.ts +2 -2
- package/dist/engine/steps/browser-helpers.d.ts.map +1 -1
- package/dist/engine/steps/browser-helpers.js +39 -16
- package/dist/engine/steps/browser-helpers.js.map +1 -1
- package/dist/engine/steps/download.d.ts +2 -0
- package/dist/engine/steps/download.d.ts.map +1 -1
- package/dist/engine/steps/download.js +13 -7
- package/dist/engine/steps/download.js.map +1 -1
- package/dist/engine/steps/index.d.ts +2 -0
- package/dist/engine/steps/index.d.ts.map +1 -1
- package/dist/engine/steps/index.js +2 -0
- package/dist/engine/steps/index.js.map +1 -1
- package/dist/engine/steps/oauth2-token.d.ts +41 -0
- package/dist/engine/steps/oauth2-token.d.ts.map +1 -0
- package/dist/engine/steps/oauth2-token.js +115 -0
- package/dist/engine/steps/oauth2-token.js.map +1 -0
- package/dist/engine/steps/select-xml.d.ts +34 -0
- package/dist/engine/steps/select-xml.d.ts.map +1 -0
- package/dist/engine/steps/select-xml.js +222 -0
- package/dist/engine/steps/select-xml.js.map +1 -0
- package/dist/engine/template.d.ts.map +1 -1
- package/dist/engine/template.js +7 -0
- package/dist/engine/template.js.map +1 -1
- package/dist/engine/transport/mcp-browser.d.ts +128 -0
- package/dist/engine/transport/mcp-browser.d.ts.map +1 -0
- package/dist/engine/transport/mcp-browser.js +120 -0
- package/dist/engine/transport/mcp-browser.js.map +1 -0
- package/dist/fast-path/handlers/approvals.d.ts +11 -0
- package/dist/fast-path/handlers/approvals.d.ts.map +1 -0
- package/dist/fast-path/handlers/approvals.js +136 -0
- package/dist/fast-path/handlers/approvals.js.map +1 -0
- package/dist/fast-path/manifest.d.ts +1 -0
- package/dist/fast-path/manifest.d.ts.map +1 -1
- package/dist/fast-path/manifest.js.map +1 -1
- package/dist/fast-path/render.js +1 -1
- package/dist/fast-path/render.js.map +1 -1
- package/dist/fast-path.d.ts.map +1 -1
- package/dist/fast-path.js +3 -0
- package/dist/fast-path.js.map +1 -1
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest-compact.txt +5 -5
- package/dist/manifest-search.json +1 -1
- package/dist/manifest.json +5189 -55
- package/dist/mcp/handler.d.ts.map +1 -1
- package/dist/mcp/handler.js +11 -1
- package/dist/mcp/handler.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +18 -10
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/auth-guidance.d.ts +14 -0
- package/dist/output/auth-guidance.d.ts.map +1 -0
- package/dist/output/auth-guidance.js +50 -0
- package/dist/output/auth-guidance.js.map +1 -0
- package/dist/output/error-map.d.ts +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +29 -5
- package/dist/output/error-map.js.map +1 -1
- package/dist/output/next-actions.d.ts.map +1 -1
- package/dist/output/next-actions.js +19 -3
- package/dist/output/next-actions.js.map +1 -1
- package/dist/registry.d.ts +18 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +7 -1
- package/dist/registry.js.map +1 -1
- package/dist/social/browser-errors.d.ts +13 -0
- package/dist/social/browser-errors.d.ts.map +1 -0
- package/dist/social/browser-errors.js +36 -0
- package/dist/social/browser-errors.js.map +1 -0
- package/dist/social/capabilities.d.ts +29 -0
- package/dist/social/capabilities.d.ts.map +1 -0
- package/dist/social/capabilities.js +448 -0
- package/dist/social/capabilities.js.map +1 -0
- package/dist/social/comments.d.ts +26 -0
- package/dist/social/comments.d.ts.map +1 -0
- package/dist/social/comments.js +97 -0
- package/dist/social/comments.js.map +1 -0
- package/dist/social/video-text.d.ts +27 -0
- package/dist/social/video-text.d.ts.map +1 -0
- package/dist/social/video-text.js +140 -0
- package/dist/social/video-text.js.map +1 -0
- package/dist/types/patent.d.ts +160 -0
- package/dist/types/patent.d.ts.map +1 -0
- package/dist/types/patent.js +16 -0
- package/dist/types/patent.js.map +1 -0
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -5
- package/server.json +3 -3
- package/skills/unicli/SKILL.md +1 -1
- package/skills/unicli-claude-code/SKILL.md +1 -1
- package/skills/unicli-hermes/SKILL.md +1 -1
- package/src/adapters/anilist/web.test.ts +93 -0
- package/src/adapters/anilist/web.ts +341 -0
- package/src/adapters/arxiv/download.yaml +53 -0
- package/src/adapters/bangumi/web.test.ts +109 -0
- package/src/adapters/bangumi/web.ts +295 -0
- package/src/adapters/bilibili/comments-tree.test.ts +41 -0
- package/src/adapters/bilibili/comments.ts +78 -4
- package/src/adapters/bilibili/compat.ts +5 -2
- package/src/adapters/bilibili/download.ts +7 -4
- package/src/adapters/bilibili/wbi.ts +6 -3
- package/src/adapters/brave/search.yaml +53 -0
- package/src/adapters/cipo/_shared.ts +98 -0
- package/src/adapters/cipo/get.ts +188 -0
- package/src/adapters/cipo/legal-status.ts +148 -0
- package/src/adapters/cipo/search.ts +195 -0
- package/src/adapters/cnipa/_shared.ts +138 -0
- package/src/adapters/cnipa/get.ts +199 -0
- package/src/adapters/cnipa/legal-status.ts +162 -0
- package/src/adapters/cnipa/search.ts +229 -0
- package/src/adapters/danbooru/artists.yaml +44 -0
- package/src/adapters/danbooru/comments.yaml +45 -0
- package/src/adapters/danbooru/detail.yaml +78 -0
- package/src/adapters/danbooru/download.yaml +51 -0
- package/src/adapters/danbooru/pools.yaml +56 -0
- package/src/adapters/danbooru/search.yaml +69 -0
- package/src/adapters/danbooru/tags.yaml +42 -0
- package/src/adapters/danbooru/wiki.yaml +44 -0
- package/src/adapters/dlsite/web.test.ts +132 -0
- package/src/adapters/dlsite/web.ts +557 -0
- package/src/adapters/dpma/get.yaml +67 -0
- package/src/adapters/dpma/search.yaml +77 -0
- package/src/adapters/duckduckgo/search.yaml +54 -0
- package/src/adapters/duckduckgo/suggest.yaml +52 -0
- package/src/adapters/ehentai/web.test.ts +157 -0
- package/src/adapters/ehentai/web.ts +750 -0
- package/src/adapters/epo/family.yaml +69 -0
- package/src/adapters/epo/get.yaml +74 -0
- package/src/adapters/epo/legal-status.yaml +63 -0
- package/src/adapters/epo/search.yaml +84 -0
- package/src/adapters/espacenet/_shared.ts +98 -0
- package/src/adapters/espacenet/family.ts +161 -0
- package/src/adapters/espacenet/get.ts +185 -0
- package/src/adapters/espacenet/legal-status.ts +151 -0
- package/src/adapters/espacenet/search.ts +229 -0
- package/src/adapters/facebook/subtitles.ts +44 -0
- package/src/adapters/fips/_shared.ts +109 -0
- package/src/adapters/fips/get.ts +186 -0
- package/src/adapters/fips/search.ts +195 -0
- package/src/adapters/freepatentsonline-web/_shared.ts +273 -0
- package/src/adapters/freepatentsonline-web/get.ts +144 -0
- package/src/adapters/freepatentsonline-web/search.ts +170 -0
- package/src/adapters/google-patents-bq/prior-art.yaml +80 -0
- package/src/adapters/google-patents-bq/search.yaml +97 -0
- package/src/adapters/google-patents-web/_shared.ts +242 -0
- package/src/adapters/google-patents-web/get.ts +224 -0
- package/src/adapters/google-patents-web/search.ts +196 -0
- package/src/adapters/inpi-br/_shared.ts +98 -0
- package/src/adapters/inpi-br/get.ts +193 -0
- package/src/adapters/inpi-br/search.ts +206 -0
- package/src/adapters/inpi-fr/get.yaml +62 -0
- package/src/adapters/inpi-fr/search.yaml +74 -0
- package/src/adapters/instagram/subtitles.ts +44 -0
- package/src/adapters/ipaustralia/get.yaml +67 -0
- package/src/adapters/ipaustralia/search.yaml +74 -0
- package/src/adapters/jikan/web.test.ts +50 -0
- package/src/adapters/jikan/web.ts +177 -0
- package/src/adapters/jpo/get.yaml +63 -0
- package/src/adapters/jpo/search.yaml +76 -0
- package/src/adapters/kipris/get.yaml +69 -0
- package/src/adapters/kipris/legal-status.yaml +58 -0
- package/src/adapters/kipris/search.yaml +79 -0
- package/src/adapters/kitsu/web.test.ts +29 -0
- package/src/adapters/kitsu/web.ts +109 -0
- package/src/adapters/konachan/detail.yaml +62 -0
- package/src/adapters/konachan/download.yaml +55 -0
- package/src/adapters/konachan/search.yaml +65 -0
- package/src/adapters/konachan/tags.yaml +40 -0
- package/src/adapters/lens/get.yaml +64 -0
- package/src/adapters/lens/search.yaml +82 -0
- package/src/adapters/mangadex/web.test.ts +46 -0
- package/src/adapters/mangadex/web.ts +210 -0
- package/src/adapters/mastodon/statuses.test.ts +82 -0
- package/src/adapters/mastodon/statuses.ts +208 -0
- package/src/adapters/moegirl/web.test.ts +87 -0
- package/src/adapters/moegirl/web.ts +343 -0
- package/src/adapters/patsnap/get.yaml +65 -0
- package/src/adapters/patsnap/search.yaml +77 -0
- package/src/adapters/pdf/read.yaml +49 -0
- package/src/adapters/pixiv/download.yaml +15 -2
- package/src/adapters/pqai/prior-art.yaml +59 -0
- package/src/adapters/pqai/search.yaml +60 -0
- package/src/adapters/reddit/comments-tree.test.ts +79 -0
- package/src/adapters/reddit/comments.ts +159 -0
- package/src/adapters/safebooru/detail.yaml +63 -0
- package/src/adapters/safebooru/download.yaml +58 -0
- package/src/adapters/safebooru/search.yaml +69 -0
- package/src/adapters/safebooru/web.test.ts +60 -0
- package/src/adapters/safebooru/web.ts +130 -0
- package/src/adapters/threads/post.test.ts +64 -0
- package/src/adapters/threads/post.ts +366 -0
- package/src/adapters/threads/user.yaml +73 -0
- package/src/adapters/tiktok/subtitles.ts +44 -0
- package/src/adapters/twitter/accept.ts +5 -2
- package/src/adapters/twitter/browser-fallback.ts +138 -0
- package/src/adapters/twitter/browser-state.ts +74 -0
- package/src/adapters/twitter/client.ts +51 -21
- package/src/adapters/twitter/reply-dm.ts +5 -2
- package/src/adapters/twitter/reply.ts +1 -0
- package/src/adapters/twitter/search.ts +12 -38
- package/src/adapters/twitter/thread.test.ts +43 -0
- package/src/adapters/twitter/thread.ts +44 -2
- package/src/adapters/twitter/trending.ts +14 -95
- package/src/adapters/ukipo/info.yaml +43 -0
- package/src/adapters/uspto/get.yaml +67 -0
- package/src/adapters/uspto/legal-status.yaml +58 -0
- package/src/adapters/uspto/search.yaml +88 -0
- package/src/adapters/vndb/web.test.ts +86 -0
- package/src/adapters/vndb/web.ts +393 -0
- package/src/adapters/wipo-patentscope/info.yaml +43 -0
- package/src/adapters/xiaohongshu/browser-state.ts +95 -0
- package/src/adapters/xiaohongshu/comments.ts +29 -6
- package/src/adapters/xiaohongshu/download.ts +60 -11
- package/src/adapters/xiaohongshu/search.ts +18 -6
- package/src/adapters/xiaohongshu/trending.ts +112 -0
- package/src/adapters/yahoo/search.yaml +52 -0
- package/src/adapters/yandere/detail.yaml +61 -0
- package/src/adapters/yandere/download.yaml +56 -0
- package/src/adapters/yandere/search.yaml +67 -0
- package/src/adapters/yandere/tags.yaml +41 -0
- package/src/adapters/youtube/comments-microformat.test.ts +35 -0
- package/src/adapters/youtube/comments-tree.test.ts +74 -0
- package/src/adapters/youtube/comments.ts +166 -12
- package/src/adapters/youtube/subtitles.ts +44 -0
- package/src/adapters/yt-dlp/subtitles.ts +43 -0
- package/src/adapters/zhihu/answer-detail.test.ts +83 -0
- package/src/adapters/zhihu/answer-detail.ts +275 -0
- package/src/adapters/zhihu/comment-tree.test.ts +57 -0
- package/src/adapters/zhihu/comment.ts +186 -0
- package/src/adapters/zhihu/recommend.test.ts +65 -0
- package/src/adapters/zhihu/recommend.ts +207 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner Social video text extraction.
|
|
3
|
+
* @does Builds and runs yt-dlp subtitle extraction with optional browser-cookie reuse.
|
|
4
|
+
* @needs `yt-dlp` on PATH and a caller-provided output template.
|
|
5
|
+
* @feeds Cross-platform subtitle adapters and video download workflows.
|
|
6
|
+
* @breaks Upstream yt-dlp extractor changes can alter generated subtitle filenames.
|
|
7
|
+
*/
|
|
8
|
+
export interface YtdlpSubtitleArgsOptions {
|
|
9
|
+
url: string;
|
|
10
|
+
outputTemplate: string;
|
|
11
|
+
languages?: string[];
|
|
12
|
+
cookiesFromBrowser?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ExtractVideoSubtitlesOptions extends YtdlpSubtitleArgsOptions {
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ExtractedSubtitleFile {
|
|
18
|
+
path: string;
|
|
19
|
+
language: string;
|
|
20
|
+
text: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function parseSubtitleLanguages(raw: unknown): string[];
|
|
23
|
+
export declare function buildYtdlpSubtitleArgs(options: YtdlpSubtitleArgsOptions): string[];
|
|
24
|
+
export declare function parseVttPlainText(vtt: string): string;
|
|
25
|
+
export declare function runVideoSubtitleExtraction(kwargs: Record<string, unknown>): Promise<ExtractedSubtitleFile[]>;
|
|
26
|
+
export declare function extractVideoSubtitles(options: ExtractVideoSubtitlesOptions): Promise<ExtractedSubtitleFile[]>;
|
|
27
|
+
//# sourceMappingURL=video-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-text.d.ts","sourceRoot":"","sources":["../../src/social/video-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAU7D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,wBAAwB,GAChC,MAAM,EAAE,CA8BV;AAuBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCrD;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAWlC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAyBlC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner Social video text extraction.
|
|
3
|
+
* @does Builds and runs yt-dlp subtitle extraction with optional browser-cookie reuse.
|
|
4
|
+
* @needs `yt-dlp` on PATH and a caller-provided output template.
|
|
5
|
+
* @feeds Cross-platform subtitle adapters and video download workflows.
|
|
6
|
+
* @breaks Upstream yt-dlp extractor changes can alter generated subtitle filenames.
|
|
7
|
+
*/
|
|
8
|
+
import { execFile } from "node:child_process";
|
|
9
|
+
import { existsSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, } from "node:fs";
|
|
10
|
+
import { tmpdir } from "node:os";
|
|
11
|
+
import { dirname, join } from "node:path";
|
|
12
|
+
import { promisify } from "node:util";
|
|
13
|
+
const execFileAsync = promisify(execFile);
|
|
14
|
+
export function parseSubtitleLanguages(raw) {
|
|
15
|
+
const value = String(raw ?? "zh-Hans,zh,en");
|
|
16
|
+
const languages = value
|
|
17
|
+
.split(",")
|
|
18
|
+
.map((item) => item.trim())
|
|
19
|
+
.filter(Boolean);
|
|
20
|
+
if (languages.length === 0) {
|
|
21
|
+
throw new Error("at least one subtitle language is required");
|
|
22
|
+
}
|
|
23
|
+
return languages;
|
|
24
|
+
}
|
|
25
|
+
export function buildYtdlpSubtitleArgs(options) {
|
|
26
|
+
const url = options.url.trim();
|
|
27
|
+
if (!url)
|
|
28
|
+
throw new Error("url is required");
|
|
29
|
+
const outputTemplate = options.outputTemplate.trim();
|
|
30
|
+
if (!outputTemplate)
|
|
31
|
+
throw new Error("outputTemplate is required");
|
|
32
|
+
const languages = options.languages
|
|
33
|
+
? options.languages.map((item) => item.trim()).filter(Boolean)
|
|
34
|
+
: parseSubtitleLanguages(undefined);
|
|
35
|
+
if (languages.length === 0) {
|
|
36
|
+
throw new Error("at least one subtitle language is required");
|
|
37
|
+
}
|
|
38
|
+
const args = [
|
|
39
|
+
"--skip-download",
|
|
40
|
+
"--write-sub",
|
|
41
|
+
"--write-auto-sub",
|
|
42
|
+
"--sub-lang",
|
|
43
|
+
languages.join(","),
|
|
44
|
+
"--sub-format",
|
|
45
|
+
"vtt/best",
|
|
46
|
+
"--convert-subs",
|
|
47
|
+
"vtt",
|
|
48
|
+
];
|
|
49
|
+
if (options.cookiesFromBrowser) {
|
|
50
|
+
args.push("--cookies-from-browser", options.cookiesFromBrowser);
|
|
51
|
+
}
|
|
52
|
+
args.push("-o", outputTemplate, url);
|
|
53
|
+
return args;
|
|
54
|
+
}
|
|
55
|
+
function languageFromSubtitlePath(path) {
|
|
56
|
+
const parts = path.split(".");
|
|
57
|
+
return parts.length >= 3 ? parts[parts.length - 2] : "";
|
|
58
|
+
}
|
|
59
|
+
function decodeHtmlEntities(text) {
|
|
60
|
+
return text
|
|
61
|
+
.replace(/&#x([0-9a-f]+);/gi, (_match, code) => String.fromCodePoint(Number.parseInt(code, 16)))
|
|
62
|
+
.replace(/&#(\d+);/g, (_match, code) => String.fromCodePoint(Number.parseInt(code, 10)))
|
|
63
|
+
.replace(/"/g, '"')
|
|
64
|
+
.replace(/'/g, "'")
|
|
65
|
+
.replace(/'/g, "'")
|
|
66
|
+
.replace(/</g, "<")
|
|
67
|
+
.replace(/>/g, ">")
|
|
68
|
+
.replace(/&/g, "&");
|
|
69
|
+
}
|
|
70
|
+
export function parseVttPlainText(vtt) {
|
|
71
|
+
const output = [];
|
|
72
|
+
const lines = vtt.replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n");
|
|
73
|
+
let skipBlock = false;
|
|
74
|
+
let seenCueTiming = false;
|
|
75
|
+
for (let index = 0; index < lines.length; index++) {
|
|
76
|
+
const line = lines[index]?.trim() ?? "";
|
|
77
|
+
if (!line) {
|
|
78
|
+
skipBlock = false;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (skipBlock)
|
|
82
|
+
continue;
|
|
83
|
+
if (line.startsWith("WEBVTT"))
|
|
84
|
+
continue;
|
|
85
|
+
if (line.includes("-->")) {
|
|
86
|
+
seenCueTiming = true;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (/^(NOTE|STYLE|REGION)(\s|$)/.test(line)) {
|
|
90
|
+
skipBlock = true;
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if ((lines[index + 1] ?? "").includes("-->"))
|
|
94
|
+
continue;
|
|
95
|
+
if (!seenCueTiming)
|
|
96
|
+
continue;
|
|
97
|
+
const cleaned = decodeHtmlEntities(line.replace(/<[^>]*>/g, ""))
|
|
98
|
+
.replace(/\s+/g, " ")
|
|
99
|
+
.trim();
|
|
100
|
+
if (!cleaned || output[output.length - 1] === cleaned)
|
|
101
|
+
continue;
|
|
102
|
+
output.push(cleaned);
|
|
103
|
+
}
|
|
104
|
+
return output.join("\n");
|
|
105
|
+
}
|
|
106
|
+
export async function runVideoSubtitleExtraction(kwargs) {
|
|
107
|
+
const url = String(kwargs.url ?? "");
|
|
108
|
+
const dir = mkdtempSync(join(tmpdir(), "unicli-subtitles-"));
|
|
109
|
+
return extractVideoSubtitles({
|
|
110
|
+
url,
|
|
111
|
+
outputTemplate: join(dir, "%(id)s.%(ext)s"),
|
|
112
|
+
languages: parseSubtitleLanguages(kwargs.languages),
|
|
113
|
+
cookiesFromBrowser: kwargs["cookies-from-browser"]
|
|
114
|
+
? String(kwargs["cookies-from-browser"])
|
|
115
|
+
: undefined,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export async function extractVideoSubtitles(options) {
|
|
119
|
+
const dir = dirname(options.outputTemplate);
|
|
120
|
+
mkdirSync(dir, { recursive: true });
|
|
121
|
+
const before = new Set(existsSync(dir) ? readdirSync(dir) : []);
|
|
122
|
+
const args = buildYtdlpSubtitleArgs(options);
|
|
123
|
+
await execFileAsync("yt-dlp", args, {
|
|
124
|
+
timeout: options.timeoutMs ?? 5 * 60 * 1000,
|
|
125
|
+
});
|
|
126
|
+
const after = readdirSync(dir);
|
|
127
|
+
const files = after
|
|
128
|
+
.filter((name) => !before.has(name) && name.endsWith(".vtt"))
|
|
129
|
+
.sort()
|
|
130
|
+
.map((name) => ({
|
|
131
|
+
path: join(dir, name),
|
|
132
|
+
language: languageFromSubtitlePath(name),
|
|
133
|
+
text: parseVttPlainText(readFileSync(join(dir, name), "utf-8")),
|
|
134
|
+
}));
|
|
135
|
+
if (files.length === 0) {
|
|
136
|
+
throw new Error("yt-dlp did not produce any VTT subtitle files");
|
|
137
|
+
}
|
|
138
|
+
return files;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=video-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-text.js","sourceRoot":"","sources":["../../src/social/video-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::types::patent
|
|
3
|
+
* @does Public schema for the patent-search vertical — normalized record shape produced by every patent adapter and consumed by the `unicli patent` meta-command.
|
|
4
|
+
* @needs none (pure type module)
|
|
5
|
+
* @feeds src/engine/normalizer/patent-envelope.ts, src/adapters/{uspto,epo,jpo,kipris,inpi-fr,dpma,ipaustralia,lens,google-patents-bq,pqai,patsnap,cnipa,espacenet,cipo,inpi-br,fips}/*, src/commands/patent.ts, src/index.ts (public re-export)
|
|
6
|
+
* @breaks no runtime — type-only module; downstream callers fail type-check on shape drift
|
|
7
|
+
* @invariants publication_number conforms to ST.16 (CC + serial + kind); dates are ISO-8601 YYYY-MM-DD; source_adapter equals the adapter site name
|
|
8
|
+
* @side-effects none
|
|
9
|
+
* @perf n/a
|
|
10
|
+
* @concurrency n/a
|
|
11
|
+
* @test tests/unit/types/patent.test.ts
|
|
12
|
+
* @stability stable — public surface; semver-tracked
|
|
13
|
+
* @since 2026-05-18
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Verification status surfaced in adapter file headers + `unicli patent doctor`.
|
|
17
|
+
*
|
|
18
|
+
* verified — adapter exercised against the live endpoint in CI
|
|
19
|
+
* blocked-by-key — adapter compiles + lints, but needs an env-var key
|
|
20
|
+
* (free-tier registration) before live verification
|
|
21
|
+
* blocked-by-subscription — adapter compiles, but the upstream API requires
|
|
22
|
+
* a paid subscription we do not maintain
|
|
23
|
+
* waiting-for-api — upstream announced an API in their roadmap but it
|
|
24
|
+
* has not shipped; adapter is a registry placeholder
|
|
25
|
+
* browser-only — no upstream API; adapter drives a real browser via
|
|
26
|
+
* the MCP browser transport
|
|
27
|
+
*/
|
|
28
|
+
export type PatentVerificationStatus = "verified" | "blocked-by-key" | "blocked-by-subscription" | "waiting-for-api" | "browser-only";
|
|
29
|
+
/**
|
|
30
|
+
* Standard 8 commands a patent adapter may expose. Adapters report their
|
|
31
|
+
* supported subset in their `capabilities[]` field; `unicli patent` meta-command
|
|
32
|
+
* routes by capability.
|
|
33
|
+
*/
|
|
34
|
+
export type PatentCommand = "search" | "get" | "family" | "citations" | "legal-status" | "fulltext" | "pdf" | "prior-art";
|
|
35
|
+
/**
|
|
36
|
+
* Authorship — a single inventor or applicant entry.
|
|
37
|
+
*
|
|
38
|
+
* `country` is an ISO-3166-1 alpha-2 code when known. `affiliation` is the
|
|
39
|
+
* employer or institution the inventor was associated with at filing time, not
|
|
40
|
+
* the current employer.
|
|
41
|
+
*/
|
|
42
|
+
export interface PatentParty {
|
|
43
|
+
name: string;
|
|
44
|
+
country?: string;
|
|
45
|
+
affiliation?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A patent classification code. `scheme` is one of `cpc`, `ipc`, `uspc`, `fi`,
|
|
49
|
+
* `f-term`, `locarno`, or a vendor-specific scheme; `code` is the symbol as the
|
|
50
|
+
* upstream office returns it (no normalization beyond uppercasing).
|
|
51
|
+
*/
|
|
52
|
+
export interface PatentClassification {
|
|
53
|
+
scheme: string;
|
|
54
|
+
code: string;
|
|
55
|
+
position?: "main" | "further" | "supplemental";
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Cross-jurisdiction sibling. `relationship` matches the DOCDB / INPADOC
|
|
59
|
+
* vocabulary (simple_family | extended_family | continuation | divisional |
|
|
60
|
+
* reissue | reexamination); unknown values are passed through.
|
|
61
|
+
*/
|
|
62
|
+
export interface PatentFamilyMember {
|
|
63
|
+
publication_number: string;
|
|
64
|
+
jurisdiction: string;
|
|
65
|
+
relationship: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The normalized record shape every patent adapter produces.
|
|
69
|
+
*
|
|
70
|
+
* Required fields are always present; optional fields are present when the
|
|
71
|
+
* upstream API supplies them. Adapters must not synthesize values they cannot
|
|
72
|
+
* verify — leave the field undefined and emit a structured envelope `code` if
|
|
73
|
+
* the gap is unexpected.
|
|
74
|
+
*
|
|
75
|
+
* `raw` preserves the source payload (a slice, when the upstream is verbose)
|
|
76
|
+
* so audit and self-repair flows can inspect the upstream truth.
|
|
77
|
+
*/
|
|
78
|
+
export interface PatentRecord {
|
|
79
|
+
publication_number: string;
|
|
80
|
+
application_number?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Two-character ST.16 kind code (A1, A2, B1, B2, U1, …) parsed off the
|
|
83
|
+
* publication number. Adapters may set this explicitly; otherwise consumers
|
|
84
|
+
* can derive it via `extractKindCode(publication_number)`.
|
|
85
|
+
*/
|
|
86
|
+
kind_code?: string;
|
|
87
|
+
title?: string;
|
|
88
|
+
abstract?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Short matched-context snippet for search results. Distinct from the full
|
|
91
|
+
* abstract: search engines often return a windowed extract around the
|
|
92
|
+
* matched terms; consumers display this in result lists and fetch the full
|
|
93
|
+
* abstract on demand.
|
|
94
|
+
*/
|
|
95
|
+
snippet?: string;
|
|
96
|
+
inventors?: PatentParty[];
|
|
97
|
+
assignees?: PatentParty[];
|
|
98
|
+
filing_date?: string;
|
|
99
|
+
publication_date?: string;
|
|
100
|
+
grant_date?: string;
|
|
101
|
+
priority_date?: string;
|
|
102
|
+
classifications?: PatentClassification[];
|
|
103
|
+
family_id?: string;
|
|
104
|
+
family_members?: PatentFamilyMember[];
|
|
105
|
+
legal_status?: string;
|
|
106
|
+
/** Number of claims (independent + dependent) when the upstream exposes it. */
|
|
107
|
+
claims_count?: number;
|
|
108
|
+
/** Forward-citation count — patents that cite this record. */
|
|
109
|
+
cited_by_count?: number;
|
|
110
|
+
/** Backward-citation count — references this record cites. */
|
|
111
|
+
cites_count?: number;
|
|
112
|
+
/** Direct PDF URL when the upstream supplies one (USPTO Image File Wrapper, Lens.org, Patsnap, …). */
|
|
113
|
+
pdf_url?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Float in [0, 1] populated by semantic / text-rank engines (PQAI,
|
|
116
|
+
* Lens.org `_score`). Absent when the upstream does not rank results.
|
|
117
|
+
*/
|
|
118
|
+
relevance_score?: number;
|
|
119
|
+
source_adapter: string;
|
|
120
|
+
source_url?: string;
|
|
121
|
+
retrieved_at: string;
|
|
122
|
+
raw?: unknown;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Shape every patent adapter accepts on its `search` command. Adapter-level
|
|
126
|
+
* YAML/TS bodies translate this DSL to the site-specific search syntax (USPTO
|
|
127
|
+
* PatentSearch grammar, EPO CQL, JPO patent-progress query, …).
|
|
128
|
+
*
|
|
129
|
+
* All fields are AND-combined; arrays inside a single field are OR-combined.
|
|
130
|
+
* Adapters return `PATENT_UNSUPPORTED_QUERY` envelope code for fields the
|
|
131
|
+
* upstream cannot express.
|
|
132
|
+
*/
|
|
133
|
+
export interface PatentSearchQuery {
|
|
134
|
+
text?: string;
|
|
135
|
+
inventors?: string[];
|
|
136
|
+
assignees?: string[];
|
|
137
|
+
cpc?: string[];
|
|
138
|
+
ipc?: string[];
|
|
139
|
+
date_from?: string;
|
|
140
|
+
date_to?: string;
|
|
141
|
+
jurisdictions?: string[];
|
|
142
|
+
limit?: number;
|
|
143
|
+
offset?: number;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Structured error envelope every patent adapter emits to stderr on failure.
|
|
147
|
+
* Mirrors the Uni-CLI standard envelope shape (`code` / `adapter_path` / …)
|
|
148
|
+
* with a fixed taxonomy of patent-specific failure modes.
|
|
149
|
+
*/
|
|
150
|
+
export type PatentErrorCode = "PATENT_AUTH_REQUIRED" | "PATENT_RATE_LIMIT" | "PATENT_NOT_FOUND" | "PATENT_INVALID_NUMBER" | "PATENT_REGION_BLOCKED" | "PATENT_API_DEPRECATED" | "PATENT_FAMILY_BROKER_DOWN" | "PATENT_BROWSER_CAPTCHA" | "PATENT_UNSUPPORTED_QUERY" | "PATENT_SCHEMA_DRIFT";
|
|
151
|
+
export interface PatentEnvelope {
|
|
152
|
+
code: PatentErrorCode;
|
|
153
|
+
adapter_path: string;
|
|
154
|
+
step: string;
|
|
155
|
+
suggestion: string;
|
|
156
|
+
retryable: boolean;
|
|
157
|
+
alternatives: string[];
|
|
158
|
+
exit_code: number;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=patent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patent.d.ts","sourceRoot":"","sources":["../../src/types/patent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::types::patent
|
|
3
|
+
* @does Public schema for the patent-search vertical — normalized record shape produced by every patent adapter and consumed by the `unicli patent` meta-command.
|
|
4
|
+
* @needs none (pure type module)
|
|
5
|
+
* @feeds src/engine/normalizer/patent-envelope.ts, src/adapters/{uspto,epo,jpo,kipris,inpi-fr,dpma,ipaustralia,lens,google-patents-bq,pqai,patsnap,cnipa,espacenet,cipo,inpi-br,fips}/*, src/commands/patent.ts, src/index.ts (public re-export)
|
|
6
|
+
* @breaks no runtime — type-only module; downstream callers fail type-check on shape drift
|
|
7
|
+
* @invariants publication_number conforms to ST.16 (CC + serial + kind); dates are ISO-8601 YYYY-MM-DD; source_adapter equals the adapter site name
|
|
8
|
+
* @side-effects none
|
|
9
|
+
* @perf n/a
|
|
10
|
+
* @concurrency n/a
|
|
11
|
+
* @test tests/unit/types/patent.test.ts
|
|
12
|
+
* @stability stable — public surface; semver-tracked
|
|
13
|
+
* @since 2026-05-18
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=patent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patent.js","sourceRoot":"","sources":["../../src/types/patent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare enum Strategy {
|
|
|
23
23
|
UI = "ui"
|
|
24
24
|
}
|
|
25
25
|
export type TargetSurface = "web" | "desktop" | "system" | "mobile";
|
|
26
|
+
export type BrowserSessionPreference = "auto" | "user" | "cdp";
|
|
27
|
+
export type SocialCapability = "read" | "search" | "trends" | "comments" | "comment_replies" | "write_comment" | "write_post" | "reactions" | "shares" | "saves" | "messages" | "lists" | "moderation" | "media" | "download" | "subtitles" | "author" | "user_content" | "relations" | "notifications" | "analytics";
|
|
26
28
|
export interface AdapterArg {
|
|
27
29
|
name: string;
|
|
28
30
|
type?: "str" | "int" | "float" | "bool";
|
|
@@ -95,6 +97,14 @@ export interface AdapterCommand {
|
|
|
95
97
|
* future runtime dispatcher for capability-aware routing.
|
|
96
98
|
*/
|
|
97
99
|
minimum_capability?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Schema-v2 capability tokens this command can execute. Carries pipeline
|
|
102
|
+
* step names (`http.fetch`, `cdp-browser.evaluate`, …) and vertical
|
|
103
|
+
* capability tags (`patent.search`, `patent.family`, …). The vertical
|
|
104
|
+
* tags allow meta-commands to discover relevant adapters via the registry
|
|
105
|
+
* without each meta-command hard-coding a site list.
|
|
106
|
+
*/
|
|
107
|
+
capabilities?: string[];
|
|
98
108
|
/**
|
|
99
109
|
* When true, the command accepts `--cursor <next_cursor>` for pagination
|
|
100
110
|
* and surfaces `meta.pagination.next_cursor` in its envelope. The kernel
|
|
@@ -105,6 +115,7 @@ export interface AdapterCommand {
|
|
|
105
115
|
adapterArgs?: AdapterArg[];
|
|
106
116
|
strategy?: Strategy;
|
|
107
117
|
browser?: boolean;
|
|
118
|
+
browserSession?: BrowserSessionPreference;
|
|
108
119
|
domain?: string;
|
|
109
120
|
base?: string;
|
|
110
121
|
func?: (page: IPage, kwargs: Record<string, unknown>) => Promise<unknown>;
|
|
@@ -120,6 +131,7 @@ export interface AdapterCommand {
|
|
|
120
131
|
execArgs?: string[];
|
|
121
132
|
output?: string | OutputSchema;
|
|
122
133
|
columns?: string[];
|
|
134
|
+
socialCapabilities?: SocialCapability[];
|
|
123
135
|
defaultFormat?: "table" | "json" | "yaml" | "csv" | "md";
|
|
124
136
|
stream?: boolean;
|
|
125
137
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,EAAE,OAAO;CACV;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,qBAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;IACvB,qBAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AA2UD,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,EAAE;IAChB,mBAAmB,EAAE,EAAE;IACvB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;CACR,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenalexa/unicli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Agent execution substrate for web, apps, local tools, and system capabilities. Self-repairing CLI catalog
|
|
3
|
+
"version": "0.221.0",
|
|
4
|
+
"description": "Agent execution substrate for web, apps, local tools, and system capabilities. Self-repairing CLI catalog with stdio + Streamable HTTP MCP server.",
|
|
5
5
|
"packageManager": "npm@11.14.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/main.js",
|
|
@@ -40,6 +40,10 @@
|
|
|
40
40
|
"types": "./dist/main.d.ts",
|
|
41
41
|
"import": "./dist/main.js"
|
|
42
42
|
},
|
|
43
|
+
"./index": {
|
|
44
|
+
"types": "./dist/index.d.ts",
|
|
45
|
+
"import": "./dist/index.js"
|
|
46
|
+
},
|
|
43
47
|
"./registry": {
|
|
44
48
|
"types": "./dist/registry.d.ts",
|
|
45
49
|
"import": "./dist/registry.js"
|
|
@@ -172,8 +176,9 @@
|
|
|
172
176
|
"lint:schema-v2": "tsx scripts/lint-schema-v2.ts",
|
|
173
177
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
174
178
|
"validate:agents-size": "tsx scripts/validate-agents-size.ts",
|
|
175
|
-
"
|
|
176
|
-
"verify
|
|
179
|
+
"boundary:check": "tsx scripts/boundary-guard.ts",
|
|
180
|
+
"verify": "npm run format:check && npm run typecheck && npm run lint && npm run lint:context && npm run build:manifest && npm run lint:adapters && npm run lint:schema-v2 && npm run build && npm run test && npm run test:adapter && npm run test:perf && npm run coverage:compute-snapshot && npm run coverage:adapter-test && npm run validate:agents-size && npm run stats:check && npm run conformance && npm run check:exports && npm run verify:changesets && npm run boundary:check",
|
|
181
|
+
"verify:full": "npm run verify && npm run adapter:health",
|
|
177
182
|
"verify:clean": "npm run clean && npm run verify",
|
|
178
183
|
"docs:prepare": "tsx scripts/generate-catalog.ts && tsx scripts/generate-docs-agent-assets.ts",
|
|
179
184
|
"docs:dev": "npm run docs:prepare && vitepress dev docs",
|
|
@@ -193,7 +198,6 @@
|
|
|
193
198
|
"bench:quick": "tsx bench/agent/report.ts",
|
|
194
199
|
"bench:agent": "tsx bench/agent/sdk-runner.ts",
|
|
195
200
|
"bench:gate": "node scripts/bench/check-ship-gate.js",
|
|
196
|
-
"refs:verify": "tsx scripts/verify-refs.ts",
|
|
197
201
|
"sync:ref": "bash scripts/sync-ref.sh"
|
|
198
202
|
},
|
|
199
203
|
"keywords": [
|
|
@@ -227,6 +231,7 @@
|
|
|
227
231
|
"chalk": "^5.6.2",
|
|
228
232
|
"cli-table3": "^0.6.5",
|
|
229
233
|
"commander": "^14.0.3",
|
|
234
|
+
"fast-xml-parser": "^5.8.0",
|
|
230
235
|
"js-yaml": "^4.1.1",
|
|
231
236
|
"jsonpath-plus": "^10.4.0",
|
|
232
237
|
"turndown": "^7.2.4",
|
package/server.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
|
|
3
3
|
"name": "io.github.olo-dot-io/Uni-CLI",
|
|
4
|
-
"description": "Self-repairing CLI catalog that exposes
|
|
5
|
-
"version": "0.
|
|
4
|
+
"description": "Self-repairing CLI catalog that exposes 282 websites, desktop apps, and external CLIs as one MCP server. 949 declarative YAML adapters and 1686 commands; structured error envelopes let agents fix failing adapters at runtime and retry.",
|
|
5
|
+
"version": "0.221.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/olo-dot-io/Uni-CLI",
|
|
8
8
|
"source": "github"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@zenalexa/unicli",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.221.0",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|
package/skills/unicli/SKILL.md
CHANGED
|
@@ -11,7 +11,7 @@ description: >
|
|
|
11
11
|
major platform; run desktop workflows or system tasks; or when the user says
|
|
12
12
|
"unicli", "scrape", "fetch from", "get trending", "check [site]", "find on
|
|
13
13
|
[platform]", "获取", "查询", "抓取".
|
|
14
|
-
version: 0.
|
|
14
|
+
version: 0.221.0
|
|
15
15
|
category: core
|
|
16
16
|
depends-on:
|
|
17
17
|
- talk-normal
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
newlines, or inline JSON — shell-quoted invocations hit TC0 circuit
|
|
7
7
|
limits and drop to <50% success above ICS=4. Also covers --describe
|
|
8
8
|
introspection and next_actions-driven navigation.
|
|
9
|
-
version: 0.
|
|
9
|
+
version: 0.221.0
|
|
10
10
|
depends-on:
|
|
11
11
|
- talk-normal
|
|
12
12
|
triggers:
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Use Uni-CLI to interact with 237 websites, desktop apps, and system tools.
|
|
5
5
|
Trigger when: user asks to check a website, fetch data, control a desktop app,
|
|
6
6
|
or interact with social media, news, finance, or AI platforms.
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.221.0
|
|
8
8
|
depends-on:
|
|
9
9
|
- talk-normal
|
|
10
10
|
triggers:
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { resolveCommand } from "../../registry.js";
|
|
3
|
+
import { mapAniListMedia, mapAniListNamed, rerankAniListNamed } from "./web.js";
|
|
4
|
+
|
|
5
|
+
describe("anilist public commands", () => {
|
|
6
|
+
it("registers anime, manga, and entity commands", () => {
|
|
7
|
+
expect(
|
|
8
|
+
Object.keys(resolveCommand("anilist", "anime")!.adapter.commands),
|
|
9
|
+
).toEqual(
|
|
10
|
+
expect.arrayContaining([
|
|
11
|
+
"anime",
|
|
12
|
+
"manga",
|
|
13
|
+
"characters",
|
|
14
|
+
"staff",
|
|
15
|
+
"studios",
|
|
16
|
+
]),
|
|
17
|
+
);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("exposes year and sort controls for recent media search", () => {
|
|
21
|
+
expect(resolveCommand("anilist", "anime")!.command.adapterArgs).toEqual(
|
|
22
|
+
expect.arrayContaining([
|
|
23
|
+
expect.objectContaining({ name: "year", type: "int" }),
|
|
24
|
+
expect.objectContaining({
|
|
25
|
+
name: "sort",
|
|
26
|
+
choices: expect.arrayContaining(["popular", "trending", "recent"]),
|
|
27
|
+
}),
|
|
28
|
+
]),
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("maps media rows", () => {
|
|
33
|
+
expect(
|
|
34
|
+
mapAniListMedia([
|
|
35
|
+
{
|
|
36
|
+
id: 102662,
|
|
37
|
+
title: { romaji: "Hanabi", native: "花火" },
|
|
38
|
+
type: "ANIME",
|
|
39
|
+
format: "MUSIC",
|
|
40
|
+
status: "FINISHED",
|
|
41
|
+
averageScore: 56,
|
|
42
|
+
popularity: 1059,
|
|
43
|
+
siteUrl: "https://anilist.co/anime/102662",
|
|
44
|
+
},
|
|
45
|
+
]),
|
|
46
|
+
).toMatchObject([
|
|
47
|
+
{
|
|
48
|
+
rank: 1,
|
|
49
|
+
id: 102662,
|
|
50
|
+
title: "Hanabi",
|
|
51
|
+
native: "花火",
|
|
52
|
+
type: "ANIME",
|
|
53
|
+
url: "https://anilist.co/anime/102662",
|
|
54
|
+
},
|
|
55
|
+
]);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("maps named rows", () => {
|
|
59
|
+
expect(
|
|
60
|
+
mapAniListNamed(
|
|
61
|
+
[
|
|
62
|
+
{
|
|
63
|
+
id: 1,
|
|
64
|
+
name: { full: "Yuzusoft", native: "" },
|
|
65
|
+
favourites: 9,
|
|
66
|
+
siteUrl: "https://anilist.co/studio/1",
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
"studios",
|
|
70
|
+
),
|
|
71
|
+
).toMatchObject([{ rank: 1, id: 1, kind: "studios", name: "Yuzusoft" }]);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("reranks native character matches ahead of popularity-only hits", () => {
|
|
75
|
+
const rows = rerankAniListNamed(
|
|
76
|
+
[
|
|
77
|
+
{
|
|
78
|
+
id: 1,
|
|
79
|
+
name: { full: "Levi", native: "リヴァイ" },
|
|
80
|
+
favourites: 40000,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 2,
|
|
84
|
+
name: { full: "Hanabi Yasuraoka", native: "安楽岡花火" },
|
|
85
|
+
favourites: 1500,
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
"花火",
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
expect((rows[0] as { id: number }).id).toBe(2);
|
|
92
|
+
});
|
|
93
|
+
});
|