dino-spec 10.2.0 → 10.4.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.
Files changed (34) hide show
  1. package/README.md +11 -3
  2. package/dist/core/context-repl/recursive/decomposer.d.ts +54 -2
  3. package/dist/core/context-repl/recursive/decomposer.d.ts.map +1 -1
  4. package/dist/core/context-repl/recursive/decomposer.js +391 -2
  5. package/dist/core/context-repl/recursive/decomposer.js.map +1 -1
  6. package/dist/core/context-repl/recursive/index.d.ts +23 -8
  7. package/dist/core/context-repl/recursive/index.d.ts.map +1 -1
  8. package/dist/core/context-repl/recursive/index.js +41 -10
  9. package/dist/core/context-repl/recursive/index.js.map +1 -1
  10. package/dist/core/context-repl/recursive/quality.d.ts +33 -2
  11. package/dist/core/context-repl/recursive/quality.d.ts.map +1 -1
  12. package/dist/core/context-repl/recursive/quality.js +196 -6
  13. package/dist/core/context-repl/recursive/quality.js.map +1 -1
  14. package/dist/core/context-repl/recursive/synthesizer.d.ts +40 -3
  15. package/dist/core/context-repl/recursive/synthesizer.d.ts.map +1 -1
  16. package/dist/core/context-repl/recursive/synthesizer.js +219 -8
  17. package/dist/core/context-repl/recursive/synthesizer.js.map +1 -1
  18. package/dist/core/context-repl/recursive/trajectory.d.ts +41 -2
  19. package/dist/core/context-repl/recursive/trajectory.d.ts.map +1 -1
  20. package/dist/core/context-repl/recursive/trajectory.js +172 -1
  21. package/dist/core/context-repl/recursive/trajectory.js.map +1 -1
  22. package/dist/core/context-repl/recursive/types.d.ts +98 -2
  23. package/dist/core/context-repl/recursive/types.d.ts.map +1 -1
  24. package/dist/core/context-repl/recursive/types.js +12 -1
  25. package/dist/core/context-repl/recursive/types.js.map +1 -1
  26. package/dist/mcp/server.d.ts +6 -1
  27. package/dist/mcp/server.d.ts.map +1 -1
  28. package/dist/mcp/server.js +28 -11
  29. package/dist/mcp/server.js.map +1 -1
  30. package/dist/mcp-server.d.ts +3 -1
  31. package/dist/mcp-server.d.ts.map +1 -1
  32. package/dist/mcp-server.js +16 -6
  33. package/dist/mcp-server.js.map +1 -1
  34. package/package.json +1 -1
package/README.md CHANGED
@@ -17,11 +17,11 @@
17
17
  ## Features
18
18
 
19
19
  - **MCP Integration** - 50 tools + 29 resources auto-configured during init
20
- - **MCP Tool Aggressive Filtering** (v10.2.0) - Phase-based tool context reduction (~50-70% savings)
20
+ - **MCP Tool Aggressive Filtering** (v10.3.0) - Phase-based tool context reduction (~50-70% savings)
21
21
  - **Phase Filtering** - Only load tools relevant to current workflow phase
22
22
  - **Description Modes** - Minimal/standard/full verbosity control
23
23
  - **Lazy Details** - Full descriptions loaded on-demand via `dino://tools/details`
24
- - **Opt-In** - Enable with `DINO_AGGRESSIVE_FILTERING=true` env flag
24
+ - **Auto-Enabled** - Filtering enabled by default, opt-out with `DINO_AGGRESSIVE_FILTERING=false`
25
25
  - **Lazy Context Loading** (v10.1.0) - Defer file loading to save tokens (~60-80% initial context reduction)
26
26
  - **Deferred Resources** - Replace file content with lightweight placeholders (~5-10 tokens)
27
27
  - **On-Demand Expansion** - Load content only when needed with `dino_expand`
@@ -48,7 +48,15 @@
48
48
  - **Workflow Skills** - Phases from discovery to completion (`/dino.*`)
49
49
  - **Task Delegation** - Specialized agents with context handoffs
