scoutline 0.22.0 → 0.24.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 +108 -26
- package/dist/capabilities/investigation.d.ts +134 -0
- package/dist/capabilities/investigation.d.ts.map +1 -0
- package/dist/capabilities/investigation.js +278 -0
- package/dist/capabilities/investigation.js.map +1 -0
- package/dist/capabilities/search.d.ts +18 -4
- package/dist/capabilities/search.d.ts.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +14 -5
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/crawl.d.ts.map +1 -1
- package/dist/commands/crawl.js +2 -1
- package/dist/commands/crawl.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +42 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +42 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/investigate.d.ts +232 -0
- package/dist/commands/investigate.d.ts.map +1 -0
- package/dist/commands/investigate.js +838 -0
- package/dist/commands/investigate.js.map +1 -0
- package/dist/commands/map.d.ts.map +1 -1
- package/dist/commands/map.js +2 -1
- package/dist/commands/map.js.map +1 -1
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +2 -2
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +2 -1
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.js +1 -1
- package/dist/commands/research.d.ts.map +1 -1
- package/dist/commands/research.js +2 -1
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/search.d.ts +54 -6
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +273 -25
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/vision.d.ts.map +1 -1
- package/dist/commands/vision.js +15 -2
- package/dist/commands/vision.js.map +1 -1
- package/dist/index.d.ts +93 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +737 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/code-mode.d.ts +12 -0
- package/dist/lib/code-mode.d.ts.map +1 -1
- package/dist/lib/code-mode.js +18 -10
- package/dist/lib/code-mode.js.map +1 -1
- package/dist/lib/config-store.d.ts +45 -1
- package/dist/lib/config-store.d.ts.map +1 -1
- package/dist/lib/config-store.js +70 -1
- package/dist/lib/config-store.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +5 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +7 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +8 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/execution.d.ts +14 -5
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +25 -6
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/investigate-claims.d.ts +90 -0
- package/dist/lib/investigate-claims.d.ts.map +1 -0
- package/dist/lib/investigate-claims.js +188 -0
- package/dist/lib/investigate-claims.js.map +1 -0
- package/dist/lib/investigate-extract.d.ts +35 -0
- package/dist/lib/investigate-extract.d.ts.map +1 -0
- package/dist/lib/investigate-extract.js +101 -0
- package/dist/lib/investigate-extract.js.map +1 -0
- package/dist/lib/investigate-planner.d.ts +58 -0
- package/dist/lib/investigate-planner.d.ts.map +1 -0
- package/dist/lib/investigate-planner.js +141 -0
- package/dist/lib/investigate-planner.js.map +1 -0
- package/dist/lib/mcp-client.d.ts +7 -0
- package/dist/lib/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp-client.js +11 -1
- package/dist/lib/mcp-client.js.map +1 -1
- package/dist/lib/parse-zoned-instant.d.ts +13 -0
- package/dist/lib/parse-zoned-instant.d.ts.map +1 -0
- package/dist/lib/parse-zoned-instant.js +17 -0
- package/dist/lib/parse-zoned-instant.js.map +1 -0
- package/dist/lib/quota-mapping.d.ts +4 -2
- package/dist/lib/quota-mapping.d.ts.map +1 -1
- package/dist/lib/quota-mapping.js +25 -2
- package/dist/lib/quota-mapping.js.map +1 -1
- package/dist/lib/redact.d.ts +3 -2
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +90 -24
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/timeout.d.ts +28 -0
- package/dist/lib/timeout.d.ts.map +1 -0
- package/dist/lib/timeout.js +30 -0
- package/dist/lib/timeout.js.map +1 -0
- package/dist/lib/url.d.ts +10 -4
- package/dist/lib/url.d.ts.map +1 -1
- package/dist/lib/url.js +21 -6
- package/dist/lib/url.js.map +1 -1
- package/dist/providers/arxiv/client.d.ts +4 -1
- package/dist/providers/arxiv/client.d.ts.map +1 -1
- package/dist/providers/arxiv/client.js +11 -3
- package/dist/providers/arxiv/client.js.map +1 -1
- package/dist/providers/bocha/adapter.d.ts +43 -0
- package/dist/providers/bocha/adapter.d.ts.map +1 -0
- package/dist/providers/bocha/adapter.js +197 -0
- package/dist/providers/bocha/adapter.js.map +1 -0
- package/dist/providers/bocha/client.d.ts +51 -0
- package/dist/providers/bocha/client.d.ts.map +1 -0
- package/dist/providers/bocha/client.js +104 -0
- package/dist/providers/bocha/client.js.map +1 -0
- package/dist/providers/bocha/credentials.d.ts +12 -0
- package/dist/providers/bocha/credentials.d.ts.map +1 -0
- package/dist/providers/bocha/credentials.js +29 -0
- package/dist/providers/bocha/credentials.js.map +1 -0
- package/dist/providers/bocha/diagnostics.d.ts +17 -0
- package/dist/providers/bocha/diagnostics.d.ts.map +1 -0
- package/dist/providers/bocha/diagnostics.js +33 -0
- package/dist/providers/bocha/diagnostics.js.map +1 -0
- package/dist/providers/brave/adapter.d.ts.map +1 -1
- package/dist/providers/brave/adapter.js +4 -3
- package/dist/providers/brave/adapter.js.map +1 -1
- package/dist/providers/brave/client.d.ts +1 -0
- package/dist/providers/brave/client.d.ts.map +1 -1
- package/dist/providers/brave/client.js +4 -6
- package/dist/providers/brave/client.js.map +1 -1
- package/dist/providers/brave/credentials.d.ts +2 -0
- package/dist/providers/brave/credentials.d.ts.map +1 -1
- package/dist/providers/brave/credentials.js +2 -0
- package/dist/providers/brave/credentials.js.map +1 -1
- package/dist/providers/catalog.d.ts +34 -0
- package/dist/providers/catalog.d.ts.map +1 -0
- package/dist/providers/catalog.js +57 -0
- package/dist/providers/catalog.js.map +1 -0
- package/dist/providers/crossref/adapter.js +2 -2
- package/dist/providers/crossref/adapter.js.map +1 -1
- package/dist/providers/crossref/client.d.ts +4 -1
- package/dist/providers/crossref/client.d.ts.map +1 -1
- package/dist/providers/crossref/client.js +11 -3
- package/dist/providers/crossref/client.js.map +1 -1
- package/dist/providers/crossref/diagnostics.d.ts +1 -1
- package/dist/providers/crossref/diagnostics.js +1 -1
- package/dist/providers/crossref/diagnostics.js.map +1 -1
- package/dist/providers/europepmc/adapter.js +2 -2
- package/dist/providers/europepmc/adapter.js.map +1 -1
- package/dist/providers/europepmc/client.d.ts +4 -1
- package/dist/providers/europepmc/client.d.ts.map +1 -1
- package/dist/providers/europepmc/client.js +11 -3
- package/dist/providers/europepmc/client.js.map +1 -1
- package/dist/providers/exa/client.d.ts +1 -0
- package/dist/providers/exa/client.d.ts.map +1 -1
- package/dist/providers/exa/client.js +3 -2
- package/dist/providers/exa/client.js.map +1 -1
- package/dist/providers/exa/credentials.d.ts +2 -0
- package/dist/providers/exa/credentials.d.ts.map +1 -1
- package/dist/providers/exa/credentials.js +2 -0
- package/dist/providers/exa/credentials.js.map +1 -1
- package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
- package/dist/providers/firecrawl/adapter.js +2 -1
- package/dist/providers/firecrawl/adapter.js.map +1 -1
- package/dist/providers/firecrawl/client.d.ts +1 -0
- package/dist/providers/firecrawl/client.d.ts.map +1 -1
- package/dist/providers/firecrawl/client.js +3 -2
- package/dist/providers/firecrawl/client.js.map +1 -1
- package/dist/providers/firecrawl/credentials.d.ts +2 -0
- package/dist/providers/firecrawl/credentials.d.ts.map +1 -1
- package/dist/providers/firecrawl/credentials.js +2 -0
- package/dist/providers/firecrawl/credentials.js.map +1 -1
- package/dist/providers/firecrawl/quota.d.ts.map +1 -1
- package/dist/providers/firecrawl/quota.js +5 -2
- package/dist/providers/firecrawl/quota.js.map +1 -1
- package/dist/providers/jina/adapter.d.ts.map +1 -1
- package/dist/providers/jina/adapter.js +6 -4
- package/dist/providers/jina/adapter.js.map +1 -1
- package/dist/providers/jina/client.d.ts +2 -0
- package/dist/providers/jina/client.d.ts.map +1 -1
- package/dist/providers/jina/client.js +6 -5
- package/dist/providers/jina/client.js.map +1 -1
- package/dist/providers/jina/credentials.d.ts +2 -0
- package/dist/providers/jina/credentials.d.ts.map +1 -1
- package/dist/providers/jina/credentials.js +2 -0
- package/dist/providers/jina/credentials.js.map +1 -1
- package/dist/providers/kagi/adapter.d.ts +44 -0
- package/dist/providers/kagi/adapter.d.ts.map +1 -0
- package/dist/providers/kagi/adapter.js +188 -0
- package/dist/providers/kagi/adapter.js.map +1 -0
- package/dist/providers/kagi/client.d.ts +41 -0
- package/dist/providers/kagi/client.d.ts.map +1 -0
- package/dist/providers/kagi/client.js +100 -0
- package/dist/providers/kagi/client.js.map +1 -0
- package/dist/providers/kagi/credentials.d.ts +15 -0
- package/dist/providers/kagi/credentials.d.ts.map +1 -0
- package/dist/providers/kagi/credentials.js +35 -0
- package/dist/providers/kagi/credentials.js.map +1 -0
- package/dist/providers/kagi/diagnostics.d.ts +17 -0
- package/dist/providers/kagi/diagnostics.d.ts.map +1 -0
- package/dist/providers/kagi/diagnostics.js +33 -0
- package/dist/providers/kagi/diagnostics.js.map +1 -0
- package/dist/providers/linkup/client.d.ts +1 -0
- package/dist/providers/linkup/client.d.ts.map +1 -1
- package/dist/providers/linkup/client.js +3 -2
- package/dist/providers/linkup/client.js.map +1 -1
- package/dist/providers/linkup/credentials.d.ts +2 -0
- package/dist/providers/linkup/credentials.d.ts.map +1 -1
- package/dist/providers/linkup/credentials.js +2 -0
- package/dist/providers/linkup/credentials.js.map +1 -1
- package/dist/providers/minimax/adapter.d.ts.map +1 -1
- package/dist/providers/minimax/adapter.js +2 -2
- package/dist/providers/minimax/adapter.js.map +1 -1
- package/dist/providers/minimax/coding-plan-client.d.ts +1 -0
- package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -1
- package/dist/providers/minimax/coding-plan-client.js +3 -2
- package/dist/providers/minimax/coding-plan-client.js.map +1 -1
- package/dist/providers/minimax/quota-client.d.ts +1 -0
- package/dist/providers/minimax/quota-client.d.ts.map +1 -1
- package/dist/providers/minimax/quota-client.js +3 -2
- package/dist/providers/minimax/quota-client.js.map +1 -1
- package/dist/providers/openalex/client.d.ts +2 -0
- package/dist/providers/openalex/client.d.ts.map +1 -1
- package/dist/providers/openalex/client.js +10 -3
- package/dist/providers/openalex/client.js.map +1 -1
- package/dist/providers/openalex/diagnostics.d.ts +1 -1
- package/dist/providers/openalex/diagnostics.js +1 -1
- package/dist/providers/openalex/diagnostics.js.map +1 -1
- package/dist/providers/parallel/client.d.ts +1 -0
- package/dist/providers/parallel/client.d.ts.map +1 -1
- package/dist/providers/parallel/client.js +3 -2
- package/dist/providers/parallel/client.js.map +1 -1
- package/dist/providers/parallel/credentials.d.ts +2 -0
- package/dist/providers/parallel/credentials.d.ts.map +1 -1
- package/dist/providers/parallel/credentials.js +2 -0
- package/dist/providers/parallel/credentials.js.map +1 -1
- package/dist/providers/perplexity/client.d.ts +2 -0
- package/dist/providers/perplexity/client.d.ts.map +1 -1
- package/dist/providers/perplexity/client.js +5 -4
- package/dist/providers/perplexity/client.js.map +1 -1
- package/dist/providers/perplexity/credentials.d.ts +2 -0
- package/dist/providers/perplexity/credentials.d.ts.map +1 -1
- package/dist/providers/perplexity/credentials.js +2 -0
- package/dist/providers/perplexity/credentials.js.map +1 -1
- package/dist/providers/pubmed/client.d.ts +2 -0
- package/dist/providers/pubmed/client.d.ts.map +1 -1
- package/dist/providers/pubmed/client.js +10 -3
- package/dist/providers/pubmed/client.js.map +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +10 -1
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/searchapi/adapter.d.ts +54 -0
- package/dist/providers/searchapi/adapter.d.ts.map +1 -0
- package/dist/providers/searchapi/adapter.js +310 -0
- package/dist/providers/searchapi/adapter.js.map +1 -0
- package/dist/providers/searchapi/client.d.ts +73 -0
- package/dist/providers/searchapi/client.d.ts.map +1 -0
- package/dist/providers/searchapi/client.js +196 -0
- package/dist/providers/searchapi/client.js.map +1 -0
- package/dist/providers/searchapi/credentials.d.ts +46 -0
- package/dist/providers/searchapi/credentials.d.ts.map +1 -0
- package/dist/providers/searchapi/credentials.js +71 -0
- package/dist/providers/searchapi/credentials.js.map +1 -0
- package/dist/providers/searchapi/diagnostics.d.ts +48 -0
- package/dist/providers/searchapi/diagnostics.d.ts.map +1 -0
- package/dist/providers/searchapi/diagnostics.js +70 -0
- package/dist/providers/searchapi/diagnostics.js.map +1 -0
- package/dist/providers/searchapi/quota.d.ts +60 -0
- package/dist/providers/searchapi/quota.d.ts.map +1 -0
- package/dist/providers/searchapi/quota.js +125 -0
- package/dist/providers/searchapi/quota.js.map +1 -0
- package/dist/providers/spider/client.d.ts +2 -0
- package/dist/providers/spider/client.d.ts.map +1 -1
- package/dist/providers/spider/client.js +16 -6
- package/dist/providers/spider/client.js.map +1 -1
- package/dist/providers/spider/credentials.d.ts +2 -0
- package/dist/providers/spider/credentials.d.ts.map +1 -1
- package/dist/providers/spider/credentials.js +2 -0
- package/dist/providers/spider/credentials.js.map +1 -1
- package/dist/providers/tavily/client.d.ts +1 -0
- package/dist/providers/tavily/client.d.ts.map +1 -1
- package/dist/providers/tavily/client.js +3 -2
- package/dist/providers/tavily/client.js.map +1 -1
- package/dist/providers/tavily/credentials.d.ts +2 -0
- package/dist/providers/tavily/credentials.d.ts.map +1 -1
- package/dist/providers/tavily/credentials.js +2 -0
- package/dist/providers/tavily/credentials.js.map +1 -1
- package/dist/providers/types.d.ts +31 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/you/client.d.ts +4 -0
- package/dist/providers/you/client.d.ts.map +1 -1
- package/dist/providers/you/client.js +4 -5
- package/dist/providers/you/client.js.map +1 -1
- package/dist/providers/you/credentials.d.ts +2 -0
- package/dist/providers/you/credentials.d.ts.map +1 -1
- package/dist/providers/you/credentials.js +3 -3
- package/dist/providers/you/credentials.js.map +1 -1
- package/dist/providers/zai/adapter.d.ts.map +1 -1
- package/dist/providers/zai/adapter.js +219 -4
- package/dist/providers/zai/adapter.js.map +1 -1
- package/dist/providers/zai/credentials.d.ts +2 -0
- package/dist/providers/zai/credentials.d.ts.map +1 -1
- package/dist/providers/zai/credentials.js +2 -0
- package/dist/providers/zai/credentials.js.map +1 -1
- package/dist/providers/zai/layout-parsing.d.ts +76 -0
- package/dist/providers/zai/layout-parsing.d.ts.map +1 -0
- package/dist/providers/zai/layout-parsing.js +151 -0
- package/dist/providers/zai/layout-parsing.js.map +1 -0
- package/dist/providers/zai/media.d.ts +19 -0
- package/dist/providers/zai/media.d.ts.map +1 -1
- package/dist/providers/zai/media.js +61 -0
- package/dist/providers/zai/media.js.map +1 -1
- package/dist/providers/zai/monitor-client.d.ts +1 -0
- package/dist/providers/zai/monitor-client.d.ts.map +1 -1
- package/dist/providers/zai/monitor-client.js +3 -2
- package/dist/providers/zai/monitor-client.js.map +1 -1
- package/dist/providers/zai/quota.d.ts +4 -0
- package/dist/providers/zai/quota.d.ts.map +1 -1
- package/dist/providers/zai/quota.js +16 -1
- package/dist/providers/zai/quota.js.map +1 -1
- package/package.json +1 -1
- package/skills/scoutline/SKILL.md +163 -45
- package/skills/scoutline/references/advanced.md +12 -10
package/dist/commands/search.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { executeSearch } from "../lib/execution.js";
|
|
13
13
|
import { rejectSmuggledMaxChars } from "../lib/output-budget.js";
|
|
14
14
|
import { canonicalUrl } from "../lib/url.js";
|
|
15
|
+
import { SHARED_PROVIDER_FLAG_IDS, SHARED_PROVIDER_IDS } from "../providers/catalog.js";
|
|
15
16
|
import { formatSearchResultsPretty } from "../lib/tty.js";
|
|
16
17
|
import { ValidationError, UnsupportedOptionError, UnsupportedCapabilityError, } from "../lib/errors.js";
|
|
17
18
|
import { redactCredentialString } from "../lib/redact.js";
|
|
@@ -105,20 +106,224 @@ function buildControls(options) {
|
|
|
105
106
|
return Object.keys(controls).length > 0 ? controls : undefined;
|
|
106
107
|
}
|
|
107
108
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
|
|
109
|
+
* Reciprocal-rank-fusion constant (DESIGN D2). Fixed by the fusion
|
|
110
|
+
* contract — deliberately NOT a knob, a parameter, or a config value:
|
|
111
|
+
* the fusionScore for every row must stay comparable across runs,
|
|
112
|
+
* providers, and machines.
|
|
113
|
+
*/
|
|
114
|
+
const RRF_K = 60;
|
|
115
|
+
/**
|
|
116
|
+
* Near-duplicate title clustering constant (DESIGN D4). A fixed contract,
|
|
117
|
+
* not a knob: the same title pair must cluster on every machine and run.
|
|
118
|
+
*/
|
|
119
|
+
const CLUSTER_JACCARD_MIN = 0.8;
|
|
120
|
+
/** Shingle width (DESIGN D4): a 3-word sliding window over the title. */
|
|
121
|
+
const SHINGLE_SIZE = 3;
|
|
122
|
+
/**
|
|
123
|
+
* Titles yielding fewer shingles than this are never clustered: at 3
|
|
124
|
+
* shingles a one-word difference swings Jaccard too far for the signal to
|
|
125
|
+
* mean anything (two 5-word titles share 3 shingles → J = 1.0 on 3
|
|
126
|
+
* samples). 6 words → 4 shingles is the smallest title that can cluster.
|
|
127
|
+
*/
|
|
128
|
+
const CLUSTER_MIN_SHINGLES = 4;
|
|
129
|
+
/**
|
|
130
|
+
* Lowercased 3-word shingles of a title, whitespace-collapsed and deduped
|
|
131
|
+
* (DESIGN D4 #1). The set — not the multiset — is the Jaccard operand, so a
|
|
132
|
+
* repeated phrase counts once.
|
|
133
|
+
*/
|
|
134
|
+
function titleShingles(title) {
|
|
135
|
+
const words = title.toLowerCase().split(/\s+/).filter(Boolean);
|
|
136
|
+
const shingles = new Set();
|
|
137
|
+
for (let i = 0; i + SHINGLE_SIZE <= words.length; i++) {
|
|
138
|
+
shingles.add(words.slice(i, i + SHINGLE_SIZE).join(" "));
|
|
139
|
+
}
|
|
140
|
+
return shingles;
|
|
141
|
+
}
|
|
142
|
+
/** Jaccard similarity over two shingle sets: |∩| / |∪|. */
|
|
143
|
+
export function jaccard(a, b) {
|
|
144
|
+
// Intersect the smaller set — same result, fewer probes.
|
|
145
|
+
const [small, large] = a.size <= b.size ? [a, b] : [b, a];
|
|
146
|
+
let intersection = 0;
|
|
147
|
+
for (const shingle of small)
|
|
148
|
+
if (large.has(shingle))
|
|
149
|
+
intersection += 1;
|
|
150
|
+
// Issue #243 total guard: the CLUSTER_MIN_SHINGLES eligibility gate in
|
|
151
|
+
// clusterNearDuplicates keeps both operands at >= 4 shingles, so the
|
|
152
|
+
// union can never be 0 on that path — but jaccard is exported and
|
|
153
|
+
// callable directly. An empty-set pair scores 0 (no overlap) by
|
|
154
|
+
// definition, never 0/0 = NaN (NaN compares >= 0.8 false only by
|
|
155
|
+
// accident of IEEE semantics).
|
|
156
|
+
const union = a.size + b.size - intersection;
|
|
157
|
+
if (union === 0)
|
|
158
|
+
return 0;
|
|
159
|
+
return intersection / union;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Union the near-duplicate rows of `rows` in place (DESIGN D4, fan-out lane
|
|
163
|
+
* T5): pairwise Jaccard ≥ 0.80 over title shingles, merged via union-find,
|
|
164
|
+
* to a fixed point — transitive chains collapse into one cluster.
|
|
165
|
+
*
|
|
166
|
+
* `rows` must be insertion-ordered (the map's value order); that order is
|
|
167
|
+
* authoritative for pair enumeration, first-encounter tiebreaks, the
|
|
168
|
+
* `mergedFrom` union, and `clusterUrls`. This step never re-sorts — ranking
|
|
169
|
+
* happens after it, so accumulated `occurrences` participate in tiebreaks.
|
|
170
|
+
*
|
|
171
|
+
* Cost is O(n² · shingles) over n ≤ ~count × arms rows after dedupe — a few
|
|
172
|
+
* hundred at most, so the pairwise scan is bounded and needs no index.
|
|
173
|
+
* Correctness of the order-sensitive merges piggybacks on that: only an
|
|
174
|
+
* already-merged row can be merged again, so `mergedFrom` is already a
|
|
175
|
+
* first-encounter union by the time it is extended.
|
|
176
|
+
*/
|
|
177
|
+
function clusterNearDuplicates(rows) {
|
|
178
|
+
// Shingle once per row; rows below the floor can never merge, so they
|
|
179
|
+
// take no part in the pairwise scan at all.
|
|
180
|
+
const shingles = rows.map((row) => titleShingles(row.title ?? ""));
|
|
181
|
+
const eligible = shingles.map((set) => set.size >= CLUSTER_MIN_SHINGLES);
|
|
182
|
+
const parent = rows.map((_, i) => i);
|
|
183
|
+
const find = (i) => {
|
|
184
|
+
let root = i;
|
|
185
|
+
while (parent[root] !== root)
|
|
186
|
+
root = parent[root];
|
|
187
|
+
while (parent[i] !== root)
|
|
188
|
+
[parent[i], i] = [root, parent[i]];
|
|
189
|
+
return root;
|
|
190
|
+
};
|
|
191
|
+
for (let i = 0; i < rows.length; i++) {
|
|
192
|
+
if (!eligible[i])
|
|
193
|
+
continue;
|
|
194
|
+
for (let j = i + 1; j < rows.length; j++) {
|
|
195
|
+
if (!eligible[j])
|
|
196
|
+
continue;
|
|
197
|
+
// Size short-circuit (DESIGN D4 #5): J ≤ min/|max|, so a pair whose
|
|
198
|
+
// smaller shingle set is under 80% of the larger one cannot reach the
|
|
199
|
+
// threshold at all — skip it without intersecting anything.
|
|
200
|
+
// Compared as 5·min < 4·max rather than min < 0.8·max: the integer
|
|
201
|
+
// form is exact (0.8·5 is not 4 in binary floating point, which would
|
|
202
|
+
// misjudge the boundary pair the suite pins).
|
|
203
|
+
const small = Math.min(shingles[i].size, shingles[j].size);
|
|
204
|
+
const large = Math.max(shingles[i].size, shingles[j].size);
|
|
205
|
+
if (small * 5 < large * 4)
|
|
206
|
+
continue;
|
|
207
|
+
if (jaccard(shingles[i], shingles[j]) < CLUSTER_JACCARD_MIN)
|
|
208
|
+
continue;
|
|
209
|
+
const rootI = find(i);
|
|
210
|
+
const rootJ = find(j);
|
|
211
|
+
if (rootI !== rootJ)
|
|
212
|
+
parent[Math.max(rootI, rootJ)] = Math.min(rootI, rootJ);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Members per cluster, first-encounter order — one pass suffices because
|
|
216
|
+
// the loop is ordered and this array is saved before anything mutates.
|
|
217
|
+
const members = new Map();
|
|
218
|
+
for (let i = 0; i < rows.length; i++) {
|
|
219
|
+
// A row that can never merge is its own cluster: skip the find() walk.
|
|
220
|
+
const root = eligible[i] ? find(i) : i;
|
|
221
|
+
const bucket = members.get(root);
|
|
222
|
+
if (bucket)
|
|
223
|
+
bucket.push(i);
|
|
224
|
+
else
|
|
225
|
+
members.set(root, [i]);
|
|
226
|
+
}
|
|
227
|
+
const survivors = [];
|
|
228
|
+
for (let i = 0; i < rows.length; i++) {
|
|
229
|
+
// A merged-away row is simply absent from the output; this walk stays
|
|
230
|
+
// independent of the mutation happening around it.
|
|
231
|
+
if (find(i) !== i)
|
|
232
|
+
continue;
|
|
233
|
+
const clusterRows = [];
|
|
234
|
+
for (const index of members.get(i) ?? [i])
|
|
235
|
+
clusterRows.push(rows[index]);
|
|
236
|
+
if (clusterRows.length === 1) {
|
|
237
|
+
// SINGLETON — the overwhelmingly common path. Leave the row's key
|
|
238
|
+
// order and identity untouched: it is the object already in the map,
|
|
239
|
+
// returned as-is.
|
|
240
|
+
survivors.push(clusterRows[0]);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
survivors.push(mergeCluster(clusterRows));
|
|
244
|
+
}
|
|
245
|
+
return survivors;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Collapse one cluster's members into a single representative row (DESIGN
|
|
249
|
+
* D4 #4). `members` must be in first-encounter order — that order is the
|
|
250
|
+
* fallback for both the representative pick and `clusterUrls`.
|
|
251
|
+
*
|
|
252
|
+
* The representative is the member the D2 chain selects: highest raw score →
|
|
253
|
+
* occurrences desc → bestPos asc → first-encounter. Under "occurrence" every
|
|
254
|
+
* score is 0, so the chain falls straight through to occurrences → bestPos →
|
|
255
|
+
* first-encounter, which keeps the identity layer rank-independent as
|
|
256
|
+
* required. It KEEPS its own title/summary/url and key order.
|
|
257
|
+
*
|
|
258
|
+
* Accumulation is deliberately partial: `occurrences` sums over the members
|
|
259
|
+
* and `mergedFrom` unions in first-encounter order, but the representative's
|
|
260
|
+
* raw `score` is left alone — its `fusionScore` is the REPRESENTATIVE's own
|
|
261
|
+
* rank score, not the cluster's total. Sorting runs after this, so the
|
|
262
|
+
* accumulated occurrences participate in tiebreaks.
|
|
263
|
+
*/
|
|
264
|
+
function mergeCluster(members) {
|
|
265
|
+
let representative = members[0];
|
|
266
|
+
for (const member of members) {
|
|
267
|
+
if (member.score > representative.score ||
|
|
268
|
+
(member.score === representative.score &&
|
|
269
|
+
(member.occurrences > representative.occurrences ||
|
|
270
|
+
(member.occurrences === representative.occurrences &&
|
|
271
|
+
member.bestPos < representative.bestPos)))) {
|
|
272
|
+
representative = member;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const clusterUrls = [];
|
|
276
|
+
const mergedFrom = [];
|
|
277
|
+
let occurrences = 0;
|
|
278
|
+
for (const member of members) {
|
|
279
|
+
if (member !== representative)
|
|
280
|
+
clusterUrls.push(member.url);
|
|
281
|
+
occurrences += member.occurrences;
|
|
282
|
+
for (const provider of member.mergedFrom) {
|
|
283
|
+
if (!mergedFrom.includes(provider))
|
|
284
|
+
mergedFrom.push(provider);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
...representative,
|
|
289
|
+
occurrences,
|
|
290
|
+
mergedFrom,
|
|
291
|
+
clusterUrls,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Merge results from an (arm × sub-query) grid (DESIGN D3, D2). Generalizes
|
|
296
|
+
* the pre-fan-out sub-query merge with two new keys: dedupe by
|
|
297
|
+
* `canonicalUrl(url)` (DESIGN D4) instead of the raw string, and a
|
|
298
|
+
* caller-supplied ranking `mode`.
|
|
299
|
+
*
|
|
113
300
|
* First-writer-wins: the earlier arm's title/summary/url win a collision
|
|
114
301
|
* (arm order is the tiebreak priority). Every URL accumulates
|
|
115
302
|
* `mergedFrom` (distinct providers, first-encounter order) when
|
|
116
303
|
* `emitMergedFrom` is set, and the merged list is sliced to `count`
|
|
117
304
|
* post-merge. The single-provider `--merge` path and the fan-out path
|
|
118
305
|
* share this one implementation.
|
|
306
|
+
*
|
|
307
|
+
* Ranking:
|
|
308
|
+
* - `"occurrence"` (legacy): occurrence count desc → best position asc,
|
|
309
|
+
* over a stable sort. Byte-identical to the pre-fusion merge.
|
|
310
|
+
* - `"rrf"`: raw reciprocal-rank score desc (`Σ 1/(RRF_K + rank)` over
|
|
311
|
+
* every grid occurrence) → occurrences desc → bestPos asc →
|
|
312
|
+
* first-encounter (the stable sort's insertion order). The sort runs
|
|
313
|
+
* on the RAW double, never on the rounded display value: two rows
|
|
314
|
+
* that round to the same `fusionScore` still order by their true
|
|
315
|
+
* scores. Under this mode every row emits `fusionScore` (exactly
|
|
316
|
+
* three decimals, locale-independent); under "occurrence" the key is
|
|
317
|
+
* absent entirely.
|
|
318
|
+
*
|
|
319
|
+
* `bestPos` is internal bookkeeping in both modes and never emitted.
|
|
119
320
|
*/
|
|
120
|
-
export function mergeResults(grid, options
|
|
121
|
-
const { emitMergedFrom = false, count } = options;
|
|
321
|
+
export function mergeResults(grid, options) {
|
|
322
|
+
const { mode, emitMergedFrom = false, count } = options ?? {};
|
|
323
|
+
if (mode !== "rrf" && mode !== "occurrence") {
|
|
324
|
+
throw new Error(`mergeResults requires an explicit mode ("rrf" | "occurrence"); got ${JSON.stringify(mode)}.`);
|
|
325
|
+
}
|
|
326
|
+
const isRrf = mode === "rrf";
|
|
122
327
|
const map = new Map();
|
|
123
328
|
for (const arm of grid) {
|
|
124
329
|
for (const results of arm.results) {
|
|
@@ -130,6 +335,11 @@ export function mergeResults(grid, options = {}) {
|
|
|
130
335
|
if (existing) {
|
|
131
336
|
existing.occurrences += 1;
|
|
132
337
|
existing.bestPos = Math.min(existing.bestPos, r.rank);
|
|
338
|
+
// Score accumulation shares the map-build loop; under
|
|
339
|
+
// "occurrence" it is never computed at all (the legacy path
|
|
340
|
+
// stays byte-identical and cheap).
|
|
341
|
+
if (isRrf)
|
|
342
|
+
existing.score += 1 / (RRF_K + r.rank);
|
|
133
343
|
if (emitMergedFrom && arm.provider && !existing.mergedFrom.includes(arm.provider)) {
|
|
134
344
|
existing.mergedFrom.push(arm.provider);
|
|
135
345
|
}
|
|
@@ -139,34 +349,48 @@ export function mergeResults(grid, options = {}) {
|
|
|
139
349
|
...r,
|
|
140
350
|
occurrences: 1,
|
|
141
351
|
bestPos: r.rank,
|
|
352
|
+
score: isRrf ? 1 / (RRF_K + r.rank) : 0,
|
|
142
353
|
mergedFrom: emitMergedFrom && arm.provider ? [arm.provider] : [],
|
|
143
354
|
});
|
|
144
355
|
}
|
|
145
356
|
}
|
|
146
357
|
}
|
|
147
358
|
}
|
|
148
|
-
let merged = Array.from(map.values());
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
359
|
+
let merged = clusterNearDuplicates(Array.from(map.values()));
|
|
360
|
+
if (isRrf) {
|
|
361
|
+
// Raw double first — occurrences and bestPos only break exact ties.
|
|
362
|
+
// The stable sort leaves full ties in insertion (first-encounter)
|
|
363
|
+
// order, so no explicit encounter index is needed.
|
|
364
|
+
merged.sort((a, b) => b.score - a.score || b.occurrences - a.occurrences || a.bestPos - b.bestPos);
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
merged.sort((a, b) => {
|
|
368
|
+
if (b.occurrences !== a.occurrences)
|
|
369
|
+
return b.occurrences - a.occurrences;
|
|
370
|
+
return a.bestPos - b.bestPos;
|
|
371
|
+
});
|
|
372
|
+
}
|
|
154
373
|
// Post-merge --count slice (each arm was already asked for this count).
|
|
155
374
|
if (count !== undefined) {
|
|
156
375
|
merged = merged.slice(0, Math.max(0, count));
|
|
157
376
|
}
|
|
158
377
|
return merged.map((r, i) => {
|
|
159
|
-
const { bestPos: _bp, ...rest } = r;
|
|
378
|
+
const { bestPos: _bp, score: _score, ...rest } = r;
|
|
160
379
|
void _bp;
|
|
380
|
+
void _score;
|
|
161
381
|
const rank = i + 1;
|
|
382
|
+
// fusionScore is appended AFTER the emitted fields (key-order pin)
|
|
383
|
+
// and only under rrf; a result row keeps the first writer's key
|
|
384
|
+
// order otherwise, so `rank` overwrites in place.
|
|
385
|
+
const row = isRrf ? { ...rest, fusionScore: r.score.toFixed(3) } : rest;
|
|
162
386
|
if (!emitMergedFrom) {
|
|
163
387
|
// Omit mergedFrom entirely on the single path (SCHEMA.md) so the
|
|
164
388
|
// emitted objects stay byte-identical to the pre-fan-out merge.
|
|
165
|
-
const { mergedFrom: _mf, ...restNoProvenance } =
|
|
389
|
+
const { mergedFrom: _mf, ...restNoProvenance } = row;
|
|
166
390
|
void _mf;
|
|
167
391
|
return { ...restNoProvenance, rank };
|
|
168
392
|
}
|
|
169
|
-
return { ...
|
|
393
|
+
return { ...row, rank };
|
|
170
394
|
});
|
|
171
395
|
}
|
|
172
396
|
function renderTextFormat(results, mode) {
|
|
@@ -180,6 +404,9 @@ function renderTextFormat(results, mode) {
|
|
|
180
404
|
// absent). Never print `undefined` — omit what the allowlist took.
|
|
181
405
|
rank += 1;
|
|
182
406
|
const r = { rank, title: "", url: "", ...row };
|
|
407
|
+
// ×N badge (DESIGN D5): N counts the row's merged occurrences AND,
|
|
408
|
+
// under near-duplicate clustering (fan-out lane T5), the absorbed
|
|
409
|
+
// cluster members — occurrences accumulates both contributions.
|
|
183
410
|
const occBadge = r.occurrences && r.occurrences > 1 ? ` ×${r.occurrences}` : "";
|
|
184
411
|
if (mode === "compact") {
|
|
185
412
|
lines.push(r.title && r.url ? `${r.title}${occBadge} — ${r.url}` : r.url || r.title || r.summary || "");
|
|
@@ -271,7 +498,7 @@ export async function search(query, options = {}, deps, context) {
|
|
|
271
498
|
// owns `--max-chars` (SEARCH_LADDER whole-envelope budget); a smuggled
|
|
272
499
|
// value must fail loud, not silently no-budget.
|
|
273
500
|
rejectSmuggledMaxChars(options, "search");
|
|
274
|
-
const { capability, cache, sleep, random, retryPolicy, consume, now } = deps;
|
|
501
|
+
const { capability, cache, sleep, random, retryPolicy, consume, now, fusionMode } = deps;
|
|
275
502
|
// Split query on `|` if --merge is set. Empty fragments are dropped.
|
|
276
503
|
// A literal pipe in a single query can be escaped as `\|` (won't split).
|
|
277
504
|
let subQueries = [query];
|
|
@@ -305,9 +532,10 @@ export async function search(query, options = {}, deps, context) {
|
|
|
305
532
|
// The single-provider --merge path and the fan-out path (Ticket 3)
|
|
306
533
|
// share one merge implementation. The single path passes no provider
|
|
307
534
|
// and no count, so its output is byte-identical to the pre-fan-out
|
|
308
|
-
// merge (no mergedFrom field, no post-merge slice).
|
|
535
|
+
// merge (no mergedFrom field, no post-merge slice). Seed-24 T3: the
|
|
536
|
+
// ranking mode is named here, at the caller — the seam never defaults.
|
|
309
537
|
const formattedResults = isMerge
|
|
310
|
-
? mergeResults([{ results: perQueryFormatted }])
|
|
538
|
+
? mergeResults([{ results: perQueryFormatted }], { mode: fusionMode ?? "rrf" })
|
|
311
539
|
: perQueryFormatted[0] || [];
|
|
312
540
|
if (isMerge && context) {
|
|
313
541
|
context.notice(`ℹ️ merged ${subQueries.length} queries → ${formattedResults.length} unique results`);
|
|
@@ -562,19 +790,30 @@ export async function executeFanoutPlan(plan, options, context) {
|
|
|
562
790
|
provider: s.arm,
|
|
563
791
|
results: s.results,
|
|
564
792
|
}));
|
|
565
|
-
|
|
793
|
+
// Issue #243: merge WITHOUT the count slice, then slice locally, so the
|
|
794
|
+
// summary notice can report the merge's PRE-slice unique count — the old
|
|
795
|
+
// call passed count into mergeResults and the notice printed the
|
|
796
|
+
// post-slice length as "unique".
|
|
797
|
+
const fullMerged = mergeResults(grid, {
|
|
798
|
+
mode: options.fusionMode,
|
|
566
799
|
emitMergedFrom: true,
|
|
567
|
-
count: options.searchOptions.count,
|
|
568
800
|
});
|
|
801
|
+
const count = options.searchOptions.count;
|
|
802
|
+
// Same slice semantics as mergeResults' internal cap (rank-mapped rows
|
|
803
|
+
// 1..N; taking the first N is byte-identical to slicing pre-rank-map).
|
|
804
|
+
const merged = count === undefined ? fullMerged : fullMerged.slice(0, Math.max(0, count));
|
|
569
805
|
// Summary notice (D5). K = total raw results across the whole
|
|
570
806
|
// arms × sub-queries grid (the post-truncate counts the executor
|
|
571
|
-
// collected); M =
|
|
807
|
+
// collected); M = the merge's PRE-slice unique count; shown = rows
|
|
808
|
+
// remaining after the --count cap. An arm with 0 results
|
|
572
809
|
// contributes 0 to K — the notice still names the arm so the
|
|
573
810
|
// operator sees the full set.
|
|
574
811
|
const totalRaw = successes.reduce((sum, s) => sum + s.results.reduce((n, list) => n + list.length, 0), 0);
|
|
575
812
|
if (context) {
|
|
576
813
|
const armList = arms.join(", ");
|
|
577
|
-
context.notice(
|
|
814
|
+
context.notice(count === undefined
|
|
815
|
+
? `fanned out to ${arms.length} providers (${armList}) → ${fullMerged.length} unique of ${totalRaw} results`
|
|
816
|
+
: `fanned out to ${arms.length} providers (${armList}) → ${merged.length} shown of ${fullMerged.length} unique of ${totalRaw} results`);
|
|
578
817
|
}
|
|
579
818
|
const presentations = buildPresentations(merged);
|
|
580
819
|
const data = options.searchOptions.fields && options.searchOptions.fields.length > 0
|
|
@@ -584,12 +823,12 @@ export async function executeFanoutPlan(plan, options, context) {
|
|
|
584
823
|
}
|
|
585
824
|
// Help text
|
|
586
825
|
export const SEARCH_HELP = `
|
|
587
|
-
Search Command - Real-time web search (all
|
|
826
|
+
Search Command - Real-time web search (all ${SHARED_PROVIDER_IDS.length} Providers)
|
|
588
827
|
|
|
589
828
|
Usage: scoutline search <query> [options]
|
|
590
829
|
|
|
591
830
|
Provider selection (precedence: explicit flag, then SCOUTLINE_PROVIDER, then zai):
|
|
592
|
-
--provider
|
|
831
|
+
--provider <${SHARED_PROVIDER_FLAG_IDS}> Select the search provider (default: zai) SCOUTLINE_PROVIDER=<id> Fallback when --provider is not passed
|
|
593
832
|
|
|
594
833
|
Multi-provider fan-out — activation tiers (highest precedence first):
|
|
595
834
|
1. --provider <tavily,exa,...> or --provider all
|
|
@@ -621,6 +860,13 @@ Multi-provider fan-out — activation tiers (highest precedence first):
|
|
|
621
860
|
the arms × sub-queries grid. A failed arm is dropped with a stderr
|
|
622
861
|
notice; if every arm fails, the last arm's error surfaces.
|
|
623
862
|
|
|
863
|
+
Ranking (fusion): merged lists — from fan-out and from --merge —
|
|
864
|
+
rank by reciprocal rank fusion over every arm × sub-query occurrence
|
|
865
|
+
(config key \`fusion\`, rrf | occurrence; default rrf). Set
|
|
866
|
+
\`scoutline config set fusion occurrence\` (or SCOUTLINE_FUSION=occurrence)
|
|
867
|
+
to restore the legacy occurrence-count ordering byte-for-byte. There
|
|
868
|
+
is no --fusion flag; the fixed env door is SCOUTLINE_FUSION.
|
|
869
|
+
|
|
624
870
|
Note: support for the optional controls below varies by provider AND by
|
|
625
871
|
control — a control accepted by one provider may be rejected
|
|
626
872
|
(UNSUPPORTED_OPTION) by another before invocation. Run
|
|
@@ -705,6 +951,8 @@ Default JSON shape:
|
|
|
705
951
|
"date": "2024-01-15",
|
|
706
952
|
"occurrences": 2 // only present with --merge when >1
|
|
707
953
|
"mergedFrom": ["tavily", "exa"] // fan-out only: arms that surfaced this result
|
|
954
|
+
"fusionScore": "0.049" // rrf mode only: rank-fusion score, fixed 3 decimals
|
|
955
|
+
"clusterUrls": ["https://...", ...] // near-dup cluster members; the representative's own url is excluded
|
|
708
956
|
}
|
|
709
957
|
]
|
|
710
958
|
`.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,2BAA2B,CAAC;AAGlG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/vision.js
CHANGED
|
@@ -83,7 +83,7 @@ Provider selection (precedence: explicit flag, then SCOUTLINE_PROVIDER, then zai
|
|
|
83
83
|
Commands:
|
|
84
84
|
analyze <image> [prompt] General image interpretation (shared: Z.AI + MiniMax)
|
|
85
85
|
ui-to-code <image> [prompt] Convert UI screenshot to code${uiSuffix}
|
|
86
|
-
extract-text <image> [prompt]
|
|
86
|
+
extract-text <image|pdf> [prompt] OCR for code, terminals, documents${extractSuffix}
|
|
87
87
|
diagnose-error <image> [prompt] Analyze error screenshots${diagnoseSuffix}
|
|
88
88
|
diagram <image> [prompt] Interpret technical diagrams${diagramSuffix}
|
|
89
89
|
chart <image> [prompt] Analyze data visualizations${chartSuffix}
|
|
@@ -113,6 +113,8 @@ Vision batch options (batch subcommand only):
|
|
|
113
113
|
|
|
114
114
|
Constraints:
|
|
115
115
|
Z.AI images: <=5MB, JPG/PNG/JPEG ; Z.AI videos: <=8MB, MP4/MOV/M4V (URLs supported)
|
|
116
|
+
Z.AI extract-text: GLM-OCR engine (PDF <=50MB, images <=10MB, JPG/PNG/JPEG;
|
|
117
|
+
--language/custom prompt warn-and-strip; exhaustion falls back to the vision model)
|
|
116
118
|
MiniMax images: <=50MB, JPG/JPEG/PNG/WebP
|
|
117
119
|
|
|
118
120
|
Examples:
|
|
@@ -305,6 +307,9 @@ const VISION_BATCH_VIDEO_EXTENSIONS = new Set([
|
|
|
305
307
|
const VISION_BATCH_MEDIA_EXTENSIONS = new Set([
|
|
306
308
|
...VISION_BATCH_IMAGE_EXTENSIONS,
|
|
307
309
|
...VISION_BATCH_VIDEO_EXTENSIONS,
|
|
310
|
+
// m2 (glm-ocr review, owner-approved): extract-text accepts PDFs via
|
|
311
|
+
// the glm-ocr arm; a glob must not silently drop them.
|
|
312
|
+
".pdf",
|
|
308
313
|
]);
|
|
309
314
|
/**
|
|
310
315
|
* Per-operation dry-run extension set (review fix): `video` sources are
|
|
@@ -320,6 +325,10 @@ function visionBatchAcceptedExtensions(subcommand) {
|
|
|
320
325
|
return VISION_BATCH_VIDEO_EXTENSIONS;
|
|
321
326
|
if (subcommand === "diff")
|
|
322
327
|
return VISION_BATCH_ZAI_IMAGE_EXTENSIONS;
|
|
328
|
+
// m2: extract-text's dry-run set includes the glm-ocr PDF gain.
|
|
329
|
+
if (subcommand === "extract-text") {
|
|
330
|
+
return new Set([...VISION_BATCH_IMAGE_EXTENSIONS, ".pdf"]);
|
|
331
|
+
}
|
|
323
332
|
return VISION_BATCH_IMAGE_EXTENSIONS;
|
|
324
333
|
}
|
|
325
334
|
/** Flags `vision batch` itself accepts (the D1 surface; strict). */
|
|
@@ -395,7 +404,11 @@ async function expandVisionBatchGlob(glob) {
|
|
|
395
404
|
inputs.push({
|
|
396
405
|
file: path.resolve(directory, name),
|
|
397
406
|
opName: sanitizeVisionBatchName(name),
|
|
398
|
-
subcommand: VISION_BATCH_VIDEO_EXTENSIONS.has(ext)
|
|
407
|
+
subcommand: VISION_BATCH_VIDEO_EXTENSIONS.has(ext)
|
|
408
|
+
? "video"
|
|
409
|
+
: ext === ".pdf"
|
|
410
|
+
? "extract-text"
|
|
411
|
+
: "analyze",
|
|
399
412
|
});
|
|
400
413
|
}
|
|
401
414
|
if (inputs.length === 0) {
|