@zenalexa/unicli 0.217.3 → 0.218.1

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.
Files changed (149) hide show
  1. package/AGENTS.md +51 -194
  2. package/README.md +2 -2
  3. package/README.zh-CN.md +2 -2
  4. package/dist/bin/unicli-mcp.d.ts +10 -0
  5. package/dist/bin/unicli-mcp.d.ts.map +1 -0
  6. package/dist/bin/unicli-mcp.js +10 -0
  7. package/dist/bin/unicli-mcp.js.map +1 -0
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +12 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/auth.d.ts +1 -0
  12. package/dist/commands/auth.d.ts.map +1 -1
  13. package/dist/commands/auth.js +250 -0
  14. package/dist/commands/auth.js.map +1 -1
  15. package/dist/commands/dev.js +1 -0
  16. package/dist/commands/dev.js.map +1 -1
  17. package/dist/commands/health.d.ts.map +1 -1
  18. package/dist/commands/health.js +1 -0
  19. package/dist/commands/health.js.map +1 -1
  20. package/dist/commands/lint.d.ts.map +1 -1
  21. package/dist/commands/lint.js +15 -6
  22. package/dist/commands/lint.js.map +1 -1
  23. package/dist/commands/repair.d.ts +1 -0
  24. package/dist/commands/repair.d.ts.map +1 -1
  25. package/dist/commands/repair.js +103 -61
  26. package/dist/commands/repair.js.map +1 -1
  27. package/dist/engine/chromium-cookies-platform.d.ts +69 -0
  28. package/dist/engine/chromium-cookies-platform.d.ts.map +1 -0
  29. package/dist/engine/chromium-cookies-platform.js +315 -0
  30. package/dist/engine/chromium-cookies-platform.js.map +1 -0
  31. package/dist/engine/chromium-cookies-types.d.ts +26 -0
  32. package/dist/engine/chromium-cookies-types.d.ts.map +1 -0
  33. package/dist/engine/chromium-cookies-types.js +16 -0
  34. package/dist/engine/chromium-cookies-types.js.map +1 -0
  35. package/dist/engine/chromium-cookies.d.ts +56 -0
  36. package/dist/engine/chromium-cookies.d.ts.map +1 -0
  37. package/dist/engine/chromium-cookies.js +361 -0
  38. package/dist/engine/chromium-cookies.js.map +1 -0
  39. package/dist/engine/cookies.d.ts +13 -5
  40. package/dist/engine/cookies.d.ts.map +1 -1
  41. package/dist/engine/cookies.js +55 -9
  42. package/dist/engine/cookies.js.map +1 -1
  43. package/dist/engine/executor.d.ts +8 -0
  44. package/dist/engine/executor.d.ts.map +1 -1
  45. package/dist/engine/executor.js +1 -1
  46. package/dist/engine/executor.js.map +1 -1
  47. package/dist/engine/kernel/execute.d.ts.map +1 -1
  48. package/dist/engine/kernel/execute.js +1 -0
  49. package/dist/engine/kernel/execute.js.map +1 -1
  50. package/dist/engine/repair/quarantine-discovery.d.ts +25 -0
  51. package/dist/engine/repair/quarantine-discovery.d.ts.map +1 -0
  52. package/dist/engine/repair/quarantine-discovery.js +78 -0
  53. package/dist/engine/repair/quarantine-discovery.js.map +1 -0
  54. package/dist/engine/steps/navigate.d.ts +1 -1
  55. package/dist/engine/steps/navigate.d.ts.map +1 -1
  56. package/dist/engine/steps/navigate.js +5 -1
  57. package/dist/engine/steps/navigate.js.map +1 -1
  58. package/dist/engine/template.d.ts +14 -4
  59. package/dist/engine/template.d.ts.map +1 -1
  60. package/dist/engine/template.js +93 -65
  61. package/dist/engine/template.js.map +1 -1
  62. package/dist/engine/verify-row-shape.d.ts +17 -0
  63. package/dist/engine/verify-row-shape.d.ts.map +1 -0
  64. package/dist/engine/verify-row-shape.js +36 -0
  65. package/dist/engine/verify-row-shape.js.map +1 -0
  66. package/dist/fast-path/handlers/adapter.d.ts +15 -0
  67. package/dist/fast-path/handlers/adapter.d.ts.map +1 -0
  68. package/dist/fast-path/handlers/adapter.js +169 -0
  69. package/dist/fast-path/handlers/adapter.js.map +1 -0
  70. package/dist/fast-path/handlers/discovery.d.ts +14 -0
  71. package/dist/fast-path/handlers/discovery.d.ts.map +1 -0
  72. package/dist/fast-path/handlers/discovery.js +280 -0
  73. package/dist/fast-path/handlers/discovery.js.map +1 -0
  74. package/dist/fast-path/manifest.d.ts +47 -0
  75. package/dist/fast-path/manifest.d.ts.map +1 -0
  76. package/dist/fast-path/manifest.js +32 -0
  77. package/dist/fast-path/manifest.js.map +1 -0
  78. package/dist/fast-path/parsed-argv.d.ts +16 -0
  79. package/dist/fast-path/parsed-argv.d.ts.map +1 -0
  80. package/dist/fast-path/parsed-argv.js +6 -0
  81. package/dist/fast-path/parsed-argv.js.map +1 -0
  82. package/dist/fast-path/policy.d.ts +25 -0
  83. package/dist/fast-path/policy.d.ts.map +1 -0
  84. package/dist/fast-path/policy.js +96 -0
  85. package/dist/fast-path/policy.js.map +1 -0
  86. package/dist/fast-path/render.d.ts +26 -0
  87. package/dist/fast-path/render.d.ts.map +1 -0
  88. package/dist/fast-path/render.js +200 -0
  89. package/dist/fast-path/render.js.map +1 -0
  90. package/dist/fast-path.d.ts +8 -10
  91. package/dist/fast-path.d.ts.map +1 -1
  92. package/dist/fast-path.js +66 -810
  93. package/dist/fast-path.js.map +1 -1
  94. package/dist/manifest.json +7 -6
  95. package/dist/transport/adapters/cdp-browser.d.ts +6 -6
  96. package/dist/transport/adapters/cdp-browser.js +7 -7
  97. package/dist/transport/adapters/cdp-browser.js.map +1 -1
  98. package/dist/transport/adapters/subprocess.d.ts +4 -4
  99. package/dist/transport/adapters/subprocess.js +4 -4
  100. package/package.json +22 -8
  101. package/server.json +44 -0
  102. package/skills/README.md +39 -0
  103. package/skills/talk-normal/SKILL.md +25 -0
  104. package/skills/talk-normal/prompt.md +35 -0
  105. package/skills/unicli/SKILL.md +389 -0
  106. package/skills/unicli/references/auth.md +188 -0
  107. package/skills/unicli/references/output.md +238 -0
  108. package/skills/unicli/references/sites.md +259 -0
  109. package/skills/unicli-browser/SKILL.md +99 -0
  110. package/skills/unicli-claude-code/SKILL.md +172 -0
  111. package/skills/unicli-explorer/SKILL.md +90 -0
  112. package/skills/unicli-hermes/SKILL.md +83 -0
  113. package/skills/unicli-oneshot/SKILL.md +59 -0
  114. package/skills/unicli-operate/SKILL.md +113 -0
  115. package/skills/unicli-repair/SKILL.md +209 -0
  116. package/skills/unicli-repair/references/error-codes.md +149 -0
  117. package/skills/unicli-repair/references/yaml-patches.md +321 -0
  118. package/skills/unicli-smart-search/SKILL.md +80 -0
  119. package/skills/unicli-usage/SKILL.md +65 -0
  120. package/src/adapters/adguardhome/rules.yaml +1 -1
  121. package/src/adapters/adguardhome/stats.yaml +1 -1
  122. package/src/adapters/adguardhome/status.yaml +1 -1
  123. package/src/adapters/apple-music/rate-album.yaml +1 -2
  124. package/src/adapters/arxiv/trending.yaml +1 -1
  125. package/src/adapters/az/account.yaml +1 -1
  126. package/src/adapters/coupang/hot.yaml +2 -1
  127. package/src/adapters/ctrip/hot.yaml +2 -1
  128. package/src/adapters/ctrip/search.yaml +2 -1
  129. package/src/adapters/douban/top250.yaml +1 -1
  130. package/src/adapters/figma/export-selected.yaml +1 -2
  131. package/src/adapters/gcloud/projects.yaml +1 -1
  132. package/src/adapters/github-trending/developers.yaml +1 -1
  133. package/src/adapters/github-trending/weekly.yaml +1 -1
  134. package/src/adapters/homebrew/search.yaml +1 -1
  135. package/src/adapters/imdb/top.yaml +1 -1
  136. package/src/adapters/itch-io/popular.yaml +1 -1
  137. package/src/adapters/itch-io/top.yaml +1 -1
  138. package/src/adapters/mastodon/timeline.yaml +1 -1
  139. package/src/adapters/openrouter/search.yaml +1 -1
  140. package/src/adapters/pypi/search.yaml +2 -1
  141. package/src/adapters/sspai/hot.yaml +4 -1
  142. package/src/adapters/sspai/latest.yaml +3 -3
  143. package/src/adapters/tieba/hot.yaml +1 -1
  144. package/src/adapters/wikipedia/today.yaml +1 -1
  145. package/src/adapters/zoom/toggle-mute.yaml +1 -2
  146. package/dist/engine/yaml-runner.d.ts +0 -11
  147. package/dist/engine/yaml-runner.d.ts.map +0 -1
  148. package/dist/engine/yaml-runner.js +0 -18
  149. package/dist/engine/yaml-runner.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: unicli-smart-search
