scoutline 0.1.0 → 0.2.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 +170 -5
- package/bin/scoutline.js +36 -15
- package/dist/capabilities/diagnostics.d.ts +97 -0
- package/dist/capabilities/diagnostics.d.ts.map +1 -0
- package/dist/capabilities/diagnostics.js +88 -0
- package/dist/capabilities/diagnostics.js.map +1 -0
- package/dist/capabilities/quota.d.ts +99 -0
- package/dist/capabilities/quota.d.ts.map +1 -0
- package/dist/capabilities/quota.js +129 -0
- package/dist/capabilities/quota.js.map +1 -0
- package/dist/capabilities/search.d.ts +110 -0
- package/dist/capabilities/search.d.ts.map +1 -0
- package/dist/capabilities/search.js +21 -0
- package/dist/capabilities/search.js.map +1 -0
- package/dist/capabilities/vision.d.ts +156 -0
- package/dist/capabilities/vision.d.ts.map +1 -0
- package/dist/capabilities/vision.js +111 -0
- package/dist/capabilities/vision.js.map +1 -0
- package/dist/command-invocation.d.ts +58 -0
- package/dist/command-invocation.d.ts.map +1 -0
- package/dist/command-invocation.js +95 -0
- package/dist/command-invocation.js.map +1 -0
- package/dist/commands/code.d.ts +11 -4
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/code.js +16 -42
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/doctor.d.ts +58 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +154 -52
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/quota.d.ts +45 -3
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +116 -60
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/read.d.ts +15 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +53 -54
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.d.ts +8 -3
- package/dist/commands/repo.d.ts.map +1 -1
- package/dist/commands/repo.js +40 -78
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/search.d.ts +27 -2
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +95 -103
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/tools.d.ts +9 -3
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +29 -59
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/vision.d.ts +35 -9
- package/dist/commands/vision.d.ts.map +1 -1
- package/dist/commands/vision.js +184 -131
- package/dist/commands/vision.js.map +1 -1
- package/dist/index.d.ts +42 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +389 -207
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts +61 -0
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +74 -11
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/code-mode.d.ts +13 -0
- package/dist/lib/code-mode.d.ts.map +1 -1
- package/dist/lib/code-mode.js +26 -6
- package/dist/lib/code-mode.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +15 -18
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +65 -10
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +135 -19
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/execution.d.ts +76 -0
- package/dist/lib/execution.d.ts.map +1 -0
- package/dist/lib/execution.js +177 -0
- package/dist/lib/execution.js.map +1 -0
- package/dist/lib/index.d.ts +10 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +10 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/mcp-client.d.ts +46 -11
- package/dist/lib/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp-client.js +92 -27
- package/dist/lib/mcp-client.js.map +1 -1
- package/dist/lib/mcp-config.d.ts +17 -0
- package/dist/lib/mcp-config.d.ts.map +1 -1
- package/dist/lib/mcp-config.js +29 -0
- package/dist/lib/mcp-config.js.map +1 -1
- package/dist/lib/monitor-client.d.ts +17 -3
- package/dist/lib/monitor-client.d.ts.map +1 -1
- package/dist/lib/monitor-client.js +23 -69
- package/dist/lib/monitor-client.js.map +1 -1
- package/dist/lib/output.d.ts +53 -7
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +126 -39
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/redact.d.ts +62 -3
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +165 -31
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/tty.d.ts +7 -20
- package/dist/lib/tty.d.ts.map +1 -1
- package/dist/lib/tty.js +51 -30
- package/dist/lib/tty.js.map +1 -1
- package/dist/node-command-invocation-adapter.d.ts +28 -0
- package/dist/node-command-invocation-adapter.d.ts.map +1 -0
- package/dist/node-command-invocation-adapter.js +88 -0
- package/dist/node-command-invocation-adapter.js.map +1 -0
- package/dist/providers/minimax/adapter.d.ts +47 -0
- package/dist/providers/minimax/adapter.d.ts.map +1 -0
- package/dist/providers/minimax/adapter.js +443 -0
- package/dist/providers/minimax/adapter.js.map +1 -0
- package/dist/providers/minimax/config.d.ts +32 -0
- package/dist/providers/minimax/config.d.ts.map +1 -0
- package/dist/providers/minimax/config.js +84 -0
- package/dist/providers/minimax/config.js.map +1 -0
- package/dist/providers/minimax/media.d.ts +34 -0
- package/dist/providers/minimax/media.d.ts.map +1 -0
- package/dist/providers/minimax/media.js +92 -0
- package/dist/providers/minimax/media.js.map +1 -0
- package/dist/providers/minimax/quota-client.d.ts +37 -0
- package/dist/providers/minimax/quota-client.d.ts.map +1 -0
- package/dist/providers/minimax/quota-client.js +78 -0
- package/dist/providers/minimax/quota-client.js.map +1 -0
- package/dist/providers/minimax/quota.d.ts +48 -0
- package/dist/providers/minimax/quota.d.ts.map +1 -0
- package/dist/providers/minimax/quota.js +120 -0
- package/dist/providers/minimax/quota.js.map +1 -0
- package/dist/providers/minimax/sdk-client.d.ts +29 -0
- package/dist/providers/minimax/sdk-client.d.ts.map +1 -0
- package/dist/providers/minimax/sdk-client.js +50 -0
- package/dist/providers/minimax/sdk-client.js.map +1 -0
- package/dist/providers/minimax/vision-attestations.d.ts +29 -0
- package/dist/providers/minimax/vision-attestations.d.ts.map +1 -0
- package/dist/providers/minimax/vision-attestations.js +54 -0
- package/dist/providers/minimax/vision-attestations.js.map +1 -0
- package/dist/providers/minimax/vision-conformance.d.ts +184 -0
- package/dist/providers/minimax/vision-conformance.d.ts.map +1 -0
- package/dist/providers/minimax/vision-conformance.js +369 -0
- package/dist/providers/minimax/vision-conformance.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/chart.d.ts +35 -0
- package/dist/providers/minimax/vision-mappings/chart.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/chart.js +55 -0
- package/dist/providers/minimax/vision-mappings/chart.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/common.d.ts +60 -0
- package/dist/providers/minimax/vision-mappings/common.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/common.js +75 -0
- package/dist/providers/minimax/vision-mappings/common.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/diagnose-error.d.ts +35 -0
- package/dist/providers/minimax/vision-mappings/diagnose-error.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/diagnose-error.js +55 -0
- package/dist/providers/minimax/vision-mappings/diagnose-error.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/diagram.d.ts +35 -0
- package/dist/providers/minimax/vision-mappings/diagram.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/diagram.js +55 -0
- package/dist/providers/minimax/vision-mappings/diagram.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/extract-text.d.ts +35 -0
- package/dist/providers/minimax/vision-mappings/extract-text.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/extract-text.js +55 -0
- package/dist/providers/minimax/vision-mappings/extract-text.js.map +1 -0
- package/dist/providers/minimax/vision-mappings/ui-artifact.d.ts +35 -0
- package/dist/providers/minimax/vision-mappings/ui-artifact.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings/ui-artifact.js +69 -0
- package/dist/providers/minimax/vision-mappings/ui-artifact.js.map +1 -0
- package/dist/providers/minimax/vision-mappings.generated.d.ts +29 -0
- package/dist/providers/minimax/vision-mappings.generated.d.ts.map +1 -0
- package/dist/providers/minimax/vision-mappings.generated.js +29 -0
- package/dist/providers/minimax/vision-mappings.generated.js.map +1 -0
- package/dist/providers/minimax/vision-revisions.d.ts +22 -0
- package/dist/providers/minimax/vision-revisions.d.ts.map +1 -0
- package/dist/providers/minimax/vision-revisions.js +27 -0
- package/dist/providers/minimax/vision-revisions.js.map +1 -0
- package/dist/providers/registry.d.ts +36 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +45 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/selection.d.ts +44 -0
- package/dist/providers/selection.d.ts.map +1 -0
- package/dist/providers/selection.js +85 -0
- package/dist/providers/selection.js.map +1 -0
- package/dist/providers/types.d.ts +247 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +127 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/zai/adapter.d.ts +35 -0
- package/dist/providers/zai/adapter.d.ts.map +1 -0
- package/dist/providers/zai/adapter.js +619 -0
- package/dist/providers/zai/adapter.js.map +1 -0
- package/dist/providers/zai/credentials.d.ts +38 -0
- package/dist/providers/zai/credentials.d.ts.map +1 -0
- package/dist/providers/zai/credentials.js +60 -0
- package/dist/providers/zai/credentials.js.map +1 -0
- package/dist/providers/zai/media.d.ts +38 -0
- package/dist/providers/zai/media.d.ts.map +1 -0
- package/dist/providers/zai/media.js +107 -0
- package/dist/providers/zai/media.js.map +1 -0
- package/dist/providers/zai/monitor-client.d.ts +53 -0
- package/dist/providers/zai/monitor-client.d.ts.map +1 -0
- package/dist/providers/zai/monitor-client.js +117 -0
- package/dist/providers/zai/monitor-client.js.map +1 -0
- package/dist/providers/zai/quota.d.ts +47 -0
- package/dist/providers/zai/quota.d.ts.map +1 -0
- package/dist/providers/zai/quota.js +127 -0
- package/dist/providers/zai/quota.js.map +1 -0
- package/package.json +10 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/commands/repo.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/commands/repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Web search command
|
|
2
|
+
* Web search command.
|
|
3
|
+
*
|
|
4
|
+
* P2-05: the command receives an injected SearchCapability and shared
|
|
5
|
+
* execution dependencies instead of constructing a Provider client.
|
|
6
|
+
* The command owns query splitting, parallel scheduling, normalized
|
|
7
|
+
* merge, rank, occurrence, truncation, projection, notices, and
|
|
8
|
+
* presentations; the Adapter owns credentials, transport, and Provider
|
|
9
|
+
* field mapping. Count is applied AFTER normalization by shared
|
|
10
|
+
* execution and never enters an Adapter request or cache identity.
|
|
3
11
|
*/
|
|
12
|
+
import type { CommandContext, CommandResult } from "../command-invocation.js";
|
|
13
|
+
import type { SearchCapability } from "../capabilities/search.js";
|
|
14
|
+
import type { ResponseCache } from "../lib/cache.js";
|
|
15
|
+
import type { RetryPolicy } from "../lib/execution.js";
|
|
4
16
|
type RecencyFilter = "oneDay" | "oneWeek" | "oneMonth" | "oneYear" | "noLimit";
|
|
5
17
|
export interface SearchOptions {
|
|
6
18
|
count?: number;
|
|
@@ -13,7 +25,20 @@ export interface SearchOptions {
|
|
|
13
25
|
noCache?: boolean;
|
|
14
26
|
merge?: boolean;
|
|
15
27
|
}
|
|
16
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Shared execution dependencies the search command consumes. The
|
|
30
|
+
* Capability and cache/sleep/random are injected so tests run fully
|
|
31
|
+
* offline; production wires the real Adapter from the selected Provider
|
|
32
|
+
* and the default on-disk cache.
|
|
33
|
+
*/
|
|
34
|
+
export interface SearchExecutionDependencies {
|
|
35
|
+
readonly capability: SearchCapability;
|
|
36
|
+
readonly cache: ResponseCache;
|
|
37
|
+
readonly sleep: (ms: number) => Promise<void>;
|
|
38
|
+
readonly random: () => number;
|
|
39
|
+
readonly retryPolicy?: RetryPolicy;
|
|
40
|
+
}
|
|
41
|
+
export declare function search(query: string, options: SearchOptions | undefined, deps: SearchExecutionDependencies, context?: CommandContext): Promise<CommandResult>;
|
|
17
42
|
export declare const SEARCH_HELP: string;
|
|
18
43
|
export {};
|
|
19
44
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,KAAK,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AA6HD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,YAAK,EAC3B,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA2DxB;AAGD,eAAO,MAAM,WAAW,QAuDhB,CAAC"}
|
package/dist/commands/search.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Web search command
|
|
2
|
+
* Web search command.
|
|
3
|
+
*
|
|
4
|
+
* P2-05: the command receives an injected SearchCapability and shared
|
|
5
|
+
* execution dependencies instead of constructing a Provider client.
|
|
6
|
+
* The command owns query splitting, parallel scheduling, normalized
|
|
7
|
+
* merge, rank, occurrence, truncation, projection, notices, and
|
|
8
|
+
* presentations; the Adapter owns credentials, transport, and Provider
|
|
9
|
+
* field mapping. Count is applied AFTER normalization by shared
|
|
10
|
+
* execution and never enters an Adapter request or cache identity.
|
|
3
11
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { outputSuccess, getOutputMode } from "../lib/output.js";
|
|
6
|
-
import { formatErrorOutput } from "../lib/errors.js";
|
|
7
|
-
import { silenceConsole, restoreConsole } from "../lib/silence.js";
|
|
12
|
+
import { executeSearch } from "../lib/execution.js";
|
|
8
13
|
import { formatSearchResultsPretty } from "../lib/tty.js";
|
|
9
14
|
function truncate(text, max) {
|
|
10
15
|
if (!text)
|
|
@@ -25,6 +30,23 @@ function filterFields(result, fields) {
|
|
|
25
30
|
}
|
|
26
31
|
return filtered;
|
|
27
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Build Provider controls from command options. Every field is optional;
|
|
35
|
+
* an Adapter that does not accept a control (MiniMax) rejects it inside
|
|
36
|
+
* `validate` before any SDK access (FR-012).
|
|
37
|
+
*/
|
|
38
|
+
function buildControls(options) {
|
|
39
|
+
const controls = {};
|
|
40
|
+
if (options.domain)
|
|
41
|
+
controls.domain = options.domain;
|
|
42
|
+
if (options.recency)
|
|
43
|
+
controls.recency = options.recency;
|
|
44
|
+
if (options.contentSize)
|
|
45
|
+
controls.contentSize = options.contentSize;
|
|
46
|
+
if (options.location)
|
|
47
|
+
controls.location = options.location;
|
|
48
|
+
return Object.keys(controls).length > 0 ? controls : undefined;
|
|
49
|
+
}
|
|
28
50
|
/**
|
|
29
51
|
* Merge results from N parallel sub-queries: dedupe by URL, rank by
|
|
30
52
|
* (occurrence count desc, then best position asc). First sub-query's
|
|
@@ -32,7 +54,7 @@ function filterFields(result, fields) {
|
|
|
32
54
|
*/
|
|
33
55
|
function mergeResults(byQuery) {
|
|
34
56
|
const map = new Map();
|
|
35
|
-
for (const [
|
|
57
|
+
for (const [, results] of byQuery.entries()) {
|
|
36
58
|
for (const r of results) {
|
|
37
59
|
const existing = map.get(r.url);
|
|
38
60
|
if (existing) {
|
|
@@ -44,12 +66,8 @@ function mergeResults(byQuery) {
|
|
|
44
66
|
...r,
|
|
45
67
|
occurrences: 1,
|
|
46
68
|
bestPos: r.rank,
|
|
47
|
-
// Keep title/summary from the EARLIEST sub-query that surfaced it.
|
|
48
|
-
// r already has those since we're iterating in order.
|
|
49
69
|
});
|
|
50
70
|
}
|
|
51
|
-
// Suppress unused-var warning
|
|
52
|
-
void qIdx;
|
|
53
71
|
}
|
|
54
72
|
}
|
|
55
73
|
const merged = Array.from(map.values());
|
|
@@ -58,7 +76,6 @@ function mergeResults(byQuery) {
|
|
|
58
76
|
return b.occurrences - a.occurrences;
|
|
59
77
|
return a.bestPos - b.bestPos;
|
|
60
78
|
});
|
|
61
|
-
// Re-rank
|
|
62
79
|
return merged.map((r, i) => {
|
|
63
80
|
const { bestPos: _bp, ...rest } = r;
|
|
64
81
|
void _bp;
|
|
@@ -85,8 +102,32 @@ function renderTextFormat(results, mode) {
|
|
|
85
102
|
}
|
|
86
103
|
return lines.join("\n");
|
|
87
104
|
}
|
|
88
|
-
|
|
89
|
-
|
|
105
|
+
function buildPresentations(formattedResults) {
|
|
106
|
+
return {
|
|
107
|
+
compact: renderTextFormat(formattedResults, "compact"),
|
|
108
|
+
markdown: renderTextFormat(formattedResults, "markdown"),
|
|
109
|
+
refs: renderTextFormat(formattedResults, "refs"),
|
|
110
|
+
tty: formatSearchResultsPretty(formattedResults),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/** Format a normalized SearchSource[] into ranked FormattedResult[]. */
|
|
114
|
+
function formatSources(sources, maxSummary) {
|
|
115
|
+
return sources.map((s, i) => {
|
|
116
|
+
const formatted = {
|
|
117
|
+
rank: i + 1,
|
|
118
|
+
title: s.title,
|
|
119
|
+
url: s.url,
|
|
120
|
+
summary: truncate(s.summary, maxSummary),
|
|
121
|
+
};
|
|
122
|
+
if (s.source)
|
|
123
|
+
formatted.source = s.source;
|
|
124
|
+
if (s.date)
|
|
125
|
+
formatted.date = s.date;
|
|
126
|
+
return formatted;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export async function search(query, options = {}, deps, context) {
|
|
130
|
+
const { capability, cache, sleep, random, retryPolicy } = deps;
|
|
90
131
|
// Split query on `|` if --merge is set. Empty fragments are dropped.
|
|
91
132
|
// A literal pipe in a single query can be escaped as `\|` (won't split).
|
|
92
133
|
let subQueries = [query];
|
|
@@ -96,106 +137,56 @@ export async function search(query, options = {}) {
|
|
|
96
137
|
.map((q) => q.replace(/\\\|/g, "|").trim())
|
|
97
138
|
.filter((q) => q.length > 0);
|
|
98
139
|
if (subQueries.length === 0) {
|
|
99
|
-
|
|
100
|
-
console.error(formatErrorOutput(new Error("--merge requires at least one non-empty query (split with '|')")));
|
|
101
|
-
process.exit(1);
|
|
140
|
+
throw new Error("--merge requires at least one non-empty query (split with '|')");
|
|
102
141
|
}
|
|
103
142
|
}
|
|
104
143
|
const isMerge = subQueries.length > 1;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
await Promise.all(clients.map((c) => c.close().catch(() => { })));
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
const client = new ZaiMcpClient({ enableVision: false, noCache: options.noCache });
|
|
129
|
-
try {
|
|
130
|
-
allResults = [
|
|
131
|
-
await client.webSearch({
|
|
132
|
-
query: subQueries[0],
|
|
133
|
-
count: options.count,
|
|
134
|
-
domainFilter: options.domain,
|
|
135
|
-
recencyFilter: options.recency,
|
|
136
|
-
contentSize: options.contentSize,
|
|
137
|
-
location: options.location,
|
|
138
|
-
}),
|
|
139
|
-
];
|
|
140
|
-
}
|
|
141
|
-
finally {
|
|
142
|
-
await client.close().catch(() => { });
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
// Format each sub-query's results, then merge if needed.
|
|
146
|
-
const perQueryFormatted = allResults.map((results) => Array.isArray(results)
|
|
147
|
-
? results.map((r, i) => ({
|
|
148
|
-
rank: i + 1,
|
|
149
|
-
title: r.title,
|
|
150
|
-
url: r.link,
|
|
151
|
-
summary: truncate(r.content, options.maxSummary),
|
|
152
|
-
...(r.media ? { source: r.media } : {}),
|
|
153
|
-
...(r.publish_date ? { date: r.publish_date } : {}),
|
|
154
|
-
}))
|
|
155
|
-
: []);
|
|
156
|
-
const formattedResults = isMerge
|
|
157
|
-
? mergeResults(perQueryFormatted)
|
|
158
|
-
: perQueryFormatted[0] || [];
|
|
159
|
-
if (isMerge) {
|
|
160
|
-
process.stderr.write(`ℹ️ merged ${subQueries.length} queries → ${formattedResults.length} unique results\n`);
|
|
161
|
-
}
|
|
162
|
-
restoreConsole();
|
|
163
|
-
const mode = getOutputMode();
|
|
164
|
-
if (mode === "tty") {
|
|
165
|
-
outputSuccess(formatSearchResultsPretty(formattedResults));
|
|
166
|
-
}
|
|
167
|
-
else if (mode === "compact" || mode === "markdown" || mode === "refs") {
|
|
168
|
-
outputSuccess(renderTextFormat(formattedResults, mode));
|
|
169
|
-
}
|
|
170
|
-
else if (options.fields && options.fields.length > 0) {
|
|
171
|
-
outputSuccess(formattedResults.map((r) => filterFields(r, options.fields)));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
outputSuccess(formattedResults);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
restoreConsole();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
restoreConsole();
|
|
183
|
-
console.error(formatErrorOutput(error));
|
|
184
|
-
process.exit(1);
|
|
144
|
+
const controls = buildControls(options);
|
|
145
|
+
const executionDeps = { cache, sleep, random };
|
|
146
|
+
// One executeSearch per sub-query. Each Adapter isolates its own
|
|
147
|
+
// transport per invocation, so the command does not manage client
|
|
148
|
+
// counts or close transports.
|
|
149
|
+
const perQuerySources = await Promise.all(subQueries.map((q) => {
|
|
150
|
+
const request = controls ? { query: q, controls } : { query: q };
|
|
151
|
+
return executeSearch(capability, request, {
|
|
152
|
+
count: options.count,
|
|
153
|
+
noCache: options.noCache,
|
|
154
|
+
retryPolicy,
|
|
155
|
+
}, executionDeps);
|
|
156
|
+
}));
|
|
157
|
+
const perQueryFormatted = perQuerySources.map((sources) => formatSources(sources, options.maxSummary));
|
|
158
|
+
const formattedResults = isMerge
|
|
159
|
+
? mergeResults(perQueryFormatted)
|
|
160
|
+
: perQueryFormatted[0] || [];
|
|
161
|
+
if (isMerge && context) {
|
|
162
|
+
context.notice(`ℹ️ merged ${subQueries.length} queries → ${formattedResults.length} unique results`);
|
|
185
163
|
}
|
|
164
|
+
const presentations = buildPresentations(formattedResults);
|
|
165
|
+
const data = options.fields && options.fields.length > 0
|
|
166
|
+
? formattedResults.map((r) => filterFields(r, options.fields))
|
|
167
|
+
: formattedResults;
|
|
168
|
+
return { kind: "data", data, presentations };
|
|
186
169
|
}
|
|
187
170
|
// Help text
|
|
188
171
|
export const SEARCH_HELP = `
|
|
189
|
-
Search Command - Real-time web search
|
|
172
|
+
Search Command - Real-time web search (Z.AI or MiniMax)
|
|
190
173
|
|
|
191
174
|
Usage: scoutline search <query> [options]
|
|
192
175
|
|
|
176
|
+
Provider selection (precedence: explicit flag, then SCOUTLINE_PROVIDER, then zai):
|
|
177
|
+
--provider <zai|minimax> Select the search provider (default: zai)
|
|
178
|
+
SCOUTLINE_PROVIDER=<id> Fallback when --provider is not passed
|
|
179
|
+
|
|
180
|
+
Note: --domain, --recency, --content-size, and --location are Z.AI-only
|
|
181
|
+
controls. They are rejected (UNSUPPORTED_OPTION) before invocation when
|
|
182
|
+
--provider minimax is selected.
|
|
183
|
+
|
|
193
184
|
Options:
|
|
194
|
-
--domain <d> Limit to specific domain (e.g., github.com)
|
|
195
|
-
--recency <r> Filter by time: oneDay, oneWeek, oneMonth, oneYear, noLimit
|
|
196
|
-
--content-size <s> Content size: medium, high
|
|
197
|
-
--location <l> Location hint: cn, us
|
|
198
|
-
--count <n> Limit number of results
|
|
185
|
+
--domain <d> Limit to specific domain (Z.AI only; e.g., github.com)
|
|
186
|
+
--recency <r> Filter by time (Z.AI only): oneDay, oneWeek, oneMonth, oneYear, noLimit
|
|
187
|
+
--content-size <s> Content size (Z.AI only): medium, high
|
|
188
|
+
--location <l> Location hint (Z.AI only): cn, us
|
|
189
|
+
--count <n> Limit number of results (applied after normalization)
|
|
199
190
|
--max-summary <n> Truncate each result summary to <n> chars (JSON modes only)
|
|
200
191
|
--fields <a,b,c> Field allowlist for JSON output (e.g. title,url)
|
|
201
192
|
--merge Treat the query as multiple sub-queries split on '|'.
|
|
@@ -213,7 +204,8 @@ Output formats (--output-format / -O):
|
|
|
213
204
|
Examples:
|
|
214
205
|
scoutline search "React 19 new features"
|
|
215
206
|
scoutline search "Node.js security" --domain nodejs.org
|
|
216
|
-
scoutline search "AI news"
|
|
207
|
+
scoutline --provider minimax search "AI news"
|
|
208
|
+
SCOUTLINE_PROVIDER=minimax scoutline search "AI news"
|
|
217
209
|
scoutline search "x" -O compact # ultra-compact
|
|
218
210
|
scoutline search "x" -O markdown --max-summary 80 # chat-ready
|
|
219
211
|
scoutline search "x" --fields title,url # field-filtered JSON
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tools.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Meta commands: tool discovery, schema inspection, and raw calls
|
|
3
|
+
*
|
|
4
|
+
* P1-06: each command returns a CommandResult instead of writing
|
|
5
|
+
* directly to stdout/stderr. stdin is read through CommandContext
|
|
6
|
+
* rather than the process stream directly. The public `scoutline.zai.*`
|
|
7
|
+
* tool names are preserved; no Provider selection is introduced.
|
|
3
8
|
*/
|
|
9
|
+
import type { CommandContext, CommandResult } from "../command-invocation.js";
|
|
4
10
|
export interface ToolsOptions {
|
|
5
11
|
filter?: string;
|
|
6
12
|
full?: boolean;
|
|
7
13
|
typescript?: boolean;
|
|
8
14
|
enableVision?: boolean;
|
|
9
15
|
}
|
|
10
|
-
export declare function listTools(options?: ToolsOptions): Promise<
|
|
11
|
-
export declare function showTool(name: string, options?: ToolsOptions): Promise<
|
|
16
|
+
export declare function listTools(options?: ToolsOptions, context?: CommandContext): Promise<CommandResult>;
|
|
17
|
+
export declare function showTool(name: string, options?: ToolsOptions, context?: CommandContext): Promise<CommandResult>;
|
|
12
18
|
export interface CallToolOptions {
|
|
13
19
|
json?: string;
|
|
14
20
|
file?: string;
|
|
@@ -16,7 +22,7 @@ export interface CallToolOptions {
|
|
|
16
22
|
dryRun?: boolean;
|
|
17
23
|
enableVision?: boolean;
|
|
18
24
|
}
|
|
19
|
-
export declare function callTool(toolName: string, options?: CallToolOptions): Promise<
|
|
25
|
+
export declare function callTool(toolName: string, options?: CallToolOptions, context?: CommandContext): Promise<CommandResult>;
|
|
20
26
|
export declare const TOOLS_HELP: string;
|
|
21
27
|
export declare const CALL_HELP: string;
|
|
22
28
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,SAAS,CAC7B,OAAO,GAAE,YAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkCD,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAGD,eAAO,MAAM,UAAU,QAmBf,CAAC;AAET,eAAO,MAAM,SAAS,QAgBd,CAAC"}
|
package/dist/commands/tools.js
CHANGED
|
@@ -1,42 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Meta commands: tool discovery, schema inspection, and raw calls
|
|
3
|
+
*
|
|
4
|
+
* P1-06: each command returns a CommandResult instead of writing
|
|
5
|
+
* directly to stdout/stderr. stdin is read through CommandContext
|
|
6
|
+
* rather than the process stream directly. The public `scoutline.zai.*`
|
|
7
|
+
* tool names are preserved; no Provider selection is introduced.
|
|
3
8
|
*/
|
|
4
9
|
import * as fs from "node:fs/promises";
|
|
5
10
|
import { ZaiMcpClient } from "../lib/mcp-client.js";
|
|
6
11
|
import { ZaiCodeModeClient } from "../lib/code-mode.js";
|
|
7
|
-
import {
|
|
8
|
-
import { formatErrorOutput, ValidationError } from "../lib/errors.js";
|
|
9
|
-
import { silenceConsole, restoreConsole } from "../lib/silence.js";
|
|
12
|
+
import { ValidationError } from "../lib/errors.js";
|
|
10
13
|
import { redactTool } from "../lib/redact.js";
|
|
11
|
-
async function
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
let data = "";
|
|
14
|
-
process.stdin.setEncoding("utf8");
|
|
15
|
-
process.stdin.on("data", (chunk) => (data += chunk));
|
|
16
|
-
process.stdin.on("end", () => resolve(data));
|
|
17
|
-
process.stdin.on("error", reject);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
export async function listTools(options = {}) {
|
|
14
|
+
export async function listTools(options = {}, context) {
|
|
21
15
|
if (options.typescript) {
|
|
22
|
-
silenceConsole();
|
|
23
16
|
const codeClient = new ZaiCodeModeClient();
|
|
24
17
|
try {
|
|
25
18
|
const interfaces = await codeClient.getAllInterfaces();
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
restoreConsole();
|
|
30
|
-
console.error(formatErrorOutput(error));
|
|
31
|
-
process.exit(1);
|
|
19
|
+
return { kind: "data", data: interfaces };
|
|
32
20
|
}
|
|
33
21
|
finally {
|
|
34
22
|
await codeClient.close().catch(() => { });
|
|
35
|
-
restoreConsole();
|
|
36
23
|
}
|
|
37
|
-
return;
|
|
38
24
|
}
|
|
39
|
-
silenceConsole();
|
|
40
25
|
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
41
26
|
try {
|
|
42
27
|
const tools = await client.listTools();
|
|
@@ -44,43 +29,34 @@ export async function listTools(options = {}) {
|
|
|
44
29
|
? tools.filter((tool) => tool.name.toLowerCase().includes(options.filter.toLowerCase()))
|
|
45
30
|
: tools;
|
|
46
31
|
if (options.full) {
|
|
47
|
-
|
|
48
|
-
return;
|
|
32
|
+
return { kind: "data", data: filtered.map((tool) => redactTool(tool)) };
|
|
49
33
|
}
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
restoreConsole();
|
|
54
|
-
console.error(formatErrorOutput(error));
|
|
55
|
-
process.exit(1);
|
|
34
|
+
return { kind: "data", data: filtered.map((tool) => tool.name) };
|
|
56
35
|
}
|
|
57
36
|
finally {
|
|
58
37
|
await client.close().catch(() => { });
|
|
59
|
-
restoreConsole();
|
|
60
38
|
}
|
|
61
39
|
}
|
|
62
|
-
export async function showTool(name, options = {}) {
|
|
63
|
-
silenceConsole();
|
|
40
|
+
export async function showTool(name, options = {}, context) {
|
|
64
41
|
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
65
42
|
try {
|
|
66
43
|
const tool = await client.getTool(name);
|
|
67
44
|
if (!tool) {
|
|
68
|
-
restoreConsole();
|
|
69
45
|
throw new ValidationError(`Unknown tool: ${name}`);
|
|
70
46
|
}
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
restoreConsole();
|
|
75
|
-
console.error(formatErrorOutput(error));
|
|
76
|
-
process.exit(1);
|
|
47
|
+
return { kind: "data", data: redactTool(tool) };
|
|
77
48
|
}
|
|
78
49
|
finally {
|
|
79
50
|
await client.close().catch(() => { });
|
|
80
|
-
restoreConsole();
|
|
81
51
|
}
|
|
82
52
|
}
|
|
83
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Parse tool arguments from one of three sources: --json inline, --file,
|
|
55
|
+
* or stdin (when --stdin or stdin is not a TTY). The caller's
|
|
56
|
+
* CommandContext is required so stdin reads route through the invocation
|
|
57
|
+
* adapter rather than `process.stdin` directly.
|
|
58
|
+
*/
|
|
59
|
+
async function parseToolArgs(options, context) {
|
|
84
60
|
if (options.json) {
|
|
85
61
|
const raw = options.json.trim();
|
|
86
62
|
const value = raw.startsWith("@") ? await fs.readFile(raw.slice(1), "utf8") : raw;
|
|
@@ -90,8 +66,8 @@ async function parseToolArgs(options) {
|
|
|
90
66
|
const value = await fs.readFile(options.file, "utf8");
|
|
91
67
|
return JSON.parse(value);
|
|
92
68
|
}
|
|
93
|
-
if (options.stdin || !
|
|
94
|
-
const value = await readStdin();
|
|
69
|
+
if (options.stdin || !context.stdinIsTTY) {
|
|
70
|
+
const value = await context.readStdin();
|
|
95
71
|
if (value.trim().length === 0) {
|
|
96
72
|
return {};
|
|
97
73
|
}
|
|
@@ -99,37 +75,31 @@ async function parseToolArgs(options) {
|
|
|
99
75
|
}
|
|
100
76
|
return {};
|
|
101
77
|
}
|
|
102
|
-
export async function callTool(toolName, options = {}) {
|
|
78
|
+
export async function callTool(toolName, options = {}, context) {
|
|
79
|
+
if (!context) {
|
|
80
|
+
throw new Error("callTool requires a CommandContext (for stdin access)");
|
|
81
|
+
}
|
|
103
82
|
let args;
|
|
104
83
|
try {
|
|
105
|
-
args = await parseToolArgs(options);
|
|
84
|
+
args = await parseToolArgs(options, context);
|
|
106
85
|
}
|
|
107
86
|
catch (error) {
|
|
108
87
|
if (error instanceof SyntaxError) {
|
|
109
|
-
|
|
110
|
-
process.exit(1);
|
|
88
|
+
throw new ValidationError(`Invalid JSON: ${error.message}`);
|
|
111
89
|
}
|
|
112
90
|
throw error;
|
|
113
91
|
}
|
|
114
|
-
silenceConsole();
|
|
115
92
|
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
116
93
|
try {
|
|
117
94
|
const resolved = await client.resolveToolName(toolName);
|
|
118
95
|
if (options.dryRun) {
|
|
119
|
-
|
|
120
|
-
return;
|
|
96
|
+
return { kind: "data", data: { tool: resolved, args } };
|
|
121
97
|
}
|
|
122
98
|
const result = await client.callToolRaw(resolved, args);
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
restoreConsole();
|
|
127
|
-
console.error(formatErrorOutput(error));
|
|
128
|
-
process.exit(1);
|
|
99
|
+
return { kind: "data", data: result };
|
|
129
100
|
}
|
|
130
101
|
finally {
|
|
131
102
|
await client.close().catch(() => { });
|
|
132
|
-
restoreConsole();
|
|
133
103
|
}
|
|
134
104
|
}
|
|
135
105
|
// Help text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|