@zenalexa/unicli 0.207.1 → 0.209.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 +4 -4
- package/README.md +30 -17
- package/dist/browser/observe.d.ts +80 -0
- package/dist/browser/observe.d.ts.map +1 -0
- package/dist/browser/observe.js +144 -0
- package/dist/browser/observe.js.map +1 -0
- package/dist/browser/snapshot.d.ts.map +1 -1
- package/dist/browser/snapshot.js +29 -9
- package/dist/browser/snapshot.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +59 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +82 -2
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/eval.d.ts +112 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +485 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +20 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/hub.d.ts +13 -0
- package/dist/commands/hub.d.ts.map +1 -0
- package/dist/commands/hub.js +232 -0
- package/dist/commands/hub.js.map +1 -0
- package/dist/commands/mcp.d.ts +16 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +135 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/operate.d.ts.map +1 -1
- package/dist/commands/operate.js +66 -1
- package/dist/commands/operate.js.map +1 -1
- package/dist/commands/research.d.ts +17 -0
- package/dist/commands/research.d.ts.map +1 -0
- package/dist/commands/research.js +257 -0
- package/dist/commands/research.js.map +1 -0
- package/dist/commands/skills.d.ts +91 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +266 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/test-gen.d.ts +10 -0
- package/dist/commands/test-gen.d.ts.map +1 -0
- package/dist/commands/test-gen.js +124 -0
- package/dist/commands/test-gen.js.map +1 -0
- package/dist/commands/usage.d.ts +17 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +87 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/discovery/loader.d.ts +8 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +103 -6
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/capability.d.ts +40 -0
- package/dist/engine/capability.d.ts.map +1 -0
- package/dist/engine/capability.js +191 -0
- package/dist/engine/capability.js.map +1 -0
- package/dist/engine/endpoint.d.ts +47 -0
- package/dist/engine/endpoint.d.ts.map +1 -0
- package/dist/engine/endpoint.js +295 -0
- package/dist/engine/endpoint.js.map +1 -0
- package/dist/engine/framework.d.ts +28 -0
- package/dist/engine/framework.d.ts.map +1 -0
- package/dist/engine/framework.js +66 -0
- package/dist/engine/framework.js.map +1 -0
- package/dist/engine/probe.d.ts +19 -0
- package/dist/engine/probe.d.ts.map +1 -0
- package/dist/engine/probe.js +85 -0
- package/dist/engine/probe.js.map +1 -0
- package/dist/engine/research.d.ts +38 -0
- package/dist/engine/research.d.ts.map +1 -0
- package/dist/engine/research.js +414 -0
- package/dist/engine/research.js.map +1 -0
- package/dist/engine/update-check.js +1 -1
- package/dist/engine/update-check.js.map +1 -1
- package/dist/engine/yaml-runner.d.ts.map +1 -1
- package/dist/engine/yaml-runner.js +115 -6
- package/dist/engine/yaml-runner.js.map +1 -1
- package/dist/main.d.ts +1 -4
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -4
- package/dist/main.js.map +1 -1
- package/dist/manifest.json +519 -1
- package/dist/mcp/server.d.ts +19 -6
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +459 -115
- package/dist/mcp/server.js.map +1 -1
- package/dist/permissions/sensitive-paths.d.ts +92 -0
- package/dist/permissions/sensitive-paths.d.ts.map +1 -0
- package/dist/permissions/sensitive-paths.js +174 -0
- package/dist/permissions/sensitive-paths.js.map +1 -0
- package/dist/runtime/usage-ledger.d.ts +86 -0
- package/dist/runtime/usage-ledger.d.ts.map +1 -0
- package/dist/runtime/usage-ledger.js +173 -0
- package/dist/runtime/usage-ledger.js.map +1 -0
- package/package.json +8 -7
- package/src/adapters/autoagent/eval-run.yaml +36 -0
- package/src/adapters/cnn/top.yaml +21 -0
- package/src/adapters/cocoapods/search.yaml +16 -0
- package/src/adapters/crates-io/search.yaml +27 -0
- package/src/adapters/cua/bench-list.yaml +20 -0
- package/src/adapters/cua/bench-run.yaml +32 -0
- package/src/adapters/docker-hub/search.yaml +26 -0
- package/src/adapters/eastmoney/hot.yaml +23 -0
- package/src/adapters/eastmoney/search.yaml +25 -0
- package/src/adapters/exchangerate/convert.yaml +19 -0
- package/src/adapters/feishu/calendar.yaml +24 -0
- package/src/adapters/feishu/docs.yaml +17 -0
- package/src/adapters/feishu/send.yaml +29 -0
- package/src/adapters/feishu/tasks.yaml +24 -0
- package/src/adapters/gitee/search.yaml +25 -0
- package/src/adapters/gitee/trending.yaml +22 -0
- package/src/adapters/gitlab/search.yaml +24 -0
- package/src/adapters/gitlab/trending.yaml +22 -0
- package/src/adapters/godot/project-run.yaml +31 -0
- package/src/adapters/godot/scene-export.yaml +39 -0
- package/src/adapters/hermes/sessions-search.yaml +61 -0
- package/src/adapters/hermes/skills-list.yaml +30 -0
- package/src/adapters/hermes/skills-read.yaml +46 -0
- package/src/adapters/homebrew/info.yaml +15 -0
- package/src/adapters/huggingface-papers/daily.yaml +21 -0
- package/src/adapters/infoq/articles.yaml +29 -0
- package/src/adapters/ip-info/lookup.yaml +15 -0
- package/src/adapters/itch-io/popular.yaml +22 -0
- package/src/adapters/ithome/news.yaml +21 -0
- package/src/adapters/mastodon/search.yaml +29 -0
- package/src/adapters/mastodon/trending.yaml +27 -0
- package/src/adapters/meituan/search.yaml +30 -0
- package/src/adapters/minimax/chat.yaml +33 -0
- package/src/adapters/minimax/models.yaml +18 -0
- package/src/adapters/minimax/tts.yaml +33 -0
- package/src/adapters/motion-studio/component-get.yaml +35 -0
- package/src/adapters/netease-music/hot.yaml +24 -0
- package/src/adapters/netease-music/search.yaml +29 -0
- package/src/adapters/npm-trends/compare.yaml +19 -0
- package/src/adapters/nytimes/top.yaml +26 -0
- package/src/adapters/openharness/memory-read.yaml +51 -0
- package/src/adapters/openharness/skills-list.yaml +28 -0
- package/src/adapters/openrouter/models.yaml +22 -0
- package/src/adapters/pexels/search.yaml +28 -0
- package/src/adapters/pinduoduo/hot.yaml +20 -0
- package/src/adapters/pypi/info.yaml +16 -0
- package/src/adapters/qweather/now.yaml +16 -0
- package/src/adapters/renderdoc/capture-list.yaml +42 -0
- package/src/adapters/renderdoc/frame-export.yaml +32 -0
- package/src/adapters/replicate/search.yaml +25 -0
- package/src/adapters/replicate/trending.yaml +22 -0
- package/src/adapters/sspai/hot.yaml +21 -0
- package/src/adapters/sspai/latest.yaml +22 -0
- package/src/adapters/stagehand/wrap-observe.yaml +42 -0
- package/src/adapters/techcrunch/latest.yaml +22 -0
- package/src/adapters/theverge/latest.yaml +21 -0
- package/src/adapters/twitch/top.yaml +26 -0
- package/src/adapters/unsplash/search.yaml +28 -0
- package/src/adapters/ycombinator/launches.yaml +20 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
site: qweather
|
|
2
|
+
name: now
|
|
3
|
+
description: Current weather from QWeather (和风天气, free tier)
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: devapi.qweather.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
location:
|
|
9
|
+
required: true
|
|
10
|
+
positional: true
|
|
11
|
+
description: Location ID or coordinates (e.g. "101010100" for Beijing)
|
|
12
|
+
pipeline:
|
|
13
|
+
- fetch:
|
|
14
|
+
url: "https://devapi.qweather.com/v7/weather/now?location=${{ args.location }}&key=${{ env.QWEATHER_KEY | default('') }}"
|
|
15
|
+
- select: now
|
|
16
|
+
columns: [temp, feelsLike, text, windDir, windSpeed, humidity, pressure]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# RenderDoc capture/list — enumerate captures in a directory.
|
|
2
|
+
#
|
|
3
|
+
# Security: `args.dir` is passed via UNICLI_DIR env var (bash literal). There's
|
|
4
|
+
# no attempt to block absolute paths — this is a local directory lister and
|
|
5
|
+
# the user is free to list anywhere they have read access to. The sensitive-
|
|
6
|
+
# path deny list in src/permissions/sensitive-paths.ts does not apply here
|
|
7
|
+
# because we're listing, not reading, and credential directories are allowed
|
|
8
|
+
# to be *listed* by name (the deny list blocks read/exec of credential files).
|
|
9
|
+
site: renderdoc
|
|
10
|
+
name: capture/list
|
|
11
|
+
description: List RenderDoc capture files (.rdc) in a directory
|
|
12
|
+
type: desktop
|
|
13
|
+
strategy: public
|
|
14
|
+
binary: sh
|
|
15
|
+
detect: which renderdoccmd
|
|
16
|
+
|
|
17
|
+
args:
|
|
18
|
+
dir:
|
|
19
|
+
type: str
|
|
20
|
+
required: false
|
|
21
|
+
default: ./captures
|
|
22
|
+
description: Capture directory (defaults to ./captures)
|
|
23
|
+
|
|
24
|
+
pipeline:
|
|
25
|
+
- exec:
|
|
26
|
+
command: sh
|
|
27
|
+
args:
|
|
28
|
+
- -c
|
|
29
|
+
- |
|
|
30
|
+
dir="${UNICLI_DIR:-./captures}"
|
|
31
|
+
if [ ! -d "$dir" ]; then
|
|
32
|
+
echo "[]"
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
find "$dir" -maxdepth 1 -name '*.rdc' -type f 2>/dev/null \
|
|
36
|
+
| sed "s|$dir/||" \
|
|
37
|
+
| jq -R -s 'split("\n") | map(select(length > 0)) | map({name: .})'
|
|
38
|
+
env:
|
|
39
|
+
UNICLI_DIR: "${{ args.dir }}"
|
|
40
|
+
parse: json
|
|
41
|
+
|
|
42
|
+
columns: [name]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# RenderDoc frame/export — convert one capture's first frame to image via renderdoccmd.
|
|
2
|
+
site: renderdoc
|
|
3
|
+
name: frame/export
|
|
4
|
+
description: Export the first frame from a RenderDoc capture (.rdc) as an image
|
|
5
|
+
type: desktop
|
|
6
|
+
strategy: public
|
|
7
|
+
binary: renderdoccmd
|
|
8
|
+
detect: which renderdoccmd
|
|
9
|
+
|
|
10
|
+
args:
|
|
11
|
+
capture:
|
|
12
|
+
type: str
|
|
13
|
+
required: true
|
|
14
|
+
positional: true
|
|
15
|
+
description: Path to .rdc capture file
|
|
16
|
+
output:
|
|
17
|
+
type: str
|
|
18
|
+
required: true
|
|
19
|
+
description: Output image path (.png recommended)
|
|
20
|
+
|
|
21
|
+
pipeline:
|
|
22
|
+
- exec:
|
|
23
|
+
command: renderdoccmd
|
|
24
|
+
args:
|
|
25
|
+
- thumb
|
|
26
|
+
- ${{ args.capture }}
|
|
27
|
+
- --out
|
|
28
|
+
- ${{ args.output }}
|
|
29
|
+
parse: text
|
|
30
|
+
timeout: 60000
|
|
31
|
+
|
|
32
|
+
columns: [output]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
site: replicate
|
|
2
|
+
name: search
|
|
3
|
+
description: Search AI models on Replicate
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: replicate.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
query:
|
|
9
|
+
required: true
|
|
10
|
+
positional: true
|
|
11
|
+
description: Model search query
|
|
12
|
+
limit:
|
|
13
|
+
required: false
|
|
14
|
+
default: 20
|
|
15
|
+
pipeline:
|
|
16
|
+
- fetch:
|
|
17
|
+
url: "https://replicate.com/api/v1/models?query=${{ args.query }}"
|
|
18
|
+
- select: results
|
|
19
|
+
- map:
|
|
20
|
+
name: "${{ item.name }}"
|
|
21
|
+
owner: "${{ item.owner }}"
|
|
22
|
+
description: "${{ item.description }}"
|
|
23
|
+
run_count: "${{ item.run_count }}"
|
|
24
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
25
|
+
columns: [name, owner, description, run_count]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
site: replicate
|
|
2
|
+
name: trending
|
|
3
|
+
description: Trending AI models on Replicate
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: replicate.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch:
|
|
13
|
+
url: "https://replicate.com/api/v1/collections/trending-models"
|
|
14
|
+
- select: models
|
|
15
|
+
- map:
|
|
16
|
+
name: "${{ item.name }}"
|
|
17
|
+
owner: "${{ item.owner }}"
|
|
18
|
+
description: "${{ item.description }}"
|
|
19
|
+
run_count: "${{ item.run_count }}"
|
|
20
|
+
url: "${{ item.url }}"
|
|
21
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
22
|
+
columns: [name, owner, description, run_count]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
site: sspai
|
|
2
|
+
name: hot
|
|
3
|
+
description: Hot/trending articles on Sspai (少数派)
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: sspai.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch:
|
|
13
|
+
url: "https://sspai.com/api/v1/articles?offset=0&limit=${{ args.limit | default(20) }}&sort=hot"
|
|
14
|
+
- select: data
|
|
15
|
+
- map:
|
|
16
|
+
title: "${{ item.title }}"
|
|
17
|
+
author: "${{ item.author.nickname }}"
|
|
18
|
+
likes: "${{ item.like_count }}"
|
|
19
|
+
url: "${{ 'https://sspai.com/post/' + item.id }}"
|
|
20
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
21
|
+
columns: [title, author, likes, url]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
site: sspai
|
|
2
|
+
name: latest
|
|
3
|
+
description: Latest articles on Sspai (少数派)
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: sspai.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch:
|
|
13
|
+
url: "https://sspai.com/api/v1/articles?offset=0&limit=${{ args.limit | default(20) }}&sort=created_at"
|
|
14
|
+
- select: data
|
|
15
|
+
- map:
|
|
16
|
+
title: "${{ item.title }}"
|
|
17
|
+
author: "${{ item.author.nickname }}"
|
|
18
|
+
likes: "${{ item.like_count }}"
|
|
19
|
+
url: "${{ 'https://sspai.com/post/' + item.id }}"
|
|
20
|
+
date: "${{ item.created_at }}"
|
|
21
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
22
|
+
columns: [title, author, likes, url]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Stagehand wrap/observe — subprocess wrapper around stagehand-cli.
|
|
2
|
+
#
|
|
3
|
+
# Stagehand exposes a vision-grounded `observe()` verb. This adapter shells
|
|
4
|
+
# out to it (if installed) and parses the JSON candidates the same way
|
|
5
|
+
# `unicli operate observe` does. The wrapper exists so users on Uni-CLI's
|
|
6
|
+
# declarative pipelines can tap Stagehand without porting a full LLM stack.
|
|
7
|
+
site: stagehand
|
|
8
|
+
name: wrap/observe
|
|
9
|
+
description: Run Stagehand's observe() verb against an open page (subprocess wrapper)
|
|
10
|
+
type: bridge
|
|
11
|
+
strategy: public
|
|
12
|
+
binary: stagehand
|
|
13
|
+
detect: which stagehand
|
|
14
|
+
|
|
15
|
+
args:
|
|
16
|
+
query:
|
|
17
|
+
type: str
|
|
18
|
+
required: true
|
|
19
|
+
positional: true
|
|
20
|
+
description: Natural-language goal (what should I click to do X?)
|
|
21
|
+
url:
|
|
22
|
+
type: str
|
|
23
|
+
required: false
|
|
24
|
+
description: URL to navigate to before observing
|
|
25
|
+
top_k:
|
|
26
|
+
type: int
|
|
27
|
+
default: 5
|
|
28
|
+
description: Max candidates
|
|
29
|
+
|
|
30
|
+
pipeline:
|
|
31
|
+
- exec:
|
|
32
|
+
command: stagehand
|
|
33
|
+
args:
|
|
34
|
+
- observe
|
|
35
|
+
- --query
|
|
36
|
+
- ${{ args.query }}
|
|
37
|
+
- --top-k
|
|
38
|
+
- ${{ args.top_k }}
|
|
39
|
+
parse: json
|
|
40
|
+
timeout: 60000
|
|
41
|
+
|
|
42
|
+
columns: [action, ref, selector, confidence]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
site: techcrunch
|
|
2
|
+
name: latest
|
|
3
|
+
description: Latest TechCrunch articles via RSS
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: techcrunch.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch_text:
|
|
13
|
+
url: "https://techcrunch.com/feed/"
|
|
14
|
+
- parse_rss: ~
|
|
15
|
+
- map:
|
|
16
|
+
title: "${{ item.title }}"
|
|
17
|
+
url: "${{ item.link }}"
|
|
18
|
+
author: "${{ item.creator }}"
|
|
19
|
+
date: "${{ item.pubDate }}"
|
|
20
|
+
description: "${{ item.contentSnippet }}"
|
|
21
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
22
|
+
columns: [title, url, author, date]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
site: theverge
|
|
2
|
+
name: latest
|
|
3
|
+
description: Latest The Verge articles via RSS
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: theverge.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch_text:
|
|
13
|
+
url: "https://www.theverge.com/rss/index.xml"
|
|
14
|
+
- parse_rss: ~
|
|
15
|
+
- map:
|
|
16
|
+
title: "${{ item.title }}"
|
|
17
|
+
url: "${{ item.link }}"
|
|
18
|
+
author: "${{ item.creator }}"
|
|
19
|
+
date: "${{ item.pubDate }}"
|
|
20
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
21
|
+
columns: [title, url, author, date]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
site: twitch
|
|
2
|
+
name: top
|
|
3
|
+
description: Top live streams on Twitch via GQL public endpoint
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: gql.twitch.tv
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch:
|
|
13
|
+
url: "https://gql.twitch.tv/gql"
|
|
14
|
+
method: POST
|
|
15
|
+
headers:
|
|
16
|
+
Client-Id: "kimne78kx3ncx6brgo4mv6wki5h1ko"
|
|
17
|
+
body:
|
|
18
|
+
query: "query { streams(first: ${{ args.limit | default(20) }}) { edges { node { broadcaster { displayName login } title viewersCount game { name } } } } }"
|
|
19
|
+
- select: data.streams.edges
|
|
20
|
+
- map:
|
|
21
|
+
streamer: "${{ item.node.broadcaster.displayName }}"
|
|
22
|
+
title: "${{ item.node.title }}"
|
|
23
|
+
viewers: "${{ item.node.viewersCount }}"
|
|
24
|
+
game: "${{ item.node.game.name }}"
|
|
25
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
26
|
+
columns: [streamer, title, viewers, game]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
site: unsplash
|
|
2
|
+
name: search
|
|
3
|
+
description: Search free photos on Unsplash
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: unsplash.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
query:
|
|
9
|
+
required: true
|
|
10
|
+
positional: true
|
|
11
|
+
description: Photo search query
|
|
12
|
+
limit:
|
|
13
|
+
required: false
|
|
14
|
+
default: 20
|
|
15
|
+
pipeline:
|
|
16
|
+
- fetch:
|
|
17
|
+
url: "https://unsplash.com/napi/search/photos?query=${{ args.query }}&per_page=${{ args.limit | default(20) }}"
|
|
18
|
+
- select: results
|
|
19
|
+
- map:
|
|
20
|
+
description: "${{ item.description || item.alt_description }}"
|
|
21
|
+
author: "${{ item.user.name }}"
|
|
22
|
+
url: "${{ item.urls.regular }}"
|
|
23
|
+
download: "${{ item.links.download }}"
|
|
24
|
+
likes: "${{ item.likes }}"
|
|
25
|
+
width: "${{ item.width }}"
|
|
26
|
+
height: "${{ item.height }}"
|
|
27
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
28
|
+
columns: [description, author, url, likes]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
site: ycombinator
|
|
2
|
+
name: launches
|
|
3
|
+
description: Latest YC company launches
|
|
4
|
+
type: web-api
|
|
5
|
+
domain: www.ycombinator.com
|
|
6
|
+
strategy: public
|
|
7
|
+
args:
|
|
8
|
+
limit:
|
|
9
|
+
required: false
|
|
10
|
+
default: 20
|
|
11
|
+
pipeline:
|
|
12
|
+
- fetch:
|
|
13
|
+
url: "https://www.ycombinator.com/launches.json"
|
|
14
|
+
- map:
|
|
15
|
+
name: "${{ item.name }}"
|
|
16
|
+
tagline: "${{ item.tagline }}"
|
|
17
|
+
url: "${{ item.url }}"
|
|
18
|
+
batch: "${{ item.batch }}"
|
|
19
|
+
- limit: "${{ args.limit | default(20) }}"
|
|
20
|
+
columns: [name, tagline, url, batch]
|