dino-spec 13.3.1 → 13.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 (33) hide show
  1. package/README.md +18 -0
  2. package/dist/core/config/feature-flags.d.ts +15 -0
  3. package/dist/core/config/feature-flags.d.ts.map +1 -1
  4. package/dist/core/config/feature-flags.js +3 -0
  5. package/dist/core/config/feature-flags.js.map +1 -1
  6. package/dist/core/context/context-health.d.ts +27 -2
  7. package/dist/core/context/context-health.d.ts.map +1 -1
  8. package/dist/core/context/context-health.js +98 -12
  9. package/dist/core/context/context-health.js.map +1 -1
  10. package/dist/core/context/focus-resource-loader.d.ts +143 -0
  11. package/dist/core/context/focus-resource-loader.d.ts.map +1 -0
  12. package/dist/core/context/focus-resource-loader.js +305 -0
  13. package/dist/core/context/focus-resource-loader.js.map +1 -0
  14. package/dist/core/context/index.d.ts +3 -2
  15. package/dist/core/context/index.d.ts.map +1 -1
  16. package/dist/core/context/index.js +18 -2
  17. package/dist/core/context/index.js.map +1 -1
  18. package/dist/core/context/lazy-loader.d.ts +44 -1
  19. package/dist/core/context/lazy-loader.d.ts.map +1 -1
  20. package/dist/core/context/lazy-loader.js +59 -1
  21. package/dist/core/context/lazy-loader.js.map +1 -1
  22. package/dist/mcp/focus-filter.d.ts +74 -0
  23. package/dist/mcp/focus-filter.d.ts.map +1 -0
  24. package/dist/mcp/focus-filter.js +229 -0
  25. package/dist/mcp/focus-filter.js.map +1 -0
  26. package/dist/mcp/server.d.ts +2 -1
  27. package/dist/mcp/server.d.ts.map +1 -1
  28. package/dist/mcp/server.js +12 -3
  29. package/dist/mcp/server.js.map +1 -1
  30. package/dist/mcp-server.d.ts.map +1 -1
  31. package/dist/mcp-server.js +9 -5
  32. package/dist/mcp-server.js.map +1 -1
  33. package/package.json +1 -1
package/README.md CHANGED
@@ -16,6 +16,24 @@
16
16
 
17
17
  ## Features
18
18
 
19
+ ### v13.4.0 - Focus-Aware Context Engineering
20
+
21
+ - **Focus-Based Context Optimization** - Context management adapts to current focus area
22
+ - **Focus-Aware Tool Filtering** - Only load MCP tools relevant to focus area (~10-15% additional savings)
23
+ - Wildcard tag system (`['*']`) ensures critical tools always available
24
+ - Focus tags: `core`, `mcp`, `commands`, `memory`, `ralph`, `agents`, `analysis`, `test`, `rules`, `skills`
25
+ - Combines with phase filtering for maximum efficiency
26
+ - **Focus-Aware Resource Deferring** - Lower token thresholds for out-of-focus files (~5-10% additional savings)
27
+ - In-focus: 500 tokens, Near-focus: 400 tokens, Out-of-focus: 300 tokens
28
+ - Proximity calculated from path overlap with current focus
29
+ - Automatically adjusts on focus changes
30
+ - **Focus-Aware Health Monitoring** - Track context fragmentation relative to focus
31
+ - Focus fragmentation score (0-100) measures context scatter
32
+ - Focus distribution (in-focus/near-focus/out-of-focus file counts)
33
+ - Recommendations trigger at >50% and >70% fragmentation
34
+ - **Combined Savings** - **70-80% total context savings** (up from 50-70%)
35
+ - **Feature Flags** - 2 opt-out flags (`focusFiltering`, `focusAwareDefer`)
36
+
19
37
  ### v13.3.0 - Full Auto Context Engineering
20
38
 
21
39
  - **Automatic Context Management** - Zero manual CLI intervention for context engineering
