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.
Files changed (294) hide show
  1. package/README.md +60 -26
  2. package/dist/capabilities/search.d.ts +18 -4
  3. package/dist/capabilities/search.d.ts.map +1 -1
  4. package/dist/commands/config.d.ts.map +1 -1
  5. package/dist/commands/config.js +14 -5
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/crawl.d.ts.map +1 -1
  8. package/dist/commands/crawl.js +2 -1
  9. package/dist/commands/crawl.js.map +1 -1
  10. package/dist/commands/doctor.d.ts.map +1 -1
  11. package/dist/commands/doctor.js +2 -1
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/init.d.ts +42 -1
  14. package/dist/commands/init.d.ts.map +1 -1
  15. package/dist/commands/init.js +42 -5
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/map.d.ts.map +1 -1
  18. package/dist/commands/map.js +2 -1
  19. package/dist/commands/map.js.map +1 -1
  20. package/dist/commands/quota.d.ts.map +1 -1
  21. package/dist/commands/quota.js +2 -2
  22. package/dist/commands/quota.js.map +1 -1
  23. package/dist/commands/read.d.ts.map +1 -1
  24. package/dist/commands/read.js +2 -1
  25. package/dist/commands/read.js.map +1 -1
  26. package/dist/commands/repo.js +1 -1
  27. package/dist/commands/research.d.ts.map +1 -1
  28. package/dist/commands/research.js +2 -1
  29. package/dist/commands/research.js.map +1 -1
  30. package/dist/commands/search.d.ts +54 -6
  31. package/dist/commands/search.d.ts.map +1 -1
  32. package/dist/commands/search.js +273 -25
  33. package/dist/commands/search.js.map +1 -1
  34. package/dist/index.d.ts +72 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +364 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/lib/code-mode.d.ts +12 -0
  39. package/dist/lib/code-mode.d.ts.map +1 -1
  40. package/dist/lib/code-mode.js +18 -10
  41. package/dist/lib/code-mode.js.map +1 -1
  42. package/dist/lib/config-store.d.ts +45 -1
  43. package/dist/lib/config-store.d.ts.map +1 -1
  44. package/dist/lib/config-store.js +70 -1
  45. package/dist/lib/config-store.js.map +1 -1
  46. package/dist/lib/config.d.ts.map +1 -1
  47. package/dist/lib/config.js +5 -1
  48. package/dist/lib/config.js.map +1 -1
  49. package/dist/lib/errors.d.ts +7 -1
  50. package/dist/lib/errors.d.ts.map +1 -1
  51. package/dist/lib/errors.js +8 -2
  52. package/dist/lib/errors.js.map +1 -1
  53. package/dist/lib/execution.d.ts +14 -5
  54. package/dist/lib/execution.d.ts.map +1 -1
  55. package/dist/lib/execution.js +25 -6
  56. package/dist/lib/execution.js.map +1 -1
  57. package/dist/lib/mcp-client.d.ts +7 -0
  58. package/dist/lib/mcp-client.d.ts.map +1 -1
  59. package/dist/lib/mcp-client.js +11 -1
  60. package/dist/lib/mcp-client.js.map +1 -1
  61. package/dist/lib/parse-zoned-instant.d.ts +13 -0
  62. package/dist/lib/parse-zoned-instant.d.ts.map +1 -0
  63. package/dist/lib/parse-zoned-instant.js +17 -0
  64. package/dist/lib/parse-zoned-instant.js.map +1 -0
  65. package/dist/lib/quota-mapping.d.ts +4 -2
  66. package/dist/lib/quota-mapping.d.ts.map +1 -1
  67. package/dist/lib/quota-mapping.js +25 -2
  68. package/dist/lib/quota-mapping.js.map +1 -1
  69. package/dist/lib/redact.d.ts +3 -2
  70. package/dist/lib/redact.d.ts.map +1 -1
  71. package/dist/lib/redact.js +90 -24
  72. package/dist/lib/redact.js.map +1 -1
  73. package/dist/lib/timeout.d.ts +28 -0
  74. package/dist/lib/timeout.d.ts.map +1 -0
  75. package/dist/lib/timeout.js +30 -0
  76. package/dist/lib/timeout.js.map +1 -0
  77. package/dist/lib/url.d.ts +10 -4
  78. package/dist/lib/url.d.ts.map +1 -1
  79. package/dist/lib/url.js +21 -6
  80. package/dist/lib/url.js.map +1 -1
  81. package/dist/providers/arxiv/client.d.ts +4 -1
  82. package/dist/providers/arxiv/client.d.ts.map +1 -1
  83. package/dist/providers/arxiv/client.js +11 -3
  84. package/dist/providers/arxiv/client.js.map +1 -1
  85. package/dist/providers/bocha/adapter.d.ts +43 -0
  86. package/dist/providers/bocha/adapter.d.ts.map +1 -0
  87. package/dist/providers/bocha/adapter.js +197 -0
  88. package/dist/providers/bocha/adapter.js.map +1 -0
  89. package/dist/providers/bocha/client.d.ts +51 -0
  90. package/dist/providers/bocha/client.d.ts.map +1 -0
  91. package/dist/providers/bocha/client.js +104 -0
  92. package/dist/providers/bocha/client.js.map +1 -0
  93. package/dist/providers/bocha/credentials.d.ts +12 -0
  94. package/dist/providers/bocha/credentials.d.ts.map +1 -0
  95. package/dist/providers/bocha/credentials.js +29 -0
  96. package/dist/providers/bocha/credentials.js.map +1 -0
  97. package/dist/providers/bocha/diagnostics.d.ts +17 -0
  98. package/dist/providers/bocha/diagnostics.d.ts.map +1 -0
  99. package/dist/providers/bocha/diagnostics.js +33 -0
  100. package/dist/providers/bocha/diagnostics.js.map +1 -0
  101. package/dist/providers/brave/adapter.d.ts.map +1 -1
  102. package/dist/providers/brave/adapter.js +4 -3
  103. package/dist/providers/brave/adapter.js.map +1 -1
  104. package/dist/providers/brave/client.d.ts +1 -0
  105. package/dist/providers/brave/client.d.ts.map +1 -1
  106. package/dist/providers/brave/client.js +4 -6
  107. package/dist/providers/brave/client.js.map +1 -1
  108. package/dist/providers/brave/credentials.d.ts +2 -0
  109. package/dist/providers/brave/credentials.d.ts.map +1 -1
  110. package/dist/providers/brave/credentials.js +2 -0
  111. package/dist/providers/brave/credentials.js.map +1 -1
  112. package/dist/providers/catalog.d.ts +34 -0
  113. package/dist/providers/catalog.d.ts.map +1 -0
  114. package/dist/providers/catalog.js +57 -0
  115. package/dist/providers/catalog.js.map +1 -0
  116. package/dist/providers/crossref/adapter.js +2 -2
  117. package/dist/providers/crossref/adapter.js.map +1 -1
  118. package/dist/providers/crossref/client.d.ts +4 -1
  119. package/dist/providers/crossref/client.d.ts.map +1 -1
  120. package/dist/providers/crossref/client.js +11 -3
  121. package/dist/providers/crossref/client.js.map +1 -1
  122. package/dist/providers/crossref/diagnostics.d.ts +1 -1
  123. package/dist/providers/crossref/diagnostics.js +1 -1
  124. package/dist/providers/crossref/diagnostics.js.map +1 -1
  125. package/dist/providers/europepmc/adapter.js +2 -2
  126. package/dist/providers/europepmc/adapter.js.map +1 -1
  127. package/dist/providers/europepmc/client.d.ts +4 -1
  128. package/dist/providers/europepmc/client.d.ts.map +1 -1
  129. package/dist/providers/europepmc/client.js +11 -3
  130. package/dist/providers/europepmc/client.js.map +1 -1
  131. package/dist/providers/exa/client.d.ts +1 -0
  132. package/dist/providers/exa/client.d.ts.map +1 -1
  133. package/dist/providers/exa/client.js +3 -2
  134. package/dist/providers/exa/client.js.map +1 -1
  135. package/dist/providers/exa/credentials.d.ts +2 -0
  136. package/dist/providers/exa/credentials.d.ts.map +1 -1
  137. package/dist/providers/exa/credentials.js +2 -0
  138. package/dist/providers/exa/credentials.js.map +1 -1
  139. package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
  140. package/dist/providers/firecrawl/adapter.js +2 -1
  141. package/dist/providers/firecrawl/adapter.js.map +1 -1
  142. package/dist/providers/firecrawl/client.d.ts +1 -0
  143. package/dist/providers/firecrawl/client.d.ts.map +1 -1
  144. package/dist/providers/firecrawl/client.js +3 -2
  145. package/dist/providers/firecrawl/client.js.map +1 -1
  146. package/dist/providers/firecrawl/credentials.d.ts +2 -0
  147. package/dist/providers/firecrawl/credentials.d.ts.map +1 -1
  148. package/dist/providers/firecrawl/credentials.js +2 -0
  149. package/dist/providers/firecrawl/credentials.js.map +1 -1
  150. package/dist/providers/firecrawl/quota.d.ts.map +1 -1
  151. package/dist/providers/firecrawl/quota.js +5 -2
  152. package/dist/providers/firecrawl/quota.js.map +1 -1
  153. package/dist/providers/jina/adapter.d.ts.map +1 -1
  154. package/dist/providers/jina/adapter.js +6 -4
  155. package/dist/providers/jina/adapter.js.map +1 -1
  156. package/dist/providers/jina/client.d.ts +2 -0
  157. package/dist/providers/jina/client.d.ts.map +1 -1
  158. package/dist/providers/jina/client.js +6 -5
  159. package/dist/providers/jina/client.js.map +1 -1
  160. package/dist/providers/jina/credentials.d.ts +2 -0
  161. package/dist/providers/jina/credentials.d.ts.map +1 -1
  162. package/dist/providers/jina/credentials.js +2 -0
  163. package/dist/providers/jina/credentials.js.map +1 -1
  164. package/dist/providers/kagi/adapter.d.ts +44 -0
  165. package/dist/providers/kagi/adapter.d.ts.map +1 -0
  166. package/dist/providers/kagi/adapter.js +188 -0
  167. package/dist/providers/kagi/adapter.js.map +1 -0
  168. package/dist/providers/kagi/client.d.ts +41 -0
  169. package/dist/providers/kagi/client.d.ts.map +1 -0
  170. package/dist/providers/kagi/client.js +100 -0
  171. package/dist/providers/kagi/client.js.map +1 -0
  172. package/dist/providers/kagi/credentials.d.ts +15 -0
  173. package/dist/providers/kagi/credentials.d.ts.map +1 -0
  174. package/dist/providers/kagi/credentials.js +35 -0
  175. package/dist/providers/kagi/credentials.js.map +1 -0
  176. package/dist/providers/kagi/diagnostics.d.ts +17 -0
  177. package/dist/providers/kagi/diagnostics.d.ts.map +1 -0
  178. package/dist/providers/kagi/diagnostics.js +33 -0
  179. package/dist/providers/kagi/diagnostics.js.map +1 -0
  180. package/dist/providers/linkup/client.d.ts +1 -0
  181. package/dist/providers/linkup/client.d.ts.map +1 -1
  182. package/dist/providers/linkup/client.js +3 -2
  183. package/dist/providers/linkup/client.js.map +1 -1
  184. package/dist/providers/linkup/credentials.d.ts +2 -0
  185. package/dist/providers/linkup/credentials.d.ts.map +1 -1
  186. package/dist/providers/linkup/credentials.js +2 -0
  187. package/dist/providers/linkup/credentials.js.map +1 -1
  188. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  189. package/dist/providers/minimax/adapter.js +2 -2
  190. package/dist/providers/minimax/adapter.js.map +1 -1
  191. package/dist/providers/minimax/coding-plan-client.d.ts +1 -0
  192. package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -1
  193. package/dist/providers/minimax/coding-plan-client.js +3 -2
  194. package/dist/providers/minimax/coding-plan-client.js.map +1 -1
  195. package/dist/providers/minimax/quota-client.d.ts +1 -0
  196. package/dist/providers/minimax/quota-client.d.ts.map +1 -1
  197. package/dist/providers/minimax/quota-client.js +3 -2
  198. package/dist/providers/minimax/quota-client.js.map +1 -1
  199. package/dist/providers/openalex/client.d.ts +2 -0
  200. package/dist/providers/openalex/client.d.ts.map +1 -1
  201. package/dist/providers/openalex/client.js +10 -3
  202. package/dist/providers/openalex/client.js.map +1 -1
  203. package/dist/providers/openalex/diagnostics.d.ts +1 -1
  204. package/dist/providers/openalex/diagnostics.js +1 -1
  205. package/dist/providers/openalex/diagnostics.js.map +1 -1
  206. package/dist/providers/parallel/client.d.ts +1 -0
  207. package/dist/providers/parallel/client.d.ts.map +1 -1
  208. package/dist/providers/parallel/client.js +3 -2
  209. package/dist/providers/parallel/client.js.map +1 -1
  210. package/dist/providers/parallel/credentials.d.ts +2 -0
  211. package/dist/providers/parallel/credentials.d.ts.map +1 -1
  212. package/dist/providers/parallel/credentials.js +2 -0
  213. package/dist/providers/parallel/credentials.js.map +1 -1
  214. package/dist/providers/perplexity/client.d.ts +2 -0
  215. package/dist/providers/perplexity/client.d.ts.map +1 -1
  216. package/dist/providers/perplexity/client.js +5 -4
  217. package/dist/providers/perplexity/client.js.map +1 -1
  218. package/dist/providers/perplexity/credentials.d.ts +2 -0
  219. package/dist/providers/perplexity/credentials.d.ts.map +1 -1
  220. package/dist/providers/perplexity/credentials.js +2 -0
  221. package/dist/providers/perplexity/credentials.js.map +1 -1
  222. package/dist/providers/pubmed/client.d.ts +2 -0
  223. package/dist/providers/pubmed/client.d.ts.map +1 -1
  224. package/dist/providers/pubmed/client.js +10 -3
  225. package/dist/providers/pubmed/client.js.map +1 -1
  226. package/dist/providers/registry.d.ts.map +1 -1
  227. package/dist/providers/registry.js +6 -0
  228. package/dist/providers/registry.js.map +1 -1
  229. package/dist/providers/searchapi/adapter.d.ts +54 -0
  230. package/dist/providers/searchapi/adapter.d.ts.map +1 -0
  231. package/dist/providers/searchapi/adapter.js +310 -0
  232. package/dist/providers/searchapi/adapter.js.map +1 -0
  233. package/dist/providers/searchapi/client.d.ts +73 -0
  234. package/dist/providers/searchapi/client.d.ts.map +1 -0
  235. package/dist/providers/searchapi/client.js +196 -0
  236. package/dist/providers/searchapi/client.js.map +1 -0
  237. package/dist/providers/searchapi/credentials.d.ts +46 -0
  238. package/dist/providers/searchapi/credentials.d.ts.map +1 -0
  239. package/dist/providers/searchapi/credentials.js +71 -0
  240. package/dist/providers/searchapi/credentials.js.map +1 -0
  241. package/dist/providers/searchapi/diagnostics.d.ts +48 -0
  242. package/dist/providers/searchapi/diagnostics.d.ts.map +1 -0
  243. package/dist/providers/searchapi/diagnostics.js +70 -0
  244. package/dist/providers/searchapi/diagnostics.js.map +1 -0
  245. package/dist/providers/searchapi/quota.d.ts +60 -0
  246. package/dist/providers/searchapi/quota.d.ts.map +1 -0
  247. package/dist/providers/searchapi/quota.js +125 -0
  248. package/dist/providers/searchapi/quota.js.map +1 -0
  249. package/dist/providers/spider/client.d.ts +2 -0
  250. package/dist/providers/spider/client.d.ts.map +1 -1
  251. package/dist/providers/spider/client.js +16 -6
  252. package/dist/providers/spider/client.js.map +1 -1
  253. package/dist/providers/spider/credentials.d.ts +2 -0
  254. package/dist/providers/spider/credentials.d.ts.map +1 -1
  255. package/dist/providers/spider/credentials.js +2 -0
  256. package/dist/providers/spider/credentials.js.map +1 -1
  257. package/dist/providers/tavily/client.d.ts +1 -0
  258. package/dist/providers/tavily/client.d.ts.map +1 -1
  259. package/dist/providers/tavily/client.js +3 -2
  260. package/dist/providers/tavily/client.js.map +1 -1
  261. package/dist/providers/tavily/credentials.d.ts +2 -0
  262. package/dist/providers/tavily/credentials.d.ts.map +1 -1
  263. package/dist/providers/tavily/credentials.js +2 -0
  264. package/dist/providers/tavily/credentials.js.map +1 -1
  265. package/dist/providers/types.d.ts +1 -1
  266. package/dist/providers/types.d.ts.map +1 -1
  267. package/dist/providers/types.js +3 -0
  268. package/dist/providers/types.js.map +1 -1
  269. package/dist/providers/you/client.d.ts +4 -0
  270. package/dist/providers/you/client.d.ts.map +1 -1
  271. package/dist/providers/you/client.js +4 -5
  272. package/dist/providers/you/client.js.map +1 -1
  273. package/dist/providers/you/credentials.d.ts +2 -0
  274. package/dist/providers/you/credentials.d.ts.map +1 -1
  275. package/dist/providers/you/credentials.js +3 -3
  276. package/dist/providers/you/credentials.js.map +1 -1
  277. package/dist/providers/zai/adapter.d.ts.map +1 -1
  278. package/dist/providers/zai/adapter.js +2 -1
  279. package/dist/providers/zai/adapter.js.map +1 -1
  280. package/dist/providers/zai/credentials.d.ts +2 -0
  281. package/dist/providers/zai/credentials.d.ts.map +1 -1
  282. package/dist/providers/zai/credentials.js +2 -0
  283. package/dist/providers/zai/credentials.js.map +1 -1
  284. package/dist/providers/zai/monitor-client.d.ts +1 -0
  285. package/dist/providers/zai/monitor-client.d.ts.map +1 -1
  286. package/dist/providers/zai/monitor-client.js +3 -2
  287. package/dist/providers/zai/monitor-client.js.map +1 -1
  288. package/dist/providers/zai/quota.d.ts +4 -0
  289. package/dist/providers/zai/quota.d.ts.map +1 -1
  290. package/dist/providers/zai/quota.js +16 -1
  291. package/dist/providers/zai/quota.js.map +1 -1
  292. package/package.json +1 -1
  293. package/skills/scoutline/SKILL.md +93 -45
  294. 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":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scoutline",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "Multimodal source investigation CLI for web, repositories, and visual media.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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, and Spider.cloud CLI for: web search (multi-provider, domain/recency/topic