50
50
  - **Recursive Agents** - Self-spawning agents with complexity-based depth control (v8.0.0)
51
- - **Recursive Retrieval** - RLM-style query decomposition with quality feedback
51
+ - **Recursive Retrieval** (v10.4.0) - Enhanced RLM-style query decomposition with:
52
+ - **Semantic Decomposition** - Intent-based query splitting by distinct concepts
53
+ - **Dependency-Aware Decomposition** - Sequential sub-queries with prerequisite analysis
54
+ - **Composition Decomposition** - Parallel execution for "A and B" style queries
55
+ - **Quality Confidence Bounds** - Uncertainty tracking with Wilson score intervals
56
+ - **Task-Specific Weight Calibration** - Automatic quality weight adjustment per task type
57
+ - **Provenance Tracking** - Full source chain attribution for every result
58
+ - **Conflict Detection** - Automatic identification of score variance and data mismatches
59
+ - **Decision Rationale** - Explainability with alternatives considered
52
60
  - **Dynamic Partitioning** - Intelligent codebase segmentation (directory, feature, dependency, time)
53
61
  - **Context REPL** - Declarative DSL for model-driven exploration
54
62
  - **Context Engineering** - Research-backed token optimization (v9.6.0, v9.7.0, v9.14.0)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Query Decomposer - v7.3.0
2
+ * Query Decomposer - v10.4.0
3
3
  *
4
4
  * Model-driven query decomposition for recursive retrieval.
5
5
  * Analyzes queries and splits them into sub-queries based on
@@ -10,8 +10,11 @@
10
10
  * - by-hop-level: Split graph traversal by hop distance
11
11
  * - by-time-range: Split by recency windows
12
12
  * - by-relevance: Split by score thresholds
13
+ * - by-semantic-intent: Split by distinct concepts (v10.4.0)
14
+ * - by-dependency-graph: Split by prerequisite sub-queries (v10.4.0)
15
+ * - by-composition: Split "A and B" style queries (v10.4.0)
13
16
  */
14
- import type { DecompositionResult, RecursiveQueryConfig } from './types.js';
17
+ import type { DecompositionResult, DecompositionPattern, RecursiveQueryConfig, SemanticIntent, AlternativeConsidered } from './types.js';
15
18
  import type { ContextQuery } from '../types.js';
16
19
  import type { PartitionStrategy } from '../partitioning/types.js';
17
20
  /**
@@ -60,6 +63,55 @@ export declare function decomposeByPartition(query: ContextQuery, partitionStrat
60
63
  * Check if a query would benefit from partition decomposition
61
64
  */
62
65
  export declare function shouldDecomposeByPartition(query: ContextQuery, fileCount: number): boolean;
