scoutline 0.21.2 → 0.22.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 +46 -1
- package/dist/capabilities/quota.d.ts +34 -8
- package/dist/capabilities/quota.d.ts.map +1 -1
- package/dist/capabilities/quota.js +8 -6
- package/dist/capabilities/quota.js.map +1 -1
- package/dist/capabilities/science.d.ts +15 -0
- package/dist/capabilities/science.d.ts.map +1 -1
- package/dist/capabilities/science.js +79 -0
- package/dist/capabilities/science.js.map +1 -1
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +3 -0
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/science.d.ts +13 -0
- package/dist/commands/science.d.ts.map +1 -1
- package/dist/commands/science.js +243 -48
- package/dist/commands/science.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -38
- package/dist/index.js.map +1 -1
- package/dist/lib/artifacts.d.ts.map +1 -1
- package/dist/lib/artifacts.js +4 -1
- package/dist/lib/artifacts.js.map +1 -1
- package/dist/lib/async-job-state.d.ts +17 -0
- package/dist/lib/async-job-state.d.ts.map +1 -1
- package/dist/lib/async-job-state.js +29 -0
- package/dist/lib/async-job-state.js.map +1 -1
- package/dist/lib/batch-manifest.d.ts +9 -0
- package/dist/lib/batch-manifest.d.ts.map +1 -1
- package/dist/lib/batch-manifest.js +8 -0
- package/dist/lib/batch-manifest.js.map +1 -1
- package/dist/lib/cache.d.ts +89 -10
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +190 -42
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/errors.d.ts +29 -3
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +29 -5
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/execution.d.ts +14 -6
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +50 -6
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp-client.js +9 -6
- package/dist/lib/mcp-client.js.map +1 -1
- package/dist/lib/redact.d.ts +3 -0
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +29 -4
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/retry-after.d.ts +54 -0
- package/dist/lib/retry-after.d.ts.map +1 -0
- package/dist/lib/retry-after.js +124 -0
- package/dist/lib/retry-after.js.map +1 -0
- package/dist/lib/tool-cache.d.ts +6 -4
- package/dist/lib/tool-cache.d.ts.map +1 -1
- package/dist/lib/tool-cache.js +9 -7
- package/dist/lib/tool-cache.js.map +1 -1
- package/dist/lib/tty.d.ts.map +1 -1
- package/dist/lib/tty.js +10 -0
- package/dist/lib/tty.js.map +1 -1
- package/dist/providers/arxiv/client.d.ts.map +1 -1
- package/dist/providers/arxiv/client.js +5 -4
- package/dist/providers/arxiv/client.js.map +1 -1
- package/dist/providers/brave/adapter.d.ts.map +1 -1
- package/dist/providers/brave/adapter.js +9 -3
- package/dist/providers/brave/adapter.js.map +1 -1
- package/dist/providers/brave/client.d.ts.map +1 -1
- package/dist/providers/brave/client.js +59 -7
- package/dist/providers/brave/client.js.map +1 -1
- package/dist/providers/crossref/client.d.ts.map +1 -1
- package/dist/providers/crossref/client.js +5 -4
- package/dist/providers/crossref/client.js.map +1 -1
- package/dist/providers/europepmc/client.d.ts.map +1 -1
- package/dist/providers/europepmc/client.js +5 -4
- package/dist/providers/europepmc/client.js.map +1 -1
- package/dist/providers/exa/adapter.d.ts +7 -0
- package/dist/providers/exa/adapter.d.ts.map +1 -1
- package/dist/providers/exa/adapter.js +11 -3
- package/dist/providers/exa/adapter.js.map +1 -1
- package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
- package/dist/providers/firecrawl/adapter.js +12 -4
- package/dist/providers/firecrawl/adapter.js.map +1 -1
- package/dist/providers/firecrawl/client.d.ts.map +1 -1
- package/dist/providers/firecrawl/client.js +7 -0
- package/dist/providers/firecrawl/client.js.map +1 -1
- package/dist/providers/jina/adapter.d.ts.map +1 -1
- package/dist/providers/jina/adapter.js +10 -3
- package/dist/providers/jina/adapter.js.map +1 -1
- package/dist/providers/jina/client.d.ts.map +1 -1
- package/dist/providers/jina/client.js +23 -10
- package/dist/providers/jina/client.js.map +1 -1
- package/dist/providers/linkup/adapter.d.ts.map +1 -1
- package/dist/providers/linkup/adapter.js +13 -12
- package/dist/providers/linkup/adapter.js.map +1 -1
- package/dist/providers/openalex/adapter.d.ts.map +1 -1
- package/dist/providers/openalex/adapter.js +2 -0
- package/dist/providers/openalex/adapter.js.map +1 -1
- package/dist/providers/openalex/client.d.ts.map +1 -1
- package/dist/providers/openalex/client.js +6 -5
- package/dist/providers/openalex/client.js.map +1 -1
- package/dist/providers/parallel/adapter.d.ts.map +1 -1
- package/dist/providers/parallel/adapter.js +17 -6
- package/dist/providers/parallel/adapter.js.map +1 -1
- package/dist/providers/pubmed/client.d.ts.map +1 -1
- package/dist/providers/pubmed/client.js +5 -4
- package/dist/providers/pubmed/client.js.map +1 -1
- package/dist/providers/registry.d.ts +12 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +12 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/tavily/adapter.d.ts.map +1 -1
- package/dist/providers/tavily/adapter.js +12 -5
- package/dist/providers/tavily/adapter.js.map +1 -1
- package/dist/providers/tavily/client.d.ts.map +1 -1
- package/dist/providers/tavily/client.js +8 -0
- package/dist/providers/tavily/client.js.map +1 -1
- package/dist/providers/zai/quota.d.ts +25 -5
- package/dist/providers/zai/quota.d.ts.map +1 -1
- package/dist/providers/zai/quota.js +122 -29
- package/dist/providers/zai/quota.js.map +1 -1
- package/package.json +3 -3
- package/skills/scoutline/SKILL.md +93 -82
|
@@ -15,7 +15,7 @@ description: |
|
|
|
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 `
|
|
18
|
+
Linkup, and Spider.cloud capabilities via `scoutline`. The
|
|
19
19
|
CLI is self-documenting — use `--help` at any level.
|
|
20
20
|
|
|
21
21
|
## Setup
|
|
@@ -84,11 +84,11 @@ refused — set environment variables instead.
|
|
|
84
84
|
### Settings via `scoutline config` (scriptable, no TTY)
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
scoutline config get # full config, credentials always masked
|
|
88
|
+
scoutline config set routing.search tavily,brave # strict: typos FAIL, not drop
|
|
89
|
+
scoutline config set routing.reader parallel,linkup,jina # first configured reader supplier wins
|
|
90
|
+
scoutline config unset routing.search
|
|
91
|
+
scoutline config set fallbackEnabled false
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
The `routing` key sets a standing per-capability provider preference:
|
|
@@ -175,7 +175,7 @@ stderr notice instead of failing the invocation). Activation tiers:
|
|
|
175
175
|
provider, registry order).
|
|
176
176
|
2. A single `--provider <id>` or `SCOUTLINE_PROVIDER` — single
|
|
177
177
|
provider; fan-out is ignored.
|
|
178
|
-
3. `
|
|
178
|
+
3. `scoutline config set fanout true` (no pin) — standing
|
|
179
179
|
fan-out on `routing.search` when set, else all configured search
|
|
180
180
|
providers. Default off; `config set fanout false` disables.
|
|
181
181
|
4. Otherwise the standard single-provider selection.
|
|
@@ -294,6 +294,11 @@ scoutline science get 10.1038/nature12373
|
|
|
294
294
|
(`2401.12345`); the identifier grammar routes to the suppliers that
|
|
295
295
|
can serve it.
|
|
296
296
|
|
|
297
|
+
Responses cache locally for 24h per supplier and request (`--no-cache`
|
|
298
|
+
bypasses for one invocation); transient failures (timeouts, network
|
|
299
|
+
errors, 5xx) retry once with backoff — supplier 429s surface as terminal
|
|
300
|
+
quota errors. Cache-served runs record journal warm-repeat markers.
|
|
301
|
+
|
|
297
302
|
## Batch (manifest runner)
|
|
298
303
|
|
|
299
304
|
Run many operations in one process — one summary envelope on stdout,
|
|
@@ -351,109 +356,109 @@ input).
|
|
|
351
356
|
|
|
352
357
|
```bash
|
|
353
358
|
# Z.AI (default)
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
359
|
+
scoutline vision analyze ./screenshot.png "What errors do you see?"
|
|
360
|
+
scoutline search "React 19 new features" --count 5
|
|
361
|
+
scoutline read https://docs.example.com/api
|
|
362
|
+
scoutline read https://docs.example.com/api --with-images-summary --no-gfm
|
|
363
|
+
scoutline fetch https://api.github.com/repos/nodejs/node --sha256
|
|
364
|
+
scoutline fetch https://example.com/report.pdf --pdf text --out report.txt
|
|
365
|
+
scoutline archive cdx https://example.com/ --from 20230101 --to 20231231
|
|
366
|
+
scoutline archive get https://example.com/ --at 20230601000000 --raw
|
|
367
|
+
scoutline archive diff https://example.com/ --since 30d
|
|
368
|
+
scoutline watch add https://example.com/changelog --name example-changelog
|
|
369
|
+
scoutline watch run --all # exit 0/1/2: no-change / change / fetch error
|
|
370
|
+
scoutline watch feed example-changelog --format rss
|
|
371
|
+
scoutline repo search facebook/react "server components"
|
|
372
|
+
scoutline repo search openai/codex "config" --language en
|
|
373
|
+
scoutline repo tree openai/codex --path codex-rs --depth 2
|
|
374
|
+
scoutline quota
|
|
375
|
+
scoutline doctor
|
|
371
376
|
|
|
372
377
|
# MiniMax Token Plan
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
378
|
+
scoutline --provider minimax search "AI policy news"
|
|
379
|
+
scoutline --provider minimax vision analyze ./diagram.png "Explain this"
|
|
380
|
+
scoutline --provider minimax quota
|
|
381
|
+
scoutline doctor --provider minimax
|
|
377
382
|
|
|
378
383
|
# Tavily (Search, Reader, Crawl, Map, Research)
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
384
|
+
scoutline --provider tavily search "AI funding rounds" --topic news
|
|
385
|
+
scoutline --provider tavily read https://example.com/
|
|
386
|
+
scoutline --provider tavily crawl https://docs.example.com --depth 2
|
|
387
|
+
scoutline --provider tavily map https://docs.example.com
|
|
388
|
+
scoutline --provider tavily research "Rust async runtime comparison"
|
|
389
|
+
scoutline doctor --provider tavily
|
|
385
390
|
|
|
386
391
|
# Exa (Search, Reader, Research)
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
392
|
+
scoutline --provider exa search "latest AI research" --topic news
|
|
393
|
+
scoutline --provider exa read https://example.com/
|
|
394
|
+
scoutline --provider exa research "Compare Rust async runtimes"
|
|
395
|
+
scoutline doctor --provider exa
|
|
391
396
|
|
|
392
397
|
# Brave (Search: web, news, video)
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
+
scoutline --provider brave search "AI policy news" --topic news
|
|
399
|
+
scoutline --provider brave search "rust async" --type video
|
|
400
|
+
scoutline --provider brave search "large context topic" --content-size high
|
|
401
|
+
scoutline --provider brave quota
|
|
402
|
+
scoutline doctor --provider brave
|
|
398
403
|
|
|
399
404
|
# Firecrawl (Search, Reader, Crawl, Map)
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
+
scoutline --provider firecrawl search "AI funding rounds" --content-size high
|
|
406
|
+
scoutline --provider firecrawl read https://example.com/
|
|
407
|
+
scoutline --provider firecrawl crawl https://docs.example.com --depth 2
|
|
408
|
+
scoutline --provider firecrawl map https://docs.example.com
|
|
409
|
+
scoutline --provider firecrawl quota # remaining credits
|
|
405
410
|
|
|
406
411
|
# Parallel AI (Search, Reader, Research)
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
412
|
+
scoutline --provider parallel search "AI funding rounds" --topic news
|
|
413
|
+
scoutline --provider parallel read https://example.com/
|
|
414
|
+
scoutline --provider parallel research "Compare Rust async runtimes"
|
|
415
|
+
scoutline doctor --provider parallel
|
|
411
416
|
|
|
412
417
|
# Perplexity (Search, Research)
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
418
|
+
scoutline --provider perplexity search "latest AI research" --topic news
|
|
419
|
+
scoutline --provider perplexity research "Compare Rust async runtimes"
|
|
420
|
+
scoutline doctor --provider perplexity
|
|
416
421
|
|
|
417
422
|
# Jina AI (Search, Reader, Research)
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
423
|
+
scoutline --provider jina search "AI policy news" --topic news
|
|
424
|
+
scoutline --provider jina read https://example.com/
|
|
425
|
+
scoutline --provider jina research "State of carbon capture 2025"
|
|
426
|
+
scoutline --provider jina quota # rate-limit telemetry, not spend
|
|
422
427
|
|
|
423
428
|
# You.com (Search, Reader, Research)
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
429
|
+
scoutline --provider you search "AI policy news" --topic news
|
|
430
|
+
scoutline --provider you read https://example.com/
|
|
431
|
+
scoutline --provider you research "State of carbon capture 2025"
|
|
432
|
+
scoutline doctor --provider you
|
|
428
433
|
|
|
429
434
|
# Linkup (Search, Reader, Research)
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
+
scoutline --provider linkup search "AI funding rounds" --topic news
|
|
436
|
+
scoutline --provider linkup read https://example.com/
|
|
437
|
+
scoutline --provider linkup research "Compare Rust async runtimes"
|
|
438
|
+
scoutline --provider linkup quota # prepaid USD balance
|
|
439
|
+
scoutline doctor --provider linkup
|
|
435
440
|
|
|
436
441
|
# Spider.cloud (Search, Reader, Crawl, Map)
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
+
scoutline --provider spider search "AI funding rounds" --topic news
|
|
443
|
+
scoutline --provider spider read https://example.com/
|
|
444
|
+
scoutline --provider spider crawl https://docs.example.com --depth 2
|
|
445
|
+
scoutline --provider spider map https://docs.example.com
|
|
446
|
+
scoutline --provider spider quota # credit balance
|
|
442
447
|
|
|
443
448
|
# All-Provider quota
|
|
444
|
-
|
|
449
|
+
scoutline quota --all-providers
|
|
445
450
|
|
|
446
451
|
# Research journal — recall past work instead of re-searching (offline, no provider call)
|
|
447
|
-
|
|
448
|
-
|
|
452
|
+
scoutline history recall "rust async" --limit 5
|
|
453
|
+
scoutline history export --since 2026-09-01
|
|
449
454
|
|
|
450
455
|
# Local cache inspection, clearing, and pruning
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
456
|
+
scoutline cache stats # inventory both subdirectories
|
|
457
|
+
scoutline cache clear # delete every file in cache/ and tools/
|
|
458
|
+
scoutline cache prune --older-than 24h # delete entries older than 24h (Nh|Nm|Ns|seconds)
|
|
454
459
|
|
|
455
460
|
# Config (see "Settings via scoutline config" above)
|
|
456
|
-
|
|
461
|
+
scoutline config get routing
|
|
457
462
|
```
|
|
458
463
|
|
|
459
464
|
## Which provider when
|
|
@@ -666,7 +671,10 @@ construction — ambient `process.env` is never reread.
|
|
|
666
671
|
|
|
667
672
|
Keyless and credential-free like `fetch`/`archive`; watch is stateful
|
|
668
673
|
(state under `SCOUTLINE_WATCH_DIR`, default `~/.scoutline/watch`) and
|
|
669
|
-
therefore rejected under `--isolated
|
|
674
|
+
therefore rejected under `--isolated`, as are `research` and `crawl`
|
|
675
|
+
(async-job resume state; `map` is stateless and allowed). Under
|
|
676
|
+
`--isolated` the response cache, tool cache, and `--save` artifact store
|
|
677
|
+
each gain an `isolated/<pid>` segment. Page targets only (http(s)) in v1.
|
|
670
678
|
|
|
671
679
|
`watch run` exit codes are a cron contract:
|
|
672
680
|
|
|
@@ -713,7 +721,10 @@ additive optional fields to both schemas
|
|
|
713
721
|
Parallel, Perplexity, You.com),
|
|
714
722
|
and each `doctor` provider entry may carry `quota: { source:
|
|
715
723
|
"snapshot" | "none", observedAt?, authoritative }` plus `verification:
|
|
716
|
-
{ status, checkedAt, reason? }`. Each
|
|
724
|
+
{ status, checkedAt, reason? }`. Each `quota` requests category may
|
|
725
|
+
also carry an additive optional `toolUsage` array of per-tool
|
|
726
|
+
consumption rows (rendered on the TTY; carried verbatim in json/data;
|
|
727
|
+
no version bump). Each doctor row also carries
|
|
717
728
|
`availability: "ok" | "exhausted" | "error" | "unconfigured"`
|
|
718
729
|
(snapshot-based exhaustion evidence, healthy-first row ordering,
|
|
719
730
|
`availableProviders` short list; `--available` filters the rows to
|