3
+ description: >
4
+ Route search queries to the best platform via unicli. Use when searching across
5
+ websites, social media, tech forums, news, finance, shopping, or academic sources.
6
+ version: 1.0.0
7
+ triggers:
8
+ - "search"
9
+ - "find information"
10
+ - "trending"
11
+ - "hot topics"
12
+ - "unicli search"
13
+ allowed-tools: [Bash]
14
+ protocol: 2.0
15
+ ---
16
+
17
+ ## When to Use
18
+
19
+ Searching for information, checking trending topics, or gathering data across platforms.
20
+ Commands return a v2 AgentEnvelope; pass `-f json` when you need JSON for parsing.
21
+
22
+ ## Pre-Check
23
+
24
+ ```bash
25
+ unicli <site> --help # Verify subcommands exist
26
+ unicli <site> <command> --help # Check args and output columns
27
+ ```
28
+
29
+ ## Search Routing
30
+
31
+ | Category | Command |
32
+ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | **Web** | `unicli google search <q>`, `unicli baidu search <q>` |
34
+ | **Tech** | `unicli hackernews top`, `unicli hackernews search <q>`, `unicli stackoverflow hot`, `unicli lobsters hot`, `unicli v2ex hot`, `unicli linux-do hot` |
35
+ | **Social** | `unicli twitter search <q>`, `unicli twitter trending`, `unicli reddit search <q>`, `unicli reddit hot`, `unicli weibo hot`, `unicli zhihu hot`, `unicli tieba hot`, `unicli threads hot` |
36
+ | **Finance** | `unicli xueqiu hot`, `unicli xueqiu hot-stock`, `unicli binance hot`, `unicli eastmoney hot`, `unicli bloomberg markets`, `unicli yahoo-finance search <q>` |
37
+ | **Academic** | `unicli arxiv search <q>`, `unicli arxiv paper <id>` |
38
+ | **Shopping** | `unicli amazon search <q>`, `unicli jd search <q>`, `unicli taobao search <q>`, `unicli smzdm hot`, `unicli xianyu search <q>` |
39
+ | **Video** | `unicli bilibili hot`, `unicli bilibili search <q>`, `unicli youtube search <q>`, `unicli tiktok search <q>` |
40
+ | **News** | `unicli toutiao hot`, `unicli 36kr hot`, `unicli bbc hot`, `unicli cnn top`, `unicli nytimes top`, `unicli reuters top` |
41
+ | **Dev** | `unicli github-trending`, `unicli producthunt hot`, `unicli docker-hub search <q>` |
42
+ | **Reading** | `unicli douban search <q>`, `unicli douban top250`, `unicli weread ranking`, `unicli wikipedia search <q>` |
43
+ | **Jobs** | `unicli boss search <q>`, `unicli linkedin search <q>`, `unicli maimai search <q>` |
44
+
45
+ ## Multi-Source Pattern
46
+
47
+ For comprehensive research, query 2-3 complementary sources:
48
+
49
+ ```bash
50
+ # Tech topic
51
+ unicli hackernews search "LLM agents" --limit 10
52
+ unicli reddit search "LLM agents" --limit 10
53
+ unicli arxiv search "LLM agents" --limit 5
54
+
55
+ # Chinese trending
56
+ unicli weibo hot --limit 20
57
+ unicli zhihu hot --limit 20
58
+
59
+ # Market research
60
+ unicli producthunt hot --limit 10
61
+ unicli hackernews search "startup" --limit 10
62
+ ```
63
+
64
+ ## Output Handling
65
+
66
+ ```bash
67
+ unicli hackernews top --limit 5 | jq '.[].title'
68
+ unicli xueqiu hot | jq '.[] | {name, change}'
69
+ ```
70
+
71
+ ## Fallback
72
+
73
+ - Exit 77 -> `unicli auth setup <site>` then retry
74
+ - Exit 69 -> `unicli browser start` then retry
75
+ - Exit 66 -> try different query terms
76
+ - Site down -> switch to alternative from routing table
77
+
78
+ ## Budget
79
+
80
+ Per question: 1-2 primary sources + 1 supplementary. Do not query same site twice.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: unicli-usage
3
+ description: >
4
+ Command reference and usage guide for unicli — the universal CLI for AI agents.
5
+ Use when you need to discover, run, or pipe unicli commands.
6
+ ---
7
+
8
+ # unicli Usage Guide
9
+
10
+ ## Quick Reference
11
+
12
+ ```bash
13
+ unicli list # List all available commands
14
+ unicli list --type web-api # Filter by adapter type
15
+ unicli list --site bilibili # Filter by site name
16
+
17
+ unicli <site> <command> [options] # Run any command
18
+ unicli hackernews top --limit 5 # Example: HN top stories
19
+ unicli hackernews search "AI agents" # Example: search HN
20
+
21
+ unicli doctor # System health check
22
+ ```
23
+
24
+ ## Output Formats
25
+
26
+ All commands support `--format` / `-f`:
27
+
28
+ | Format | Use Case |
29
+ | --------- | ----------------------------------- |
30
+ | `md` | Default v2 AgentEnvelope for agents |
31
+ | `json` | Machine parsing / jq |
32
+ | `yaml` | Config-friendly envelope |
33
+ | `csv` | Spreadsheet import |
34
+ | `compact` | Pipe-friendly row stream |
35
+
36
+ ```bash
37
+ unicli hackernews top -f json | jq '.data[0].title'
38
+ unicli hackernews top -f csv > stories.csv
39
+ ```
40
+
41
+ ## Adapter Types
42
+
43
+ | Type | Description | Example |
44
+ | --------- | ------------------------ | -------------------- |
45
+ | `web-api` | REST API calls | hackernews, bilibili |
46
+ | `desktop` | Local desktop software | blender, gimp |
47
+ | `browser` | Full browser automation | xiaohongshu |
48
+ | `bridge` | Existing CLI passthrough | gh, docker |
49
+ | `service` | HTTP services | ollama, comfyui |
50
+
51
+ ## Exit Codes
52
+
53
+ Use exit codes for scripting:
54
+
55
+ ```bash
56
+ unicli hackernews top || echo "exit $?"
57
+ [ $? -eq 77 ] && echo "Login required"
58
+ ```
59
+
60
+ | Code | Meaning |
61
+ | ---- | ------------------- |
62
+ | 0 | Success |
63
+ | 66 | Empty result |
64
+ | 69 | Service unavailable |
65
+ | 77 | Auth required |
@@ -29,5 +29,5 @@ minimum_capability: http.fetch
29
29
  trust: public
