dino-spec 13.6.1 → 14.0.1
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 +82 -5
- package/dist/commands/hud.d.ts +1 -8
- package/dist/commands/hud.d.ts.map +1 -1
- package/dist/commands/hud.js +4 -18
- package/dist/commands/hud.js.map +1 -1
- package/dist/core/config/feature-flags.d.ts +25 -1
- package/dist/core/config/feature-flags.d.ts.map +1 -1
- package/dist/core/config/feature-flags.js +7 -1
- package/dist/core/config/feature-flags.js.map +1 -1
- package/dist/core/context/__tests__/budget-thresholds.test.d.ts +5 -0
- package/dist/core/context/__tests__/budget-thresholds.test.d.ts.map +1 -0
- package/dist/core/context/__tests__/budget-thresholds.test.js +223 -0
- package/dist/core/context/__tests__/budget-thresholds.test.js.map +1 -0
- package/dist/core/context/__tests__/compaction-engine.test.d.ts +5 -0
- package/dist/core/context/__tests__/compaction-engine.test.d.ts.map +1 -0
- package/dist/core/context/__tests__/compaction-engine.test.js +474 -0
- package/dist/core/context/__tests__/compaction-engine.test.js.map +1 -0
- package/dist/core/context/__tests__/output-persistence.test.d.ts +5 -0
- package/dist/core/context/__tests__/output-persistence.test.d.ts.map +1 -0
- package/dist/core/context/__tests__/output-persistence.test.js +246 -0
- package/dist/core/context/__tests__/output-persistence.test.js.map +1 -0
- package/dist/core/context/auto-injection-engine.d.ts +10 -1
- package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
- package/dist/core/context/auto-injection-engine.js +45 -2
- package/dist/core/context/auto-injection-engine.js.map +1 -1
- package/dist/core/context/budget-thresholds.d.ts +167 -0
- package/dist/core/context/budget-thresholds.d.ts.map +1 -0
- package/dist/core/context/budget-thresholds.js +234 -0
- package/dist/core/context/budget-thresholds.js.map +1 -0
- package/dist/core/context/compaction-engine.d.ts +193 -0
- package/dist/core/context/compaction-engine.d.ts.map +1 -0
- package/dist/core/context/compaction-engine.js +376 -0
- package/dist/core/context/compaction-engine.js.map +1 -0
- package/dist/core/context/context-health.d.ts +27 -2
- package/dist/core/context/context-health.d.ts.map +1 -1
- package/dist/core/context/context-health.js +98 -12
- package/dist/core/context/context-health.js.map +1 -1
- package/dist/core/context/focus-resource-loader.d.ts +143 -0
- package/dist/core/context/focus-resource-loader.d.ts.map +1 -0
- package/dist/core/context/focus-resource-loader.js +305 -0
- package/dist/core/context/focus-resource-loader.js.map +1 -0
- package/dist/core/context/index.d.ts +10 -5
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +40 -5
- package/dist/core/context/index.js.map +1 -1
- package/dist/core/context/lazy-loader.d.ts +44 -1
- package/dist/core/context/lazy-loader.d.ts.map +1 -1
- package/dist/core/context/lazy-loader.js +59 -1
- package/dist/core/context/lazy-loader.js.map +1 -1
- package/dist/core/context/output-persistence.d.ts +142 -0
- package/dist/core/context/output-persistence.d.ts.map +1 -0
- package/dist/core/context/output-persistence.js +242 -0
- package/dist/core/context/output-persistence.js.map +1 -0
- package/dist/core/context-repl/__tests__/repl-environment.test.d.ts +7 -0
- package/dist/core/context-repl/__tests__/repl-environment.test.d.ts.map +1 -0
- package/dist/core/context-repl/__tests__/repl-environment.test.js +335 -0
- package/dist/core/context-repl/__tests__/repl-environment.test.js.map +1 -0
- package/dist/core/context-repl/context-window-monitor.d.ts +181 -0
- package/dist/core/context-repl/context-window-monitor.d.ts.map +1 -0
- package/dist/core/context-repl/context-window-monitor.js +309 -0
- package/dist/core/context-repl/context-window-monitor.js.map +1 -0
- package/dist/core/context-repl/index.d.ts +8 -3
- package/dist/core/context-repl/index.d.ts.map +1 -1
- package/dist/core/context-repl/index.js +11 -3
- package/dist/core/context-repl/index.js.map +1 -1
- package/dist/core/context-repl/repl-environment.d.ts +66 -0
- package/dist/core/context-repl/repl-environment.d.ts.map +1 -0
- package/dist/core/context-repl/repl-environment.js +795 -0
- package/dist/core/context-repl/repl-environment.js.map +1 -0
- package/dist/core/context-repl/types.d.ts +277 -1
- package/dist/core/context-repl/types.d.ts.map +1 -1
- package/dist/core/context-repl/types.js +52 -1
- package/dist/core/context-repl/types.js.map +1 -1
- package/dist/core/environment/__tests__/pre-verify.test.d.ts +5 -0
- package/dist/core/environment/__tests__/pre-verify.test.d.ts.map +1 -0
- package/dist/core/environment/__tests__/pre-verify.test.js +343 -0
- package/dist/core/environment/__tests__/pre-verify.test.js.map +1 -0
- package/dist/core/environment/index.d.ts +8 -0
- package/dist/core/environment/index.d.ts.map +1 -0
- package/dist/core/environment/index.js +7 -0
- package/dist/core/environment/index.js.map +1 -0
- package/dist/core/environment/pre-verify.d.ts +63 -0
- package/dist/core/environment/pre-verify.d.ts.map +1 -0
- package/dist/core/environment/pre-verify.js +221 -0
- package/dist/core/environment/pre-verify.js.map +1 -0
- package/dist/core/environment/types.d.ts +37 -0
- package/dist/core/environment/types.d.ts.map +1 -0
- package/dist/core/environment/types.js +5 -0
- package/dist/core/environment/types.js.map +1 -0
- package/dist/core/generator/claude-md.js +1 -1
- package/dist/core/intelligence/context-budget.d.ts +10 -5
- package/dist/core/intelligence/context-budget.d.ts.map +1 -1
- package/dist/core/intelligence/context-budget.js +12 -5
- package/dist/core/intelligence/context-budget.js.map +1 -1
- package/dist/core/provider/storage.d.ts.map +1 -1
- package/dist/core/provider/storage.js +1 -2
- package/dist/core/provider/storage.js.map +1 -1
- package/dist/hooks/post-edit.js +73 -0
- package/dist/hooks/post-edit.js.map +1 -1
- package/dist/hooks/session-start.js +115 -0
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/types.js +1 -1
- package/dist/hooks/user-prompt-submit.js +100 -0
- package/dist/hooks/user-prompt-submit.js.map +1 -1
- package/dist/hud/config.d.ts +3 -28
- package/dist/hud/config.d.ts.map +1 -1
- package/dist/hud/config.js +8 -60
- package/dist/hud/config.js.map +1 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +0 -1
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/render/budget-bar.d.ts +0 -2
- package/dist/hud/render/budget-bar.d.ts.map +1 -1
- package/dist/hud/render/budget-bar.js +5 -8
- package/dist/hud/render/budget-bar.js.map +1 -1
- package/dist/hud/stdin.d.ts +0 -3
- package/dist/hud/stdin.d.ts.map +1 -1
- package/dist/hud/stdin.js +2 -29
- package/dist/hud/stdin.js.map +1 -1
- package/dist/hud/types.d.ts +0 -2
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/mcp/__tests__/dynamic-updates.test.d.ts +5 -0
- package/dist/mcp/__tests__/dynamic-updates.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/dynamic-updates.test.js +314 -0
- package/dist/mcp/__tests__/dynamic-updates.test.js.map +1 -0
- package/dist/mcp/dynamic-updates.d.ts +167 -0
- package/dist/mcp/dynamic-updates.d.ts.map +1 -0
- package/dist/mcp/dynamic-updates.js +313 -0
- package/dist/mcp/dynamic-updates.js.map +1 -0
- package/dist/mcp/focus-filter.d.ts +74 -0
- package/dist/mcp/focus-filter.d.ts.map +1 -0
- package/dist/mcp/focus-filter.js +229 -0
- package/dist/mcp/focus-filter.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +5 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/registry.d.ts +4 -4
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +16 -16
- package/dist/mcp/registry.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +12 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +5 -0
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/__tests__/environment.test.d.ts +5 -0
- package/dist/mcp/tools/__tests__/environment.test.d.ts.map +1 -0
- package/dist/mcp/tools/__tests__/environment.test.js +219 -0
- package/dist/mcp/tools/__tests__/environment.test.js.map +1 -0
- package/dist/mcp/tools/auto-inject.d.ts +36 -0
- package/dist/mcp/tools/auto-inject.d.ts.map +1 -0
- package/dist/mcp/tools/auto-inject.js +143 -0
- package/dist/mcp/tools/auto-inject.js.map +1 -0
- package/dist/mcp/tools/auto-unload.d.ts +29 -0
- package/dist/mcp/tools/auto-unload.d.ts.map +1 -0
- package/dist/mcp/tools/auto-unload.js +151 -0
- package/dist/mcp/tools/auto-unload.js.map +1 -0
- package/dist/mcp/tools/context-repl.d.ts +48 -0
- package/dist/mcp/tools/context-repl.d.ts.map +1 -0
- package/dist/mcp/tools/context-repl.js +290 -0
- package/dist/mcp/tools/context-repl.js.map +1 -0
- package/dist/mcp/tools/environment.d.ts +27 -0
- package/dist/mcp/tools/environment.d.ts.map +1 -0
- package/dist/mcp/tools/environment.js +97 -0
- package/dist/mcp/tools/environment.js.map +1 -0
- package/dist/mcp/tools/health.d.ts +29 -0
- package/dist/mcp/tools/health.d.ts.map +1 -0
- package/dist/mcp/tools/health.js +171 -0
- package/dist/mcp/tools/health.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +9 -2
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +37 -2
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/output-persistence.d.ts +44 -0
- package/dist/mcp/tools/output-persistence.d.ts.map +1 -0
- package/dist/mcp/tools/output-persistence.js +208 -0
- package/dist/mcp/tools/output-persistence.js.map +1 -0
- package/dist/mcp-server.d.ts +2 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +36 -7
- package/dist/mcp-server.js.map +1 -1
- package/dist/rules/index.js +2 -2
- package/dist/utils/exec.js +2 -2
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +5 -0
- package/dist/utils/gitignore.js.map +1 -1
- package/package.json +76 -77
- package/dist/hud/config-tui.d.ts +0 -25
- package/dist/hud/config-tui.d.ts.map +0 -1
- package/dist/hud/config-tui.js +0 -199
- package/dist/hud/config-tui.js.map +0 -1
- package/dist/hud/models.d.ts +0 -58
- package/dist/hud/models.d.ts.map +0 -1
- package/dist/hud/models.js +0 -124
- package/dist/hud/models.js.map +0 -1
- package/dist/hud/token-estimator.d.ts +0 -79
- package/dist/hud/token-estimator.d.ts.map +0 -1
- package/dist/hud/token-estimator.js +0 -126
- package/dist/hud/token-estimator.js.map +0 -1
|
@@ -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
|
-
|
|
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":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAEL,QAAQ,IAAI,YAAY,GAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAGL,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAsDpC,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,qCAAqC;AACrC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,+BAA+B;AAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAgC;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,kBAAkB,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAE5D,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACjE,cAAc,IAAI,SAAS,CAAC;QAC5B,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAA2B;IAE3B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,8DAA8D;IAC9D,iCAAiC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC;IAC7D,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC;IAErD,oDAAoD;IACpD,yDAAyD;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,kDAAkD;AACzF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAgC;IAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,qBAAqB;IACrB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAClE,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;IACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;IAEpD,qDAAqD;IACrD,sCAAsC;IACtC,uCAAuC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;IAE/D,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC9C,WAAgC,EAChC,SAAiB;IAEjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,CAAC,+CAA+C;IAC3D,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;IACrD,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;IAEnD,2BAA2B;IAC3B,0CAA0C;IAC1C,oCAAoC;IACpC,4CAA4C;IAC5C,MAAM,kBAAkB,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IAEtF,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAgC,EAChC,SAAiB;IAEjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,SAAS,IAAI,MAAM;SAC/B,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM;QAClC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM;QACxC,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAgC;IAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,kBAAkB,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAE5D,IAAI,kBAAkB,GAAG,uBAAuB,EAAE,CAAC;YACjD,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,kBAAkB,GAAG,sBAAsB,EAAE,CAAC;YACvD,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,aAAqB,EACrB,qBAA6B,CAAC;IAE9B,iCAAiC;IACjC,2CAA2C;IAC3C,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,IAAI,EAAY,oBAAoB;QAC/C,UAAU,EAAE,IAAI,EAAW,oBAAoB;QAC/C,cAAc,EAAE,IAAI,EAAO,OAAO;QAClC,aAAa,EAAE,IAAI,EAAQ,oBAAoB;QAC/C,kBAAkB,EAAE,IAAI,EAAG,6BAA6B;KACzD,CAAC;IAEF,MAAM,QAAQ,GACZ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC/B,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACjC,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACzC,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACvC,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAA6C,EAC7C,eAAuD,EACvD,iBAA4D;IAE5D,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,UAAU,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC3G,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QAC/B,eAAe,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,GAAG,EAAE,EAAE,CAAC;QACnC,eAAe,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACnF,CAAC;IAED,uCAAuC;IACvC,IAAI,UAAU,CAAC,kBAAkB,GAAG,EAAE,IAAI,iBAAiB,EAAE,CAAC;QAC5D,IAAI,iBAAiB,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC7D,eAAe,CAAC,IAAI,CAAC,wBAAwB,iBAAiB,CAAC,UAAU,uEAAuE,CAAC,CAAC;QACpJ,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,kBAAkB,GAAG,EAAE,EAAE,CAAC;QACvC,eAAe,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,SAAS,IAAI,iBAAiB,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxF,eAAe,CAAC,IAAI,CAAC,sCAAsC,iBAAiB,CAAC,SAAS,2CAA2C,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QACzE,eAAe,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAgC,EAChC,SAA2B,EAC3B,OAA2B,EAC3B,UAAkB;IAElB,qBAAqB;IACrB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE;gBACV,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;gBAChB,kBAAkB,EAAE,CAAC;aACtB;YACD,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAChD,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;YACjF,eAAe,EAAE,CAAC,+CAA+C,CAAC;YAClE,OAAO,EAAE,uBAAuB;SACjC,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAE/D,yCAAyC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpF,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAEhG,6BAA6B;IAC7B,MAAM,eAAe,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAE9D,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAE7G,mBAAmB;IACnB,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEzC,2EAA2E;IAC3E,MAAM,eAAe,GAAG,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;IAEhG,mBAAmB;IACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAElE,OAAO;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,OAAO;KACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAAoB,EACpB,QAAgB,EAChB,UAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,OAAO,mBAAmB,WAAW,gBAAgB,QAAQ,wBAAwB,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AACxH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA2B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM;QACrD,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;YACzC,CAAC,CAAC,UAAU,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,8BAA8B;IAC9B,IAAI,MAAM,CAAC,iBAAiB,CAAC,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,iBAAiB,CAAC,OAAO,QAAQ,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,iBAAiB,CAAC,SAAS,QAAQ,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,UAAU,QAAQ,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA2B;IAC5D,OAAO,0BAA0B,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,QAAQ,CAAC;AAC7E,CAAC"}
|
|
@@ -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"}
|