@zenalexa/unicli 0.215.1 → 0.216.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +15 -15
- package/README.md +233 -389
- package/README.zh-CN.md +235 -362
- package/dist/adapters/1688/assets.d.ts +2 -0
- package/dist/adapters/1688/assets.d.ts.map +1 -0
- package/dist/adapters/1688/assets.js +102 -0
- package/dist/adapters/1688/assets.js.map +1 -0
- package/dist/adapters/51job/jobs.d.ts +2 -0
- package/dist/adapters/51job/jobs.d.ts.map +1 -0
- package/dist/adapters/51job/jobs.js +292 -0
- package/dist/adapters/51job/jobs.js.map +1 -0
- package/dist/adapters/_shared/browser-tools.d.ts +10 -0
- package/dist/adapters/_shared/browser-tools.d.ts.map +1 -0
- package/dist/adapters/_shared/browser-tools.js +42 -0
- package/dist/adapters/_shared/browser-tools.js.map +1 -0
- package/dist/adapters/antigravity/extra.d.ts +2 -0
- package/dist/adapters/antigravity/extra.d.ts.map +1 -0
- package/dist/adapters/antigravity/extra.js +52 -0
- package/dist/adapters/antigravity/extra.js.map +1 -0
- package/dist/adapters/baidu-scholar/search.d.ts +2 -0
- package/dist/adapters/baidu-scholar/search.d.ts.map +1 -0
- package/dist/adapters/baidu-scholar/search.js +34 -0
- package/dist/adapters/baidu-scholar/search.js.map +1 -0
- package/dist/adapters/bilibili/compat.d.ts +2 -0
- package/dist/adapters/bilibili/compat.d.ts.map +1 -0
- package/dist/adapters/bilibili/compat.js +114 -0
- package/dist/adapters/bilibili/compat.js.map +1 -0
- package/dist/adapters/chatgpt/image.d.ts +2 -0
- package/dist/adapters/chatgpt/image.d.ts.map +1 -0
- package/dist/adapters/chatgpt/image.js +81 -0
- package/dist/adapters/chatgpt/image.js.map +1 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.d.ts +2 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.d.ts.map +1 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.js +9 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.js.map +1 -0
- package/dist/adapters/chatwise/extra.d.ts +2 -0
- package/dist/adapters/chatwise/extra.d.ts.map +1 -0
- package/dist/adapters/chatwise/extra.js +35 -0
- package/dist/adapters/chatwise/extra.js.map +1 -0
- package/dist/adapters/codex/extra.d.ts +2 -0
- package/dist/adapters/codex/extra.d.ts.map +1 -0
- package/dist/adapters/codex/extra.js +35 -0
- package/dist/adapters/codex/extra.js.map +1 -0
- package/dist/adapters/deepseek/web.d.ts +2 -0
- package/dist/adapters/deepseek/web.d.ts.map +1 -0
- package/dist/adapters/deepseek/web.js +187 -0
- package/dist/adapters/deepseek/web.js.map +1 -0
- package/dist/adapters/doubao/web.d.ts +2 -0
- package/dist/adapters/doubao/web.d.ts.map +1 -0
- package/dist/adapters/doubao/web.js +138 -0
- package/dist/adapters/doubao/web.js.map +1 -0
- package/dist/adapters/eastmoney/market-data.d.ts +2 -0
- package/dist/adapters/eastmoney/market-data.d.ts.map +1 -0
- package/dist/adapters/eastmoney/market-data.js +753 -0
- package/dist/adapters/eastmoney/market-data.js.map +1 -0
- package/dist/adapters/gitee/user.d.ts +2 -0
- package/dist/adapters/gitee/user.d.ts.map +1 -0
- package/dist/adapters/gitee/user.js +54 -0
- package/dist/adapters/gitee/user.js.map +1 -0
- package/dist/adapters/google-scholar/cite.d.ts +2 -0
- package/dist/adapters/google-scholar/cite.d.ts.map +1 -0
- package/dist/adapters/google-scholar/cite.js +82 -0
- package/dist/adapters/google-scholar/cite.js.map +1 -0
- package/dist/adapters/google-scholar/profile.d.ts +2 -0
- package/dist/adapters/google-scholar/profile.d.ts.map +1 -0
- package/dist/adapters/google-scholar/profile.js +80 -0
- package/dist/adapters/google-scholar/profile.js.map +1 -0
- package/dist/adapters/google-scholar/search.d.ts +2 -0
- package/dist/adapters/google-scholar/search.d.ts.map +1 -0
- package/dist/adapters/google-scholar/search.js +54 -0
- package/dist/adapters/google-scholar/search.js.map +1 -0
- package/dist/adapters/gov-law/laws.d.ts +2 -0
- package/dist/adapters/gov-law/laws.d.ts.map +1 -0
- package/dist/adapters/gov-law/laws.js +58 -0
- package/dist/adapters/gov-law/laws.js.map +1 -0
- package/dist/adapters/gov-policy/policy.d.ts +2 -0
- package/dist/adapters/gov-policy/policy.d.ts.map +1 -0
- package/dist/adapters/gov-policy/policy.js +58 -0
- package/dist/adapters/gov-policy/policy.js.map +1 -0
- package/dist/adapters/jd/commerce.d.ts +2 -0
- package/dist/adapters/jd/commerce.d.ts.map +1 -0
- package/dist/adapters/jd/commerce.js +133 -0
- package/dist/adapters/jd/commerce.js.map +1 -0
- package/dist/adapters/jianyu/detail.d.ts +2 -0
- package/dist/adapters/jianyu/detail.d.ts.map +1 -0
- package/dist/adapters/jianyu/detail.js +27 -0
- package/dist/adapters/jianyu/detail.js.map +1 -0
- package/dist/adapters/jimeng/workspace.d.ts +2 -0
- package/dist/adapters/jimeng/workspace.d.ts.map +1 -0
- package/dist/adapters/jimeng/workspace.js +49 -0
- package/dist/adapters/jimeng/workspace.js.map +1 -0
- package/dist/adapters/ke/rent-transaction.d.ts +2 -0
- package/dist/adapters/ke/rent-transaction.d.ts.map +1 -0
- package/dist/adapters/ke/rent-transaction.js +63 -0
- package/dist/adapters/ke/rent-transaction.js.map +1 -0
- package/dist/adapters/linux-do/search.d.ts +2 -0
- package/dist/adapters/linux-do/search.d.ts.map +1 -0
- package/dist/adapters/linux-do/search.js +75 -0
- package/dist/adapters/linux-do/search.js.map +1 -0
- package/dist/adapters/linux-do/topic-content.d.ts +2 -0
- package/dist/adapters/linux-do/topic-content.d.ts.map +1 -0
- package/dist/adapters/linux-do/topic-content.js +32 -0
- package/dist/adapters/linux-do/topic-content.js.map +1 -0
- package/dist/adapters/maimai/talents.d.ts +2 -0
- package/dist/adapters/maimai/talents.d.ts.map +1 -0
- package/dist/adapters/maimai/talents.js +64 -0
- package/dist/adapters/maimai/talents.js.map +1 -0
- package/dist/adapters/mubu/docs.d.ts +2 -0
- package/dist/adapters/mubu/docs.d.ts.map +1 -0
- package/dist/adapters/mubu/docs.js +96 -0
- package/dist/adapters/mubu/docs.js.map +1 -0
- package/dist/adapters/nowcoder/nowcoder.d.ts +2 -0
- package/dist/adapters/nowcoder/nowcoder.d.ts.map +1 -0
- package/dist/adapters/nowcoder/nowcoder.js +480 -0
- package/dist/adapters/nowcoder/nowcoder.js.map +1 -0
- package/dist/adapters/powerchina/search.d.ts +2 -0
- package/dist/adapters/powerchina/search.d.ts.map +1 -0
- package/dist/adapters/powerchina/search.js +41 -0
- package/dist/adapters/powerchina/search.js.map +1 -0
- package/dist/adapters/quark/actions.d.ts +2 -0
- package/dist/adapters/quark/actions.d.ts.map +1 -0
- package/dist/adapters/quark/actions.js +151 -0
- package/dist/adapters/quark/actions.js.map +1 -0
- package/dist/adapters/reddit/browser-utils.d.ts +7 -0
- package/dist/adapters/reddit/browser-utils.d.ts.map +1 -0
- package/dist/adapters/reddit/browser-utils.js +68 -0
- package/dist/adapters/reddit/browser-utils.js.map +1 -0
- package/dist/adapters/reddit/listings.d.ts +2 -0
- package/dist/adapters/reddit/listings.d.ts.map +1 -0
- package/dist/adapters/reddit/listings.js +193 -0
- package/dist/adapters/reddit/listings.js.map +1 -0
- package/dist/adapters/reddit/search.d.ts +2 -0
- package/dist/adapters/reddit/search.d.ts.map +1 -0
- package/dist/adapters/reddit/search.js +66 -0
- package/dist/adapters/reddit/search.js.map +1 -0
- package/dist/adapters/spotify/api.d.ts +2 -0
- package/dist/adapters/spotify/api.d.ts.map +1 -0
- package/dist/adapters/spotify/api.js +252 -0
- package/dist/adapters/spotify/api.js.map +1 -0
- package/dist/adapters/taobao/commerce.d.ts +2 -0
- package/dist/adapters/taobao/commerce.d.ts.map +1 -0
- package/dist/adapters/taobao/commerce.js +130 -0
- package/dist/adapters/taobao/commerce.js.map +1 -0
- package/dist/adapters/tdx/hot-rank.d.ts +2 -0
- package/dist/adapters/tdx/hot-rank.d.ts.map +1 -0
- package/dist/adapters/tdx/hot-rank.js +34 -0
- package/dist/adapters/tdx/hot-rank.js.map +1 -0
- package/dist/adapters/ths/hot-rank.d.ts +2 -0
- package/dist/adapters/ths/hot-rank.d.ts.map +1 -0
- package/dist/adapters/ths/hot-rank.js +34 -0
- package/dist/adapters/ths/hot-rank.js.map +1 -0
- package/dist/adapters/toutiao/articles.d.ts +2 -0
- package/dist/adapters/toutiao/articles.d.ts.map +1 -0
- package/dist/adapters/toutiao/articles.js +41 -0
- package/dist/adapters/toutiao/articles.js.map +1 -0
- package/dist/adapters/twitter/lists-extra.d.ts +2 -0
- package/dist/adapters/twitter/lists-extra.d.ts.map +1 -0
- package/dist/adapters/twitter/lists-extra.js +125 -0
- package/dist/adapters/twitter/lists-extra.js.map +1 -0
- package/dist/adapters/uiverse/components.d.ts +2 -0
- package/dist/adapters/uiverse/components.d.ts.map +1 -0
- package/dist/adapters/uiverse/components.js +138 -0
- package/dist/adapters/uiverse/components.js.map +1 -0
- package/dist/adapters/wanfang/search.d.ts +2 -0
- package/dist/adapters/wanfang/search.d.ts.map +1 -0
- package/dist/adapters/wanfang/search.js +34 -0
- package/dist/adapters/wanfang/search.js.map +1 -0
- package/dist/adapters/weixin/drafts.d.ts +2 -0
- package/dist/adapters/weixin/drafts.d.ts.map +1 -0
- package/dist/adapters/weixin/drafts.js +69 -0
- package/dist/adapters/weixin/drafts.js.map +1 -0
- package/dist/adapters/weread/ai-outline.d.ts +2 -0
- package/dist/adapters/weread/ai-outline.d.ts.map +1 -0
- package/dist/adapters/weread/ai-outline.js +28 -0
- package/dist/adapters/weread/ai-outline.js.map +1 -0
- package/dist/adapters/xiaoyuzhou/media.d.ts +2 -0
- package/dist/adapters/xiaoyuzhou/media.d.ts.map +1 -0
- package/dist/adapters/xiaoyuzhou/media.js +105 -0
- package/dist/adapters/xiaoyuzhou/media.js.map +1 -0
- package/dist/adapters/xueqiu/extra.d.ts +2 -0
- package/dist/adapters/xueqiu/extra.d.ts.map +1 -0
- package/dist/adapters/xueqiu/extra.js +74 -0
- package/dist/adapters/xueqiu/extra.js.map +1 -0
- package/dist/adapters/youtube/personal.d.ts +2 -0
- package/dist/adapters/youtube/personal.d.ts.map +1 -0
- package/dist/adapters/youtube/personal.js +183 -0
- package/dist/adapters/youtube/personal.js.map +1 -0
- package/dist/adapters/zhihu/actions.d.ts +2 -0
- package/dist/adapters/zhihu/actions.d.ts.map +1 -0
- package/dist/adapters/zhihu/actions.js +110 -0
- package/dist/adapters/zhihu/actions.js.map +1 -0
- package/dist/browser/adapter-authoring.d.ts.map +1 -1
- package/dist/browser/adapter-authoring.js +3 -3
- package/dist/browser/adapter-authoring.js.map +1 -1
- package/dist/browser/bridge.d.ts.map +1 -1
- package/dist/browser/bridge.js +2 -3
- package/dist/browser/bridge.js.map +1 -1
- package/dist/browser/daemon-client.d.ts.map +1 -1
- package/dist/browser/daemon-client.js +17 -5
- package/dist/browser/daemon-client.js.map +1 -1
- package/dist/browser/network-cache.js +2 -2
- package/dist/browser/network-cache.js.map +1 -1
- package/dist/browser/site-memory.d.ts.map +1 -1
- package/dist/browser/site-memory.js +11 -8
- package/dist/browser/site-memory.js.map +1 -1
- package/dist/browser/target-errors.d.ts +2 -2
- package/dist/browser/target-errors.js +2 -2
- package/dist/browser/verify-fixture.d.ts.map +1 -1
- package/dist/browser/verify-fixture.js +2 -2
- package/dist/browser/verify-fixture.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +5 -2
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +8 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser-operator-runtime.d.ts.map +1 -1
- package/dist/commands/browser-operator-runtime.js +2 -2
- package/dist/commands/browser-operator-runtime.js.map +1 -1
- package/dist/commands/browser-operator.d.ts.map +1 -1
- package/dist/commands/browser-operator.js +2 -2
- package/dist/commands/browser-operator.js.map +1 -1
- package/dist/commands/describe.d.ts +2 -2
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +14 -3
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +7 -6
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/explore.js +2 -2
- package/dist/commands/explore.js.map +1 -1
- package/dist/commands/generate.js +3 -3
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +4 -10
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/migrate.d.ts +9 -9
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +22 -22
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +9 -4
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/search.d.ts +3 -3
- package/dist/commands/search.js +4 -4
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +8 -4
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/synthesize.js +2 -2
- package/dist/commands/synthesize.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +69 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +130 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/kernel/execute.d.ts.map +1 -1
- package/dist/engine/kernel/execute.js +27 -4
- package/dist/engine/kernel/execute.js.map +1 -1
- package/dist/engine/user-home.d.ts +9 -0
- package/dist/engine/user-home.d.ts.map +1 -0
- package/dist/engine/user-home.js +12 -0
- package/dist/engine/user-home.js.map +1 -0
- package/dist/fast-path.d.ts +14 -0
- package/dist/fast-path.d.ts.map +1 -0
- package/dist/fast-path.js +565 -0
- package/dist/fast-path.js.map +1 -0
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +28 -17
- package/dist/hub/index.js.map +1 -1
- package/dist/main.js +6 -3
- package/dist/main.js.map +1 -1
- package/dist/manifest-compact.txt +11 -11
- package/dist/manifest-search.json +1 -1
- package/dist/manifest.json +27600 -1016
- package/dist/mcp/tools.js +1 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +16 -5
- package/dist/output/error-map.js.map +1 -1
- package/dist/protocol/acp.js +1 -1
- package/dist/protocol/acp.js.map +1 -1
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +34 -1
- package/dist/registry.js.map +1 -1
- package/dist/runtime/usage-ledger.d.ts +6 -7
- package/dist/runtime/usage-ledger.d.ts.map +1 -1
- package/dist/runtime/usage-ledger.js +6 -7
- package/dist/runtime/usage-ledger.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -6
- package/src/adapters/1688/assets.ts +114 -0
- package/src/adapters/51job/jobs.ts +327 -0
- package/src/adapters/_shared/browser-tools.ts +59 -0
- package/src/adapters/antigravity/extra.ts +53 -0
- package/src/adapters/baidu-scholar/search.ts +38 -0
- package/src/adapters/bilibili/compat.ts +132 -0
- package/src/adapters/binance/asks.yaml +41 -0
- package/src/adapters/binance/depth.yaml +41 -0
- package/src/adapters/binance/gainers.yaml +42 -0
- package/src/adapters/binance/hot.yaml +1 -1
- package/src/adapters/binance/kline.yaml +1 -1
- package/src/adapters/binance/klines.yaml +46 -0
- package/src/adapters/binance/losers.yaml +42 -0
- package/src/adapters/binance/pairs.yaml +38 -0
- package/src/adapters/binance/price.yaml +32 -0
- package/src/adapters/binance/prices.yaml +30 -0
- package/src/adapters/binance/ticker.yaml +2 -2
- package/src/adapters/binance/top.yaml +46 -0
- package/src/adapters/binance/trades.yaml +42 -0
- package/src/adapters/chatgpt/image.ts +84 -0
- package/src/adapters/chatgpt-app/chatgpt-app.ts +11 -0
- package/src/adapters/chatwise/extra.ts +36 -0
- package/src/adapters/codex/extra.ts +36 -0
- package/src/adapters/deepseek/web.ts +203 -0
- package/src/adapters/doubao/web.ts +154 -0
- package/src/adapters/eastmoney/market-data.ts +829 -0
- package/src/adapters/excel/insert-image.yaml +80 -0
- package/src/adapters/excel/insert-link.yaml +90 -0
- package/src/adapters/excel/list.yaml +63 -0
- package/src/adapters/excel/read.yaml +74 -0
- package/src/adapters/excel/set-cell.yaml +77 -0
- package/src/adapters/excel/set-font.yaml +87 -0
- package/src/adapters/excel/status.yaml +29 -0
- package/src/adapters/gh/search-repos.yaml +62 -0
- package/src/adapters/gitee/user.ts +59 -0
- package/src/adapters/google-scholar/cite.ts +95 -0
- package/src/adapters/google-scholar/profile.ts +91 -0
- package/src/adapters/google-scholar/search.ts +58 -0
- package/src/adapters/gov-law/laws.ts +61 -0
- package/src/adapters/gov-policy/policy.ts +61 -0
- package/src/adapters/imessage/contact.yaml +7 -2
- package/src/adapters/imessage/recent.yaml +7 -2
- package/src/adapters/imessage/search.yaml +7 -2
- package/src/adapters/jd/commerce.ts +142 -0
- package/src/adapters/jianyu/detail.ts +28 -0
- package/src/adapters/jimeng/workspace.ts +53 -0
- package/src/adapters/ke/rent-transaction.ts +70 -0
- package/src/adapters/linux-do/search.ts +92 -0
- package/src/adapters/linux-do/topic-content.ts +45 -0
- package/src/adapters/maimai/talents.ts +65 -0
- package/src/adapters/mubu/docs.ts +107 -0
- package/src/adapters/nowcoder/nowcoder.ts +570 -0
- package/src/adapters/powerchina/search.ts +45 -0
- package/src/adapters/powerpoint/add-slide.yaml +93 -0
- package/src/adapters/powerpoint/insert-image.yaml +71 -0
- package/src/adapters/powerpoint/insert-link.yaml +94 -0
- package/src/adapters/powerpoint/list.yaml +58 -0
- package/src/adapters/powerpoint/set-font.yaml +101 -0
- package/src/adapters/powerpoint/slides.yaml +73 -0
- package/src/adapters/powerpoint/status.yaml +29 -0
- package/src/adapters/quark/actions.ts +169 -0
- package/src/adapters/reddit/browser-utils.ts +93 -0
- package/src/adapters/reddit/listings.ts +223 -0
- package/src/adapters/reddit/search.ts +74 -0
- package/src/adapters/spotify/api.ts +292 -0
- package/src/adapters/taobao/commerce.ts +134 -0
- package/src/adapters/tdx/hot-rank.ts +35 -0
- package/src/adapters/ths/hot-rank.ts +35 -0
- package/src/adapters/toutiao/articles.ts +45 -0
- package/src/adapters/twitter/lists-extra.ts +139 -0
- package/src/adapters/uiverse/components.ts +154 -0
- package/src/adapters/vercel/list.yaml +2 -1
- package/src/adapters/wanfang/search.ts +38 -0
- package/src/adapters/weixin/drafts.ts +74 -0
- package/src/adapters/weread/ai-outline.ts +32 -0
- package/src/adapters/word/insert-image.yaml +73 -0
- package/src/adapters/word/insert-link.yaml +82 -0
- package/src/adapters/word/insert-text.yaml +72 -0
- package/src/adapters/word/list.yaml +63 -0
- package/src/adapters/word/read.yaml +63 -0
- package/src/adapters/word/set-font.yaml +97 -0
- package/src/adapters/word/status.yaml +29 -0
- package/src/adapters/xiaoyuzhou/media.ts +139 -0
- package/src/adapters/xueqiu/extra.ts +78 -0
- package/src/adapters/youtube/personal.ts +215 -0
- package/src/adapters/zhihu/actions.ts +111 -0
- package/src/hub/external-clis-harness.yaml +211 -0
- package/src/hub/index.ts +29 -25
- package/src/adapters/linux-do/search.yaml +0 -44
- package/src/adapters/meituan/hot.yaml +0 -34
- package/src/adapters/reddit/frontpage.test.ts +0 -15
- package/src/adapters/reddit/frontpage.yaml +0 -41
- package/src/adapters/reddit/hot.test.ts +0 -15
- package/src/adapters/reddit/hot.yaml +0 -41
- package/src/adapters/reddit/new.test.ts +0 -15
- package/src/adapters/reddit/new.yaml +0 -42
- package/src/adapters/reddit/popular.test.ts +0 -15
- package/src/adapters/reddit/popular.yaml +0 -41
- package/src/adapters/reddit/rising.test.ts +0 -15
- package/src/adapters/reddit/rising.yaml +0 -41
- package/src/adapters/reddit/search.test.ts +0 -15
- package/src/adapters/reddit/search.yaml +0 -52
- package/src/adapters/reddit/subreddit.test.ts +0 -15
- package/src/adapters/reddit/subreddit.yaml +0 -50
- package/src/adapters/reddit/top.test.ts +0 -15
- package/src/adapters/reddit/top.yaml +0 -48
- package/src/adapters/reddit/trending.test.ts +0 -15
- package/src/adapters/reddit/trending.yaml +0 -33
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: insert-image
|
|
3
|
+
description: Set a local image as the active Microsoft Excel worksheet background
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
args:
|
|
10
|
+
path:
|
|
11
|
+
type: str
|
|
12
|
+
required: true
|
|
13
|
+
positional: true
|
|
14
|
+
description: Local image path to embed
|
|
15
|
+
cell:
|
|
16
|
+
type: str
|
|
17
|
+
required: false
|
|
18
|
+
default: A1
|
|
19
|
+
description: Reference cell reported as the requested anchor
|
|
20
|
+
|
|
21
|
+
pipeline:
|
|
22
|
+
- exec:
|
|
23
|
+
command: osascript
|
|
24
|
+
args:
|
|
25
|
+
- "-e"
|
|
26
|
+
- |
|
|
27
|
+
on replace_text(theText, searchString, replacementString)
|
|
28
|
+
set AppleScript's text item delimiters to searchString
|
|
29
|
+
set parts to text items of (theText as text)
|
|
30
|
+
set AppleScript's text item delimiters to replacementString
|
|
31
|
+
set outText to parts as text
|
|
32
|
+
set AppleScript's text item delimiters to ""
|
|
33
|
+
return outText
|
|
34
|
+
end replace_text
|
|
35
|
+
|
|
36
|
+
on json_string(valueText)
|
|
37
|
+
set s to valueText as text
|
|
38
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
39
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
40
|
+
set s to my replace_text(s, return, "\\n")
|
|
41
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
42
|
+
set s to my replace_text(s, tab, "\\t")
|
|
43
|
+
return "\"" & s & "\""
|
|
44
|
+
end json_string
|
|
45
|
+
|
|
46
|
+
set imagePath to system attribute "UNICLI_IMAGE_PATH"
|
|
47
|
+
set cellRef to system attribute "UNICLI_CELL"
|
|
48
|
+
if cellRef is "" then set cellRef to "A1"
|
|
49
|
+
|
|
50
|
+
try
|
|
51
|
+
do shell script "test -f " & quoted form of imagePath
|
|
52
|
+
with timeout of 10 seconds
|
|
53
|
+
tell application "Microsoft Excel"
|
|
54
|
+
activate
|
|
55
|
+
if (count workbooks) is 0 then make new workbook
|
|
56
|
+
set wb to active workbook
|
|
57
|
+
set sh to active sheet
|
|
58
|
+
set background picture sh picture file name imagePath
|
|
59
|
+
set workbookName to name of wb as text
|
|
60
|
+
set sheetName to name of sh as text
|
|
61
|
+
end tell
|
|
62
|
+
end timeout
|
|
63
|
+
return "[{\"app\":\"Microsoft Excel\",\"workbook\":" & my json_string(workbookName) & ",\"sheet\":" & my json_string(sheetName) & ",\"cell\":" & my json_string(cellRef) & ",\"path\":" & my json_string(imagePath) & ",\"embedded\":true,\"placement\":\"sheet_background\"}]"
|
|
64
|
+
on error errMsg number errNum
|
|
65
|
+
return "[{\"ok\":false,\"code\":\"office_automation_unavailable\",\"message\":" & my json_string(errMsg) & ",\"number\":" & errNum & "}]"
|
|
66
|
+
end try
|
|
67
|
+
env:
|
|
68
|
+
UNICLI_IMAGE_PATH: "${{ args.path }}"
|
|
69
|
+
UNICLI_CELL: "${{ args.cell }}"
|
|
70
|
+
parse: json
|
|
71
|
+
timeout: 15000
|
|
72
|
+
|
|
73
|
+
columns: [app, workbook, sheet, cell, path, embedded, placement]
|
|
74
|
+
|
|
75
|
+
capabilities: ["subprocess.exec"]
|
|
76
|
+
minimum_capability: subprocess.exec
|
|
77
|
+
trust: user
|
|
78
|
+
confidentiality: private
|
|
79
|
+
quarantine: false
|
|
80
|
+
schema_version: v2
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: insert-link
|
|
3
|
+
description: Insert a native HYPERLINK formula into an Excel cell
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
args:
|
|
10
|
+
url:
|
|
11
|
+
type: str
|
|
12
|
+
required: true
|
|
13
|
+
positional: true
|
|
14
|
+
description: Link URL or file URL
|
|
15
|
+
text:
|
|
16
|
+
type: str
|
|
17
|
+
required: false
|
|
18
|
+
default: ""
|
|
19
|
+
description: Display text; defaults to the URL
|
|
20
|
+
cell:
|
|
21
|
+
type: str
|
|
22
|
+
required: false
|
|
23
|
+
default: A1
|
|
24
|
+
description: Cell address on the active sheet
|
|
25
|
+
|
|
26
|
+
pipeline:
|
|
27
|
+
- exec:
|
|
28
|
+
command: osascript
|
|
29
|
+
args:
|
|
30
|
+
- "-e"
|
|
31
|
+
- |
|
|
32
|
+
on replace_text(theText, searchString, replacementString)
|
|
33
|
+
set AppleScript's text item delimiters to searchString
|
|
34
|
+
set parts to text items of (theText as text)
|
|
35
|
+
set AppleScript's text item delimiters to replacementString
|
|
36
|
+
set outText to parts as text
|
|
37
|
+
set AppleScript's text item delimiters to ""
|
|
38
|
+
return outText
|
|
39
|
+
end replace_text
|
|
40
|
+
|
|
41
|
+
on json_string(valueText)
|
|
42
|
+
set s to valueText as text
|
|
43
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
44
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
45
|
+
set s to my replace_text(s, return, "\\n")
|
|
46
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
47
|
+
set s to my replace_text(s, tab, "\\t")
|
|
48
|
+
return "\"" & s & "\""
|
|
49
|
+
end json_string
|
|
50
|
+
|
|
51
|
+
on excel_string(valueText)
|
|
52
|
+
return my replace_text(valueText as text, "\"", "\"\"")
|
|
53
|
+
end excel_string
|
|
54
|
+
|
|
55
|
+
set linkUrl to system attribute "UNICLI_URL"
|
|
56
|
+
set linkText to system attribute "UNICLI_TEXT"
|
|
57
|
+
if linkText is "" then set linkText to linkUrl
|
|
58
|
+
set cellRef to system attribute "UNICLI_CELL"
|
|
59
|
+
if cellRef is "" then set cellRef to "A1"
|
|
60
|
+
|
|
61
|
+
try
|
|
62
|
+
with timeout of 10 seconds
|
|
63
|
+
tell application "Microsoft Excel"
|
|
64
|
+
activate
|
|
65
|
+
if (count workbooks) is 0 then make new workbook
|
|
66
|
+
set wb to active workbook
|
|
67
|
+
set sh to active sheet
|
|
68
|
+
set targetRange to range cellRef of sh
|
|
69
|
+
set formula of targetRange to "=HYPERLINK(\"" & my excel_string(linkUrl) & "\",\"" & my excel_string(linkText) & "\")"
|
|
70
|
+
return "[{\"workbook\":" & my json_string(name of wb as text) & ",\"sheet\":" & my json_string(name of sh as text) & ",\"cell\":" & my json_string(cellRef) & ",\"url\":" & my json_string(linkUrl) & ",\"text\":" & my json_string(linkText) & "}]"
|
|
71
|
+
end tell
|
|
72
|
+
end timeout
|
|
73
|
+
on error errMsg number errNum
|
|
74
|
+
return "[{\"ok\":false,\"code\":\"office_automation_unavailable\",\"message\":" & my json_string(errMsg) & ",\"number\":" & errNum & "}]"
|
|
75
|
+
end try
|
|
76
|
+
env:
|
|
77
|
+
UNICLI_URL: "${{ args.url }}"
|
|
78
|
+
UNICLI_TEXT: "${{ args.text }}"
|
|
79
|
+
UNICLI_CELL: "${{ args.cell }}"
|
|
80
|
+
parse: json
|
|
81
|
+
timeout: 15000
|
|
82
|
+
|
|
83
|
+
columns: [workbook, sheet, cell, url, text]
|
|
84
|
+
|
|
85
|
+
capabilities: ["subprocess.exec"]
|
|
86
|
+
minimum_capability: subprocess.exec
|
|
87
|
+
trust: user
|
|
88
|
+
confidentiality: private
|
|
89
|
+
quarantine: false
|
|
90
|
+
schema_version: v2
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: list
|
|
3
|
+
description: List open Microsoft Excel workbooks
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
pipeline:
|
|
10
|
+
- exec:
|
|
11
|
+
command: osascript
|
|
12
|
+
args:
|
|
13
|
+
- "-e"
|
|
14
|
+
- |
|
|
15
|
+
on replace_text(theText, searchString, replacementString)
|
|
16
|
+
set AppleScript's text item delimiters to searchString
|
|
17
|
+
set parts to text items of (theText as text)
|
|
18
|
+
set AppleScript's text item delimiters to replacementString
|
|
19
|
+
set outText to parts as text
|
|
20
|
+
set AppleScript's text item delimiters to ""
|
|
21
|
+
return outText
|
|
22
|
+
end replace_text
|
|
23
|
+
|
|
24
|
+
on json_string(valueText)
|
|
25
|
+
set s to valueText as text
|
|
26
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
27
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
28
|
+
set s to my replace_text(s, return, "\\n")
|
|
29
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
30
|
+
set s to my replace_text(s, tab, "\\t")
|
|
31
|
+
return "\"" & s & "\""
|
|
32
|
+
end json_string
|
|
33
|
+
|
|
34
|
+
on json_bool(valueBool)
|
|
35
|
+
if valueBool then return "true"
|
|
36
|
+
return "false"
|
|
37
|
+
end json_bool
|
|
38
|
+
|
|
39
|
+
if not application "Microsoft Excel" is running then return "[]"
|
|
40
|
+
|
|
41
|
+
tell application "System Events"
|
|
42
|
+
tell process "Microsoft Excel"
|
|
43
|
+
set windowCount to count windows
|
|
44
|
+
set outText to "["
|
|
45
|
+
repeat with i from 1 to windowCount
|
|
46
|
+
set wbName to name of window i as text
|
|
47
|
+
if i > 1 then set outText to outText & ","
|
|
48
|
+
set outText to outText & "{\"index\":" & i & ",\"name\":" & my json_string(wbName) & ",\"path\":\"\",\"saved\":" & my json_bool(false) & ",\"source\":\"window\"}"
|
|
49
|
+
end repeat
|
|
50
|
+
end tell
|
|
51
|
+
return outText & "]"
|
|
52
|
+
end tell
|
|
53
|
+
parse: json
|
|
54
|
+
timeout: 30000
|
|
55
|
+
|
|
56
|
+
columns: [index, name, path, saved, source]
|
|
57
|
+
|
|
58
|
+
capabilities: ["subprocess.exec"]
|
|
59
|
+
minimum_capability: subprocess.exec
|
|
60
|
+
trust: user
|
|
61
|
+
confidentiality: private
|
|
62
|
+
quarantine: false
|
|
63
|
+
schema_version: v2
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: read
|
|
3
|
+
description: Read a cell from the active Microsoft Excel workbook
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
args:
|
|
10
|
+
cell:
|
|
11
|
+
type: str
|
|
12
|
+
required: false
|
|
13
|
+
default: A1
|
|
14
|
+
description: Cell address on the active sheet
|
|
15
|
+
|
|
16
|
+
pipeline:
|
|
17
|
+
- exec:
|
|
18
|
+
command: osascript
|
|
19
|
+
args:
|
|
20
|
+
- "-e"
|
|
21
|
+
- |
|
|
22
|
+
on replace_text(theText, searchString, replacementString)
|
|
23
|
+
set AppleScript's text item delimiters to searchString
|
|
24
|
+
set parts to text items of (theText as text)
|
|
25
|
+
set AppleScript's text item delimiters to replacementString
|
|
26
|
+
set outText to parts as text
|
|
27
|
+
set AppleScript's text item delimiters to ""
|
|
28
|
+
return outText
|
|
29
|
+
end replace_text
|
|
30
|
+
|
|
31
|
+
on json_string(valueText)
|
|
32
|
+
set s to valueText as text
|
|
33
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
34
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
35
|
+
set s to my replace_text(s, return, "\\n")
|
|
36
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
37
|
+
set s to my replace_text(s, tab, "\\t")
|
|
38
|
+
return "\"" & s & "\""
|
|
39
|
+
end json_string
|
|
40
|
+
|
|
41
|
+
set cellRef to system attribute "UNICLI_CELL"
|
|
42
|
+
if cellRef is "" then set cellRef to "A1"
|
|
43
|
+
if not application "Microsoft Excel" is running then return "[]"
|
|
44
|
+
|
|
45
|
+
try
|
|
46
|
+
with timeout of 10 seconds
|
|
47
|
+
tell application "Microsoft Excel"
|
|
48
|
+
if (count workbooks) is 0 then return "[]"
|
|
49
|
+
set wb to active workbook
|
|
50
|
+
set sh to active sheet
|
|
51
|
+
set cellValue to ""
|
|
52
|
+
try
|
|
53
|
+
set rawValue to value of range cellRef of sh
|
|
54
|
+
if rawValue is not missing value then set cellValue to rawValue as text
|
|
55
|
+
end try
|
|
56
|
+
return "[{\"workbook\":" & my json_string(name of wb as text) & ",\"sheet\":" & my json_string(name of sh as text) & ",\"cell\":" & my json_string(cellRef) & ",\"value\":" & my json_string(cellValue) & "}]"
|
|
57
|
+
end tell
|
|
58
|
+
end timeout
|
|
59
|
+
on error errMsg number errNum
|
|
60
|
+
return "[{\"ok\":false,\"code\":\"office_automation_unavailable\",\"message\":" & my json_string(errMsg) & ",\"number\":" & errNum & "}]"
|
|
61
|
+
end try
|
|
62
|
+
env:
|
|
63
|
+
UNICLI_CELL: "${{ args.cell }}"
|
|
64
|
+
parse: json
|
|
65
|
+
timeout: 30000
|
|
66
|
+
|
|
67
|
+
columns: [workbook, sheet, cell, value]
|
|
68
|
+
|
|
69
|
+
capabilities: ["subprocess.exec"]
|
|
70
|
+
minimum_capability: subprocess.exec
|
|
71
|
+
trust: user
|
|
72
|
+
confidentiality: private
|
|
73
|
+
quarantine: false
|
|
74
|
+
schema_version: v2
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: set-cell
|
|
3
|
+
description: Set a cell value in the active Microsoft Excel workbook
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
args:
|
|
10
|
+
value:
|
|
11
|
+
type: str
|
|
12
|
+
required: true
|
|
13
|
+
positional: true
|
|
14
|
+
description: Value to write
|
|
15
|
+
cell:
|
|
16
|
+
type: str
|
|
17
|
+
required: false
|
|
18
|
+
default: A1
|
|
19
|
+
description: Cell address on the active sheet
|
|
20
|
+
|
|
21
|
+
pipeline:
|
|
22
|
+
- exec:
|
|
23
|
+
command: osascript
|
|
24
|
+
args:
|
|
25
|
+
- "-e"
|
|
26
|
+
- |
|
|
27
|
+
on replace_text(theText, searchString, replacementString)
|
|
28
|
+
set AppleScript's text item delimiters to searchString
|
|
29
|
+
set parts to text items of (theText as text)
|
|
30
|
+
set AppleScript's text item delimiters to replacementString
|
|
31
|
+
set outText to parts as text
|
|
32
|
+
set AppleScript's text item delimiters to ""
|
|
33
|
+
return outText
|
|
34
|
+
end replace_text
|
|
35
|
+
|
|
36
|
+
on json_string(valueText)
|
|
37
|
+
set s to valueText as text
|
|
38
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
39
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
40
|
+
set s to my replace_text(s, return, "\\n")
|
|
41
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
42
|
+
set s to my replace_text(s, tab, "\\t")
|
|
43
|
+
return "\"" & s & "\""
|
|
44
|
+
end json_string
|
|
45
|
+
|
|
46
|
+
set cellRef to system attribute "UNICLI_CELL"
|
|
47
|
+
if cellRef is "" then set cellRef to "A1"
|
|
48
|
+
set cellValue to system attribute "UNICLI_VALUE"
|
|
49
|
+
|
|
50
|
+
try
|
|
51
|
+
with timeout of 20 seconds
|
|
52
|
+
tell application "Microsoft Excel"
|
|
53
|
+
activate
|
|
54
|
+
if (count workbooks) is 0 then make new workbook
|
|
55
|
+
set wb to active workbook
|
|
56
|
+
set sh to active sheet
|
|
57
|
+
set value of range cellRef of sh to cellValue
|
|
58
|
+
return "[{\"workbook\":" & my json_string(name of wb as text) & ",\"sheet\":" & my json_string(name of sh as text) & ",\"cell\":" & my json_string(cellRef) & ",\"value\":" & my json_string(cellValue) & "}]"
|
|
59
|
+
end tell
|
|
60
|
+
end timeout
|
|
61
|
+
on error errMsg number errNum
|
|
62
|
+
return "[{\"ok\":false,\"code\":\"office_automation_unavailable\",\"message\":" & my json_string(errMsg) & ",\"number\":" & errNum & "}]"
|
|
63
|
+
end try
|
|
64
|
+
env:
|
|
65
|
+
UNICLI_CELL: "${{ args.cell }}"
|
|
66
|
+
UNICLI_VALUE: "${{ args.value }}"
|
|
67
|
+
parse: json
|
|
68
|
+
timeout: 30000
|
|
69
|
+
|
|
70
|
+
columns: [workbook, sheet, cell, value]
|
|
71
|
+
|
|
72
|
+
capabilities: ["subprocess.exec"]
|
|
73
|
+
minimum_capability: subprocess.exec
|
|
74
|
+
trust: user
|
|
75
|
+
confidentiality: private
|
|
76
|
+
quarantine: false
|
|
77
|
+
schema_version: v2
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: set-font
|
|
3
|
+
description: Apply a font to a cell in the active Microsoft Excel workbook
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
args:
|
|
10
|
+
font:
|
|
11
|
+
type: str
|
|
12
|
+
required: true
|
|
13
|
+
positional: true
|
|
14
|
+
description: Font family to apply
|
|
15
|
+
size:
|
|
16
|
+
type: str
|
|
17
|
+
required: false
|
|
18
|
+
default: ""
|
|
19
|
+
description: Optional font size in points
|
|
20
|
+
cell:
|
|
21
|
+
type: str
|
|
22
|
+
required: false
|
|
23
|
+
default: A1
|
|
24
|
+
description: Cell address on the active sheet
|
|
25
|
+
|
|
26
|
+
pipeline:
|
|
27
|
+
- exec:
|
|
28
|
+
command: osascript
|
|
29
|
+
args:
|
|
30
|
+
- "-e"
|
|
31
|
+
- |
|
|
32
|
+
on replace_text(theText, searchString, replacementString)
|
|
33
|
+
set AppleScript's text item delimiters to searchString
|
|
34
|
+
set parts to text items of (theText as text)
|
|
35
|
+
set AppleScript's text item delimiters to replacementString
|
|
36
|
+
set outText to parts as text
|
|
37
|
+
set AppleScript's text item delimiters to ""
|
|
38
|
+
return outText
|
|
39
|
+
end replace_text
|
|
40
|
+
|
|
41
|
+
on json_string(valueText)
|
|
42
|
+
set s to valueText as text
|
|
43
|
+
set s to my replace_text(s, "\\", "\\\\")
|
|
44
|
+
set s to my replace_text(s, "\"", "\\\"")
|
|
45
|
+
set s to my replace_text(s, return, "\\n")
|
|
46
|
+
set s to my replace_text(s, linefeed, "\\n")
|
|
47
|
+
set s to my replace_text(s, tab, "\\t")
|
|
48
|
+
return "\"" & s & "\""
|
|
49
|
+
end json_string
|
|
50
|
+
|
|
51
|
+
set fontName to system attribute "UNICLI_FONT"
|
|
52
|
+
set sizeText to system attribute "UNICLI_SIZE"
|
|
53
|
+
set cellRef to system attribute "UNICLI_CELL"
|
|
54
|
+
if cellRef is "" then set cellRef to "A1"
|
|
55
|
+
|
|
56
|
+
try
|
|
57
|
+
with timeout of 10 seconds
|
|
58
|
+
tell application "Microsoft Excel"
|
|
59
|
+
activate
|
|
60
|
+
if (count workbooks) is 0 then make new workbook
|
|
61
|
+
set wb to active workbook
|
|
62
|
+
set sh to active sheet
|
|
63
|
+
set targetRange to range cellRef of sh
|
|
64
|
+
set f to font object of targetRange
|
|
65
|
+
set name of f to fontName
|
|
66
|
+
if sizeText is not "" then set font size of f to (sizeText as real)
|
|
67
|
+
return "[{\"workbook\":" & my json_string(name of wb as text) & ",\"sheet\":" & my json_string(name of sh as text) & ",\"cell\":" & my json_string(cellRef) & ",\"font\":" & my json_string(fontName) & ",\"size\":" & my json_string(sizeText) & "}]"
|
|
68
|
+
end tell
|
|
69
|
+
end timeout
|
|
70
|
+
on error errMsg number errNum
|
|
71
|
+
return "[{\"ok\":false,\"code\":\"office_automation_unavailable\",\"message\":" & my json_string(errMsg) & ",\"number\":" & errNum & "}]"
|
|
72
|
+
end try
|
|
73
|
+
env:
|
|
74
|
+
UNICLI_FONT: "${{ args.font }}"
|
|
75
|
+
UNICLI_SIZE: "${{ args.size }}"
|
|
76
|
+
UNICLI_CELL: "${{ args.cell }}"
|
|
77
|
+
parse: json
|
|
78
|
+
timeout: 15000
|
|
79
|
+
|
|
80
|
+
columns: [workbook, sheet, cell, font, size]
|
|
81
|
+
|
|
82
|
+
capabilities: ["subprocess.exec"]
|
|
83
|
+
minimum_capability: subprocess.exec
|
|
84
|
+
trust: user
|
|
85
|
+
confidentiality: private
|
|
86
|
+
quarantine: false
|
|
87
|
+
schema_version: v2
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
site: excel
|
|
2
|
+
name: status
|
|
3
|
+
description: Check Microsoft Excel running state without enumerating workbooks
|
|
4
|
+
type: desktop
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: osascript
|
|
7
|
+
detect: "test $(uname) = Darwin"
|
|
8
|
+
|
|
9
|
+
pipeline:
|
|
10
|
+
- exec:
|
|
11
|
+
command: osascript
|
|
12
|
+
args:
|
|
13
|
+
- "-l"
|
|
14
|
+
- "JavaScript"
|
|
15
|
+
- "-e"
|
|
16
|
+
- |
|
|
17
|
+
var app = Application('Microsoft Excel');
|
|
18
|
+
JSON.stringify([{ app: 'Microsoft Excel', bundle_id: app.id(), running: app.running() }]);
|
|
19
|
+
parse: json
|
|
20
|
+
timeout: 10000
|
|
21
|
+
|
|
22
|
+
columns: [app, bundle_id, running]
|
|
23
|
+
|
|
24
|
+
capabilities: ["subprocess.exec"]
|
|
25
|
+
minimum_capability: subprocess.exec
|
|
26
|
+
trust: user
|
|
27
|
+
confidentiality: private
|
|
28
|
+
quarantine: false
|
|
29
|
+
schema_version: v2
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
site: gh
|
|
2
|
+
name: search-repos
|
|
3
|
+
description: Search GitHub repositories
|
|
4
|
+
type: bridge
|
|
5
|
+
strategy: public
|
|
6
|
+
binary: gh
|
|
7
|
+
detect: which gh
|
|
8
|
+
|
|
9
|
+
pipeline:
|
|
10
|
+
- exec:
|
|
11
|
+
command: gh
|
|
12
|
+
args:
|
|
13
|
+
- search
|
|
14
|
+
- repos
|
|
15
|
+
- ${{ args.query }}
|
|
16
|
+
- --limit
|
|
17
|
+
- ${{ args.limit }}
|
|
18
|
+
- --json
|
|
19
|
+
- fullName,description,stargazersCount,forksCount,language,url,updatedAt
|
|
20
|
+
- --sort
|
|
21
|
+
- ${{ args.sort }}
|
|
22
|
+
- --order
|
|
23
|
+
- ${{ args.order }}
|
|
24
|
+
- --language
|
|
25
|
+
- ${{ args.language }}
|
|
26
|
+
parse: json
|
|
27
|
+
timeout: 30000
|
|
28
|
+
|
|
29
|
+
args:
|
|
30
|
+
query:
|
|
31
|
+
type: str
|
|
32
|
+
required: true
|
|
33
|
+
positional: true
|
|
34
|
+
description: GitHub repository search query
|
|
35
|
+
limit:
|
|
36
|
+
type: int
|
|
37
|
+
default: 20
|
|
38
|
+
description: Maximum number of repositories to return
|
|
39
|
+
sort:
|
|
40
|
+
type: str
|
|
41
|
+
default: stars
|
|
42
|
+
choices: [stars, forks, updated, help-wanted-issues]
|
|
43
|
+
description: Sort returned repositories
|
|
44
|
+
order:
|
|
45
|
+
type: str
|
|
46
|
+
default: desc
|
|
47
|
+
choices: [asc, desc]
|
|
48
|
+
description: Sort direction
|
|
49
|
+
language:
|
|
50
|
+
type: str
|
|
51
|
+
default: ""
|
|
52
|
+
description: Optional language filter
|
|
53
|
+
|
|
54
|
+
columns:
|
|
55
|
+
[fullName, description, stargazersCount, forksCount, language, url, updatedAt]
|
|
56
|
+
|
|
57
|
+
capabilities: ["subprocess.exec"]
|
|
58
|
+
minimum_capability: subprocess.exec
|
|
59
|
+
trust: user
|
|
60
|
+
confidentiality: public
|
|
61
|
+
quarantine: false
|
|
62
|
+
schema_version: v2
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { cli, Strategy } from "../../registry.js";
|
|
2
|
+
import { str } from "../_shared/browser-tools.js";
|
|
3
|
+
|
|
4
|
+
function textBetween(html: string, pattern: RegExp): string {
|
|
5
|
+
return (pattern.exec(html)?.[1] ?? "")
|
|
6
|
+
.replace(/<[^>]+>/g, "")
|
|
7
|
+
.replace(/\s+/g, " ")
|
|
8
|
+
.trim();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
cli({
|
|
12
|
+
site: "gitee",
|
|
13
|
+
name: "user",
|
|
14
|
+
description: "Show public Gitee user profile information",
|
|
15
|
+
domain: "gitee.com",
|
|
16
|
+
strategy: Strategy.PUBLIC,
|
|
17
|
+
args: [{ name: "username", type: "str", required: true, positional: true }],
|
|
18
|
+
columns: ["username", "name", "followers", "public_repos", "url"],
|
|
19
|
+
func: async (_page, kwargs) => {
|
|
20
|
+
const username = str(kwargs.username);
|
|
21
|
+
const response = await fetch(
|
|
22
|
+
`https://gitee.com/api/v5/users/${encodeURIComponent(username)}`,
|
|
23
|
+
);
|
|
24
|
+
if (response.ok) {
|
|
25
|
+
const data = (await response.json()) as Record<string, unknown>;
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
username: data.login ?? username,
|
|
29
|
+
name: data.name ?? "",
|
|
30
|
+
followers: data.followers ?? 0,
|
|
31
|
+
public_repos: data.public_repos ?? 0,
|
|
32
|
+
url: data.html_url ?? `https://gitee.com/${username}`,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const url = `https://gitee.com/${encodeURIComponent(username)}`;
|
|
38
|
+
const htmlResponse = await fetch(url, {
|
|
39
|
+
headers: { "user-agent": "Mozilla/5.0 (compatible; Uni-CLI)" },
|
|
40
|
+
});
|
|
41
|
+
if (!htmlResponse.ok) {
|
|
42
|
+
throw new Error(`Gitee user request failed: HTTP ${htmlResponse.status}`);
|
|
43
|
+
}
|
|
44
|
+
const html = await htmlResponse.text();
|
|
45
|
+
const name =
|
|
46
|
+
textBetween(html, /<title>(.*?)<\/title>/is).split(" - ")[0] || username;
|
|
47
|
+
const followers = textBetween(html, /关注者[^0-9]*(\d+)/i);
|
|
48
|
+
const repos = textBetween(html, /仓库[^0-9]*(\d+)/i);
|
|
49
|
+
return [
|
|
50
|
+
{
|
|
51
|
+
username,
|
|
52
|
+
name,
|
|
53
|
+
followers,
|
|
54
|
+
public_repos: repos,
|
|
55
|
+
url,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
},
|
|
59
|
+
});
|