30
30
  confidentiality: public
31
31
  quarantine: true
32
- quarantineReason: "requires local AdGuard Home instance on a private host"
32
+ quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
33
33
  schema_version: v2
@@ -30,5 +30,5 @@ minimum_capability: http.fetch
30
30
  trust: public
31
31
  confidentiality: public
32
32
  quarantine: true
33
- quarantineReason: "requires local AdGuard Home instance on a private host"
33
+ quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
34
34
  schema_version: v2
@@ -30,5 +30,5 @@ minimum_capability: http.fetch
30
30
  trust: public
31
31
  confidentiality: public
32
32
  quarantine: true
33
- quarantineReason: "requires local AdGuard Home instance on a private host"
33
+ quarantineReason: "requires local AdGuard Home instance on a private host (quarantined 2026-04-15)"
34
34
  schema_version: v2
@@ -17,8 +17,7 @@ strategy: ui
17
17
  domain: music.apple.com
18
18
  browser: false
19
19
  quarantine: true
20
- quarantineReason: Requires macOS + Apple Music desktop app + a CUA backend
21
-
20
+ quarantineReason: Requires macOS + Apple Music desktop app + a CUA backend (quarantined 2026-04-15)
22
21
  args:
23
22
  stars:
24
23
  type: int
@@ -42,5 +42,5 @@ minimum_capability: http.fetch
42
42
  trust: public