6
- filters), reading pages to markdown, evidentiary HTTP fetch with MD5/SHA-256 digests,
7
- Wayback archive lookups and snapshot-vs-live diffing, keyless page monitoring,
8
- image/video vision analysis, multi-page site crawls, URL-set mapping, deep research
9
- with citations, GitHub repo exploration, and raw MCP tool calls. Select per command
10
- with --provider <zai|minimax|tavily|exa|brave|firecrawl|parallel|perplexity|jina|
11
- you|linkup|spider>; always-on provider fallback reroutes to the next configured
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, and Spider.cloud capabilities via `scoutline`. The
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, and Spider.cloud. The only search
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). Exa, Parallel AI,
129
- Perplexity, and You.com do not advertise quota.
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, and Perplexity do not
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-0004)
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, occurrence
169
- ranking, additive `mergedFrom` provenance per result; arms are pinned —
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 and is never sent
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
- and Firecrawl advertise `reader`; Z.AI supplies it through the Z.AI
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 and
590
- Brave do not, so by default (0.11.0+) selecting either emits a stderr
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, and
23
- Jina supply `reader`; only Z.AI supplies `repository-exploration`.
24
- `crawl` and `map` participate in selection and are supplied by Tavily
25
- and Firecrawl. `research` is supplied by Tavily, Exa, Parallel,
26
- Perplexity, and Jina. By default (0.11.0+) Provider
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, and
346
- Jina; `crawl` and `map` under Tavily and Firecrawl; `research` under
347
- Tavily, Exa, Parallel, Perplexity, and Jina. Doctor help derives its
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