sxng-cli 1.1.9 โ 1.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 +72 -33
- package/dist/commands/extract.d.ts +0 -1
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +30 -26
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/graph-add.d.ts.map +1 -1
- package/dist/commands/graph-add.js +17 -0
- package/dist/commands/graph-add.js.map +1 -1
- package/dist/deep/quality-assess.d.ts +6 -6
- package/dist/deep/quality-assess.d.ts.map +1 -1
- package/dist/deep/quality-assess.js +13 -18
- package/dist/deep/quality-assess.js.map +1 -1
- package/dist/deep/recovery-analysis.d.ts.map +1 -1
- package/dist/deep/recovery-analysis.js +4 -6
- package/dist/deep/recovery-analysis.js.map +1 -1
- package/dist/deep/session.d.ts +25 -2
- package/dist/deep/session.d.ts.map +1 -1
- package/dist/deep/session.js +89 -7
- package/dist/deep/session.js.map +1 -1
- package/dist/runCli.d.ts.map +1 -1
- package/dist/runCli.js +72 -72
- package/dist/runCli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,15 +26,14 @@
|
|
|
26
26
|
|
|
27
27
|
- ๐ **Multi-Engine Search** โ Search across Google, Bing, DuckDuckGo, GitHub, StackOverflow, and 30+ engines simultaneously
|
|
28
28
|
- ๐ **Dynamic Discovery** โ Auto-fetches available engines and categories from your SearXNG server
|
|
29
|
-
- ๐ **Multiple Formats** โ Markdown (LLM-optimized)
|
|
30
|
-
- ๐ง **Deep Search** โ Multi-round iterative research with session accumulation and
|
|
31
|
-
- ๐ **Content Extraction** โ Extract full article content from
|
|
32
|
-
- ๐๏ธ **Session Management** โ Accumulate search results across
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
- ๐ **Proxy Support** โ HTTP/HTTPS proxy configuration
|
|
29
|
+
- ๐ **Multiple Formats** โ Markdown (LLM-optimized) or JSON output
|
|
30
|
+
- ๐ง **Deep Search** โ Multi-round iterative research with session accumulation, quality assessment, and recovery strategies
|
|
31
|
+
- ๐ **Content Extraction** โ Extract full article content from URLs or session results, with Obscura (JS rendering) and Jina Reader fallbacks
|
|
32
|
+
- ๐๏ธ **Session Management** โ Accumulate search results across rounds with deduplication; pending โ approve โ graph injection workflow
|
|
33
|
+
- โญ **Quality Assessment** โ 4 independent indicators: content depth, entity richness, source diversity, novelty
|
|
34
|
+
- ๐ธ๏ธ **Knowledge Graph** โ Structural (queryโresultโdomain) + semantic (entity relations) graph layers
|
|
35
|
+
- ๐ **Query Redundancy Check** โ Jaccard similarity + SimHash to avoid repeated queries
|
|
36
|
+
- ๐ก **Agent-First Design** โ Outputs structured analysis data (quality, suggestions, recovery) for LLM Agent decision-making
|
|
38
37
|
|
|
39
38
|
## ๐ฆ Installation
|
|
40
39
|
|
|
@@ -106,15 +105,28 @@ obscura --version
|
|
|
106
105
|
| `sxng <query>` | Perform a web search |
|
|
107
106
|
| `sxng --queries "q1,q2"` | Multi-query search with RRF fusion |
|
|
108
107
|
| `sxng extract --urls <urls>` | Extract content from web pages |
|
|
109
|
-
| `sxng extract --
|
|
108
|
+
| `sxng extract --session <name>` | Extract session results and merge content |
|
|
109
|
+
| `sxng extract --obscura` | JS-rendering fallback for SPA pages |
|
|
110
|
+
| `sxng extract --jina` | Jina Reader fallback for complex pages |
|
|
110
111
|
| `sxng --session new` | Create deep search session |
|
|
112
|
+
| `sxng --session <name> --quality` | Assess result quality, list pending results |
|
|
113
|
+
| `sxng --session <name> --quality --approve "0,1"` | Approve pending results by index |
|
|
114
|
+
| `sxng suggest-queries <session>` | Get query suggestion data for Agent |
|
|
115
|
+
| `sxng strategy-info <session>` | Check current search stage |
|
|
116
|
+
| `sxng recovery-analysis <session>` | Get recovery strategies for poor quality |
|
|
117
|
+
| `sxng session-report <session>` | Full session analysis report |
|
|
111
118
|
| `sxng session-list` | List all sessions |
|
|
112
|
-
| `sxng session-delete <
|
|
113
|
-
| `sxng graph-
|
|
114
|
-
| `sxng
|
|
119
|
+
| `sxng session-delete <name>` | Delete a session |
|
|
120
|
+
| `sxng graph-preprocess <session>` | TF-IDF + co-occurrence analysis |
|
|
121
|
+
| `sxng graph-add <session>` | Add entities/edges to knowledge graph |
|
|
122
|
+
| `sxng graph-search <session>` | Discover entities by keyword |
|
|
123
|
+
| `sxng graph-explore <session>` | View entity relations |
|
|
124
|
+
| `sxng graph-drill <session>` | Follow specific relations |
|
|
125
|
+
| `sxng graph-traverse <session>` | Traverse reasoning paths |
|
|
126
|
+
| `sxng graph-obfuscate <session>` | List obfuscation candidates |
|
|
115
127
|
| `sxng --health` | Check SearXNG server health |
|
|
116
|
-
| `sxng --engines-list` | List available search engines
|
|
117
|
-
| `sxng --categories-list` | List available categories
|
|
128
|
+
| `sxng --engines-list` | List available search engines |
|
|
129
|
+
| `sxng --categories-list` | List available categories |
|
|
118
130
|
|
|
119
131
|
### Search Options
|
|
120
132
|
|
|
@@ -126,11 +138,16 @@ obscura --version
|
|
|
126
138
|
| `-p, --page <n>` | Page number for pagination |
|
|
127
139
|
| `--lang <code>` | Language code (e.g., `en`, `zh`, `ja`) |
|
|
128
140
|
| `--time <range>` | Time range: `day`, `week`, `month`, `year`, `all` |
|
|
129
|
-
| `-f, --format <fmt>` | Output format: `md
|
|
141
|
+
| `-f, --format <fmt>` | Output format: `md` (default) or `json` |
|
|
130
142
|
| `--queries <list>` | Multi-query with RRF fusion (e.g., `q1,q2,q3`) |
|
|
131
143
|
| `--session <session-name>` | Session directory or `new` for deep search |
|
|
132
144
|
| `--owner <session-name>` | Session owner identifier |
|
|
133
145
|
| `--desc <text>` | Session description |
|
|
146
|
+
| `--redundancy <action>` | Query redundancy check: `warn`, `adjust`, `skip` |
|
|
147
|
+
| `--quality` | Assess result quality (requires --session) |
|
|
148
|
+
| `--approve <indices>` | Approve pending results by comma-separated indices |
|
|
149
|
+
| `--threshold-override <json>` | Override quality thresholds (JSON) |
|
|
150
|
+
| `--merge <file>` | Merge new results with previous search JSON |
|
|
134
151
|
|
|
135
152
|
### Examples
|
|
136
153
|
|
|
@@ -197,19 +214,29 @@ Create `sxng.config.json`:
|
|
|
197
214
|
|
|
198
215
|
## ๐ง Deep Search
|
|
199
216
|
|
|
200
|
-
Deep search enables multi-round iterative research with session accumulation
|
|
217
|
+
Deep search enables multi-round iterative research with session accumulation, quality assessment, agent-controlled graph injection, and recovery strategies.
|
|
218
|
+
|
|
219
|
+
### Workflow
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
Search โ Extract โ Preprocess โ Build Graph โ Quality Assess โ Approve โ (Loop or Explore)
|
|
223
|
+
```
|
|
201
224
|
|
|
202
225
|
### Quick Example
|
|
203
226
|
|
|
204
227
|
```bash
|
|
205
|
-
# Create a session and search
|
|
206
|
-
sxng --session new --owner "
|
|
228
|
+
# 1. Create a session and search
|
|
229
|
+
sxng --session new --owner "agent-1" --desc "Rust async study" "rust async ecosystem"
|
|
230
|
+
# Outputs session path, e.g. .sxng/sessions/ds_1712345678_abcdef
|
|
207
231
|
|
|
208
|
-
# Extract content from results
|
|
209
|
-
sxng extract --session
|
|
232
|
+
# 2. Extract content from results
|
|
233
|
+
sxng extract --session ds_1712345678_abcdef
|
|
210
234
|
|
|
211
|
-
#
|
|
212
|
-
sxng graph-
|
|
235
|
+
# 3. Preprocess for entity discovery (TF-IDF + co-occurrence)
|
|
236
|
+
sxng graph-preprocess ds_1712345678_abcdef
|
|
237
|
+
|
|
238
|
+
# 4. Add entities to knowledge graph
|
|
239
|
+
sxng graph-add ds_1712345678_abcdef --data '{
|
|
213
240
|
"entities": [
|
|
214
241
|
{"label": "tokio", "entityType": "runtime", "score": 0.95},
|
|
215
242
|
{"label": "async-std", "entityType": "runtime", "score": 0.85}
|
|
@@ -219,11 +246,14 @@ sxng graph-add <session-name> --data '{
|
|
|
219
246
|
]
|
|
220
247
|
}'
|
|
221
248
|
|
|
222
|
-
#
|
|
223
|
-
sxng
|
|
249
|
+
# 5. Assess quality โ results are pending until approved
|
|
250
|
+
sxng --session ds_1712345678_abcdef --quality
|
|
251
|
+
|
|
252
|
+
# 6. Approve pending results by index (injects into graph)
|
|
253
|
+
sxng --session ds_1712345678_abcdef --quality --approve "0,1,2,3"
|
|
224
254
|
|
|
225
|
-
# Continue research
|
|
226
|
-
sxng --session
|
|
255
|
+
# 7. Continue research with redundancy check
|
|
256
|
+
sxng --session ds_1712345678_abcdef --queries "tokio vs async-std,benchmark 2026" --redundancy warn
|
|
227
257
|
```
|
|
228
258
|
|
|
229
259
|
### Session Management
|
|
@@ -243,13 +273,22 @@ sxng --session <session-name> --queries "tokio vs async-std,benchmark 2024"
|
|
|
243
273
|
|
|
244
274
|
### Knowledge Graph
|
|
245
275
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
-
|
|
249
|
-
|
|
276
|
+
Two layers:
|
|
277
|
+
|
|
278
|
+
**Structural** (auto-built):
|
|
279
|
+
| Prefix | Type | Example |
|
|
280
|
+
|--------|------|---------|
|
|
281
|
+
| `q:` | Query node | `q:rust_async` |
|
|
282
|
+
| `r:` | Result node | `r:https://example.com/page` |
|
|
283
|
+
| `d:` | Domain node | `d:github_com` |
|
|
284
|
+
|
|
285
|
+
**Semantic** (via `graph-add`):
|
|
286
|
+
| Prefix | Type | Example |
|
|
287
|
+
|--------|------|---------|
|
|
288
|
+
| `e:` | Entity node | `e:tokio` |
|
|
289
|
+
| `p:` | Path node | `p:chain_001` |
|
|
250
290
|
|
|
251
|
-
|
|
252
|
-
- `e:` โ Entity nodes with type and score
|
|
291
|
+
Graph navigation commands: `graph-search` (discover entities), `graph-explore` (view relations), `graph-drill` (follow specific relations), `graph-traverse` (traverse reasoning paths).
|
|
253
292
|
|
|
254
293
|
## ๐ Links
|
|
255
294
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAK1E,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAK1E,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAsB,UAAU,CAC5B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAyGjB"}
|
package/dist/commands/extract.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Extract subcommand - content extraction from URLs or search results
|
|
3
3
|
*/
|
|
4
4
|
import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
|
|
5
|
-
import { readFileSync } from 'fs';
|
|
6
5
|
import { loadSessionResults, mergeExtractedContent, resolveSessionPath } from '../deep/session.js';
|
|
6
|
+
import { SimHash } from '../deep/simhash.js';
|
|
7
7
|
export async function runExtract(extractor, options) {
|
|
8
8
|
let urls = [];
|
|
9
9
|
// Resolve session path if provided
|
|
@@ -23,41 +23,45 @@ export async function runExtract(extractor, options) {
|
|
|
23
23
|
}
|
|
24
24
|
urls = results.map(r => r.url).filter(u => typeof u === 'string' && u.length > 0);
|
|
25
25
|
}
|
|
26
|
-
else if (options.fromJson) {
|
|
27
|
-
try {
|
|
28
|
-
const raw = readFileSync(options.fromJson, 'utf-8');
|
|
29
|
-
const parsed = JSON.parse(raw);
|
|
30
|
-
// Handle envelope format
|
|
31
|
-
let data = parsed;
|
|
32
|
-
if (parsed.status === 'ok' && parsed.data) {
|
|
33
|
-
data = parsed.data;
|
|
34
|
-
}
|
|
35
|
-
// Extract URLs from results array
|
|
36
|
-
const results = data.results || [];
|
|
37
|
-
urls = results
|
|
38
|
-
.map((r) => r.url)
|
|
39
|
-
.filter((u) => typeof u === 'string' && u.length > 0);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
const envelope = createErrorEnvelope('FILE_READ_FAILED', `Failed to read or parse file: ${options.fromJson}`, { hint: 'Ensure the file exists and contains valid JSON with a results array' });
|
|
43
|
-
console.log(JSON.stringify(envelope, null, 2));
|
|
44
|
-
return 1;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
26
|
else {
|
|
48
|
-
const envelope = createErrorEnvelope('MISSING_INPUT', 'No URLs or input file provided for extraction', { hint: 'Use: sxng extract --urls "url1,url2" or sxng extract --
|
|
27
|
+
const envelope = createErrorEnvelope('MISSING_INPUT', 'No URLs or input file provided for extraction', { hint: 'Use: sxng extract --urls "url1,url2" or sxng extract --session <session>' });
|
|
49
28
|
console.log(JSON.stringify(envelope, null, 2));
|
|
50
29
|
return 1;
|
|
51
30
|
}
|
|
52
31
|
if (urls.length === 0) {
|
|
53
|
-
const envelope = createErrorEnvelope('NO_URLS', 'No URLs found to extract', { hint: 'Provide URLs directly or ensure the
|
|
32
|
+
const envelope = createErrorEnvelope('NO_URLS', 'No URLs found to extract', { hint: 'Provide URLs directly or ensure the session contains results with URLs' });
|
|
54
33
|
console.log(JSON.stringify(envelope, null, 2));
|
|
55
34
|
return 1;
|
|
56
35
|
}
|
|
57
36
|
try {
|
|
58
37
|
const contents = await extractor.extractBatch(urls);
|
|
59
|
-
|
|
60
|
-
const
|
|
38
|
+
// Deduplicate extracted content by first 500 chars using SimHash
|
|
39
|
+
const simhash = new SimHash();
|
|
40
|
+
const seenHashes = [];
|
|
41
|
+
const extracted = [];
|
|
42
|
+
const failed = [];
|
|
43
|
+
for (const c of contents) {
|
|
44
|
+
if (c.error || c.content.length <= 100) {
|
|
45
|
+
failed.push(c.url);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const prefix = c.content.slice(0, 500);
|
|
49
|
+
const h = simhash.hash(prefix);
|
|
50
|
+
let isDuplicate = false;
|
|
51
|
+
for (const existing of seenHashes) {
|
|
52
|
+
if (simhash.similarity(h, existing) >= 0.85) {
|
|
53
|
+
isDuplicate = true;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (!isDuplicate) {
|
|
58
|
+
extracted.push(c);
|
|
59
|
+
seenHashes.push(h);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
failed.push(c.url);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
61
65
|
// Merge extracted content into session if --session provided
|
|
62
66
|
let sessionMerge = null;
|
|
63
67
|
if (options.session) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-add.d.ts","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"graph-add.d.ts","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AA2BD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA+K3E"}
|
|
@@ -11,6 +11,7 @@ import { deserializeGraph, serializeGraph, graphStats, entityId, resultId } from
|
|
|
11
11
|
import { DirectedGraph } from 'graphology';
|
|
12
12
|
import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
|
|
13
13
|
import { getDefaultSessionRoot } from './session.js';
|
|
14
|
+
import { appendSessionResults, resolveSessionPath } from '../deep/session.js';
|
|
14
15
|
/** Resolve graph file path โ if directory (session), use graph.json inside it.
|
|
15
16
|
* Pure name (no separators) is resolved to the default session root.
|
|
16
17
|
*/
|
|
@@ -152,10 +153,26 @@ export async function runGraphAdd(options) {
|
|
|
152
153
|
console.log(JSON.stringify(envelope, null, 2));
|
|
153
154
|
return 1;
|
|
154
155
|
}
|
|
156
|
+
// Also write external results to results.json if this is a session directory
|
|
157
|
+
let sessionResultsAdded = 0;
|
|
158
|
+
if (parsed.results && parsed.results.length > 0) {
|
|
159
|
+
const sessionDir = resolveSessionPath(options.graphFile);
|
|
160
|
+
if (sessionDir) {
|
|
161
|
+
const externalResults = parsed.results.map(r => ({
|
|
162
|
+
url: r.url,
|
|
163
|
+
title: r.title,
|
|
164
|
+
source: r.source || 'external',
|
|
165
|
+
rank: r.rank,
|
|
166
|
+
}));
|
|
167
|
+
const result = appendSessionResults(sessionDir, externalResults);
|
|
168
|
+
sessionResultsAdded = result.added;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
155
171
|
const envelope = createSuccessEnvelope({
|
|
156
172
|
entitiesAdded,
|
|
157
173
|
resultsAdded,
|
|
158
174
|
edgesAdded,
|
|
175
|
+
sessionResultsAdded,
|
|
159
176
|
skippedEdges,
|
|
160
177
|
stats,
|
|
161
178
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-add.js","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAkC,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpI,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-add.js","sourceRoot":"","sources":["../../src/commands/graph-add.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - acceptable: โค2 indicators fail
|
|
10
10
|
* - poor: โฅ3 indicators fail
|
|
11
11
|
*
|
|
12
|
-
* Novelty uses SimHash similarity < 0.
|
|
12
|
+
* Novelty uses SimHash similarity < 0.75 as "not similar" threshold
|
|
13
13
|
* (paired with dedup threshold of 0.85).
|
|
14
14
|
*/
|
|
15
15
|
import { DirectedGraph } from 'graphology';
|
|
@@ -21,7 +21,6 @@ export interface IndicatorResult {
|
|
|
21
21
|
pass: boolean;
|
|
22
22
|
}
|
|
23
23
|
export interface QualityBreakdown {
|
|
24
|
-
resultCount: IndicatorResult;
|
|
25
24
|
contentDepth: IndicatorResult;
|
|
26
25
|
entityRichness: IndicatorResult;
|
|
27
26
|
sourceDiversity: IndicatorResult;
|
|
@@ -33,13 +32,14 @@ export interface QualityScore {
|
|
|
33
32
|
failedIndicators: string[];
|
|
34
33
|
}
|
|
35
34
|
export interface QualityThresholds {
|
|
36
|
-
resultCount: number;
|
|
37
35
|
contentDepth: number;
|
|
38
36
|
entityRichness: number;
|
|
39
37
|
sourceDiversity: number;
|
|
40
38
|
novelty: number;
|
|
41
39
|
}
|
|
42
|
-
/** Assess the quality of
|
|
43
|
-
* All indicators use independent thresholds โ no weighted sum.
|
|
44
|
-
|
|
40
|
+
/** Assess the quality of results against session context.
|
|
41
|
+
* All indicators use independent thresholds โ no weighted sum.
|
|
42
|
+
* Note: resultCount is intentionally excluded โ Agent decides how many results to keep.
|
|
43
|
+
*/
|
|
44
|
+
export declare function assessResultQuality(results: SessionResult[], sessionResults: SessionResult[], graph: DirectedGraph<GraphNodeAttrs, GraphEdgeAttrs>, thresholds?: Partial<QualityThresholds>): QualityScore;
|
|
45
45
|
//# sourceMappingURL=quality-assess.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-assess.d.ts","sourceRoot":"","sources":["../../src/deep/quality-assess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B,
|
|
1
|
+
{"version":3,"file":"quality-assess.d.ts","sourceRoot":"","sources":["../../src/deep/quality-assess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,eAAe,CAAC;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;IACxC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACnB;AAiGD;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,aAAa,EAAE,EACxB,cAAc,EAAE,aAAa,EAAE,EAC/B,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACxC,YAAY,CAwBd"}
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
* - acceptable: โค2 indicators fail
|
|
10
10
|
* - poor: โฅ3 indicators fail
|
|
11
11
|
*
|
|
12
|
-
* Novelty uses SimHash similarity < 0.
|
|
12
|
+
* Novelty uses SimHash similarity < 0.75 as "not similar" threshold
|
|
13
13
|
* (paired with dedup threshold of 0.85).
|
|
14
14
|
*/
|
|
15
15
|
import { SimHash } from './simhash.js';
|
|
16
16
|
const DEFAULT_THRESHOLDS = {
|
|
17
|
-
resultCount: 5,
|
|
18
17
|
contentDepth: 150,
|
|
19
18
|
entityRichness: 2,
|
|
20
19
|
sourceDiversity: 3,
|
|
@@ -30,14 +29,9 @@ function extractDomain(url) {
|
|
|
30
29
|
return '';
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
|
-
/** Compute result count indicator */
|
|
34
|
-
function computeResultCount(newResults, threshold) {
|
|
35
|
-
const value = newResults.length;
|
|
36
|
-
return { value, threshold, pass: value >= threshold };
|
|
37
|
-
}
|
|
38
32
|
/** Compute content depth indicator โ average content length of extracted results only */
|
|
39
|
-
function computeContentDepth(
|
|
40
|
-
const extracted =
|
|
33
|
+
function computeContentDepth(results, threshold) {
|
|
34
|
+
const extracted = results.filter(r => r.content && r.content.length > 0);
|
|
41
35
|
if (extracted.length === 0) {
|
|
42
36
|
return { value: 0, threshold, pass: false };
|
|
43
37
|
}
|
|
@@ -66,7 +60,7 @@ function computeSourceDiversity(newResults, threshold) {
|
|
|
66
60
|
return { value, threshold, pass: value >= threshold };
|
|
67
61
|
}
|
|
68
62
|
/** Compute novelty indicator โ fraction of new results not similar to existing session results.
|
|
69
|
-
* Uses SimHash similarity < 0.
|
|
63
|
+
* Uses SimHash similarity < 0.75 as "not similar" threshold.
|
|
70
64
|
* Caches SimHash results for performance. */
|
|
71
65
|
function computeNovelty(newResults, sessionResults, threshold) {
|
|
72
66
|
if (newResults.length === 0) {
|
|
@@ -84,7 +78,7 @@ function computeNovelty(newResults, sessionResults, threshold) {
|
|
|
84
78
|
const h = simhash.hash(`${r.title} ${r.content || ''}`);
|
|
85
79
|
let isSimilar = false;
|
|
86
80
|
for (const existing of existingHashes) {
|
|
87
|
-
if (simhash.similarity(h, existing) >= 0.
|
|
81
|
+
if (simhash.similarity(h, existing) >= 0.75) {
|
|
88
82
|
isSimilar = true;
|
|
89
83
|
break;
|
|
90
84
|
}
|
|
@@ -96,16 +90,17 @@ function computeNovelty(newResults, sessionResults, threshold) {
|
|
|
96
90
|
return { value, threshold, pass: value >= threshold };
|
|
97
91
|
}
|
|
98
92
|
// โโ Main assessment โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
99
|
-
/** Assess the quality of
|
|
100
|
-
* All indicators use independent thresholds โ no weighted sum.
|
|
101
|
-
|
|
93
|
+
/** Assess the quality of results against session context.
|
|
94
|
+
* All indicators use independent thresholds โ no weighted sum.
|
|
95
|
+
* Note: resultCount is intentionally excluded โ Agent decides how many results to keep.
|
|
96
|
+
*/
|
|
97
|
+
export function assessResultQuality(results, sessionResults, graph, thresholds) {
|
|
102
98
|
const t = { ...DEFAULT_THRESHOLDS, ...thresholds };
|
|
103
99
|
const breakdown = {
|
|
104
|
-
|
|
105
|
-
contentDepth: computeContentDepth(newResults, t.contentDepth),
|
|
100
|
+
contentDepth: computeContentDepth(results, t.contentDepth),
|
|
106
101
|
entityRichness: computeEntityRichness(graph, t.entityRichness),
|
|
107
|
-
sourceDiversity: computeSourceDiversity(
|
|
108
|
-
novelty: computeNovelty(
|
|
102
|
+
sourceDiversity: computeSourceDiversity(results, t.sourceDiversity),
|
|
103
|
+
novelty: computeNovelty(results, sessionResults, t.novelty),
|
|
109
104
|
};
|
|
110
105
|
const failedIndicators = Object.entries(breakdown)
|
|
111
106
|
.filter(([, v]) => !v.pass)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-assess.js","sourceRoot":"","sources":["../../src/deep/quality-assess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-assess.js","sourceRoot":"","sources":["../../src/deep/quality-assess.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-analysis.d.ts","sourceRoot":"","sources":["../../src/deep/recovery-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,YAAY,EAAE,CAAC;CACvC;AAID;;;qBAGqB;AACrB,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,cAAc,EAAE,aAAa,EAAE,EAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAC/C,YAAY,EAAE,CAgDhB;AAID;iEACiE;AACjE,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,cAAc,EAAE,aAAa,EAAE,EAC/B,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACjC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"recovery-analysis.d.ts","sourceRoot":"","sources":["../../src/deep/recovery-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAuB,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,YAAY,EAAE,CAAC;CACvC;AAID;;;qBAGqB;AACrB,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,cAAc,EAAE,aAAa,EAAE,EAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAC/C,YAAY,EAAE,CAgDhB;AAID;iEACiE;AACjE,wBAAgB,sBAAsB,CAClC,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,cAAc,EAAE,aAAa,EAAE,EAC/B,YAAY,EAAE,YAAY,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACjC,gBAAgB,CA4ElB;AAoBD;;mDAEmD;AACnD,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,GACrD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwCzC"}
|
|
@@ -77,9 +77,8 @@ export function analyzeRecoveryOptions(graph, sessionResults, qualityScore, conf
|
|
|
77
77
|
const lastSuccessfulRound = findLastSuccessfulRound(history);
|
|
78
78
|
// Build available strategies
|
|
79
79
|
const strategies = [];
|
|
80
|
-
// Reformulate: suggest when
|
|
81
|
-
if (qualityScore.failedIndicators.includes('
|
|
82
|
-
qualityScore.failedIndicators.includes('contentDepth')) {
|
|
80
|
+
// Reformulate: suggest when contentDepth failed
|
|
81
|
+
if (qualityScore.failedIndicators.includes('contentDepth')) {
|
|
83
82
|
strategies.push({
|
|
84
83
|
strategy: 'reformulate',
|
|
85
84
|
reason: 'ๆฅ่ฏข่ฟไบๅ
ทไฝๆ่ๅด่ฟ็ช๏ผๅฏ่ฝ้่ฆ็ฎๅ',
|
|
@@ -94,9 +93,8 @@ export function analyzeRecoveryOptions(graph, sessionResults, qualityScore, conf
|
|
|
94
93
|
suggestion: 'ๅฐ่ฏไธๅๅผๆ็ปๅ๏ผๅฆไป google ๅๆขๅฐ duckduckgo ๆๆทปๅ ไธไธๅผๆ๏ผ',
|
|
95
94
|
});
|
|
96
95
|
}
|
|
97
|
-
// Category shift: suggest when novelty
|
|
98
|
-
if (qualityScore.failedIndicators.includes('novelty')
|
|
99
|
-
(qualityScore.failedIndicators.includes('resultCount') && strategies.length < 3)) {
|
|
96
|
+
// Category shift: suggest when novelty failed
|
|
97
|
+
if (qualityScore.failedIndicators.includes('novelty')) {
|
|
100
98
|
strategies.push({
|
|
101
99
|
strategy: 'category_shift',
|
|
102
100
|
reason: 'ๅฝๅๅ็ฑป็ปๆไธไฝณๆ็ปๆ้ๅค',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-analysis.js","sourceRoot":"","sources":["../../src/deep/recovery-analysis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recovery-analysis.js","sourceRoot":"","sources":["../../src/deep/recovery-analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/deep/session.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface SessionResult {
|
|
|
16
16
|
score?: number;
|
|
17
17
|
publishedDate?: string;
|
|
18
18
|
source?: string;
|
|
19
|
+
status?: 'pending' | 'approved' | 'rejected';
|
|
19
20
|
[key: string]: unknown;
|
|
20
21
|
}
|
|
21
22
|
export interface SessionResultsFile {
|
|
@@ -35,7 +36,10 @@ export declare function resolveSessionPath(sessionValue: string): string;
|
|
|
35
36
|
export declare function initSessionDir(sessionDir: string, owner?: string, description?: string, query?: string): void;
|
|
36
37
|
/** Load accumulated results from session, or return empty */
|
|
37
38
|
export declare function loadSessionResults(sessionDir: string): SessionResult[];
|
|
38
|
-
/** Append new results to session results (dedup by URL)
|
|
39
|
+
/** Append new results to session results (dedup by title then URL).
|
|
40
|
+
* New results are marked as 'pending' and will not be injected into graph
|
|
41
|
+
* until approved by Agent quality assessment.
|
|
42
|
+
*/
|
|
39
43
|
export declare function appendSessionResults(sessionDir: string, newResults: SessionResult[]): {
|
|
40
44
|
added: number;
|
|
41
45
|
total: number;
|
|
@@ -44,7 +48,26 @@ export declare function appendSessionResults(sessionDir: string, newResults: Ses
|
|
|
44
48
|
export declare function loadSessionGraph(sessionDir: string): DirectedGraph<GraphNodeAttrs, GraphEdgeAttrs>;
|
|
45
49
|
/** Save graph to session */
|
|
46
50
|
export declare function saveSessionGraph(sessionDir: string, graph: DirectedGraph<GraphNodeAttrs, GraphEdgeAttrs>): void;
|
|
47
|
-
/**
|
|
51
|
+
/** Get pending results (not yet approved by Agent) */
|
|
52
|
+
export declare function getPendingResults(sessionDir: string): SessionResult[];
|
|
53
|
+
/** Get approved results (ready for graph injection) */
|
|
54
|
+
export declare function getApprovedResults(sessionDir: string): SessionResult[];
|
|
55
|
+
/** Approve results by their indices (0-based) in the pending list.
|
|
56
|
+
* Returns the number of approved results.
|
|
57
|
+
*/
|
|
58
|
+
export declare function approveResults(sessionDir: string, indices: number[]): {
|
|
59
|
+
approved: number;
|
|
60
|
+
total: number;
|
|
61
|
+
};
|
|
62
|
+
/** Inject approved results into graph (structural layer).
|
|
63
|
+
* Uses query from session meta.json if not provided.
|
|
64
|
+
*/
|
|
65
|
+
export declare function injectApprovedResults(sessionDir: string, query?: string, round?: number): {
|
|
66
|
+
nodesAdded: number;
|
|
67
|
+
edgesAdded: number;
|
|
68
|
+
};
|
|
69
|
+
/** Count pending results */
|
|
70
|
+
export declare function countPendingResults(sessionDir: string): number;
|
|
48
71
|
export declare function updateSessionGraph(sessionDir: string, query: string, results: Array<{
|
|
49
72
|
url: string;
|
|
50
73
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/deep/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAsE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhI,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE;QACF,OAAO,EAAE,aAAa,EAAE,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAe/D;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAqB7G;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE,CActE;AAED
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/deep/session.ts"],"names":[],"mappings":"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"}
|