43
43
  confidentiality: public
44
44
  quarantine: true
45
- quarantineReason: "HTTP 400 on empty category — probe fires without required `category` arg default"
45
+ quarantineReason: "HTTP 400 on empty category — probe fires without required `category` arg default (quarantined 2026-04-15)"
46
46
  schema_version: v2
@@ -26,5 +26,5 @@ minimum_capability: subprocess.exec
26
26
  trust: user
27
27
  confidentiality: public
28
28
  quarantine: true
29
- quarantineReason: "`az account show` times out in CI without interactive login"
29
+ quarantineReason: "`az account show` times out in CI without interactive login (quarantined 2026-04-15)"
30
30
  schema_version: v2
@@ -33,5 +33,6 @@ capabilities: ["http.fetch"]
33
33
  minimum_capability: http.fetch
34
34
  trust: public
35
35
  confidentiality: public
36
- quarantine: false
36
+ quarantine: true
37
+ quarantineReason: "www.coupang.com/np/goldbox returns HTTP 403 from public IPs (Cloudflare bot-wall, verified 2026-05-05) — needs cookie strategy with a real browser session"
37
38
  schema_version: v2
@@ -32,5 +32,6 @@ capabilities: ["http.fetch"]
32
32
  minimum_capability: http.fetch
33
33
  trust: public