66
+ /**
67
+ * Extract semantic intents from a search query
68
+ */
69
+ export declare function extractSemanticIntents(searchQuery: string): SemanticIntent[];
70
+ /**
71
+ * Detect composition patterns ("A and B")
72
+ */
73
+ export declare function detectCompositionPattern(searchQuery: string): {
74
+ isComposition: boolean;
75
+ parts: string[];
76
+ connector?: string;
77
+ };
78
+ /**
79
+ * Detect dependency patterns ("after X, do Y")
80
+ */
81
+ export declare function detectDependencyPattern(searchQuery: string): {
82
+ hasDependencies: boolean;
83
+ sequence: string[];
84
+ connector?: string;
85
+ };
86
+ /**
87
+ * Decompose a query by semantic intent (v10.4.0)
88
+ *
89
+ * Identifies distinct concepts in the query and creates sub-queries
90
+ * for each concept with appropriate intent-based priorities.
91
+ */
92
+ export declare function decomposeBySemanticIntent(query: ContextQuery, config: RecursiveQueryConfig): DecompositionResult;
93
+ /**
94
+ * Decompose a query by dependency graph (v10.4.0)
95
+ *
96
+ * Identifies prerequisite relationships and creates ordered sub-queries
97
+ * where later queries depend on earlier results.
98
+ */
99
+ export declare function decomposeByDependencyGraph(query: ContextQuery, config: RecursiveQueryConfig): DecompositionResult;
100
+ /**
101
+ * Decompose a query by composition (v10.4.0)
102
+ *
103
+ * Splits "A and B" style queries into independent sub-queries
104
+ * that can be executed in parallel.
105
+ */
106
+ export declare function decomposeByComposition(query: ContextQuery, config: RecursiveQueryConfig): DecompositionResult;
107
+ /**
108
+ * Analyze query and suggest best decomposition pattern (v10.4.0)
109
+ */
110
+ export declare function analyzeDecompositionOptions(query: ContextQuery, config: RecursiveQueryConfig): {
111
+ bestPattern: DecompositionPattern;
112
+ alternatives: AlternativeConsidered[];
113
+ rationale: string;
114
+ };
63
115
  /**
64
116
  * Get description for a query
65
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decomposer.d.ts","sourceRoot":"","sources":["../../../../src/core/context-repl/recursive/decomposer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAEV,mBAAmB,EAGnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAiB7E;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAeD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,GAC3B;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgC9C;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAsCrB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CA+DrB;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAiErB;AAMD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAyDrB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CA4B9B;AAiCD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAWT;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAoB/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,YAAY,GACxB,MAAM,CAoBR"}
1
+ {"version":3,"file":"decomposer.d.ts","sourceRoot":"","sources":["../../../../src/core/context-repl/recursive/decomposer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Query Decomposer - v7.3.0
2
+ * Query Decomposer - v10.4.0
3
3
  *
4
4
  * Model-driven query decomposition for recursive retrieval.
5
5
  * Analyzes queries and splits them into sub-queries based on
@@ -10,6 +10,9 @@
10
10
  * - by-hop-level: Split graph traversal by hop distance
11
11
  * - by-time-range: Split by recency windows
12
12
  * - by-relevance: Split by score thresholds
13
+ * - by-semantic-intent: Split by distinct concepts (v10.4.0)
14
+ * - by-dependency-graph: Split by prerequisite sub-queries (v10.4.0)
15
+ * - by-composition: Split "A and B" style queries (v10.4.0)
13
16
  */
14
17
  import { computePartitions } from '../partitioning/index.js';
15
18
  // =============================================================================
@@ -262,19 +265,48 @@ export function decomposeQuery(query, depth, config) {
262
265
  rationale: reason,
263
266
  };
264
267
  }
268
+ // Analyze decomposition options to find best pattern (v10.4.0)
269
+ const analysis = analyzeDecompositionOptions(query, config);
265
270
  // Apply appropriate decomposition based on query type