@@ -111,6 +111,21 @@ export interface FeatureFlags {
111
111
  * Default: true (enabled by default)
112
112
  */
113
113
  autoMemoryRecall: boolean;
114
+ /**
115
+ * Focus-based tool filtering (v13.4.0)
116
+ * Filter MCP tools by current focus area in addition to phase
117
+ * Reduces context overhead by ~10-15% beyond phase filtering
118
+ * Default: true (enabled by default)
119
+ */
120
+ focusFiltering: boolean;
121
+ /**
122
+ * Focus-aware resource deferring (v13.4.0)
123
+ * Use lower token thresholds for out-of-focus files
124
+ * In-focus: 500 tokens, Near-focus: 400, Out-of-focus: 300
125
+ * Additional 5-10% token savings
126
+ * Default: true (enabled by default)
127
+ */
128
+ focusAwareDefer: boolean;
114
129
  }
115
130
  /**
116
131
  * Full configuration structure
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../src/core/config/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAgBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAExE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,UAAU,CAAC,CAsBrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,UAAU,CAAC,CAQrB"}
1
+ {"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../src/core/config/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;;;OAMG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;OAKG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAmBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAExE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,UAAU,CAAC,CAsBrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,YAAY,EAC3B,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,UAAU,CAAC,CAQrB"}
@@ -35,6 +35,9 @@ export const DEFAULT_FEATURE_FLAGS = {
35
35
  autoStagedCompact: true,
36
36
  contextHealthMonitor: true,
37
37
  autoMemoryRecall: true,
38
+ // v13.4.0: Focus-based context engineering
39
+ focusFiltering: true,
40
+ focusAwareDefer: true,
38
41
  };
39
42
  /**
40
43
  * Default configuration
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../../src/core/config/feature-flags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../../src/core/config/feature-flags.ts"],"names":[],"mappings":"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"}
@@ -27,12 +27,19 @@ export interface ContextHealthReport {
27
27
  redundancy: number;
28
28
  budgetPressure: number;
29
29
  fragmentation: number;
30
+ focusFragmentation: number;
30
31
  };
31
32
  ageDistribution: {
32
33
  fresh: number;
33
34
  warm: number;
34
35
  stale: number;
35
36
  };
37
+ focusDistribution: {
38
+ inFocus: number;
39
+ nearFocus: number;
40
+ outOfFocus: number;
41
+ focusArea: string;
42
+ };
36
43
  recommendations: string[];
37
44
  summary: string;
38
45
  }
@@ -46,6 +53,8 @@ export interface HealthCheckOptions {
46
53
  loadedFilesCount?: number;
47
54
  /** Total deferred files count */
48
55
  deferredFilesCount?: number;
56
+ /** v13.4.0: Current focus area for focus-aware metrics */
57
+ focusArea?: string;
49
58
  }
50
59
  /**
51
60
  * Calculate context staleness score (0-100)
@@ -61,28 +70,44 @@ export declare function calculateRedundancyScore(lazyState: LazyContextState): n
61
70
  * Based on how scattered the loaded resources are
62
71
  */
63
72
  export declare function calculateFragmentationScore(accessState: AccessPatternsState): number;
73
+ /**
74
+ * v13.4.0: Calculate focus fragmentation score (0-100)
75
+ * Measures how scattered the loaded context is relative to focus area
76
+ *
77
+ * High fragmentation = many files outside focus area
78
+ * Low fragmentation = most files in or near focus area
79
+ */
80
+ export declare function calculateFocusFragmentationScore(accessState: AccessPatternsState, focusArea: string): number;
81
+ /**
82
+ * v13.4.0: Calculate focus distribution of loaded context
83
+ */
84
+ export declare function calculateFocusDistribution(accessState: AccessPatternsState, focusArea: string): ContextHealthReport['focusDistribution'];
64
85
  /**
65
86
  * Calculate age distribution of loaded context
66
87
  */
67
88
  export declare function calculateAgeDistribution(accessState: AccessPatternsState): ContextHealthReport['ageDistribution'];
68
89
  /**
69
90
  * Calculate context rot index (0-100)
91
+ * v13.4.0: Updated weights to include focus fragmentation
70
92
  */
