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 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), JSON, CSV, or HTML output
30
- - ๐Ÿง  **Deep Search** โ€” Multi-round iterative research with session accumulation and knowledge graph
31
- - ๐Ÿ” **Content Extraction** โ€” Extract full article content from search results, with Obscura fallback for JS-heavy pages
32
- - ๐Ÿ—‚๏ธ **Session Management** โ€” Accumulate search results across multiple rounds with deduplication
33
- - ๐Ÿ•ธ๏ธ **Knowledge Graph** โ€” Build semantic graphs of entities and relationships
34
- - โšก **Fast & Lightweight** โ€” Built with TypeScript, minimal dependencies
35
- - ๐Ÿ”ง **Flexible Config** โ€” Environment variables, config file, or interactive setup
36
- - ๐Ÿฅ **Health Check** โ€” Verify server connectivity instantly
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 --obscura` | Extract with Obscura JS-rendering fallback |
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 <session-name>` | Delete a session |
113
- | `sxng graph-add <session>` | Add entities to knowledge graph |
114
- | `sxng query-graph <session>` | Query knowledge graph |
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 from server |
117
- | `sxng --categories-list` | List available categories from server |
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`, `json`, `csv`, `html` (default: 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 and knowledge graph building.
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 "researcher" --desc "Rust async study" "rust async ecosystem"
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 <session-name>
232
+ # 2. Extract content from results
233
+ sxng extract --session ds_1712345678_abcdef
210
234
 
211
- # Add knowledge graph entities
212
- sxng graph-add <session-name> --data '{
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
- # Query the graph
223
- sxng query-graph <session-name> --seeds "tokio" --depth 2
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 (results accumulate)
226
- sxng --session <session-name> --queries "tokio vs async-std,benchmark 2024"
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
- **Structural Layer** (auto-built):
247
- - `q:` โ€” Query nodes
248
- - `r:` โ€” Result nodes
249
- - `d:` โ€” Domain nodes
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
- **Semantic Layer** (via `graph-add`):
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
 
@@ -4,7 +4,6 @@
4
4
  import { ContentExtractor } from '../deep/extractor.js';
5
5
  export interface ExtractOptions {
6
6
  urls?: string[];
7
- fromJson?: string;
8
7
  session?: string;
9
8
  }
10
9
  export declare function runExtract(extractor: ContentExtractor, options: ExtractOptions): Promise<number>;
@@ -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,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAsB,UAAU,CAC5B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAyGjB"}
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"}
@@ -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 --from-json results.json or sxng extract --session /tmp/s' });
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 JSON/session contains results with URLs' });
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
- const extracted = contents.filter(c => !c.error && c.content.length > 100);
60
- const failed = contents.filter(c => c.error || c.content.length <= 100).map(c => c.url);
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":"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"}
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;AA2BH,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,CA8J3E"}
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":"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"}
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.7 as "not similar" threshold
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 new search results against session context.
43
- * All indicators use independent thresholds โ€” no weighted sum. */
44
- export declare function assessResultQuality(newResults: SessionResult[], sessionResults: SessionResult[], graph: DirectedGraph<GraphNodeAttrs, GraphEdgeAttrs>, thresholds?: Partial<QualityThresholds>): QualityScore;
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,WAAW,EAAE,eAAe,CAAC;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,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACnB;AAwGD;mEACmE;AACnE,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,aAAa,EAAE,EAC3B,cAAc,EAAE,aAAa,EAAE,EAC/B,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,EACpD,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACxC,YAAY,CAyBd"}
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.7 as "not similar" threshold
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(newResults, threshold) {
40
- const extracted = newResults.filter(r => r.content && r.content.length > 0);
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.7 as "not similar" threshold.
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.7) {
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 new search results against session context.
100
- * All indicators use independent thresholds โ€” no weighted sum. */
101
- export function assessResultQuality(newResults, sessionResults, graph, thresholds) {
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
- resultCount: computeResultCount(newResults, t.resultCount),
105
- contentDepth: computeContentDepth(newResults, t.contentDepth),
100
+ contentDepth: computeContentDepth(results, t.contentDepth),
106
101
  entityRichness: computeEntityRichness(graph, t.entityRichness),
107
- sourceDiversity: computeSourceDiversity(newResults, t.sourceDiversity),
108
- novelty: computeNovelty(newResults, sessionResults, t.novelty),
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":"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"}
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,CA8ElB;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"}
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 resultCount or contentDepth failed
81
- if (qualityScore.failedIndicators.includes('resultCount') ||
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 or resultCount failed
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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"}
@@ -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
- /** Update session graph with new search results (structural layer) */
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,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiCtH;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAiBlG;AAED,4BAA4B;AAC5B,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,IAAI,CAY/G;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9E,KAAK,CAAC,EAAE,MAAM,GACf;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAY5C;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAmCvP;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAW5D"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/deep/session.ts"],"names":[],"mappings":"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"}