34
34
  confidentiality: public
35
- quarantine: false
35
+ quarantine: true
36
+ quarantineReason: "m.ctrip.com/restapi/h5api/searchapp/search returns HTTP 502 (verified 2026-05-05); upstream re-architected, no obvious public hot-city replacement endpoint"
36
37
  schema_version: v2
@@ -57,5 +57,6 @@ capabilities: ["http.fetch"]
57
57
  minimum_capability: http.fetch
58
58
  trust: public
59
59
  confidentiality: public
60
- quarantine: false
60
+ quarantine: true
61
+ quarantineReason: "flights.ctrip.com search endpoint now requires CAPTCHA (showAuthCode=true on every public hit, verified 2026-05-05) — needs cookie/UI strategy with anti-bot solve"
61
62
  schema_version: v2
@@ -70,5 +70,5 @@ minimum_capability: cdp-browser.evaluate
70
70
  trust: public
71
71
  confidentiality: public
72
72
  quarantine: true
73
- quarantineReason: "timed out after 8s — upstream slow from hosted runners"
73
+ quarantineReason: "timed out after 8s — upstream slow from hosted runners (quarantined 2026-04-15)"
74
74
  schema_version: v2
@@ -15,8 +15,7 @@ strategy: ui
15
15
  domain: figma.com