266
271
  switch (query.type) {
267
272
  case 'search': {
268
- // First try category decomposition for broad searches
273
+ // v10.4.0: Try enhanced patterns first based on analysis
274
+ // Try dependency-graph decomposition (highest quality for sequential tasks)
275
+ if (analysis.bestPattern === 'by-dependency-graph') {
276
+ const depResult = decomposeByDependencyGraph(query, config);
277
+ if (depResult.decomposed) {
278
+ depResult.alternativesConsidered = analysis.alternatives;
279
+ return depResult;
280
+ }
281
+ }
282
+ // Try composition decomposition (good for "A and B" queries)
283
+ if (analysis.bestPattern === 'by-composition') {
284
+ const compResult = decomposeByComposition(query, config);
285
+ if (compResult.decomposed) {
286
+ compResult.alternativesConsidered = analysis.alternatives;
287
+ return compResult;
288
+ }
289
+ }
290
+ // Try semantic intent decomposition (good for multi-concept queries)
291
+ if (analysis.bestPattern === 'by-semantic-intent') {
292
+ const semanticResult = decomposeBySemanticIntent(query, config);
293
+ if (semanticResult.decomposed) {
294
+ semanticResult.alternativesConsidered = analysis.alternatives;
295
+ return semanticResult;
296
+ }
297
+ }
298
+ // Fall back to category decomposition for broad searches
269
299
  if (query.from === 'memories.graph' || !query.from.includes('.decisions') && !query.from.includes('.patterns') && !query.from.includes('.learnings')) {
270
300
  const categoryResult = decomposeSearchByCategory(query, config);
271
301
  if (categoryResult.decomposed) {
302
+ categoryResult.alternativesConsidered = analysis.alternatives;
272
303
  return categoryResult;
273
304
  }
274
305
  }
275
306
  // Fall back to term decomposition for complex queries
276
307
  const termResult = decomposeSearchByTerms(query, config);
277
308
  if (termResult.decomposed) {
309
+ termResult.alternativesConsidered = analysis.alternatives;
278
310
  return termResult;
279
311
  }
280
312
  break;
@@ -299,6 +331,7 @@ export function decomposeQuery(query, depth, config) {
299
331
  subQueries: [],
300
332
  synthesisStrategy: 'union',
301
333
  rationale: 'No applicable decomposition pattern',
334
+ alternativesConsidered: analysis.alternatives,
302
335
  };
303
336
  }
304
337
  // =============================================================================
@@ -380,6 +413,362 @@ export function shouldDecomposeByPartition(query, fileCount) {
380
413
  return true;
381
414
  return false;
382
415
  }
416
+ // =============================================================================
417
+ // Semantic Intent Decomposition (v10.4.0)
418
+ // =============================================================================
419
+ /**
420
+ * Common semantic keywords and their intent mappings
421
+ */
422
+ const SEMANTIC_KEYWORDS = {
423
+ // Action intents
424
+ 'implement': { type: 'implementation', priority: 8 },
425
+ 'create': { type: 'implementation', priority: 8 },
426
+ 'add': { type: 'implementation', priority: 7 },
427
+ 'build': { type: 'implementation', priority: 7 },
428
+ 'fix': { type: 'debugging', priority: 9 },
429
+ 'debug': { type: 'debugging', priority: 9 },
430
+ 'resolve': { type: 'debugging', priority: 8 },
431
+ 'test': { type: 'testing', priority: 8 },
432
+ 'verify': { type: 'testing', priority: 7 },
433
+ 'validate': { type: 'testing', priority: 7 },
434
+ 'review': { type: 'review', priority: 6 },
435
+ 'refactor': { type: 'implementation', priority: 7 },
436
+ // Query intents
437
+ 'find': { type: 'exploration', priority: 6 },
438
+ 'search': { type: 'exploration', priority: 6 },
439
+ 'locate': { type: 'exploration', priority: 6 },
440
+ 'analyze': { type: 'exploration', priority: 5 },
441
+ 'understand': { type: 'exploration', priority: 5 },
442
+ 'explore': { type: 'exploration', priority: 5 },
443
+ };
444
+ /**
445
+ * Composition connectors for detecting "A and B" patterns
446
+ */
447
+ const COMPOSITION_CONNECTORS = ['and', 'then', 'also', 'plus', 'with', 'along with'];
448
+ /**
449
+ * Dependency connectors for detecting prerequisite relationships
450
+ */
451
+ const DEPENDENCY_CONNECTORS = ['after', 'before', 'then', 'first', 'once', 'when'];
452
+ /**
453
+ * Extract semantic intents from a search query
454
+ */
455
+ export function extractSemanticIntents(searchQuery) {
456
+ const intents = [];
457
+ const words = searchQuery.toLowerCase().split(/\s+/);
458
+ const concepts = [];
459
+ // Extract keywords and concepts
460
+ for (let i = 0; i < words.length; i++) {
461
+ const word = words[i];
462
+ const semantic = SEMANTIC_KEYWORDS[word];
463
+ if (semantic) {
464
+ // Found a semantic keyword, rest of phrase is the concept
465
+ const conceptWords = words.slice(i + 1).filter(w => !COMPOSITION_CONNECTORS.includes(w) &&
466
+ !DEPENDENCY_CONNECTORS.includes(w) &&
467
+ w.length > 2);
468
+ if (conceptWords.length > 0) {
469
+ intents.push({
470
+ type: semantic.type,
471
+ concept: conceptWords.slice(0, 3).join(' '),
472
+ relatedConcepts: conceptWords.slice(3),
473
+ confidence: semantic.priority / 10,
474
+ });
475
+ }
476
+ }
477
+ else if (word.length > 3 && !COMPOSITION_CONNECTORS.includes(word)) {
478
+ concepts.push(word);
479
+ }
480
+ }
481
+ // If no explicit intents found, create exploration intent from concepts
482
+ if (intents.length === 0 && concepts.length > 0) {
483
+ intents.push({
484
+ type: 'exploration',
485
+ concept: concepts[0],
486
+ relatedConcepts: concepts.slice(1),
487
+ confidence: 0.5,
488
+ });
489
+ }
490
+ return intents;
491
+ }
492
+ /**
493
+ * Detect composition patterns ("A and B")
494
+ */
495
+ export function detectCompositionPattern(searchQuery) {
496
+ const lowerQuery = searchQuery.toLowerCase();
497
+ for (const connector of COMPOSITION_CONNECTORS) {
498
+ // Look for connector with spaces around it
499
+ const pattern = new RegExp(`\\s+${connector}\\s+`, 'i');
500
+ if (pattern.test(lowerQuery)) {
501
+ const parts = searchQuery.split(pattern).map(p => p.trim()).filter(p => p.length > 0);
502
+ if (parts.length >= 2) {
503
+ return { isComposition: true, parts, connector };
504
+ }
505
+ }
506
+ }
507
+ return { isComposition: false, parts: [searchQuery] };
508
+ }
509
+ /**
510
+ * Detect dependency patterns ("after X, do Y")
511
+ */
512
+ export function detectDependencyPattern(searchQuery) {
513
+ const lowerQuery = searchQuery.toLowerCase();
514
+ for (const connector of DEPENDENCY_CONNECTORS) {
515
+ const pattern = new RegExp(`\\s+${connector}\\s+`, 'i');
516
+ if (pattern.test(lowerQuery)) {
517
+ const parts = searchQuery.split(pattern).map(p => p.trim()).filter(p => p.length > 0);
518
+ if (parts.length >= 2) {
519
+ // Determine order based on connector
520
+ const sequence = connector === 'before' ? parts.reverse() : parts;
521
+ return { hasDependencies: true, sequence, connector };
522
+ }
523
+ }
524
+ }
525
+ return { hasDependencies: false, sequence: [searchQuery] };
526
+ }
527
+ /**
528
+ * Decompose a query by semantic intent (v10.4.0)
529
+ *
530
+ * Identifies distinct concepts in the query and creates sub-queries
531
+ * for each concept with appropriate intent-based priorities.
532
+ */
533
+ export function decomposeBySemanticIntent(query, config) {
534
+ if (query.type !== 'search' || !query.search) {
535
+ return {
536
+ decomposed: false,
537
+ pattern: 'none',
538
+ subQueries: [],
539
+ synthesisStrategy: 'union',
540
+ rationale: 'Not a search query',
541
+ };
542
+ }
543
+ const searchText = query.search.query;
544
+ const intents = extractSemanticIntents(searchText);
545
+ if (intents.length < 2) {
546
+ return {
547
+ decomposed: false,
548
+ pattern: 'none',
549
+ subQueries: [],
550
+ synthesisStrategy: 'union',
551
+ rationale: 'Only one semantic intent detected',
552
+ semanticIntents: intents,
553
+ };
554
+ }
555
+ const subQueries = [];
556
+ for (let i = 0; i < Math.min(intents.length, config.maxSubQueries); i++) {
557
+ const intent = intents[i];
558
+ const searchTerms = [intent.concept, ...intent.relatedConcepts.slice(0, 2)].join(' ');
559
+ subQueries.push({
560
+ id: generateSubQueryId(),
561
+ query: {
562
+ ...query,
563
+ search: {
564
+ ...query.search,
565
+ query: searchTerms,
566
+ },
567
+ },
568
+ description: `${intent.type}:${intent.concept}`,
569
+ priority: Math.ceil(intent.confidence * 10),
570
+ expectedContribution: intent.confidence,
571
+ dependencies: [],
572
+ });
573
+ }
574
+ return {
575
+ decomposed: subQueries.length > 1,
576
+ pattern: 'by-semantic-intent',
577
+ subQueries,
578
+ synthesisStrategy: 'merge',
579
+ rationale: `Split query into ${intents.length} semantic intents: ${intents.map(i => i.concept).join(', ')}`,
580
+ semanticIntents: intents,
581
+ };
582
+ }
583
+ /**
584
+ * Decompose a query by dependency graph (v10.4.0)
585
+ *
586
+ * Identifies prerequisite relationships and creates ordered sub-queries
587
+ * where later queries depend on earlier results.
588
+ */
589
+ export function decomposeByDependencyGraph(query, config) {
590
+ if (query.type !== 'search' || !query.search) {
591
+ return {
592
+ decomposed: false,
593
+ pattern: 'none',
594
+ subQueries: [],
595
+ synthesisStrategy: 'union',
596
+ rationale: 'Not a search query',
597
+ };
598
+ }
599
+ const searchText = query.search.query;
600
+ const { hasDependencies, sequence, connector } = detectDependencyPattern(searchText);
601
+ if (!hasDependencies || sequence.length < 2) {
602
+ return {
603
+ decomposed: false,
604
+ pattern: 'none',
605
+ subQueries: [],
606
+ synthesisStrategy: 'union',
607
+ rationale: 'No dependency pattern detected',
608
+ };
609
+ }
610
+ const subQueries = [];
611
+ const dependencies = [];
612
+ for (let i = 0; i < Math.min(sequence.length, config.maxSubQueries); i++) {
613
+ const part = sequence[i];
614
+ const subQueryId = generateSubQueryId();
615
+ subQueries.push({
616
+ id: subQueryId,
617
+ query: {
618
+ ...query,
619
+ search: {
620
+ ...query.search,
621
+ query: part,
622
+ },
623
+ },
624
+ description: `step-${i + 1}: ${part.slice(0, 30)}...`,
625
+ priority: 10 - i, // Earlier steps have higher priority
626
+ expectedContribution: 1 / sequence.length,
627
+ dependencies: i > 0 ? [subQueries[i - 1].id] : [],
628
+ });
629
+ // Record dependency
630
+ if (i > 0) {
631
+ dependencies.push({
632
+ dependentId: subQueryId,
633
+ prerequisiteId: subQueries[i - 1].id,
634
+ type: 'context',
635
+ });
636
+ }
637
+ }
638
+ return {
639
+ decomposed: subQueries.length > 1,
640
+ pattern: 'by-dependency-graph',
641
+ subQueries,
642
+ synthesisStrategy: 'chain',
643
+ rationale: `Split query into ${sequence.length} sequential steps using "${connector}"`,
644
+ dependencies,
645
+ };
646
+ }
647
+ /**
648
+ * Decompose a query by composition (v10.4.0)
649
+ *
650
+ * Splits "A and B" style queries into independent sub-queries
651
+ * that can be executed in parallel.
652
+ */
653
+ export function decomposeByComposition(query, config) {
654
+ if (query.type !== 'search' || !query.search) {
655
+ return {
656
+ decomposed: false,
657
+ pattern: 'none',
658
+ subQueries: [],
659
+ synthesisStrategy: 'union',
660
+ rationale: 'Not a search query',
661
+ };
662
+ }
663
+ const searchText = query.search.query;
664
+ const { isComposition, parts, connector } = detectCompositionPattern(searchText);
665
+ if (!isComposition || parts.length < 2) {
666
+ return {
667
+ decomposed: false,
668
+ pattern: 'none',
669
+ subQueries: [],
670
+ synthesisStrategy: 'union',
671
+ rationale: 'No composition pattern detected',
672
+ };
673
+ }
674
+ const subQueries = [];
675
+ for (let i = 0; i < Math.min(parts.length, config.maxSubQueries); i++) {
676
+ const part = parts[i];
677
+ subQueries.push({
678
+ id: generateSubQueryId(),
679
+ query: {
680
+ ...query,
681
+ search: {
682
+ ...query.search,
683
+ query: part,
684
+ },
685
+ },
686
+ description: `part-${i + 1}: ${part.slice(0, 30)}`,
687
+ priority: 8 - i, // Slightly decrease priority for later parts
688
+ expectedContribution: 1 / parts.length,
689
+ dependencies: [], // Composition parts are independent
690
+ });
691
+ }
692
+ return {
693
+ decomposed: subQueries.length > 1,
694
+ pattern: 'by-composition',
695
+ subQueries,
696
+ synthesisStrategy: 'union',
697
+ rationale: `Split compound query into ${parts.length} parts using "${connector}"`,
698
+ };
699
+ }
700
+ /**
701
+ * Analyze query and suggest best decomposition pattern (v10.4.0)
702
+ */
703
+ export function analyzeDecompositionOptions(query, config) {
704
+ const alternatives = [];
705
+ if (query.type !== 'search' || !query.search) {
706
+ return {
707
+ bestPattern: 'none',
708
+ alternatives: [],
709
+ rationale: 'Non-search queries use default decomposition',
710
+ };
711
+ }
712
+ const searchText = query.search.query;
713
+ // Check composition pattern
714
+ const { isComposition, parts: compParts } = detectCompositionPattern(searchText);
715
+ if (isComposition && compParts.length >= 2) {
716
+ alternatives.push({
717
+ pattern: 'by-composition',
718
+ reason: `Detected ${compParts.length} independent parts`,
719
+ expectedQuality: 0.7,
720
+ });
721
+ }
722
+ // Check dependency pattern
723
+ const { hasDependencies, sequence } = detectDependencyPattern(searchText);
724
+ if (hasDependencies && sequence.length >= 2) {
725
+ alternatives.push({
726
+ pattern: 'by-dependency-graph',
727
+ reason: `Detected ${sequence.length} sequential steps`,
728
+ expectedQuality: 0.75,
729
+ });
730
+ }
731
+ // Check semantic intent
732
+ const intents = extractSemanticIntents(searchText);
733
+ if (intents.length >= 2) {
734
+ alternatives.push({
735
+ pattern: 'by-semantic-intent',
736
+ reason: `Detected ${intents.length} distinct concepts`,
737
+ expectedQuality: 0.65,
738
+ });
739
+ }
740
+ // Check category decomposition
741
+ if (query.from === 'memories.graph' || !query.from.includes('.')) {
742
+ alternatives.push({
743
+ pattern: 'by-category',
744
+ reason: 'Broad search can be split by memory category',
745
+ expectedQuality: 0.6,
746
+ });
747
+ }
748
+ // Check term decomposition
749
+ const terms = searchText.split(/\s+/).filter(t => t.length > 3);
750
+ if (terms.length >= 2) {
751
+ alternatives.push({
752
+ pattern: 'by-relevance',
753
+ reason: `Query has ${terms.length} meaningful terms`,
754
+ expectedQuality: 0.55,
755
+ });
756
+ }
757
+ // Sort by expected quality
758
+ alternatives.sort((a, b) => (b.expectedQuality || 0) - (a.expectedQuality || 0));
759
+ const bestPattern = alternatives.length > 0 ? alternatives[0].pattern : 'none';
760
+ const rationale = alternatives.length > 0
761
+ ? `Selected ${bestPattern}: ${alternatives[0].reason}`
762
+ : 'No decomposition patterns applicable';
763
+ return {
764
+ bestPattern,
765
+ alternatives: alternatives.slice(1), // Exclude best pattern from alternatives
766
+ rationale,
767
+ };
768
+ }
769
+ // =============================================================================
770
+ // Query Description
771
+ // =============================================================================
383
772
  /**
384
773
  * Get description for a query
385
774
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decomposer.js","sourceRoot":"","sources":["../../../../src/core/context-repl/recursive/decomposer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decomposer.js","sourceRoot":"","sources":["../../../../src/core/context-repl/recursive/decomposer.ts"],"names":[],"mappings":"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"}