71
- export declare function calculateRotIndex(staleness: number, redundancy: number, budgetPressure: number, fragmentation: number): number;
93
+ export declare function calculateRotIndex(staleness: number, redundancy: number, budgetPressure: number, fragmentation: number, focusFragmentation?: number): number;
72
94
  /**
73
95
  * Determine health status from rot index
74
96
  */
75
97
  export declare function getHealthStatus(rotIndex: number): HealthStatus;
76
98
  /**
77
99
  * Generate recommendations based on health components
100
+ * v13.4.0: Added focus-aware recommendations
78
101
  */
79
- export declare function generateRecommendations(components: ContextHealthReport['components'], ageDistribution: ContextHealthReport['ageDistribution']): string[];
102
+ export declare function generateRecommendations(components: ContextHealthReport['components'], ageDistribution: ContextHealthReport['ageDistribution'], focusDistribution?: ContextHealthReport['focusDistribution']): string[];
80
103
  /**
81
104
  * Execute context health check
105
+ * v13.4.0: Includes focus-aware metrics
82
106
  */
83
107
  export declare function executeHealthCheck(accessState: AccessPatternsState, lazyState: LazyContextState, options: HealthCheckOptions, projectDir: string): Promise<ContextHealthReport>;
84
108
  /**
85
109
  * Format health report for display
110
+ * v13.4.0: Includes focus metrics
86
111
  */
87
112
  export declare function formatHealthReport(report: ContextHealthReport): string;