16
16
  browser: false
17
17
  quarantine: true
18
- quarantineReason: Requires macOS + Figma desktop app + a CUA backend (ANTHROPIC_API_KEY etc.)
19
-
18
+ quarantineReason: Requires macOS + Figma desktop app + a CUA backend (ANTHROPIC_API_KEY etc.) (quarantined 2026-04-15)
20
19
  args:
21
20
  format:
22
21
  type: str
@@ -24,5 +24,5 @@ minimum_capability: subprocess.exec
24
24
  trust: user
25
25
  confidentiality: public
26
26
  quarantine: true
27
- quarantineReason: "cloud CLI not authenticated in CI; `gcloud auth login` required on host"
27
+ quarantineReason: "cloud CLI not authenticated in CI; `gcloud auth login` required on host (quarantined 2026-04-15)"
28
28
  schema_version: v2
@@ -38,5 +38,5 @@ minimum_capability: http.fetch
38
38
  trust: public
39
39
  confidentiality: public
40
40
  quarantine: true
41
- quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape"
41
+ quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape (quarantined 2026-04-15)"
42
42
  schema_version: v2
@@ -39,5 +39,5 @@ minimum_capability: http.fetch
39
39
  trust: public
40
40
  confidentiality: public
41
41
  quarantine: true
42
- quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape"
42
+ quarantineReason: "HTTP 404 — gitterapp mirror retired, needs official GitHub trending scrape (quarantined 2026-04-15)"
43
43
  schema_version: v2
@@ -15,7 +15,7 @@ pipeline:
15
15
  - fetch:
16
16
  url: "https://formulae.brew.sh/api/formula.json"
17
17
 
18
- - filter: "item.name.includes('${{ args.query }}') || (item.desc || '').toLowerCase().includes('${{ args.query }}'.toLowerCase())"
18
+ - filter: "item.name.toLowerCase().includes(args.query.toLowerCase()) || (item.desc || '').toLowerCase().includes(args.query.toLowerCase())"
19
19
 
20
20
  - map:
21
21
  name: ${{ item.name }}
@@ -36,5 +36,5 @@ minimum_capability: subprocess.exec
36
36
  trust: user
37
37
  confidentiality: public
38
38
  quarantine: true
39
- quarantineReason: "upstream returns HTML instead of JSON — scraping path needed"
39
+ quarantineReason: "upstream returns HTML instead of JSON — scraping path needed (quarantined 2026-04-15)"
40
40
  schema_version: v2
@@ -27,5 +27,5 @@ minimum_capability: http.fetch
27
27
  trust: public
28
28
  confidentiality: public
29
29
  quarantine: true
30
- quarantineReason: "HTTP 404 — itch.io removed the top-rated JSON feed"
30
+ quarantineReason: "HTTP 404 — itch.io removed the top-rated JSON feed (quarantined 2026-04-15)"
31
31
  schema_version: v2
@@ -36,5 +36,5 @@ minimum_capability: http.fetch
36
36
  trust: public
37
37
  confidentiality: public
38
38
  quarantine: true
39
- quarantineReason: "HTTP 404 — itch.io /api/1/x/games endpoint removed"
39
+ quarantineReason: "HTTP 404 — itch.io /api/1/x/games endpoint removed (quarantined 2026-04-15)"
40
40
  schema_version: v2
@@ -38,5 +38,5 @@ minimum_capability: http.fetch
38
38
  trust: public
