scoutline 0.22.0 → 0.23.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/README.md +60 -26
- package/dist/capabilities/search.d.ts +18 -4
- package/dist/capabilities/search.d.ts.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +14 -5
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/crawl.d.ts.map +1 -1
- package/dist/commands/crawl.js +2 -1
- package/dist/commands/crawl.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +42 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +42 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/map.d.ts.map +1 -1
- package/dist/commands/map.js +2 -1
- package/dist/commands/map.js.map +1 -1
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +2 -2
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +2 -1
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.js +1 -1
- package/dist/commands/research.d.ts.map +1 -1
- package/dist/commands/research.js +2 -1
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/search.d.ts +54 -6
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +273 -25
- package/dist/commands/search.js.map +1 -1
- package/dist/index.d.ts +72 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +364 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/code-mode.d.ts +12 -0
- package/dist/lib/code-mode.d.ts.map +1 -1
- package/dist/lib/code-mode.js +18 -10
- package/dist/lib/code-mode.js.map +1 -1
- package/dist/lib/config-store.d.ts +45 -1
- package/dist/lib/config-store.d.ts.map +1 -1
- package/dist/lib/config-store.js +70 -1
- package/dist/lib/config-store.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +5 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +7 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +8 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/execution.d.ts +14 -5
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +25 -6
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/mcp-client.d.ts +7 -0
- package/dist/lib/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp-client.js +11 -1
- package/dist/lib/mcp-client.js.map +1 -1
- package/dist/lib/parse-zoned-instant.d.ts +13 -0
- package/dist/lib/parse-zoned-instant.d.ts.map +1 -0
- package/dist/lib/parse-zoned-instant.js +17 -0
- package/dist/lib/parse-zoned-instant.js.map +1 -0
- package/dist/lib/quota-mapping.d.ts +4 -2
- package/dist/lib/quota-mapping.d.ts.map +1 -1
- package/dist/lib/quota-mapping.js +25 -2
- package/dist/lib/quota-mapping.js.map +1 -1
- package/dist/lib/redact.d.ts +3 -2
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +90 -24
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/timeout.d.ts +28 -0
- package/dist/lib/timeout.d.ts.map +1 -0
- package/dist/lib/timeout.js +30 -0
- package/dist/lib/timeout.js.map +1 -0
- package/dist/lib/url.d.ts +10 -4
- package/dist/lib/url.d.ts.map +1 -1
- package/dist/lib/url.js +21 -6
- package/dist/lib/url.js.map +1 -1
- package/dist/providers/arxiv/client.d.ts +4 -1
- package/dist/providers/arxiv/client.d.ts.map +1 -1
- package/dist/providers/arxiv/client.js +11 -3
- package/dist/providers/arxiv/client.js.map +1 -1
- package/dist/providers/bocha/adapter.d.ts +43 -0
- package/dist/providers/bocha/adapter.d.ts.map +1 -0
- package/dist/providers/bocha/adapter.js +197 -0
- package/dist/providers/bocha/adapter.js.map +1 -0
- package/dist/providers/bocha/client.d.ts +51 -0
- package/dist/providers/bocha/client.d.ts.map +1 -0
- package/dist/providers/bocha/client.js +104 -0
- package/dist/providers/bocha/client.js.map +1 -0
- package/dist/providers/bocha/credentials.d.ts +12 -0
- package/dist/providers/bocha/credentials.d.ts.map +1 -0
- package/dist/providers/bocha/credentials.js +29 -0
- package/dist/providers/bocha/credentials.js.map +1 -0
- package/dist/providers/bocha/diagnostics.d.ts +17 -0
- package/dist/providers/bocha/diagnostics.d.ts.map +1 -0
- package/dist/providers/bocha/diagnostics.js +33 -0
- package/dist/providers/bocha/diagnostics.js.map +1 -0
- package/dist/providers/brave/adapter.d.ts.map +1 -1
- package/dist/providers/brave/adapter.js +4 -3
- package/dist/providers/brave/adapter.js.map +1 -1
- package/dist/providers/brave/client.d.ts +1 -0
- package/dist/providers/brave/client.d.ts.map +1 -1
- package/dist/providers/brave/client.js +4 -6
- package/dist/providers/brave/client.js.map +1 -1
- package/dist/providers/brave/credentials.d.ts +2 -0
- package/dist/providers/brave/credentials.d.ts.map +1 -1
- package/dist/providers/brave/credentials.js +2 -0
- package/dist/providers/brave/credentials.js.map +1 -1
- package/dist/providers/catalog.d.ts +34 -0
- package/dist/providers/catalog.d.ts.map +1 -0
- package/dist/providers/catalog.js +57 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/crossref/adapter.js +2 -2
- package/dist/providers/crossref/adapter.js.map +1 -1
- package/dist/providers/crossref/client.d.ts +4 -1
- package/dist/providers/crossref/client.d.ts.map +1 -1
- package/dist/providers/crossref/client.js +11 -3
- package/dist/providers/crossref/client.js.map +1 -1
- package/dist/providers/crossref/diagnostics.d.ts +1 -1
- package/dist/providers/crossref/diagnostics.js +1 -1
- package/dist/providers/crossref/diagnostics.js.map +1 -1
- package/dist/providers/europepmc/adapter.js +2 -2
- package/dist/providers/europepmc/adapter.js.map +1 -1
- package/dist/providers/europepmc/client.d.ts +4 -1
- package/dist/providers/europepmc/client.d.ts.map +1 -1
- package/dist/providers/europepmc/client.js +11 -3
- package/dist/providers/europepmc/client.js.map +1 -1
- package/dist/providers/exa/client.d.ts +1 -0
- package/dist/providers/exa/client.d.ts.map +1 -1
- package/dist/providers/exa/client.js +3 -2
- package/dist/providers/exa/client.js.map +1 -1
- package/dist/providers/exa/credentials.d.ts +2 -0
- package/dist/providers/exa/credentials.d.ts.map +1 -1
- package/dist/providers/exa/credentials.js +2 -0
- package/dist/providers/exa/credentials.js.map +1 -1
- package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
- package/dist/providers/firecrawl/adapter.js +2 -1
- package/dist/providers/firecrawl/adapter.js.map +1 -1
- package/dist/providers/firecrawl/client.d.ts +1 -0
- package/dist/providers/firecrawl/client.d.ts.map +1 -1
- package/dist/providers/firecrawl/client.js +3 -2
- package/dist/providers/firecrawl/client.js.map +1 -1
- package/dist/providers/firecrawl/credentials.d.ts +2 -0
- package/dist/providers/firecrawl/credentials.d.ts.map +1 -1
- package/dist/providers/firecrawl/credentials.js +2 -0
- package/dist/providers/firecrawl/credentials.js.map +1 -1
- package/dist/providers/firecrawl/quota.d.ts.map +1 -1
- package/dist/providers/firecrawl/quota.js +5 -2
- package/dist/providers/firecrawl/quota.js.map +1 -1
- package/dist/providers/jina/adapter.d.ts.map +1 -1
- package/dist/providers/jina/adapter.js +6 -4
- package/dist/providers/jina/adapter.js.map +1 -1
- package/dist/providers/jina/client.d.ts +2 -0
- package/dist/providers/jina/client.d.ts.map +1 -1
- package/dist/providers/jina/client.js +6 -5
- package/dist/providers/jina/client.js.map +1 -1
- package/dist/providers/jina/credentials.d.ts +2 -0
- package/dist/providers/jina/credentials.d.ts.map +1 -1
- package/dist/providers/jina/credentials.js +2 -0
- package/dist/providers/jina/credentials.js.map +1 -1
- package/dist/providers/kagi/adapter.d.ts +44 -0
- package/dist/providers/kagi/adapter.d.ts.map +1 -0
- package/dist/providers/kagi/adapter.js +188 -0
- package/dist/providers/kagi/adapter.js.map +1 -0
- package/dist/providers/kagi/client.d.ts +41 -0
- package/dist/providers/kagi/client.d.ts.map +1 -0
- package/dist/providers/kagi/client.js +100 -0
- package/dist/providers/kagi/client.js.map +1 -0
- package/dist/providers/kagi/credentials.d.ts +15 -0
- package/dist/providers/kagi/credentials.d.ts.map +1 -0
- package/dist/providers/kagi/credentials.js +35 -0
- package/dist/providers/kagi/credentials.js.map +1 -0
- package/dist/providers/kagi/diagnostics.d.ts +17 -0
- package/dist/providers/kagi/diagnostics.d.ts.map +1 -0
- package/dist/providers/kagi/diagnostics.js +33 -0
- package/dist/providers/kagi/diagnostics.js.map +1 -0
- package/dist/providers/linkup/client.d.ts +1 -0
- package/dist/providers/linkup/client.d.ts.map +1 -1
- package/dist/providers/linkup/client.js +3 -2
- package/dist/providers/linkup/client.js.map +1 -1
- package/dist/providers/linkup/credentials.d.ts +2 -0
- package/dist/providers/linkup/credentials.d.ts.map +1 -1
- package/dist/providers/linkup/credentials.js +2 -0
- package/dist/providers/linkup/credentials.js.map +1 -1
- package/dist/providers/minimax/adapter.d.ts.map +1 -1
- package/dist/providers/minimax/adapter.js +2 -2
- package/dist/providers/minimax/adapter.js.map +1 -1
- package/dist/providers/minimax/coding-plan-client.d.ts +1 -0
- package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -1
- package/dist/providers/minimax/coding-plan-client.js +3 -2
- package/dist/providers/minimax/coding-plan-client.js.map +1 -1
- package/dist/providers/minimax/quota-client.d.ts +1 -0
- package/dist/providers/minimax/quota-client.d.ts.map +1 -1
- package/dist/providers/minimax/quota-client.js +3 -2
- package/dist/providers/minimax/quota-client.js.map +1 -1
- package/dist/providers/openalex/client.d.ts +2 -0
- package/dist/providers/openalex/client.d.ts.map +1 -1
- package/dist/providers/openalex/client.js +10 -3
- package/dist/providers/openalex/client.js.map +1 -1
- package/dist/providers/openalex/diagnostics.d.ts +1 -1
- package/dist/providers/openalex/diagnostics.js +1 -1
- package/dist/providers/openalex/diagnostics.js.map +1 -1
- package/dist/providers/parallel/client.d.ts +1 -0
- package/dist/providers/parallel/client.d.ts.map +1 -1
- package/dist/providers/parallel/client.js +3 -2
- package/dist/providers/parallel/client.js.map +1 -1
- package/dist/providers/parallel/credentials.d.ts +2 -0
- package/dist/providers/parallel/credentials.d.ts.map +1 -1
- package/dist/providers/parallel/credentials.js +2 -0
- package/dist/providers/parallel/credentials.js.map +1 -1
- package/dist/providers/perplexity/client.d.ts +2 -0
- package/dist/providers/perplexity/client.d.ts.map +1 -1
- package/dist/providers/perplexity/client.js +5 -4
- package/dist/providers/perplexity/client.js.map +1 -1
- package/dist/providers/perplexity/credentials.d.ts +2 -0
- package/dist/providers/perplexity/credentials.d.ts.map +1 -1
- package/dist/providers/perplexity/credentials.js +2 -0
- package/dist/providers/perplexity/credentials.js.map +1 -1
- package/dist/providers/pubmed/client.d.ts +2 -0
- package/dist/providers/pubmed/client.d.ts.map +1 -1
- package/dist/providers/pubmed/client.js +10 -3
- package/dist/providers/pubmed/client.js.map +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +6 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/searchapi/adapter.d.ts +54 -0
- package/dist/providers/searchapi/adapter.d.ts.map +1 -0
- package/dist/providers/searchapi/adapter.js +310 -0
- package/dist/providers/searchapi/adapter.js.map +1 -0
- package/dist/providers/searchapi/client.d.ts +73 -0
- package/dist/providers/searchapi/client.d.ts.map +1 -0
- package/dist/providers/searchapi/client.js +196 -0
- package/dist/providers/searchapi/client.js.map +1 -0
- package/dist/providers/searchapi/credentials.d.ts +46 -0
- package/dist/providers/searchapi/credentials.d.ts.map +1 -0
- package/dist/providers/searchapi/credentials.js +71 -0
- package/dist/providers/searchapi/credentials.js.map +1 -0
- package/dist/providers/searchapi/diagnostics.d.ts +48 -0
- package/dist/providers/searchapi/diagnostics.d.ts.map +1 -0
- package/dist/providers/searchapi/diagnostics.js +70 -0
- package/dist/providers/searchapi/diagnostics.js.map +1 -0
- package/dist/providers/searchapi/quota.d.ts +60 -0
- package/dist/providers/searchapi/quota.d.ts.map +1 -0
- package/dist/providers/searchapi/quota.js +125 -0
- package/dist/providers/searchapi/quota.js.map +1 -0
- package/dist/providers/spider/client.d.ts +2 -0
- package/dist/providers/spider/client.d.ts.map +1 -1
- package/dist/providers/spider/client.js +16 -6
- package/dist/providers/spider/client.js.map +1 -1
- package/dist/providers/spider/credentials.d.ts +2 -0
- package/dist/providers/spider/credentials.d.ts.map +1 -1
- package/dist/providers/spider/credentials.js +2 -0
- package/dist/providers/spider/credentials.js.map +1 -1
- package/dist/providers/tavily/client.d.ts +1 -0
- package/dist/providers/tavily/client.d.ts.map +1 -1
- package/dist/providers/tavily/client.js +3 -2
- package/dist/providers/tavily/client.js.map +1 -1
- package/dist/providers/tavily/credentials.d.ts +2 -0
- package/dist/providers/tavily/credentials.d.ts.map +1 -1
- package/dist/providers/tavily/credentials.js +2 -0
- package/dist/providers/tavily/credentials.js.map +1 -1
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/you/client.d.ts +4 -0
- package/dist/providers/you/client.d.ts.map +1 -1
- package/dist/providers/you/client.js +4 -5
- package/dist/providers/you/client.js.map +1 -1
- package/dist/providers/you/credentials.d.ts +2 -0
- package/dist/providers/you/credentials.d.ts.map +1 -1
- package/dist/providers/you/credentials.js +3 -3
- package/dist/providers/you/credentials.js.map +1 -1
- package/dist/providers/zai/adapter.d.ts.map +1 -1
- package/dist/providers/zai/adapter.js +2 -1
- package/dist/providers/zai/adapter.js.map +1 -1
- package/dist/providers/zai/credentials.d.ts +2 -0
- package/dist/providers/zai/credentials.d.ts.map +1 -1
- package/dist/providers/zai/credentials.js +2 -0
- package/dist/providers/zai/credentials.js.map +1 -1
- package/dist/providers/zai/monitor-client.d.ts +1 -0
- package/dist/providers/zai/monitor-client.d.ts.map +1 -1
- package/dist/providers/zai/monitor-client.js +3 -2
- package/dist/providers/zai/monitor-client.js.map +1 -1
- package/dist/providers/zai/quota.d.ts +4 -0
- package/dist/providers/zai/quota.d.ts.map +1 -1
- package/dist/providers/zai/quota.js +16 -1
- package/dist/providers/zai/quota.js.map +1 -1
- package/package.json +1 -1
- package/skills/scoutline/SKILL.md +93 -45
- package/skills/scoutline/references/advanced.md +12 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
name: scoutline
|
|
3
3
|
description: |
|
|
4
4
|
Z.AI, MiniMax, Tavily, Exa, Brave, Firecrawl, Parallel AI, Perplexity, Jina AI, You.com,
|
|
5
|
-
Linkup,
|
|
6
|
-
filters), reading pages to markdown, evidentiary HTTP fetch with
|
|
7
|
-
Wayback archive lookups and snapshot-vs-live diffing, keyless page
|
|
8
|
-
image/video vision analysis, multi-page site crawls, URL-set mapping, deep
|
|
9
|
-
with citations, GitHub repo exploration, and raw MCP tool calls. Select per
|
|
10
|
-
with --provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|
|
|
11
|
-
you|linkup|spider>; always-on provider fallback reroutes to
|
|
12
|
-
supplier when one is unavailable.
|
|
5
|
+
Linkup, Spider.cloud, Bocha AI, SearchApi, and Kagi CLI for: web search (multi-provider,
|
|
6
|
+
domain/recency/topic filters), reading pages to markdown, evidentiary HTTP fetch with
|
|
7
|
+
MD5/SHA-256 digests, Wayback archive lookups and snapshot-vs-live diffing, keyless page
|
|
8
|
+
monitoring, image/video vision analysis, multi-page site crawls, URL-set mapping, deep
|
|
9
|
+
research with citations, GitHub repo exploration, and raw MCP tool calls. Select per
|
|
10
|
+
command with --provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|
|
|
11
|
+
jina|you|linkup|spider|bocha|searchapi|kagi>; always-on provider fallback reroutes to
|
|
12
|
+
the next configured supplier when one is unavailable.
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# Scoutline
|
|
16
16
|
|
|
17
17
|
Access Z.AI, MiniMax, Tavily, Exa, Brave, Firecrawl, Parallel AI, Perplexity, Jina AI, You.com,
|
|
18
|
-
Linkup,
|
|
18
|
+
Linkup, Spider.cloud, Bocha AI, SearchApi, and Kagi capabilities via `scoutline`. The
|
|
19
19
|
CLI is self-documenting — use `--help` at any level.
|
|
20
20
|
|
|
21
21
|
## Setup
|
|
@@ -56,6 +56,15 @@ export LINKUP_API_KEY="your-linkup-key"
|
|
|
56
56
|
|
|
57
57
|
# OR Spider.cloud (Search, Reader, Crawl, Map)
|
|
58
58
|
export SPIDER_API_KEY="your-spider-key"
|
|
59
|
+
|
|
60
|
+
# OR Bocha AI (Search)
|
|
61
|
+
export BOCHA_API_KEY="your-bocha-key"
|
|
62
|
+
|
|
63
|
+
# OR SearchApi (Search, Quota)
|
|
64
|
+
export SEARCHAPI_API_KEY="your-searchapi-key"
|
|
65
|
+
|
|
66
|
+
# OR Kagi (Search)
|
|
67
|
+
export KAGI_API_KEY="your-kagi-key"
|
|
59
68
|
```
|
|
60
69
|
|
|
61
70
|
Get a Z.AI key at: https://z.ai/manage-apikey/apikey-list
|
|
@@ -70,6 +79,9 @@ Get a Jina AI key at: https://jina.ai
|
|
|
70
79
|
Get a You.com key at: https://you.com/api
|
|
71
80
|
Get a Linkup key at: https://app.linkup.so
|
|
72
81
|
Get a Spider.cloud key at: https://spider.cloud
|
|
82
|
+
Get a Bocha AI key at: https://open.bochaai.com
|
|
83
|
+
Get a SearchApi key at: https://www.searchapi.io
|
|
84
|
+
Get a Kagi key at: https://kagi.com/settings/api
|
|
73
85
|
|
|
74
86
|
### Interactive onboarding (`scoutline init`)
|
|
75
87
|
|
|
@@ -101,7 +113,7 @@ or env vars; API keys never belong in command arguments.
|
|
|
101
113
|
|
|
102
114
|
Shared commands (`search`, `vision analyze`, `quota`, `doctor`),
|
|
103
115
|
**`repo`**, **`read`**, **`crawl`**, **`map`**, and **`research`**
|
|
104
|
-
accept the global `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider>` flag. Precedence
|
|
116
|
+
accept the global `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider|bocha|searchapi|kagi>` flag. Precedence
|
|
105
117
|
is the flag, then the `SCOUTLINE_PROVIDER` environment variable, then
|
|
106
118
|
the default `zai`. Provider selection is never inferred from
|
|
107
119
|
credentials. Unknown values fail fast with `VALIDATION_ERROR`.
|
|
@@ -110,12 +122,13 @@ credentials. Unknown values fail fast with `VALIDATION_ERROR`.
|
|
|
110
122
|
remain Z.AI-only.
|
|
111
123
|
|
|
112
124
|
Capability coverage at launch (generated from the production registry
|
|
113
|
-
in registry order `[zai, minimax, tavily, exa, brave, firecrawl, parallel, perplexity, jina, you, linkup, spider]`):
|
|
125
|
+
in registry order `[zai, minimax, tavily, exa, brave, firecrawl, parallel, perplexity, jina, you, linkup, spider, bocha, searchapi, kagi]`):
|
|
114
126
|
|
|
115
127
|
- `search` — Z.AI, MiniMax, Tavily, Exa, Brave, Firecrawl, Parallel AI,
|
|
116
|
-
Perplexity, Jina AI, You.com, Linkup,
|
|
117
|
-
control honored by every Provider
|
|
118
|
-
is `--topic <general|news|finance
|
|
128
|
+
Perplexity, Jina AI, You.com, Linkup, Spider.cloud, Bocha AI, SearchApi,
|
|
129
|
+
and Kagi. The only search control honored by every Provider
|
|
130
|
+
is `--topic <general|news|finance>` (Firecrawl rejects the `finance`
|
|
131
|
+
value, so option-level fallback retries it on the next candidate).
|
|
119
132
|
Brave is the only Provider that accepts `--type video`; every other
|
|
120
133
|
Provider rejects `controls.type` as `UnsupportedOptionError` so
|
|
121
134
|
option-level fallback continues to Brave.
|
|
@@ -125,13 +138,15 @@ in registry order `[zai, minimax, tavily, exa, brave, firecrawl, parallel, perpl
|
|
|
125
138
|
conformance registry.
|
|
126
139
|
- `quota` — Z.AI, MiniMax, Tavily, Firecrawl (credits), Brave
|
|
127
140
|
(rate-limit window), Jina AI (rate-limit telemetry), Linkup and
|
|
128
|
-
Spider.cloud (credit balance, limit unknown)
|
|
129
|
-
Perplexity,
|
|
141
|
+
Spider.cloud (credit balance, limit unknown), and SearchApi (credits).
|
|
142
|
+
Exa, Parallel AI, Perplexity, You.com, Bocha AI, and Kagi do not
|
|
143
|
+
advertise quota.
|
|
130
144
|
- `diagnostics` — every built-in Provider (Z.AI, MiniMax, Tavily, Exa,
|
|
131
145
|
Brave, Firecrawl, Parallel AI, Perplexity, Jina AI, You.com, Linkup,
|
|
132
|
-
Spider.cloud).
|
|
146
|
+
Spider.cloud, Bocha AI, SearchApi, and Kagi).
|
|
133
147
|
- `read` — Z.AI, Tavily, Exa, Firecrawl, Parallel AI, Jina AI, You.com,
|
|
134
|
-
Linkup, and Spider.cloud (MiniMax, Brave,
|
|
148
|
+
Linkup, and Spider.cloud (MiniMax, Brave, Perplexity, Bocha AI,
|
|
149
|
+
SearchApi, and Kagi do not
|
|
135
150
|
advertise it; Tavily/Exa/Firecrawl/Parallel reject Z.AI-only reader
|
|
136
151
|
options: `--with-links`, `--no-gfm`, `--keep-img-data-url`,
|
|
137
152
|
`--with-images-summary`; Jina maps them natively; You.com mirrors the
|
|
@@ -156,17 +171,19 @@ Vision by Z.AI and MiniMax only. **Provider
|
|
|
156
171
|
fallback is always-on by default**
|
|
157
172
|
(0.11.0+): selecting a non-supplier emits a stderr notice and silently
|
|
158
173
|
reroutes to the next eligible configured Provider in registry order
|
|
159
|
-
`[zai, minimax, tavily, exa, brave, firecrawl, parallel, perplexity, jina, you, linkup, spider]`. Pass
|
|
174
|
+
`[zai, minimax, tavily, exa, brave, firecrawl, parallel, perplexity, jina, you, linkup, spider, bocha, searchapi, kagi]`. Pass
|
|
160
175
|
`--no-fallback` (or set `SCOUTLINE_NO_FALLBACK=1`) to restore the
|
|
161
176
|
previous strict `UNSUPPORTED_CAPABILITY` behavior — the preflight
|
|
162
177
|
still runs capability metadata → configuration → adapter handle in
|
|
163
178
|
order on the effective Provider only.
|
|
164
179
|
|
|
165
|
-
### Search fan-out (multi-provider search, ADR-
|
|
180
|
+
### Search fan-out (multi-provider search, ADR-0012)
|
|
166
181
|
|
|
167
182
|
`search` alone can run one query across several providers in parallel
|
|
168
|
-
and merge the results (dedupe by canonical URL identity
|
|
169
|
-
|
|
183
|
+
and merge the results (dedupe by canonical URL identity with
|
|
184
|
+
near-duplicate title clustering, fusion ranking — `rrf` by default,
|
|
185
|
+
`config set fusion occurrence` restores the legacy ordering — and
|
|
186
|
+
additive `mergedFrom` provenance per result; arms are pinned —
|
|
170
187
|
no per-arm fallback, and an arm that rejects a control drops with a
|
|
171
188
|
stderr notice instead of failing the invocation). Activation tiers:
|
|
172
189
|
|
|
@@ -184,6 +201,17 @@ stderr notice instead of failing the invocation). Activation tiers:
|
|
|
184
201
|
billable calls.** Use it when recall across providers matters more than
|
|
185
202
|
spend; use a single `--provider` pin when it does not.
|
|
186
203
|
|
|
204
|
+
### Fusion ranking (merged search)
|
|
205
|
+
|
|
206
|
+
Merged lists (fan-out and `--merge`) rank by `fusion` (config key;
|
|
207
|
+
`SCOUTLINE_FUSION` env wins; no `--fusion` flag): `rrf` (default) scores
|
|
208
|
+
Σ 1/(60 + rank) over every arm × sub-query occurrence and emits a fixed
|
|
209
|
+
3-decimal `fusionScore` on every row; `occurrence` restores the legacy
|
|
210
|
+
ordering byte-for-byte. Near-dup clustering (3-word title shingles,
|
|
211
|
+
Jaccard ≥ 0.8, ≥ 4 shingles) runs in both modes — absorbed urls travel
|
|
212
|
+
verbatim on the representative's `clusterUrls`; `www`/apex hosts
|
|
213
|
+
collapse to one identity.
|
|
214
|
+
|
|
187
215
|
### Local context (`--context` / `--context-stdin`)
|
|
188
216
|
|
|
189
217
|
`research` and `search` accept a local notes file (markdown headings +
|
|
@@ -246,27 +274,29 @@ scoutline search "x" --no-journal # skip this one call
|
|
|
246
274
|
|
|
247
275
|
## Capability Matrix
|
|
248
276
|
|
|
249
|
-
| Capability | Z.AI | MiniMax | Tavily | Exa | Brave | Firecrawl | Parallel | Perplexity | Jina AI | You.com | Linkup | Spider.cloud | arXiv | OpenAlex | Crossref | PubMed | Europe PMC | Command |
|
|
250
|
-
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
251
|
-
| Search | Yes | Yes (no domain/recency/content-size/location) | Yes (no location) | Yes (no location) | Yes (web/news/video; `--content-size high` → LLM Context) | Yes (no location; `--content-size high` = markdown, +1 credit/result) | Yes (domain, recency, location, content-size via `advanced_settings`; topic via keyword) | Yes (domain, recency, content-size; topic via keyword) | Yes (domain, location; rejects recency/content-size; topic via keyword) | Yes | Yes | Yes | No | No | No | No | No | `scoutline search` |
|
|
252
|
-
| General single-image interpretation | Yes | Yes (JPG/JPEG/PNG/WebP ≤50 MiB) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision analyze` |
|
|
253
|
-
| Specialized Vision (UI-to-code, OCR, error diagnosis, diagram) | Yes | Available (live-attested; conformance-gated) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision ui-to-code`, `vision extract-text`, `vision diagnose-error`, `vision diagram` |
|
|
254
|
-
| Specialized Vision (chart) | Yes | Pending (implemented; fixture image defect blocks live conformance) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision chart` |
|
|
255
|
-
| Two-image diff, video | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision diff`, `vision video` |
|
|
256
|
-
| Quota (normalized) | Yes | Yes | Yes | **No** (deferred) | Yes (rate-limit window, not spend) | Yes (credits) | **No** | **No** | Yes (rate-limit telemetry, not spend) | **No** | Yes (credit balance, not spend) | Yes (credit balance, not spend) | No | No | No | No | No | `scoutline quota [--all-providers]` |
|
|
257
|
-
| Diagnostics | Yes | Yes | Yes | Yes | Yes | Yes (single-scrape probe) | Yes | Yes | Yes | Yes | Yes | Yes | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | `scoutline doctor [--no-tools] [--available]`; every row carries `availability` (`ok`/`exhausted`/`error`/`unconfigured`), rows sort healthy-first, and `availableProviders` lists the `ok` providers in registry order |
|
|
258
|
-
| Reader | Yes | **No** (UNSUPPORTED_CAPABILITY) | Yes (rejects Z.AI-only options) | Yes (rejects Z.AI-only options) | **No** (UNSUPPORTED_CAPABILITY) | Yes (returns page titles) | Yes | **No** (UNSUPPORTED_CAPABILITY) | Yes | Yes (rejects Z.AI-only options plus `--format text`) | Yes (renders JavaScript; rejects `--format text` and `--no-images`) | Yes (rejects Z.AI-only options) | No | No | No | No | No | `scoutline read` |
|
|
259
|
-
| Repository exploration (search/read/tree/brief) | Yes | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | No | No | No | No | No | `scoutline repo ...` |
|
|
260
|
-
| Crawl | **No** | **No** | Yes | **No** | **No** | Yes (async; resumable after Ctrl-C) | **No** | **No** | **No** | **No** | **No** | Yes (sync) | No | No | No | No | No | `scoutline crawl` |
|
|
261
|
-
| Map | **No** | **No** | Yes | **No** | **No** | Yes | **No** | **No** | **No** | **No** | **No** | Yes | No | No | No | No | No | `scoutline map` |
|
|
262
|
-
| Research (4-250 credits) | **No** | **No** | Yes | Yes | **No** | **No** (`/deep-research` deprecated) | Yes | Yes | Yes | Yes | Yes | **No** | No | No | No | No | No | `scoutline research` |
|
|
263
|
-
| Science (scholarly search/get) | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | `scoutline science search <query>` / `scoutline science get <identifier>`; keyless — no API key required; controls `--author`/`--year`/`--venue`/`--type` consumed only where the supplier wire supports them |
|
|
264
|
-
| Raw tools | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline tools`, `tool`, `call` |
|
|
265
|
-
| Code Mode | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline code ...` |
|
|
277
|
+
| Capability | Z.AI | MiniMax | Tavily | Exa | Brave | Firecrawl | Parallel | Perplexity | Jina AI | You.com | Linkup | Spider.cloud | Bocha AI | SearchApi | Kagi | arXiv | OpenAlex | Crossref | PubMed | Europe PMC | Command |
|
|
278
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
279
|
+
| Search | Yes | Yes (no domain/recency/content-size/location) | Yes (no location) | Yes (no location) | Yes (web/news/video; `--content-size high` → LLM Context) | Yes (no location; `--content-size high` = markdown, +1 credit/result) | Yes (domain, recency, location, content-size via `advanced_settings`; topic via keyword) | Yes (domain, recency, content-size; topic via keyword) | Yes (domain, location; rejects recency/content-size; topic via keyword) | Yes | Yes | Yes | Yes (no location/type; domain via `site:` prefix) | Yes (no content-size/type; domain via `site:` prefix) | Yes (no location/recency/content-size/type; domain via `site:` prefix; `--topic news` → `/api/v0/enrich/news`) | No | No | No | No | No | `scoutline search` |
|
|
280
|
+
| General single-image interpretation | Yes | Yes (JPG/JPEG/PNG/WebP ≤50 MiB) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision analyze` |
|
|
281
|
+
| Specialized Vision (UI-to-code, OCR, error diagnosis, diagram) | Yes | Available (live-attested; conformance-gated) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision ui-to-code`, `vision extract-text`, `vision diagnose-error`, `vision diagram` |
|
|
282
|
+
| Specialized Vision (chart) | Yes | Pending (implemented; fixture image defect blocks live conformance) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision chart` |
|
|
283
|
+
| Two-image diff, video | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline vision diff`, `vision video` |
|
|
284
|
+
| Quota (normalized) | Yes | Yes | Yes | **No** (deferred) | Yes (rate-limit window, not spend) | Yes (credits) | **No** | **No** | Yes (rate-limit telemetry, not spend) | **No** | Yes (credit balance, not spend) | Yes (credit balance, not spend) | No | Yes | No | No | No | No | No | No | `scoutline quota [--all-providers]` |
|
|
285
|
+
| Diagnostics | Yes | Yes | Yes | Yes | Yes | Yes (single-scrape probe) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | Yes (keyless probe) | `scoutline doctor [--no-tools] [--available]`; every row carries `availability` (`ok`/`exhausted`/`error`/`unconfigured`), rows sort healthy-first, and `availableProviders` lists the `ok` providers in registry order |
|
|
286
|
+
| Reader | Yes | **No** (UNSUPPORTED_CAPABILITY) | Yes (rejects Z.AI-only options) | Yes (rejects Z.AI-only options) | **No** (UNSUPPORTED_CAPABILITY) | Yes (returns page titles) | Yes | **No** (UNSUPPORTED_CAPABILITY) | Yes | Yes (rejects Z.AI-only options plus `--format text`) | Yes (renders JavaScript; rejects `--format text` and `--no-images`) | Yes (rejects Z.AI-only options) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | No | No | No | No | No | `scoutline read` |
|
|
287
|
+
| Repository exploration (search/read/tree/brief) | Yes | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | **No** (UNSUPPORTED_CAPABILITY) | No | No | No | No | No | `scoutline repo ...` |
|
|
288
|
+
| Crawl | **No** | **No** | Yes | **No** | **No** | Yes (async; resumable after Ctrl-C) | **No** | **No** | **No** | **No** | **No** | Yes (sync) | **No** | **No** | **No** | No | No | No | No | No | `scoutline crawl` |
|
|
289
|
+
| Map | **No** | **No** | Yes | **No** | **No** | Yes | **No** | **No** | **No** | **No** | **No** | Yes | **No** | **No** | **No** | No | No | No | No | No | `scoutline map` |
|
|
290
|
+
| Research (4-250 credits) | **No** | **No** | Yes | Yes | **No** | **No** (`/deep-research` deprecated) | Yes | Yes | Yes | Yes | Yes | **No** | **No** | **No** | **No** | No | No | No | No | No | `scoutline research` |
|
|
291
|
+
| Science (scholarly search/get) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | `scoutline science search <query>` / `scoutline science get <identifier>`; keyless — no API key required; controls `--author`/`--year`/`--venue`/`--type` consumed only where the supplier wire supports them |
|
|
292
|
+
| Raw tools | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline tools`, `tool`, `call` |
|
|
293
|
+
| Code Mode | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | `scoutline code ...` |
|
|
266
294
|
|
|
267
295
|
Vision results are never cached. Z.AI image limits are JPG/JPEG/PNG ≤5 MiB.
|
|
268
|
-
Search result count is applied locally after normalization
|
|
269
|
-
to the active Provider.
|
|
296
|
+
Search result count is applied locally after normalization; for every
|
|
297
|
+
Provider except Bocha it is never sent to the active Provider. Bocha's
|
|
298
|
+
wire request carries a native count parameter, so its Adapter forwards
|
|
299
|
+
the requested count (default 10) and partitions its cache entries by it.
|
|
270
300
|
|
|
271
301
|
## Science
|
|
272
302
|
|
|
@@ -445,6 +475,19 @@ scoutline --provider spider crawl https://docs.example.com --depth 2
|
|
|
445
475
|
scoutline --provider spider map https://docs.example.com
|
|
446
476
|
scoutline --provider spider quota # credit balance
|
|
447
477
|
|
|
478
|
+
# Bocha AI (Search)
|
|
479
|
+
scoutline --provider bocha search "AI policy news" --topic news
|
|
480
|
+
scoutline doctor --provider bocha
|
|
481
|
+
|
|
482
|
+
# SearchApi (Search, Quota)
|
|
483
|
+
scoutline --provider searchapi search "AI policy news" --topic news
|
|
484
|
+
scoutline --provider searchapi quota
|
|
485
|
+
scoutline doctor --provider searchapi
|
|
486
|
+
|
|
487
|
+
# Kagi (Search)
|
|
488
|
+
scoutline --provider kagi search "AI policy news" --topic news
|
|
489
|
+
scoutline doctor --provider kagi
|
|
490
|
+
|
|
448
491
|
# All-Provider quota
|
|
449
492
|
scoutline quota --all-providers
|
|
450
493
|
|
|
@@ -477,6 +520,9 @@ scoutline config get routing
|
|
|
477
520
|
| You.com | Search/reader/research; no quota endpoint. |
|
|
478
521
|
| Linkup | Research priced by reasoning depth ($0.25-$2.50/query); quota reports the prepaid USD balance. |
|
|
479
522
|
| Spider.cloud | Crawl/map (sync) plus search/reader; credit-based. |
|
|
523
|
+
| Bocha AI | Web search with `--domain` as a `site:` prefix, `--recency` freshness, and `--content-size high` summaries; search + diagnostics only. Key: `BOCHA_API_KEY` — https://open.bochaai.com. |
|
|
524
|
+
| SearchApi | Exact Google-SERP search (`--topic news` routes to the google_news engine) plus credit quota via `quota`; search + quota + diagnostics only. Key: `SEARCHAPI_API_KEY` — https://www.searchapi.io. |
|
|
525
|
+
| Kagi | Search (and `--topic news` via the enrich/news endpoint) with a diagnostics probe; no reader/research/crawl/map/vision/quota. Key: `KAGI_API_KEY` — https://kagi.com/settings/api. |
|
|
480
526
|
| arXiv, OpenAlex, Crossref, PubMed, Europe PMC | `scoutline science search` / `science get` only — keyless scholarly lookups (five suppliers, DOI-deduped merge; `--provider` pins one). |
|
|
481
527
|
|
|
482
528
|
## Repository Exploration
|
|
@@ -584,10 +630,12 @@ legacy-key construction — ambient `process.env` is never reread.
|
|
|
584
630
|
## Reader
|
|
585
631
|
|
|
586
632
|
`scoutline read` participates in Provider selection. Z.AI, Tavily, Exa,
|
|
587
|
-
|
|
633
|
+
Firecrawl, Parallel AI, Jina AI, You.com, Linkup, and Spider.cloud
|
|
634
|
+
advertise `reader`; Z.AI supplies it through the Z.AI
|
|
588
635
|
Reader Adapter, Tavily through the Tavily `/extract` endpoint, Exa
|
|
589
|
-
through `/contents`, and Firecrawl through `/v2/scrape`. MiniMax
|
|
590
|
-
Brave do not, so by default
|
|
636
|
+
through `/contents`, and Firecrawl through `/v2/scrape`. MiniMax,
|
|
637
|
+
Brave, Perplexity, Bocha AI, SearchApi, and Kagi do not, so by default
|
|
638
|
+
(0.11.0+) selecting any of them emits a stderr
|
|
591
639
|
notice and Provider fallback auto-reroutes to the next eligible
|
|
592
640
|
configured supplier; under `--no-fallback` (or
|
|
593
641
|
`SCOUTLINE_NO_FALLBACK=1`) the preflight surfaces
|
|
@@ -718,7 +766,7 @@ additive optional fields to both schemas
|
|
|
718
766
|
{ source: "snapshot" | "live", observedAt, authoritative }`, the
|
|
719
767
|
`providers` union may include a `{ status: "none", reason:
|
|
720
768
|
"no-capability" }` row for a configured provider without quota (Exa,
|
|
721
|
-
Parallel, Perplexity, You.com),
|
|
769
|
+
Parallel, Perplexity, You.com, Bocha AI, and Kagi),
|
|
722
770
|
and each `doctor` provider entry may carry `quota: { source:
|
|
723
771
|
"snapshot" | "none", observedAt?, authoritative }` plus `verification:
|
|
724
772
|
{ status, checkedAt, reason? }`. Each `quota` requests category may
|
|
@@ -8,9 +8,9 @@ gate.
|
|
|
8
8
|
|
|
9
9
|
Shared commands (`search`, `vision analyze`, `quota`, `doctor`),
|
|
10
10
|
**`repo`**, **`read`**, **`crawl`**, **`map`**, and **`research`** accept
|
|
11
|
-
the global `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider>` flag. Precedence:
|
|
11
|
+
the global `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider|bocha|searchapi|kagi>` flag. Precedence:
|
|
12
12
|
|
|
13
|
-
1. `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider>` on the command line
|
|
13
|
+
1. `--provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|you|linkup|spider|bocha|searchapi|kagi>` on the command line
|
|
14
14
|
2. `SCOUTLINE_PROVIDER` environment variable
|
|
15
15
|
3. Default `zai`
|
|
16
16
|
|
|
@@ -19,11 +19,12 @@ invocation. Provider selection is never inferred from credentials.
|
|
|
19
19
|
|
|
20
20
|
`tools`, `tool`, `call`, and `code` accept the flag but ignore it; they
|
|
21
21
|
remain Z.AI-only and do not validate the supplied value. `repo` and `read`
|
|
22
|
-
participate in selection: Z.AI, Tavily, Exa, Firecrawl, Parallel,
|
|
23
|
-
|
|
24
|
-
`crawl` and `map` participate in selection and
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
participate in selection: Z.AI, Tavily, Exa, Firecrawl, Parallel, Jina,
|
|
23
|
+
You.com, Linkup, and Spider.cloud supply `reader`; only Z.AI supplies
|
|
24
|
+
`repository-exploration`. `crawl` and `map` participate in selection and
|
|
25
|
+
are supplied by Tavily, Firecrawl, and Spider.cloud. `research` is
|
|
26
|
+
supplied by Tavily, Exa, Parallel, Perplexity, Jina, You.com, and
|
|
27
|
+
Linkup. By default (0.11.0+) Provider
|
|
27
28
|
fallback is always-on: selecting a non-supplier emits a stderr notice
|
|
28
29
|
and silently reroutes to the next eligible configured supplier in
|
|
29
30
|
registry order. Under `--no-fallback` (or `SCOUTLINE_NO_FALLBACK=1`)
|
|
@@ -342,9 +343,10 @@ each advertised capability, exactly which built-in Providers supply it.
|
|
|
342
343
|
`sharedCapabilities` and `zaiOnlyCapabilities` are gone; their two-array
|
|
343
344
|
derivation silently hid capabilities supplied by a subset of providers.
|
|
344
345
|
The matrix replaces them. `repository-exploration` is reported under
|
|
345
|
-
Z.AI alone; `reader` under Z.AI, Tavily, Exa, Firecrawl, Parallel,
|
|
346
|
-
|
|
347
|
-
|
|
346
|
+
Z.AI alone; `reader` under Z.AI, Tavily, Exa, Firecrawl, Parallel, Jina,
|
|
347
|
+
You.com, Linkup, and Spider.cloud; `crawl` and `map` under Tavily,
|
|
348
|
+
Firecrawl, and Spider.cloud; `research` under Tavily, Exa, Parallel,
|
|
349
|
+
Perplexity, Jina, You.com, and Linkup. Doctor help derives its
|
|
348
350
|
unsupported lists from the same descriptor metadata for every other
|
|
349
351
|
Provider.
|
|
350
352
|
|