88
113
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context-health.d.ts","sourceRoot":"","sources":["../../../src/core/context/context-health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,kBAAkB,CAAC;AAQ1B;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAkBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAoBhF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,gBAAgB,GAC1B,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,mBAAmB,GAC/B,MAAM,CAwBR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,mBAAmB,GAC/B,mBAAmB,CAAC,iBAAiB,CAAC,CAoBxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAQ9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,EAC7C,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,GACtD,MAAM,EAAE,CA4BV;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,mBAAmB,EAChC,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAkD9B;AAqBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA+BtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"context-health.d.ts","sourceRoot":"","sources":["../../../src/core/context/context-health.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  import { getStats as getLazyStats, } from './lazy-loader.js';
14
14
  import { isFeatureEnabled } from '../config/feature-flags.js';
15
15
  import { calculateBudgetPressure } from './auto-unload-engine.js';
16
+ import { classifyFilesByFocus, } from './focus-resource-loader.js';
16
17
  // =============================================================================
17
18
  // Constants
18
19
  // =============================================================================
@@ -90,6 +91,55 @@ export function calculateFragmentationScore(accessState) {
90
91
  const fragmentation = Math.max(0, 100 - (avgFilesPerDir * 20));
91
92
  return Math.round(fragmentation);
92
93
  }
94
+ /**
95
+ * v13.4.0: Calculate focus fragmentation score (0-100)
96
+ * Measures how scattered the loaded context is relative to focus area
97
+ *
98
+ * High fragmentation = many files outside focus area
99
+ * Low fragmentation = most files in or near focus area
100
+ */
101
+ export function calculateFocusFragmentationScore(accessState, focusArea) {
102
+ if (!focusArea) {
103
+ return 0; // No focus = no focus fragmentation to measure
104
+ }
105
+ const patterns = Array.from(accessState.patterns.values());
106
+ if (patterns.length < 2) {
107
+ return 0;
108
+ }
109
+ const files = patterns.map(p => p.file);
110
+ const classified = classifyFilesByFocus(focusArea, files);
111
+ const total = files.length;
112
+ const outOfFocusCount = classified.outOfFocus.length;
113
+ const nearFocusCount = classified.nearFocus.length;
114
+ // Calculate fragmentation:
115
+ // - 100% out-of-focus = 100 fragmentation
116
+ // - 100% in-focus = 0 fragmentation
117
+ // - Near-focus counts as half fragmentation
118
+ const fragmentationScore = ((outOfFocusCount + (nearFocusCount * 0.5)) / total) * 100;
119
+ return Math.round(fragmentationScore);
120
+ }
121
+ /**
122
+ * v13.4.0: Calculate focus distribution of loaded context
123
+ */
124
+ export function calculateFocusDistribution(accessState, focusArea) {
125
+ const patterns = Array.from(accessState.patterns.values());
126
+ const files = patterns.map(p => p.file);
127
+ if (!focusArea || files.length === 0) {
128
+ return {
129
+ inFocus: files.length,
130
+ nearFocus: 0,
131
+ outOfFocus: 0,
132
+ focusArea: focusArea || 'none',
133
+ };
134
+ }
135
+ const classified = classifyFilesByFocus(focusArea, files);
136
+ return {
137
+ inFocus: classified.inFocus.length,
138
+ nearFocus: classified.nearFocus.length,
139
+ outOfFocus: classified.outOfFocus.length,
140
+ focusArea,
141
+ };
142
+ }
93
143
  /**
94
144
  * Calculate age distribution of loaded context
95
145
  */
@@ -115,19 +165,23 @@ export function calculateAgeDistribution(accessState) {
115
165
  }
116
166
  /**
117
167
  * Calculate context rot index (0-100)
168
+ * v13.4.0: Updated weights to include focus fragmentation
118
169
  */
119
- export function calculateRotIndex(staleness, redundancy, budgetPressure, fragmentation) {
170
+ export function calculateRotIndex(staleness, redundancy, budgetPressure, fragmentation, focusFragmentation = 0) {
120
171
  // Weighted average of components
172
+ // v13.4.0: Added focusFragmentation weight
121
173
  const weights = {
122
- staleness: 0.35,
123
- redundancy: 0.25,
124
- budgetPressure: 0.25,
125
- fragmentation: 0.15,
174
+ staleness: 0.30, // Reduced from 0.35
175
+ redundancy: 0.20, // Reduced from 0.25
176
+ budgetPressure: 0.25, // Same
177
+ fragmentation: 0.10, // Reduced from 0.15
178
+ focusFragmentation: 0.15, // New: focus scatter penalty
126
179
  };
127
180
  const rotIndex = (staleness * weights.staleness) +
128
181
  (redundancy * weights.redundancy) +
129
182
  (budgetPressure * weights.budgetPressure) +
130
- (fragmentation * weights.fragmentation);
183
+ (fragmentation * weights.fragmentation) +
184
+ (focusFragmentation * weights.focusFragmentation);
131
185
  return Math.round(rotIndex);
132
186
  }
133
187
  /**
@@ -144,8 +198,9 @@ export function getHealthStatus(rotIndex) {
144
198
  }
145
199
  /**
146
200
  * Generate recommendations based on health components
201
+ * v13.4.0: Added focus-aware recommendations
147
202
  */
148
- export function generateRecommendations(components, ageDistribution) {
203
+ export function generateRecommendations(components, ageDistribution, focusDistribution) {
149
204
  const recommendations = [];
150
205
  if (components.staleness > 50) {
151
206
  recommendations.push('Consider refreshing stale context with `dino_expand` for frequently needed files');
@@ -159,6 +214,18 @@ export function generateRecommendations(components, ageDistribution) {
159
214
  if (components.fragmentation > 60) {
160
215
  recommendations.push('Focus on a specific area to reduce context fragmentation');
161
216
  }
217
+ // v13.4.0: Focus-aware recommendations
218
+ if (components.focusFragmentation > 50 && focusDistribution) {
219
+ if (focusDistribution.outOfFocus > focusDistribution.inFocus) {
220
+ recommendations.push(`Most loaded context (${focusDistribution.outOfFocus} files) is outside focus area - consider deferring out-of-focus files`);
221
+ }
222
+ }
223
+ if (components.focusFragmentation > 70) {
224
+ recommendations.push('High focus fragmentation detected - use `/dino.status --focus` to set a narrower focus area');
225
+ }
226
+ if (focusDistribution && focusDistribution.focusArea && focusDistribution.inFocus === 0) {
227
+ recommendations.push(`No files loaded within focus area (${focusDistribution.focusArea}) - expand relevant files or adjust focus`);
228
+ }
162
229
  if (ageDistribution.stale > ageDistribution.fresh + ageDistribution.warm) {
163
230
  recommendations.push('Most context is stale - consider starting fresh with `dino handoff`');
164
231
  }
@@ -169,6 +236,7 @@ export function generateRecommendations(components, ageDistribution) {
169
236
  }
170
237
  /**
171
238
  * Execute context health check
239
+ * v13.4.0: Includes focus-aware metrics
172
240
  */
173
241
  export async function executeHealthCheck(accessState, lazyState, options, projectDir) {
174
242
  // Check feature flag
@@ -182,8 +250,10 @@ export async function executeHealthCheck(accessState, lazyState, options, projec
182
250
  redundancy: 0,
183
251
  budgetPressure: 0,
184
252
  fragmentation: 0,
253
+ focusFragmentation: 0,
185
254
  },
186
255
  ageDistribution: { fresh: 0, warm: 0, stale: 0 },
256
+ focusDistribution: { inFocus: 0, nearFocus: 0, outOfFocus: 0, focusArea: 'none' },
187
257
  recommendations: ['contextHealthMonitor feature flag is disabled'],
188
258
  summary: 'Health check disabled',
189
259
  };
@@ -193,15 +263,19 @@ export async function executeHealthCheck(accessState, lazyState, options, projec
193
263
  const redundancy = calculateRedundancyScore(lazyState);
194
264
  const budgetPressure = Math.round(calculateBudgetPressure(options.budgetPercentage) * 100);
195
265
  const fragmentation = calculateFragmentationScore(accessState);
196
- const components = { staleness, redundancy, budgetPressure, fragmentation };
266
+ // v13.4.0: Calculate focus-aware metrics
267
+ const focusArea = options.focusArea || '';
268
+ const focusFragmentation = calculateFocusFragmentationScore(accessState, focusArea);
269
+ const focusDistribution = calculateFocusDistribution(accessState, focusArea);
270
+ const components = { staleness, redundancy, budgetPressure, fragmentation, focusFragmentation };
197
271
  // Calculate age distribution
198
272
  const ageDistribution = calculateAgeDistribution(accessState);
199
- // Calculate rot index
200
- const rotIndex = calculateRotIndex(staleness, redundancy, budgetPressure, fragmentation);
273
+ // Calculate rot index (v13.4.0: includes focus fragmentation)
274
+ const rotIndex = calculateRotIndex(staleness, redundancy, budgetPressure, fragmentation, focusFragmentation);
201
275
  // Determine status
202
276
  const status = getHealthStatus(rotIndex);
203
- // Generate recommendations
204
- const recommendations = generateRecommendations(components, ageDistribution);
277
+ // Generate recommendations (v13.4.0: includes focus-aware recommendations)
278
+ const recommendations = generateRecommendations(components, ageDistribution, focusDistribution);
205
279
  // Generate summary
206
280
  const summary = formatHealthSummary(status, rotIndex, components);
207
281
  return {
@@ -209,6 +283,7 @@ export async function executeHealthCheck(accessState, lazyState, options, projec
209
283
  rotIndex,
210
284
  components,
211
285
  ageDistribution,
286
+ focusDistribution,
212
287
  recommendations,
213
288
  summary,
214
289
  };
@@ -227,6 +302,7 @@ function formatHealthSummary(status, rotIndex, components) {
227
302
  }
228
303
  /**
229
304
  * Format health report for display
305
+ * v13.4.0: Includes focus metrics
230
306
  */
231
307
  export function formatHealthReport(report) {
232
308
  const lines = [];
@@ -242,12 +318,22 @@ export function formatHealthReport(report) {
242
318
  lines.push(`- Redundancy: ${report.components.redundancy}%`);
243
319
  lines.push(`- Budget Pressure: ${report.components.budgetPressure}%`);
244
320
  lines.push(`- Fragmentation: ${report.components.fragmentation}%`);
321
+ lines.push(`- Focus Fragmentation: ${report.components.focusFragmentation}%`);
245
322
  lines.push('');
246
323
  lines.push('### Age Distribution');
247
324
  lines.push(`- Fresh (<5min): ${report.ageDistribution.fresh} files`);
248
325
  lines.push(`- Warm (5-30min): ${report.ageDistribution.warm} files`);
249
326
  lines.push(`- Stale (>30min): ${report.ageDistribution.stale} files`);
250
327
  lines.push('');
328
+ // v13.4.0: Focus distribution
329
+ if (report.focusDistribution.focusArea && report.focusDistribution.focusArea !== 'none') {
330
+ lines.push('### Focus Distribution');
331
+ lines.push(`**Focus Area:** ${report.focusDistribution.focusArea}`);
332
+ lines.push(`- In-focus: ${report.focusDistribution.inFocus} files`);
333
+ lines.push(`- Near-focus: ${report.focusDistribution.nearFocus} files`);
334
+ lines.push(`- Out-of-focus: ${report.focusDistribution.outOfFocus} files`);
335
+ lines.push('');
336
+ }
251
337
  lines.push('### Recommendations');
252
338
  for (const rec of report.recommendations) {
253
339
  lines.push(`- ${rec}`);
@@ -1 +1 @@
1
- {"version":3,"file":"context-health.js","sourceRoot":"","sources":["../../../src/core/context/context-health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-health.js","sourceRoot":"","sources":["../../../src/core/context/context-health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Focus-Aware Resource Loader - v13.4.0
3
+ *
4
+ * Determines if files should be deferred based on focus proximity.
5
+ * Implements the "Moderate" aggressiveness strategy:
6
+ * - In-focus files: Default threshold (500 tokens)
7
+ * - Out-of-focus files: Lower threshold (300 tokens)
8
+ *
9
+ * Focus distance is calculated based on path hierarchy:
10
+ * - Same directory: in-focus
11
+ * - Parent/child directory: near-focus
12
+ * - Different top-level: out-of-focus
13
+ *
14
+ * Usage:
15
+ * ```typescript
16
+ * const config = getFocusAwareDeferConfig('src/mcp/', 'src/core/auth.ts');
17
+ * if (config.shouldDefer(tokenCount)) {
18
+ * // Defer this file
19
+ * }
20
+ * ```
21
+ */
22
+ /**
23
+ * Focus proximity levels
24
+ */
25
+ export type FocusProximity = 'in-focus' | 'near-focus' | 'out-of-focus';
26
+ /**
27
+ * Focus-aware defer configuration
28
+ */
29
+ export interface FocusAwareDeferConfig {
30
+ /** Current focus area */
31
+ focusArea: string;
32
+ /** File being evaluated */
33
+ filePath: string;
34
+ /** Calculated focus proximity */
35
+ proximity: FocusProximity;
36
+ /** Token threshold for this file */
37
+ threshold: number;
38
+ /** Whether auto-defer is recommended */
39
+ shouldDefer: (tokenCount: number) => boolean;
40
+ }
41
+ /**
42
+ * Focus-aware defer thresholds
43
+ */
44
+ export interface FocusDeferThresholds {
45
+ /** Threshold for in-focus files (default: 500) */
46
+ inFocus: number;
47
+ /** Threshold for near-focus files (default: 400) */
48
+ nearFocus: number;
49
+ /** Threshold for out-of-focus files (default: 300) */
50
+ outOfFocus: number;
51
+ }
52
+ /**
53
+ * Default thresholds for focus-aware deferring
54
+ * "Moderate" aggressiveness - balances context savings with availability
55
+ */
56
+ export declare const DEFAULT_FOCUS_DEFER_THRESHOLDS: FocusDeferThresholds;
57
+ /**
58
+ * Get focus-aware thresholds from environment or defaults
59
+ */
60
+ export declare function getFocusDeferThresholds(): FocusDeferThresholds;
61
+ /**
62
+ * Calculate focus proximity between focus area and file path
63
+ *
64
+ * Proximity levels:
65
+ * - in-focus: File is within the focus directory or focus directory is parent
66
+ * - near-focus: File shares a common ancestor (1-2 levels up)
67
+ * - out-of-focus: File is in a completely different area
68
+ *
69
+ * @param focusArea - Current focus area (e.g., 'src/mcp/')
70
+ * @param filePath - File path to evaluate (e.g., 'src/core/auth.ts')
71
+ * @returns Focus proximity level
72
+ */
73
+ export declare function calculateFocusProximity(focusArea: string, filePath: string): FocusProximity;
74
+ /**
75
+ * Get the token threshold for a given proximity level
76
+ */
77
+ export declare function getThresholdForProximity(proximity: FocusProximity, thresholds?: FocusDeferThresholds): number;
78
+ /**
79
+ * Get focus-aware defer configuration for a file
80
+ *
81
+ * @param focusArea - Current focus area (e.g., 'src/mcp/')
82
+ * @param filePath - File path to evaluate
83
+ * @param thresholds - Optional custom thresholds
84
+ * @returns Configuration object with threshold and shouldDefer function
85
+ */
86
+ export declare function getFocusAwareDeferConfig(focusArea: string, filePath: string, thresholds?: FocusDeferThresholds): FocusAwareDeferConfig;
87
+ /**
88
+ * Check if focus-aware deferring is enabled
89
+ * Default: enabled (true)
90
+ * Opt-out: DINO_FOCUS_DEFER=false
91
+ */
92
+ export declare function isFocusAwareDeferEnabled(): boolean;
93
+ /**
94
+ * Classify multiple files by focus proximity
95
+ *
96
+ * @param focusArea - Current focus area
97
+ * @param files - Array of file paths
98
+ * @returns Files grouped by proximity
99
+ */
100
+ export declare function classifyFilesByFocus(focusArea: string, files: string[]): {
101
+ inFocus: string[];
102
+ nearFocus: string[];
103
+ outOfFocus: string[];
104
+ };
105
+ /**
106
+ * Get defer recommendations for a batch of files
107
+ *
108
+ * @param focusArea - Current focus area
109
+ * @param files - Array of file paths with token estimates
110
+ * @returns Files that should be deferred
111
+ */
112
+ export declare function getDeferRecommendations(focusArea: string, files: Array<{
113
+ path: string;
114
+ tokenEstimate: number;
115
+ }>): {
116
+ shouldDefer: Array<{
117
+ path: string;
118
+ tokenEstimate: number;
119
+ proximity: FocusProximity;
120
+ threshold: number;
121
+ }>;
122
+ shouldLoad: Array<{
123
+ path: string;
124
+ tokenEstimate: number;
125
+ proximity: FocusProximity;
126
+ }>;
127
+ stats: {
128
+ totalFiles: number;
129
+ deferredCount: number;
130
+ loadedCount: number;
131
+ tokensSaved: number;
132
+ tokensLoaded: number;
133
+ };
134
+ };
135
+ /**
136
+ * Format focus-aware defer stats for display
137
+ */
138
+ export declare function formatFocusDeferStats(stats: ReturnType<typeof getDeferRecommendations>['stats'], focusArea?: string): string;
139
+ /**
140
+ * Format threshold information for display
141
+ */
142
+ export declare function formatThresholdInfo(thresholds?: FocusDeferThresholds): string;
143
+ //# sourceMappingURL=focus-resource-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-resource-loader.d.ts","sourceRoot":"","sources":["../../../src/core/context/focus-resource-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,oBAAoB,CAU9D;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,cAAc,CAwFhB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,cAAc,EACzB,UAAU,CAAC,EAAE,oBAAoB,GAChC,MAAM,CAWR;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,oBAAoB,GAChC,qBAAqB,CAWvB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EAAE,GACd;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAcA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD;IACD,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1G,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IACtF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAsCA;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,OAAO,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAc7E"}