scoutline 0.6.4 → 0.9.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 +19 -12
- package/bin/scoutline.js +2 -3
- package/dist/capabilities/crawl.d.ts +93 -0
- package/dist/capabilities/crawl.d.ts.map +1 -0
- package/dist/capabilities/crawl.js +62 -0
- package/dist/capabilities/crawl.js.map +1 -0
- package/dist/capabilities/diagnostics.d.ts +45 -43
- package/dist/capabilities/diagnostics.d.ts.map +1 -1
- package/dist/capabilities/diagnostics.js +58 -71
- package/dist/capabilities/diagnostics.js.map +1 -1
- package/dist/capabilities/map.d.ts +81 -0
- package/dist/capabilities/map.d.ts.map +1 -0
- package/dist/capabilities/map.js +60 -0
- package/dist/capabilities/map.js.map +1 -0
- package/dist/capabilities/quota.d.ts +11 -0
- package/dist/capabilities/quota.d.ts.map +1 -1
- package/dist/capabilities/quota.js +1 -1
- package/dist/capabilities/quota.js.map +1 -1
- package/dist/capabilities/research.d.ts +98 -0
- package/dist/capabilities/research.d.ts.map +1 -0
- package/dist/capabilities/research.js +71 -0
- package/dist/capabilities/research.js.map +1 -0
- package/dist/capabilities/search.d.ts +19 -1
- package/dist/capabilities/search.d.ts.map +1 -1
- package/dist/commands/crawl.d.ts +46 -0
- package/dist/commands/crawl.d.ts.map +1 -0
- package/dist/commands/crawl.js +170 -0
- package/dist/commands/crawl.js.map +1 -0
- package/dist/commands/doctor.d.ts +7 -8
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +40 -34
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/map.d.ts +39 -0
- package/dist/commands/map.d.ts.map +1 -0
- package/dist/commands/map.js +121 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/quota.d.ts +23 -0
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +21 -4
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +7 -1
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.js +1 -1
- package/dist/commands/research.d.ts +62 -0
- package/dist/commands/research.d.ts.map +1 -0
- package/dist/commands/research.js +314 -0
- package/dist/commands/research.js.map +1 -0
- package/dist/commands/search.d.ts +3 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +26 -10
- package/dist/commands/search.js.map +1 -1
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +291 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts +13 -0
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +15 -0
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/execution.d.ts +105 -1
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +73 -1
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/redact.d.ts +2 -1
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +14 -1
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/research-state.d.ts +104 -0
- package/dist/lib/research-state.d.ts.map +1 -0
- package/dist/lib/research-state.js +214 -0
- package/dist/lib/research-state.js.map +1 -0
- package/dist/lib/search-topic.d.ts +21 -0
- package/dist/lib/search-topic.d.ts.map +1 -0
- package/dist/lib/search-topic.js +36 -0
- package/dist/lib/search-topic.js.map +1 -0
- package/dist/providers/brave/adapter.d.ts +42 -0
- package/dist/providers/brave/adapter.d.ts.map +1 -0
- package/dist/providers/brave/adapter.js +504 -0
- package/dist/providers/brave/adapter.js.map +1 -0
- package/dist/providers/brave/client.d.ts +161 -0
- package/dist/providers/brave/client.d.ts.map +1 -0
- package/dist/providers/brave/client.js +297 -0
- package/dist/providers/brave/client.js.map +1 -0
- package/dist/providers/brave/credentials.d.ts +33 -0
- package/dist/providers/brave/credentials.d.ts.map +1 -0
- package/dist/providers/brave/credentials.js +55 -0
- package/dist/providers/brave/credentials.js.map +1 -0
- package/dist/providers/brave/diagnostics.d.ts +46 -0
- package/dist/providers/brave/diagnostics.d.ts.map +1 -0
- package/dist/providers/brave/diagnostics.js +76 -0
- package/dist/providers/brave/diagnostics.js.map +1 -0
- package/dist/providers/brave/quota.d.ts +86 -0
- package/dist/providers/brave/quota.d.ts.map +1 -0
- package/dist/providers/brave/quota.js +247 -0
- package/dist/providers/brave/quota.js.map +1 -0
- package/dist/providers/exa/adapter.d.ts +58 -0
- package/dist/providers/exa/adapter.d.ts.map +1 -0
- package/dist/providers/exa/adapter.js +892 -0
- package/dist/providers/exa/adapter.js.map +1 -0
- package/dist/providers/exa/client.d.ts +143 -0
- package/dist/providers/exa/client.d.ts.map +1 -0
- package/dist/providers/exa/client.js +328 -0
- package/dist/providers/exa/client.js.map +1 -0
- package/dist/providers/exa/credentials.d.ts +34 -0
- package/dist/providers/exa/credentials.d.ts.map +1 -0
- package/dist/providers/exa/credentials.js +56 -0
- package/dist/providers/exa/credentials.js.map +1 -0
- package/dist/providers/exa/diagnostics.d.ts +42 -0
- package/dist/providers/exa/diagnostics.d.ts.map +1 -0
- package/dist/providers/exa/diagnostics.js +69 -0
- package/dist/providers/exa/diagnostics.js.map +1 -0
- package/dist/providers/minimax/adapter.d.ts.map +1 -1
- package/dist/providers/minimax/adapter.js +7 -2
- package/dist/providers/minimax/adapter.js.map +1 -1
- package/dist/providers/minimax/vision-conformance.d.ts +2 -2
- package/dist/providers/minimax/vision-conformance.js +2 -2
- 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/tavily/adapter.d.ts +62 -0
- package/dist/providers/tavily/adapter.d.ts.map +1 -0
- package/dist/providers/tavily/adapter.js +975 -0
- package/dist/providers/tavily/adapter.js.map +1 -0
- package/dist/providers/tavily/client.d.ts +184 -0
- package/dist/providers/tavily/client.d.ts.map +1 -0
- package/dist/providers/tavily/client.js +486 -0
- package/dist/providers/tavily/client.js.map +1 -0
- package/dist/providers/tavily/credentials.d.ts +34 -0
- package/dist/providers/tavily/credentials.d.ts.map +1 -0
- package/dist/providers/tavily/credentials.js +56 -0
- package/dist/providers/tavily/credentials.js.map +1 -0
- package/dist/providers/tavily/diagnostics.d.ts +44 -0
- package/dist/providers/tavily/diagnostics.d.ts.map +1 -0
- package/dist/providers/tavily/diagnostics.js +70 -0
- package/dist/providers/tavily/diagnostics.js.map +1 -0
- package/dist/providers/tavily/quota.d.ts +60 -0
- package/dist/providers/tavily/quota.d.ts.map +1 -0
- package/dist/providers/tavily/quota.js +186 -0
- package/dist/providers/tavily/quota.js.map +1 -0
- package/dist/providers/types.d.ts +14 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/zai/adapter.d.ts.map +1 -1
- package/dist/providers/zai/adapter.js +13 -2
- package/dist/providers/zai/adapter.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/doctor.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* Under `--no-tools` the command returns after metadata + configured-state
|
|
18
18
|
* evaluation and constructs no Adapter and no transport (FR-034).
|
|
19
19
|
*/
|
|
20
|
-
import {
|
|
20
|
+
import { deriveCapabilityMatrix, diagnosticErrorFromError } from "../capabilities/diagnostics.js";
|
|
21
21
|
import { executeProviderOperation } from "../lib/execution.js";
|
|
22
22
|
import { UnsupportedCapabilityError } from "../lib/errors.js";
|
|
23
23
|
import { redactSecrets, configuredSecrets } from "../lib/redact.js";
|
|
@@ -43,14 +43,13 @@ async function probeProvider(descriptor, env, sleep, random) {
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
* Build a schema-version-
|
|
47
|
-
* (`
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* failures.
|
|
46
|
+
* Build a schema-version-2 {@link DiagnosticsReport}. Inventory
|
|
47
|
+
* (`capabilityMatrix`) is derived purely from `deps.descriptors` — no
|
|
48
|
+
* descriptor.create(), no transport, no production registry import.
|
|
49
|
+
* Under `--no-tools` the command returns after metadata +
|
|
50
|
+
* configured-state evaluation. Otherwise each configured Provider is
|
|
51
|
+
* probed through shared execution with settled collection, preserving
|
|
52
|
+
* registry order and normalized redacted failures.
|
|
54
53
|
*/
|
|
55
54
|
export async function buildDiagnosticsReport(deps) {
|
|
56
55
|
const secrets = configuredSecrets(deps.env);
|
|
@@ -71,10 +70,9 @@ export async function buildDiagnosticsReport(deps) {
|
|
|
71
70
|
// it; it never reads `cacheStats()` itself.
|
|
72
71
|
const cache = deps.cacheSummary === undefined ? undefined : { summary: deps.cacheSummary };
|
|
73
72
|
return {
|
|
74
|
-
schemaVersion:
|
|
73
|
+
schemaVersion: 2,
|
|
75
74
|
effectiveProvider: deps.effectiveProvider,
|
|
76
|
-
|
|
77
|
-
zaiOnlyCapabilities: deriveZaiOnlyCapabilities(deps.descriptors),
|
|
75
|
+
capabilityMatrix: deriveCapabilityMatrix(deps.descriptors),
|
|
78
76
|
node: {
|
|
79
77
|
version: process.version,
|
|
80
78
|
visionMcpCompatible: nodeMajor() >= 22,
|
|
@@ -143,40 +141,48 @@ Doctor - Provider-aware environment and connectivity diagnostics
|
|
|
143
141
|
|
|
144
142
|
Usage: scoutline doctor [options]
|
|
145
143
|
|
|
146
|
-
Reports a schema-version-
|
|
147
|
-
Provider (zai, minimax) with its configured state, declared
|
|
144
|
+
Reports a schema-version-2 diagnostics report listing every built-in
|
|
145
|
+
Provider (zai, minimax, tavily, exa) with its configured state, declared
|
|
148
146
|
Capabilities, and connectivity status. The effective Provider (resolved
|
|
149
147
|
from --provider, SCOUTLINE_PROVIDER, or the default zai) is the
|
|
150
|
-
Provider that serves
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
148
|
+
Provider that serves a requested capability. The capabilityMatrix field
|
|
149
|
+
lists, for each advertised capability, which providers supply it —
|
|
150
|
+
derived from descriptor metadata, so it always reflects the descriptors
|
|
151
|
+
passed to this command.
|
|
154
152
|
|
|
155
153
|
Z.AI connectivity is probed through MCP tool discovery; MiniMax
|
|
156
154
|
connectivity through a single raw quota probe that authenticates
|
|
157
|
-
without a generative request
|
|
155
|
+
without a generative request; Tavily connectivity through a single
|
|
156
|
+
raw quota probe against the Tavily account endpoint; Exa connectivity
|
|
157
|
+
through a single lightweight search request.
|
|
158
158
|
|
|
159
159
|
Repository exploration is a Provider Capability. Z.AI descriptor
|
|
160
160
|
metadata advertises repository-exploration and the Z.AI Adapter
|
|
161
|
-
supplies it; MiniMax
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
supplies it; MiniMax, Tavily, and Exa advertise and supply neither. The
|
|
162
|
+
capabilityMatrix field reflects that descriptor state
|
|
163
|
+
(repository-exploration currently lists only Z.AI while MiniMax and
|
|
164
|
+
Tavily lack it).
|
|
165
165
|
|
|
166
|
-
Reader is a Provider Capability. Z.AI
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
Reader is a Provider Capability. Z.AI, Tavily, and Exa descriptor
|
|
167
|
+
metadata all advertise reader; MiniMax advertises and supplies
|
|
168
|
+
neither. The capabilityMatrix field lists Z.AI, Tavily, and Exa for
|
|
169
|
+
reader.
|
|
170
|
+
|
|
171
|
+
Crawl and Map are Provider Capabilities owned by Tavily.
|
|
172
|
+
Z.AI, MiniMax, and Exa do not advertise either; the capabilityMatrix
|
|
173
|
+
lists Tavily alone for each. Research is supplied by Tavily and Exa.
|
|
174
|
+
Selecting Z.AI or MiniMax for crawl, map, or research returns
|
|
175
|
+
UNSUPPORTED_CAPABILITY with no fallback.
|
|
170
176
|
|
|
171
177
|
Public 'repo' and 'read' commands participate in Provider selection.
|
|
172
178
|
They honour --provider / SCOUTLINE_PROVIDER / the default zai, route
|
|
173
|
-
through the
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
'
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
through the matching Adapter's Repository / Reader Capability, and
|
|
180
|
+
return UNSUPPORTED_CAPABILITY when the selected Provider does not
|
|
181
|
+
advertise the requested capability (e.g. 'repo --provider minimax' or
|
|
182
|
+
'read --provider minimax' fail without falling back to Z.AI). A
|
|
183
|
+
supported-but-unconfigured Provider returns ConfigurationError; a
|
|
184
|
+
supported-and-configured Provider dispatches through the corresponding
|
|
185
|
+
Adapter.
|
|
180
186
|
|
|
181
187
|
Options:
|
|
182
188
|
--no-tools Skip every connectivity probe (metadata-only). Under
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map command — thin handler over the Map Capability
|
|
3
|
+
* (tech-plan §2b, §8).
|
|
4
|
+
*
|
|
5
|
+
* The handler applies parse-level validation (URL scheme), delegates to
|
|
6
|
+
* `capability.fetch(request)` through the generic shared execution
|
|
7
|
+
* wrapper (`executeCachedOperation`), then projects the normalized
|
|
8
|
+
* `MapResult` into the public envelope. The Adapter owns URL validation,
|
|
9
|
+
* credentials, transport, raw response parsing, cache identity, and
|
|
10
|
+
* error normalization; the handler owns output-mode presentation only
|
|
11
|
+
* (no per-page projection — Map returns URLs only).
|
|
12
|
+
*
|
|
13
|
+
* Provider selection, capability support, configuration, Adapter
|
|
14
|
+
* construction, and adapter.map agreement live in `src/index.ts`.
|
|
15
|
+
*/
|
|
16
|
+
import type { CommandContext, CommandResult } from "../command-invocation.js";
|
|
17
|
+
import type { MapCapability } from "../capabilities/map.js";
|
|
18
|
+
import type { ExecutionDependencies } from "../lib/execution.js";
|
|
19
|
+
export interface MapOptions {
|
|
20
|
+
readonly depth?: number;
|
|
21
|
+
readonly breadth?: number;
|
|
22
|
+
readonly limit?: number;
|
|
23
|
+
readonly selectPaths?: string;
|
|
24
|
+
readonly excludePaths?: string;
|
|
25
|
+
readonly instructions?: string;
|
|
26
|
+
readonly noCache?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Dependencies injected by `src/index.ts` after Provider selection,
|
|
30
|
+
* capability support check, configuration check, Adapter construction,
|
|
31
|
+
* and adapter.map agreement.
|
|
32
|
+
*/
|
|
33
|
+
export interface MapHandlerDependencies {
|
|
34
|
+
readonly capability: MapCapability;
|
|
35
|
+
readonly execution: ExecutionDependencies;
|
|
36
|
+
}
|
|
37
|
+
export declare function map(url: string, options: MapOptions | undefined, deps: MapHandlerDependencies, _context?: CommandContext): Promise<CommandResult>;
|
|
38
|
+
export declare const MAP_HELP: string;
|
|
39
|
+
//# sourceMappingURL=map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/commands/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,wBAAwB,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AASjE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AA2CD,wBAAsB,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,UAAU,YAAK,EACxB,IAAI,EAAE,sBAAsB,EAC5B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CAsBxB;AAQD,eAAO,MAAM,QAAQ,QA0Cb,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map command — thin handler over the Map Capability
|
|
3
|
+
* (tech-plan §2b, §8).
|
|
4
|
+
*
|
|
5
|
+
* The handler applies parse-level validation (URL scheme), delegates to
|
|
6
|
+
* `capability.fetch(request)` through the generic shared execution
|
|
7
|
+
* wrapper (`executeCachedOperation`), then projects the normalized
|
|
8
|
+
* `MapResult` into the public envelope. The Adapter owns URL validation,
|
|
9
|
+
* credentials, transport, raw response parsing, cache identity, and
|
|
10
|
+
* error normalization; the handler owns output-mode presentation only
|
|
11
|
+
* (no per-page projection — Map returns URLs only).
|
|
12
|
+
*
|
|
13
|
+
* Provider selection, capability support, configuration, Adapter
|
|
14
|
+
* construction, and adapter.map agreement live in `src/index.ts`.
|
|
15
|
+
*/
|
|
16
|
+
import { executeCachedOperation } from "../lib/execution.js";
|
|
17
|
+
import { OUTPUT_MODES } from "../lib/output.js";
|
|
18
|
+
import { ValidationError } from "../lib/errors.js";
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Parse-level validation
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
function validateUrl(url) {
|
|
23
|
+
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
|
24
|
+
throw new ValidationError("URL must start with http:// or https://");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Request builder
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
/**
|
|
31
|
+
* Build the Provider-neutral MapRequest from MapOptions. Only fields
|
|
32
|
+
* that affect the Provider request or the cache identity appear here;
|
|
33
|
+
* `--no-cache` and output mode never enter the request.
|
|
34
|
+
*/
|
|
35
|
+
function buildMapRequest(url, options) {
|
|
36
|
+
const request = { url };
|
|
37
|
+
if (options.depth !== undefined)
|
|
38
|
+
request.depth = options.depth;
|
|
39
|
+
if (options.breadth !== undefined)
|
|
40
|
+
request.breadth = options.breadth;
|
|
41
|
+
if (options.limit !== undefined)
|
|
42
|
+
request.limit = options.limit;
|
|
43
|
+
if (options.selectPaths !== undefined)
|
|
44
|
+
request.selectPaths = options.selectPaths;
|
|
45
|
+
if (options.excludePaths !== undefined)
|
|
46
|
+
request.excludePaths = options.excludePaths;
|
|
47
|
+
if (options.instructions !== undefined)
|
|
48
|
+
request.instructions = options.instructions;
|
|
49
|
+
return request;
|
|
50
|
+
}
|
|
51
|
+
function buildMapPresentations(urls) {
|
|
52
|
+
const compact = urls.join("\n");
|
|
53
|
+
const markdown = urls.map((u, i) => `${i + 1}. ${u}`).join("\n");
|
|
54
|
+
const refs = urls.map((u, i) => `[${i + 1}] ${u}`).join("\n");
|
|
55
|
+
return { compact, markdown, refs, tty: markdown };
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Handler
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
export async function map(url, options = {}, deps, _context) {
|
|
61
|
+
validateUrl(url);
|
|
62
|
+
const request = buildMapRequest(url, options);
|
|
63
|
+
const result = await executeCachedOperation(deps.capability.fetch, request, { noCache: options.noCache === true }, deps.execution);
|
|
64
|
+
// Map returns URLs only — no per-page projection or truncation.
|
|
65
|
+
// The envelope is the normalized result verbatim.
|
|
66
|
+
const envelope = {
|
|
67
|
+
schemaVersion: result.schemaVersion,
|
|
68
|
+
baseUrl: result.baseUrl,
|
|
69
|
+
urls: result.urls,
|
|
70
|
+
totalUrls: result.totalUrls,
|
|
71
|
+
};
|
|
72
|
+
return { kind: "data", data: envelope, presentations: buildMapPresentations(result.urls) };
|
|
73
|
+
}
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Help
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
const OUTPUT_MODE_LIST = OUTPUT_MODES.join(" | ");
|
|
78
|
+
export const MAP_HELP = `
|
|
79
|
+
Map Command - Discover the URL structure of a website (Provider Capability)
|
|
80
|
+
|
|
81
|
+
Usage: scoutline map <url> [options]
|
|
82
|
+
|
|
83
|
+
Maps a website starting from <url>, returning the discovered URL set
|
|
84
|
+
without fetching page contents. Use this for site structure discovery
|
|
85
|
+
before deciding which pages to crawl or read.
|
|
86
|
+
|
|
87
|
+
Provider selection (precedence: --provider, then SCOUTLINE_PROVIDER,
|
|
88
|
+
then the configured default):
|
|
89
|
+
- Tavily advertises the map Capability and supplies the Adapter.
|
|
90
|
+
- Z.AI and MiniMax do NOT advertise map. Selecting them returns
|
|
91
|
+
UNSUPPORTED_CAPABILITY with no fallback.
|
|
92
|
+
|
|
93
|
+
Options:
|
|
94
|
+
--depth <n> Map depth, 1-5 (default: 1)
|
|
95
|
+
--breadth <n> Max links to follow per page, 1-500 (default: 20)
|
|
96
|
+
--limit <n> Total URLs to discover (default: 50)
|
|
97
|
+
--select-paths <rx> Comma-separated regex patterns to select URL paths
|
|
98
|
+
--exclude-paths <rx> Comma-separated regex patterns to exclude URL paths
|
|
99
|
+
--instructions <t> Natural language instructions for page selection
|
|
100
|
+
--no-cache Bypass the response cache for this invocation
|
|
101
|
+
|
|
102
|
+
Common Options:
|
|
103
|
+
--provider <id> Override the active Provider (zai | minimax | tavily | exa)
|
|
104
|
+
--output-format <mode> One of: ${OUTPUT_MODE_LIST} (default: data)
|
|
105
|
+
-O <mode> Alias for --output-format
|
|
106
|
+
|
|
107
|
+
Output format (schema-version-1):
|
|
108
|
+
{
|
|
109
|
+
"schemaVersion": 1,
|
|
110
|
+
"baseUrl": "<the URL you passed>",
|
|
111
|
+
"urls": ["<discovered URL>", ...],
|
|
112
|
+
"totalUrls": <number>
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
Examples:
|
|
116
|
+
scoutline map https://docs.example.com
|
|
117
|
+
scoutline map https://example.com --depth 2 --breadth 10 --limit 20
|
|
118
|
+
scoutline map https://docs.example.com --select-paths "/api/.*,/guide/.*"
|
|
119
|
+
scoutline --provider tavily map https://example.com --depth 3
|
|
120
|
+
`.trim();
|
|
121
|
+
//# sourceMappingURL=map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/commands/map.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/quota.d.ts
CHANGED
|
@@ -37,14 +37,37 @@ export interface QuotaOptions {
|
|
|
37
37
|
* Injectable dependencies for the quota command. `buildDashboard`
|
|
38
38
|
* resolves the effective/all-provider dashboard; the command only wraps
|
|
39
39
|
* it for presentation and exit-code selection.
|
|
40
|
+
*
|
|
41
|
+
* `writeStderr` is an OPTIONAL generic stderr sink. When provided, the
|
|
42
|
+
* command collects every `warnings` entry from successful dashboard
|
|
43
|
+
* entries and writes each as a prominent notice — provider-neutral
|
|
44
|
+
* (iterates warnings, never branches on provider name). A Provider that
|
|
45
|
+
* needs to flag a caveat about its quota numbers (e.g. Brave reports a
|
|
46
|
+
* rate-limit window, not spend) populates `warnings`; the command
|
|
47
|
+
* renders it here so the caveat text stays out of the neutral command.
|
|
40
48
|
*/
|
|
41
49
|
export interface QuotaCommandDependencies {
|
|
42
50
|
readonly buildDashboard: () => Promise<QuotaDashboard>;
|
|
51
|
+
readonly writeStderr?: (value: string) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Configured credential values used to redact `warnings` text before
|
|
54
|
+
* it reaches stderr. The `warnings` channel is provider-authored, so a
|
|
55
|
+
* future Provider could put value-derived text there; running each
|
|
56
|
+
* warning through `redactCredentialString` keeps the stderr seam under
|
|
57
|
+
* the same redaction as the dashboard data. Optional — when omitted,
|
|
58
|
+
* only the key/regex-based redaction applies.
|
|
59
|
+
*/
|
|
60
|
+
readonly secrets?: string[];
|
|
43
61
|
}
|
|
44
62
|
/**
|
|
45
63
|
* Run the quota command. Returns the dashboard as base data with a TTY
|
|
46
64
|
* presentation override. Exit code is 1 when any dashboard entry failed
|
|
47
65
|
* (all-provider mode); otherwise 0.
|
|
66
|
+
*
|
|
67
|
+
* Before returning, any `warnings` attached to successful entries are
|
|
68
|
+
* rendered to `writeStderr` (when provided) as prominent notices. This
|
|
69
|
+
* is the provider-neutral caveat channel: it does not branch on
|
|
70
|
+
* provider identity.
|
|
48
71
|
*/
|
|
49
72
|
export declare function quota(deps: QuotaCommandDependencies): Promise<CommandResult<QuotaDashboard>>;
|
|
50
73
|
export declare const QUOTA_HELP: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAS5E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAS5E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;CAC/B;AAuFD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,CAEzB;AAMD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAuBxC;AAED,eAAO,MAAM,UAAU,QA2Bf,CAAC"}
|
package/dist/commands/quota.js
CHANGED
|
@@ -17,7 +17,7 @@ import { quotaFailureFromError } from "../capabilities/quota.js";
|
|
|
17
17
|
import { executeProviderOperation } from "../lib/execution.js";
|
|
18
18
|
import { ConfigurationError, UnsupportedCapabilityError } from "../lib/errors.js";
|
|
19
19
|
import { getProviderDescriptor } from "../providers/selection.js";
|
|
20
|
-
import { redactSecrets, configuredSecrets } from "../lib/redact.js";
|
|
20
|
+
import { redactSecrets, configuredSecrets, redactCredentialString } from "../lib/redact.js";
|
|
21
21
|
import { formatQuotaDashboard } from "../lib/tty.js";
|
|
22
22
|
/**
|
|
23
23
|
* Invoke one Provider's quota Capability through shared execution. The
|
|
@@ -42,7 +42,7 @@ async function invokeProviderQuota(descriptor, env, sleep, random) {
|
|
|
42
42
|
async function buildDefaultDashboard(deps) {
|
|
43
43
|
const descriptor = getProviderDescriptor(deps.effectiveProvider, deps.descriptors);
|
|
44
44
|
if (!descriptor.isConfigured(deps.env)) {
|
|
45
|
-
throw new ConfigurationError(`Provider "${deps.effectiveProvider}" is not configured. Set Z_AI_API_KEY or
|
|
45
|
+
throw new ConfigurationError(`Provider "${deps.effectiveProvider}" is not configured. Set its API key (Z_AI_API_KEY, MINIMAX_API_KEY, TAVILY_API_KEY, or BRAVE_SEARCH_API_KEY).`);
|
|
46
46
|
}
|
|
47
47
|
const success = await invokeProviderQuota(descriptor, deps.env, deps.sleep, deps.random);
|
|
48
48
|
return {
|
|
@@ -60,9 +60,9 @@ async function buildDefaultDashboard(deps) {
|
|
|
60
60
|
* success.
|
|
61
61
|
*/
|
|
62
62
|
async function buildAllProvidersDashboard(deps) {
|
|
63
|
-
const configured = deps.descriptors.filter((d) => d.isConfigured(deps.env));
|
|
63
|
+
const configured = deps.descriptors.filter((d) => d.isConfigured(deps.env) && d.capabilities().has("quota"));
|
|
64
64
|
if (configured.length === 0) {
|
|
65
|
-
throw new ConfigurationError("No provider is configured. Set Z_AI_API_KEY
|
|
65
|
+
throw new ConfigurationError("No provider is configured. Set at least one API key (Z_AI_API_KEY, MINIMAX_API_KEY, TAVILY_API_KEY, or BRAVE_SEARCH_API_KEY).");
|
|
66
66
|
}
|
|
67
67
|
const secrets = configuredSecrets(deps.env);
|
|
68
68
|
const settled = await Promise.allSettled(configured.map((d) => invokeProviderQuota(d, deps.env, deps.sleep, deps.random)));
|
|
@@ -91,9 +91,26 @@ export async function buildQuotaDashboard(deps) {
|
|
|
91
91
|
* Run the quota command. Returns the dashboard as base data with a TTY
|
|
92
92
|
* presentation override. Exit code is 1 when any dashboard entry failed
|
|
93
93
|
* (all-provider mode); otherwise 0.
|
|
94
|
+
*
|
|
95
|
+
* Before returning, any `warnings` attached to successful entries are
|
|
96
|
+
* rendered to `writeStderr` (when provided) as prominent notices. This
|
|
97
|
+
* is the provider-neutral caveat channel: it does not branch on
|
|
98
|
+
* provider identity.
|
|
94
99
|
*/
|
|
95
100
|
export async function quota(deps) {
|
|
96
101
|
const dashboard = await deps.buildDashboard();
|
|
102
|
+
const writeStderr = deps.writeStderr;
|
|
103
|
+
if (writeStderr) {
|
|
104
|
+
for (const entry of dashboard.providers) {
|
|
105
|
+
if (entry.status === "ok" && entry.warnings && entry.warnings.length > 0) {
|
|
106
|
+
for (const warning of entry.warnings) {
|
|
107
|
+
// Redact before stderr: warnings are provider-authored and a
|
|
108
|
+
// future Provider could embed value-derived text here.
|
|
109
|
+
writeStderr(redactCredentialString(`⚠️ ${entry.provider}: ${warning}\n`, deps.secrets));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
97
114
|
const hasFailure = dashboard.providers.some((p) => p.status === "error");
|
|
98
115
|
return {
|
|
99
116
|
kind: "data",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAmBrD;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAChC,UAA8B,EAC9B,GAAsB,EACtB,KAAoC,EACpC,MAAoB;IAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAqB,CAAC;IAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAAC,IAAgC;IACnE,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,aAAa,IAAI,CAAC,iBAAiB,gHAAgH,CACpJ,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACvC,IAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CACjE,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAC1B,+HAA+H,CAChI,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CACjF,CAAC;IACF,MAAM,SAAS,GAAuD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,aAAa,CAClB,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAC1C,OAAO,CACgB,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAgC;IAEhC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAqCD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,IAA8B;IAE9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzE,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACrC,6DAA6D;oBAC7D,uDAAuD;oBACvD,WAAW,CAAC,sBAAsB,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,aAAa,EAAE,EAAE,GAAG,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAAE;QACvD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM7E,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAkID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,YAAK,EACzB,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CA6CxB;AAaD,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM7E,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAkID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,YAAK,EACzB,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CA6CxB;AAaD,eAAO,MAAM,SAAS,QA8Fd,CAAC"}
|
package/dist/commands/read.js
CHANGED
|
@@ -229,6 +229,11 @@ then zai):
|
|
|
229
229
|
- The 'read' command participates in Provider selection.
|
|
230
230
|
- Z.AI advertises the reader Capability and supplies the Adapter;
|
|
231
231
|
selecting zai routes Read through it.
|
|
232
|
+
- Tavily also advertises the reader Capability (powered by the
|
|
233
|
+
Tavily extract endpoint). Selecting tavily routes Read through
|
|
234
|
+
the Tavily Adapter. Some Z.AI-only options
|
|
235
|
+
(--with-links, --no-gfm, --keep-img-data-url, --with-images-summary)
|
|
236
|
+
are rejected with UNSUPPORTED_OPTION when tavily is selected.
|
|
232
237
|
- MiniMax does NOT advertise reader. Selecting minimax (explicitly
|
|
233
238
|
or via SCOUTLINE_PROVIDER) returns UNSUPPORTED_CAPABILITY with
|
|
234
239
|
no fallback to Z.AI.
|
|
@@ -250,7 +255,7 @@ Options:
|
|
|
250
255
|
code | links | tables | headings
|
|
251
256
|
|
|
252
257
|
Common Options:
|
|
253
|
-
--provider <id> Override the active Provider (zai | minimax)
|
|
258
|
+
--provider <id> Override the active Provider (zai | minimax | tavily | exa)
|
|
254
259
|
--output-format <mode> One of: ${OUTPUT_MODE_LIST} (default: data)
|
|
255
260
|
-O <mode> Alias for --output-format
|
|
256
261
|
|
|
@@ -301,5 +306,6 @@ Examples:
|
|
|
301
306
|
scoutline read https://example.com/page --extract links # links
|
|
302
307
|
scoutline read https://en.wikipedia.org/wiki/X --extract headings # section outline
|
|
303
308
|
scoutline --provider minimax read https://example.com/ # UNSUPPORTED_CAPABILITY
|
|
309
|
+
scoutline --provider tavily read https://example.com/ # Tavily-backed extract
|
|
304
310
|
`.trim();
|
|
305
311
|
//# sourceMappingURL=read.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/repo.js
CHANGED
|
@@ -115,7 +115,7 @@ Read Options:
|
|
|
115
115
|
|
|
116
116
|
Common Options:
|
|
117
117
|
--no-cache Bypass the response cache for this invocation
|
|
118
|
-
--provider <id> Override the active Provider (zai | minimax)
|
|
118
|
+
--provider <id> Override the active Provider (zai | minimax | tavily | exa)
|
|
119
119
|
--output-format <mode> One of: ${OUTPUT_MODE_LIST} (default: data)
|
|
120
120
|
-O <mode> Alias for --output-format
|
|
121
121
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research command — thin handler over the Research Capability
|
|
3
|
+
* (tech-plan §2c, §3, §8).
|
|
4
|
+
*
|
|
5
|
+
* Research runs an asynchronous create→poll lifecycle server-side and
|
|
6
|
+
* costs 4-250 credits per request. The handler shows a wait disclaimer
|
|
7
|
+
* before invoke, sets up a Ctrl-C signal handler that prints the
|
|
8
|
+
* request_id + resume command, and applies `--max-chars` as a report
|
|
9
|
+
* projection after the cached normalized result is produced.
|
|
10
|
+
*
|
|
11
|
+
* The Adapter's `invoke()` owns the full lifecycle (state-file resume,
|
|
12
|
+
* POST, poll loop, completion/failure/404 handling); shared execution
|
|
13
|
+
* wraps it with cache + zero-retry.
|
|
14
|
+
*
|
|
15
|
+
* Provider selection, capability support, configuration, Adapter
|
|
16
|
+
* construction, and adapter.research agreement live in `src/index.ts`.
|
|
17
|
+
*
|
|
18
|
+
* Cache stores the full report; `--max-chars` is a handler projection.
|
|
19
|
+
*/
|
|
20
|
+
import type { CommandContext, CommandResult } from "../command-invocation.js";
|
|
21
|
+
import type { ResearchCapability } from "../capabilities/research.js";
|
|
22
|
+
import type { ExecutionDependencies } from "../lib/execution.js";
|
|
23
|
+
export interface ResearchOptions {
|
|
24
|
+
readonly model?: "mini" | "pro" | "auto";
|
|
25
|
+
readonly outputLength?: "short" | "standard" | "long";
|
|
26
|
+
readonly citationFormat?: "numbered" | "mla" | "apa" | "chicago";
|
|
27
|
+
readonly domain?: string;
|
|
28
|
+
readonly maxChars?: number;
|
|
29
|
+
/** Polling timeout in seconds. Default 300. */
|
|
30
|
+
readonly timeout?: number;
|
|
31
|
+
readonly noCache?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Dependencies injected by `src/index.ts` after Provider selection,
|
|
35
|
+
* capability support check, configuration check, Adapter construction,
|
|
36
|
+
* and adapter.research agreement.
|
|
37
|
+
*/
|
|
38
|
+
export interface ResearchHandlerDependencies {
|
|
39
|
+
readonly capability: ResearchCapability;
|
|
40
|
+
readonly execution: ExecutionDependencies;
|
|
41
|
+
/**
|
|
42
|
+
* Registers a Ctrl-C (SIGINT) handler before invoke. Receives a
|
|
43
|
+
* `print` callback (already bound to the request identity) that
|
|
44
|
+
* reads the state file and prints the request_id + resume command.
|
|
45
|
+
* Returns a cleanup function that removes the handler after the
|
|
46
|
+
* operation completes. Production wires `process.on('SIGINT', ...)`;
|
|
47
|
+
* tests inject a recorder or no-op.
|
|
48
|
+
*/
|
|
49
|
+
readonly registerInterrupt?: (print: () => void) => () => void;
|
|
50
|
+
}
|
|
51
|
+
export declare function validateModel(value: unknown): "mini" | "pro" | "auto" | undefined;
|
|
52
|
+
export declare function validateOutputLength(value: unknown): "short" | "standard" | "long" | undefined;
|
|
53
|
+
export declare function validateCitationFormat(value: unknown): "numbered" | "mla" | "apa" | "chicago" | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Format the Ctrl-C interrupt message. Pure and exported so tests verify
|
|
56
|
+
* the request_id and resume command appear in the output without
|
|
57
|
+
* simulating a real SIGINT. The message goes to stderr.
|
|
58
|
+
*/
|
|
59
|
+
export declare function formatInterruptMessage(requestId: string, resumeCommand: string): string;
|
|
60
|
+
export declare function research(query: string, options: ResearchOptions | undefined, deps: ResearchHandlerDependencies, _context?: CommandContext): Promise<CommandResult>;
|
|
61
|
+
export declare const RESEARCH_HELP: string;
|
|
62
|
+
//# sourceMappingURL=research.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAWjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAChE;AAUD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAgBjF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAgB9F;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAgBpD;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAUvF;AAqGD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,YAAK,EAC7B,IAAI,EAAE,2BAA2B,EACjC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,CAiGxB;AAQD,eAAO,MAAM,aAAa,QAiDlB,CAAC"}
|