39
39
  confidentiality: public
40
40
  quarantine: true
41
- quarantineReason: "mastodon.social blocks CI egress; adapter works against user instance"
41
+ quarantineReason: "mastodon.social blocks CI egress; adapter works against user instance (quarantined 2026-04-15)"
42
42
  schema_version: v2
@@ -17,7 +17,7 @@ pipeline:
17
17
 
18
18
  - select: data
19
19
 
20
- - filter: "!('${{ args.query }}') || item.name.toLowerCase().includes('${{ args.query }}'.toLowerCase()) || item.id.toLowerCase().includes('${{ args.query }}'.toLowerCase())"
20
+ - filter: "!args.query || item.name.toLowerCase().includes(args.query.toLowerCase()) || item.id.toLowerCase().includes(args.query.toLowerCase())"
21
21
 
22
22
  - map:
23
23
  id: ${{ item.id }}
@@ -41,5 +41,6 @@ capabilities: ["http.fetch"]
41
41
  minimum_capability: http.fetch
42
42
  trust: public
43
43
  confidentiality: public
44
- quarantine: false
44
+ quarantine: true
45
+ quarantineReason: "pypi.org/search now serves a Fastly bot-wall HTML instead of JSON (verified 2026-05-05); the herokuapp fallback domain is dead — switch to a JSON search backend or render the page through the browser strategy"
45
46
  schema_version: v2
@@ -10,8 +10,11 @@ args:
10
10
  default: 20
11
11
  pipeline:
12
12
  - fetch:
13
- url: "https://sspai.com/api/v1/articles?offset=0&limit=${{ args.limit | default(20) }}&sort=hot"
13
+ url: "https://sspai.com/api/v1/article/index/page/get?offset=0&limit=60"
14
14
  - select: data
15
+ - sort:
16
+ by: like_count
17
+ order: desc
15
18
  - map:
16
19
  title: "${{ item.title }}"
17
20
  author: "${{ item.author.nickname }}"
@@ -10,16 +10,16 @@ args:
10
10
  default: 20
11
11
  pipeline:
12
12
  - fetch:
13
- url: "https://sspai.com/api/v1/articles?offset=0&limit=${{ args.limit | default(20) }}&sort=created_at"
13
+ url: "https://sspai.com/api/v1/article/index/page/get?offset=0&limit=${{ args.limit | default(20) }}"
14
14
  - select: data
15
15
  - map:
16
16
  title: "${{ item.title }}"
17
17
  author: "${{ item.author.nickname }}"
18
18
  likes: "${{ item.like_count }}"
19
+ released_at: "${{ item.released_time | date_iso }}"
19
20
  url: "${{ 'https://sspai.com/post/' + item.id }}"
20
- date: "${{ item.created_at }}"
21
21
  - limit: "${{ args.limit | default(20) }}"
22
- columns: [title, author, likes, url]
22
+ columns: [title, author, likes, released_at, url]
23
23
 
24
24
  # schema-v2 metadata — injected by `unicli migrate schema-v2`
25
25
  capabilities: ["http.fetch"]
@@ -35,5 +35,5 @@ minimum_capability: http.fetch
35
35
  trust: public
36
36
  confidentiality: public
37
37
  quarantine: true
38
- quarantineReason: "upstream returns HTML (anti-bot page) instead of JSON from CI egress"
38
+ quarantineReason: "upstream returns HTML (anti-bot page) instead of JSON from CI egress (quarantined 2026-04-15)"
39
39
  schema_version: v2
@@ -30,5 +30,5 @@ minimum_capability: http.fetch
30
30
  trust: public
31
31
  confidentiality: public
32
32
  quarantine: true
33
- quarantineReason: "wikipedia REST blocks CI egress; adapter works from real user hosts"
33
+ quarantineReason: "wikipedia REST blocks CI egress; adapter works from real user hosts (quarantined 2026-04-15)"
34
34
  schema_version: v2
@@ -10,8 +10,7 @@ binary: osascript
10
10
  detect: Darwin
11
11
  strategy: public
12
12
  quarantine: true
13
- quarantineReason: Requires macOS + zoom.us running with an active meeting
14
-
13
+ quarantineReason: Requires macOS + zoom.us running with an active meeting (quarantined 2026-04-15)
15
14
  pipeline:
16
15
  - ax_focus:
17
16
  app: zoom.us
@@ -1,11 +0,0 @@
1
- /**
2
- * @deprecated since v0.213 — import from ./executor.js (runPipeline,
3
- * PipelineError, assertSafeRequestUrl), ./step-registry.js (registerStep,
4
- * StepHandler), ./template.js (evalExpression, PIPE_FILTERS), or the
5
- * per-step file under ./steps/. This shim is removed in v0.214.
6
- */
7
- export { runPipeline, PipelineError, assertSafeRequestUrl, type PipelineContext, type PipelineOptions, _resetTransportBusForTests } from "./executor.js";
8
- export { registerStep, getStep, listSteps, type StepHandler } from "./step-registry.js";
9
- export { PIPE_FILTERS, evalExpression, buildScope } from "./template.js";
10
- export { stepFetch, stepFetchText, stepParseRss, stepHtmlToMd, stepSelect, stepMap, stepFilter, stepSort, stepLimit, stepExec, stepWriteTemp, stepNavigate, stepEvaluate, stepClick, stepType, stepWaitBrowser, stepIntercept, stepPress, stepScroll, stepSnapshot, stepTap, stepExtract, stepSet, stepAppend, stepIf, stepEach, stepParallel, stepAssert, stepDownload, stepWebsocket, type FetchConfig, type RssConfig, type SortConfig, type ExecConfig, type WriteTempConfig, type NavigateConfig, type EvaluateConfig, type ClickConfig, type TypeConfig, type WaitBrowserConfig, type InterceptConfig, type TapConfig, type ExtractConfig, type AssertConfig, type EachConfig, type DownloadStepConfig } from "./steps/index.js";
11
- //# sourceMappingURL=yaml-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-runner.d.ts","sourceRoot":"","sources":["../../src/engine/yaml-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEzJ,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @deprecated since v0.213 — import from ./executor.js (runPipeline,
3
- * PipelineError, assertSafeRequestUrl), ./step-registry.js (registerStep,
4
- * StepHandler), ./template.js (evalExpression, PIPE_FILTERS), or the
5
- * per-step file under ./steps/. This shim is removed in v0.214.
6
- */
7
- // prettier-ignore
8
- export { runPipeline, PipelineError, assertSafeRequestUrl, _resetTransportBusForTests } from "./executor.js";
9
- // prettier-ignore
10
- export { registerStep, getStep, listSteps } from "./step-registry.js";
11
- // prettier-ignore
12
- export { PIPE_FILTERS, evalExpression, buildScope } from "./template.js";
13
- // prettier-ignore
14
- export { stepFetch, stepFetchText, stepParseRss, stepHtmlToMd, stepSelect, stepMap, stepFilter, stepSort, stepLimit, stepExec, stepWriteTemp, stepNavigate, stepEvaluate, stepClick, stepType, stepWaitBrowser, stepIntercept, stepPress, stepScroll, stepSnapshot, stepTap, stepExtract, stepSet, stepAppend, stepIf, stepEach, stepParallel, stepAssert, stepDownload, stepWebsocket } from "./steps/index.js";
15
- if (process.env.UNICLI_DEBUG === "1") {
16
- process.stderr.write("[unicli] yaml-runner.ts is deprecated; import from ./executor.js or ./steps/\n");
17
- }
18
- //# sourceMappingURL=yaml-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-runner.js","sourceRoot":"","sources":["../../src/engine/yaml-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAA8C,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACzJ,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAoB,MAAM,oBAAoB,CAAC;AACxF,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAwT,MAAM,kBAAkB,CAAC;AACvsB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gFAAgF,CACjF,CAAC;AACJ,CAAC"}