dino-spec 15.0.0 → 16.1.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 (231) hide show
  1. package/README.md +58 -1
  2. package/dist/cli/index.js +46 -0
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/dashboard.d.ts +27 -0
  5. package/dist/commands/dashboard.d.ts.map +1 -0
  6. package/dist/commands/dashboard.js +80 -0
  7. package/dist/commands/dashboard.js.map +1 -0
  8. package/dist/commands/debug.d.ts +53 -0
  9. package/dist/commands/debug.d.ts.map +1 -0
  10. package/dist/commands/debug.js +199 -0
  11. package/dist/commands/debug.js.map +1 -0
  12. package/dist/commands/profile.d.ts +37 -0
  13. package/dist/commands/profile.d.ts.map +1 -0
  14. package/dist/commands/profile.js +145 -0
  15. package/dist/commands/profile.js.map +1 -0
  16. package/dist/commands/recommendations.d.ts +27 -0
  17. package/dist/commands/recommendations.d.ts.map +1 -0
  18. package/dist/commands/recommendations.js +123 -0
  19. package/dist/commands/recommendations.js.map +1 -0
  20. package/dist/core/checkpoints/checkpoint.d.ts +1 -0
  21. package/dist/core/checkpoints/checkpoint.d.ts.map +1 -1
  22. package/dist/core/checkpoints/checkpoint.js.map +1 -1
  23. package/dist/core/checkpoints/handoff.d.ts +2 -1
  24. package/dist/core/checkpoints/handoff.d.ts.map +1 -1
  25. package/dist/core/checkpoints/handoff.js +2 -1
  26. package/dist/core/checkpoints/handoff.js.map +1 -1
  27. package/dist/core/checkpoints/session-recovery.d.ts +71 -0
  28. package/dist/core/checkpoints/session-recovery.d.ts.map +1 -0
  29. package/dist/core/checkpoints/session-recovery.js +172 -0
  30. package/dist/core/checkpoints/session-recovery.js.map +1 -0
  31. package/dist/core/config/feature-flags.d.ts +84 -0
  32. package/dist/core/config/feature-flags.d.ts.map +1 -1
  33. package/dist/core/config/feature-flags.js +18 -0
  34. package/dist/core/config/feature-flags.js.map +1 -1
  35. package/dist/core/context/__tests__/feedback-loop-engine.test.d.ts +5 -0
  36. package/dist/core/context/__tests__/feedback-loop-engine.test.d.ts.map +1 -0
  37. package/dist/core/context/__tests__/feedback-loop-engine.test.js +377 -0
  38. package/dist/core/context/__tests__/feedback-loop-engine.test.js.map +1 -0
  39. package/dist/core/context/adaptation-strategy.d.ts +125 -0
  40. package/dist/core/context/adaptation-strategy.d.ts.map +1 -0
  41. package/dist/core/context/adaptation-strategy.js +233 -0
  42. package/dist/core/context/adaptation-strategy.js.map +1 -0
  43. package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
  44. package/dist/core/context/auto-injection-engine.js +21 -0
  45. package/dist/core/context/auto-injection-engine.js.map +1 -1
  46. package/dist/core/context/auto-unload-engine.d.ts +20 -2
  47. package/dist/core/context/auto-unload-engine.d.ts.map +1 -1
  48. package/dist/core/context/auto-unload-engine.js +78 -5
  49. package/dist/core/context/auto-unload-engine.js.map +1 -1
  50. package/dist/core/context/budget-thresholds.d.ts +75 -1
  51. package/dist/core/context/budget-thresholds.d.ts.map +1 -1
  52. package/dist/core/context/budget-thresholds.js +163 -2
  53. package/dist/core/context/budget-thresholds.js.map +1 -1
  54. package/dist/core/context/context-health.d.ts.map +1 -1
  55. package/dist/core/context/context-health.js +24 -0
  56. package/dist/core/context/context-health.js.map +1 -1
  57. package/dist/core/context/demand-detector.d.ts +34 -1
  58. package/dist/core/context/demand-detector.d.ts.map +1 -1
  59. package/dist/core/context/demand-detector.js +162 -1
  60. package/dist/core/context/demand-detector.js.map +1 -1
  61. package/dist/core/context/demand-signal-patterns.d.ts +120 -0
  62. package/dist/core/context/demand-signal-patterns.d.ts.map +1 -0
  63. package/dist/core/context/demand-signal-patterns.js +418 -0
  64. package/dist/core/context/demand-signal-patterns.js.map +1 -0
  65. package/dist/core/context/feedback-loop-engine.d.ts +128 -0
  66. package/dist/core/context/feedback-loop-engine.d.ts.map +1 -0
  67. package/dist/core/context/feedback-loop-engine.js +352 -0
  68. package/dist/core/context/feedback-loop-engine.js.map +1 -0
  69. package/dist/core/context/index.d.ts +5 -3
  70. package/dist/core/context/index.d.ts.map +1 -1
  71. package/dist/core/context/index.js +26 -6
  72. package/dist/core/context/index.js.map +1 -1
  73. package/dist/core/context/prefetch-learner.d.ts +195 -0
  74. package/dist/core/context/prefetch-learner.d.ts.map +1 -0
  75. package/dist/core/context/prefetch-learner.js +363 -0
  76. package/dist/core/context/prefetch-learner.js.map +1 -0
  77. package/dist/core/context/semantic-signal-detector.d.ts +96 -0
  78. package/dist/core/context/semantic-signal-detector.d.ts.map +1 -0
  79. package/dist/core/context/semantic-signal-detector.js +320 -0
  80. package/dist/core/context/semantic-signal-detector.js.map +1 -0
  81. package/dist/core/context/smart-prefetch-engine.d.ts +66 -0
  82. package/dist/core/context/smart-prefetch-engine.d.ts.map +1 -0
  83. package/dist/core/context/smart-prefetch-engine.js +226 -0
  84. package/dist/core/context/smart-prefetch-engine.js.map +1 -0
  85. package/dist/core/context/token-tracker.d.ts +9 -0
  86. package/dist/core/context/token-tracker.d.ts.map +1 -1
  87. package/dist/core/context/token-tracker.js +14 -0
  88. package/dist/core/context/token-tracker.js.map +1 -1
  89. package/dist/core/context/window-boundary.d.ts +132 -0
  90. package/dist/core/context/window-boundary.d.ts.map +1 -0
  91. package/dist/core/context/window-boundary.js +268 -0
  92. package/dist/core/context/window-boundary.js.map +1 -0
  93. package/dist/core/context-repl/confidence-scorer.d.ts +92 -0
  94. package/dist/core/context-repl/confidence-scorer.d.ts.map +1 -0
  95. package/dist/core/context-repl/confidence-scorer.js +159 -0
  96. package/dist/core/context-repl/confidence-scorer.js.map +1 -0
  97. package/dist/core/context-repl/reconnaissance-engine.d.ts +160 -0
  98. package/dist/core/context-repl/reconnaissance-engine.d.ts.map +1 -0
  99. package/dist/core/context-repl/reconnaissance-engine.js +275 -0
  100. package/dist/core/context-repl/reconnaissance-engine.js.map +1 -0
  101. package/dist/core/dashboard/dashboard-formatter.d.ts +68 -0
  102. package/dist/core/dashboard/dashboard-formatter.d.ts.map +1 -0
  103. package/dist/core/dashboard/dashboard-formatter.js +250 -0
  104. package/dist/core/dashboard/dashboard-formatter.js.map +1 -0
  105. package/dist/core/dashboard/health-metrics-aggregator.d.ts +117 -0
  106. package/dist/core/dashboard/health-metrics-aggregator.d.ts.map +1 -0
  107. package/dist/core/dashboard/health-metrics-aggregator.js +255 -0
  108. package/dist/core/dashboard/health-metrics-aggregator.js.map +1 -0
  109. package/dist/core/debug/context-decision-logger.d.ts +189 -0
  110. package/dist/core/debug/context-decision-logger.d.ts.map +1 -0
  111. package/dist/core/debug/context-decision-logger.js +397 -0
  112. package/dist/core/debug/context-decision-logger.js.map +1 -0
  113. package/dist/core/debug/debug-config.d.ts +100 -0
  114. package/dist/core/debug/debug-config.d.ts.map +1 -0
  115. package/dist/core/debug/debug-config.js +193 -0
  116. package/dist/core/debug/debug-config.js.map +1 -0
  117. package/dist/core/debug/debug-logger.d.ts +85 -0
  118. package/dist/core/debug/debug-logger.d.ts.map +1 -0
  119. package/dist/core/debug/debug-logger.js +287 -0
  120. package/dist/core/debug/debug-logger.js.map +1 -0
  121. package/dist/core/debug/index.d.ts +10 -0
  122. package/dist/core/debug/index.d.ts.map +1 -0
  123. package/dist/core/debug/index.js +13 -0
  124. package/dist/core/debug/index.js.map +1 -0
  125. package/dist/core/embeddings/content-indexer.d.ts +169 -0
  126. package/dist/core/embeddings/content-indexer.d.ts.map +1 -0
  127. package/dist/core/embeddings/content-indexer.js +317 -0
  128. package/dist/core/embeddings/content-indexer.js.map +1 -0
  129. package/dist/core/embeddings/index.d.ts +2 -0
  130. package/dist/core/embeddings/index.d.ts.map +1 -1
  131. package/dist/core/embeddings/index.js +4 -0
  132. package/dist/core/embeddings/index.js.map +1 -1
  133. package/dist/core/embeddings/semantic-cache.d.ts +162 -0
  134. package/dist/core/embeddings/semantic-cache.d.ts.map +1 -0
  135. package/dist/core/embeddings/semantic-cache.js +317 -0
  136. package/dist/core/embeddings/semantic-cache.js.map +1 -0
  137. package/dist/core/generator/session-md.d.ts +31 -1
  138. package/dist/core/generator/session-md.d.ts.map +1 -1
  139. package/dist/core/generator/session-md.js +63 -1
  140. package/dist/core/generator/session-md.js.map +1 -1
  141. package/dist/core/memory/retrieval.d.ts +7 -1
  142. package/dist/core/memory/retrieval.d.ts.map +1 -1
  143. package/dist/core/memory/retrieval.js +7 -1
  144. package/dist/core/memory/retrieval.js.map +1 -1
  145. package/dist/core/metrics/__tests__/metrics-collector.test.d.ts +5 -0
  146. package/dist/core/metrics/__tests__/metrics-collector.test.d.ts.map +1 -0
  147. package/dist/core/metrics/__tests__/metrics-collector.test.js +354 -0
  148. package/dist/core/metrics/__tests__/metrics-collector.test.js.map +1 -0
  149. package/dist/core/metrics/index.d.ts +9 -0
  150. package/dist/core/metrics/index.d.ts.map +1 -0
  151. package/dist/core/metrics/index.js +29 -0
  152. package/dist/core/metrics/index.js.map +1 -0
  153. package/dist/core/metrics/metrics-collector.d.ts +153 -0
  154. package/dist/core/metrics/metrics-collector.d.ts.map +1 -0
  155. package/dist/core/metrics/metrics-collector.js +446 -0
  156. package/dist/core/metrics/metrics-collector.js.map +1 -0
  157. package/dist/core/metrics/metrics-schema.d.ts +189 -0
  158. package/dist/core/metrics/metrics-schema.d.ts.map +1 -0
  159. package/dist/core/metrics/metrics-schema.js +180 -0
  160. package/dist/core/metrics/metrics-schema.js.map +1 -0
  161. package/dist/core/profiling/index.d.ts +8 -0
  162. package/dist/core/profiling/index.d.ts.map +1 -0
  163. package/dist/core/profiling/index.js +8 -0
  164. package/dist/core/profiling/index.js.map +1 -0
  165. package/dist/core/profiling/operation-profiler.d.ts +118 -0
  166. package/dist/core/profiling/operation-profiler.d.ts.map +1 -0
  167. package/dist/core/profiling/operation-profiler.js +266 -0
  168. package/dist/core/profiling/operation-profiler.js.map +1 -0
  169. package/dist/core/profiling/perf-report-generator.d.ts +46 -0
  170. package/dist/core/profiling/perf-report-generator.d.ts.map +1 -0
  171. package/dist/core/profiling/perf-report-generator.js +235 -0
  172. package/dist/core/profiling/perf-report-generator.js.map +1 -0
  173. package/dist/core/recommendations/heuristics.d.ts +120 -0
  174. package/dist/core/recommendations/heuristics.d.ts.map +1 -0
  175. package/dist/core/recommendations/heuristics.js +771 -0
  176. package/dist/core/recommendations/heuristics.js.map +1 -0
  177. package/dist/core/recommendations/priority-scorer.d.ts +75 -0
  178. package/dist/core/recommendations/priority-scorer.d.ts.map +1 -0
  179. package/dist/core/recommendations/priority-scorer.js +148 -0
  180. package/dist/core/recommendations/priority-scorer.js.map +1 -0
  181. package/dist/core/recommendations/recommendation-engine.d.ts +60 -0
  182. package/dist/core/recommendations/recommendation-engine.d.ts.map +1 -0
  183. package/dist/core/recommendations/recommendation-engine.js +271 -0
  184. package/dist/core/recommendations/recommendation-engine.js.map +1 -0
  185. package/dist/hooks/pre-compact.d.ts +9 -1
  186. package/dist/hooks/pre-compact.d.ts.map +1 -1
  187. package/dist/hooks/pre-compact.js +93 -1
  188. package/dist/hooks/pre-compact.js.map +1 -1
  189. package/dist/hooks/session-start.d.ts +5 -1
  190. package/dist/hooks/session-start.d.ts.map +1 -1
  191. package/dist/hooks/session-start.js +190 -1
  192. package/dist/hooks/session-start.js.map +1 -1
  193. package/dist/mcp/focus-tag-learner.d.ts +132 -0
  194. package/dist/mcp/focus-tag-learner.d.ts.map +1 -0
  195. package/dist/mcp/focus-tag-learner.js +269 -0
  196. package/dist/mcp/focus-tag-learner.js.map +1 -0
  197. package/dist/mcp/proximity-tags.d.ts +93 -0
  198. package/dist/mcp/proximity-tags.d.ts.map +1 -0
  199. package/dist/mcp/proximity-tags.js +248 -0
  200. package/dist/mcp/proximity-tags.js.map +1 -0
  201. package/dist/mcp/tool-tiers.d.ts.map +1 -1
  202. package/dist/mcp/tool-tiers.js +2 -0
  203. package/dist/mcp/tool-tiers.js.map +1 -1
  204. package/dist/mcp/tools/index.d.ts +5 -2
  205. package/dist/mcp/tools/index.d.ts.map +1 -1
  206. package/dist/mcp/tools/index.js +19 -2
  207. package/dist/mcp/tools/index.js.map +1 -1
  208. package/dist/mcp/tools/memory.d.ts +7 -2
  209. package/dist/mcp/tools/memory.d.ts.map +1 -1
  210. package/dist/mcp/tools/memory.js +40 -9
  211. package/dist/mcp/tools/memory.js.map +1 -1
  212. package/dist/mcp/tools/prefetch.d.ts.map +1 -1
  213. package/dist/mcp/tools/prefetch.js +21 -0
  214. package/dist/mcp/tools/prefetch.js.map +1 -1
  215. package/dist/mcp/tools/recommendations.d.ts +30 -0
  216. package/dist/mcp/tools/recommendations.d.ts.map +1 -0
  217. package/dist/mcp/tools/recommendations.js +134 -0
  218. package/dist/mcp/tools/recommendations.js.map +1 -0
  219. package/dist/mcp/tools/tool-clearing.d.ts +35 -0
  220. package/dist/mcp/tools/tool-clearing.d.ts.map +1 -0
  221. package/dist/mcp/tools/tool-clearing.js +253 -0
  222. package/dist/mcp/tools/tool-clearing.js.map +1 -0
  223. package/dist/statusline/budget-tracker.d.ts +94 -0
  224. package/dist/statusline/budget-tracker.d.ts.map +1 -0
  225. package/dist/statusline/budget-tracker.js +240 -0
  226. package/dist/statusline/budget-tracker.js.map +1 -0
  227. package/dist/statusline/index.d.ts +1 -0
  228. package/dist/statusline/index.d.ts.map +1 -1
  229. package/dist/statusline/index.js +2 -0
  230. package/dist/statusline/index.js.map +1 -1
  231. package/package.json +1 -1
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Adaptation Strategy - v16.0.0
3
+ *
4
+ * Defines strategies for dynamic threshold adjustment based on metrics.
5
+ * Part of the Feedback Loop system.
6
+ *
7
+ * Features:
8
+ * - Three adaptation strategies: conservative, moderate, aggressive
9
+ * - Threshold delta calculation with bounds
10
+ * - Hysteresis to prevent oscillation
11
+ * - Validation of threshold bounds
12
+ */
13
+ // =============================================================================
14
+ // Constants
15
+ // =============================================================================
16
+ /**
17
+ * Strategy configurations
18
+ */
19
+ export const STRATEGY_CONFIGS = {
20
+ conservative: {
21
+ type: 'conservative',
22
+ maxDeltaPerAdjustment: 0.02, // 2% max
23
+ hysteresisThreshold: 0.03, // Need 3% improvement
24
+ minDataPoints: 50,
25
+ recencyWeight: 0.3,
26
+ },
27
+ moderate: {
28
+ type: 'moderate',
29
+ maxDeltaPerAdjustment: 0.05, // 5% max
30
+ hysteresisThreshold: 0.02, // Need 2% improvement
31
+ minDataPoints: 30,
32
+ recencyWeight: 0.5,
33
+ },
34
+ aggressive: {
35
+ type: 'aggressive',
36
+ maxDeltaPerAdjustment: 0.08, // 8% max (capped at 5% in implementation)
37
+ hysteresisThreshold: 0.01, // Need 1% improvement
38
+ minDataPoints: 20,
39
+ recencyWeight: 0.7,
40
+ },
41
+ };
42
+ /**
43
+ * Default strategy
44
+ */
45
+ export const DEFAULT_STRATEGY = 'moderate';
46
+ /**
47
+ * Threshold bounds (must maintain: warning < high < critical)
48
+ */
49
+ export const THRESHOLD_BOUNDS = {
50
+ warning: { min: 0.70, max: 0.90 },
51
+ high: { min: 0.75, max: 0.95 },
52
+ critical: { min: 0.80, max: 0.99 },
53
+ };
54
+ // =============================================================================
55
+ // Strategy Selection
56
+ // =============================================================================
57
+ /**
58
+ * Get strategy configuration
59
+ */
60
+ export function getStrategyConfig(strategy = DEFAULT_STRATEGY) {
61
+ return STRATEGY_CONFIGS[strategy];
62
+ }
63
+ /**
64
+ * Detect trend pattern from metrics data
65
+ */
66
+ export function detectTrendPattern(trend) {
67
+ // Use weighted average of success rate and token savings trends
68
+ const combinedTrend = (trend.successRateTrend * 0.6) + (trend.tokenSavingsTrend * 0.4);
69
+ // Account for period - longer periods need larger trends
70
+ const trendThreshold = 0.01 * Math.sqrt(trend.periodDays);
71
+ if (combinedTrend > trendThreshold) {
72
+ return 'improving';
73
+ }
74
+ if (combinedTrend < -trendThreshold) {
75
+ return 'degrading';
76
+ }
77
+ return 'plateau';
78
+ }
79
+ // =============================================================================
80
+ // Threshold Adjustment
81
+ // =============================================================================
82
+ /**
83
+ * Calculate suggested threshold adjustment
84
+ */
85
+ export function calculateThresholdAdjustment(currentThreshold, thresholdType, pattern, trend, strategy) {
86
+ // Check if we have enough data
87
+ if (trend.dataPoints < strategy.minDataPoints) {
88
+ return null;
89
+ }
90
+ // Calculate base delta based on pattern
91
+ let baseDelta = 0;
92
+ let reason = '';
93
+ let confidence = 0;
94
+ switch (pattern) {
95
+ case 'improving':
96
+ // System is performing well - can raise thresholds
97
+ baseDelta = calculateImprovingDelta(trend, strategy);
98
+ reason = `Performance improving (success rate trend: ${(trend.successRateTrend * 100).toFixed(1)}%)`;
99
+ confidence = Math.min(1, trend.successRateTrend * 10);
100
+ break;
101
+ case 'degrading':
102
+ // System is struggling - lower thresholds
103
+ baseDelta = calculateDegradingDelta(trend, strategy);
104
+ reason = `Performance degrading (success rate trend: ${(trend.successRateTrend * 100).toFixed(1)}%)`;
105
+ confidence = Math.min(1, Math.abs(trend.successRateTrend) * 10);
106
+ break;
107
+ case 'plateau':
108
+ // No significant change - adjust based on utilization
109
+ baseDelta = calculatePlateauDelta(currentThreshold, trend, strategy);
110
+ reason = `Stable performance (avg utilization: ${(trend.avgBudgetUtilization * 100).toFixed(0)}%)`;
111
+ confidence = 0.3; // Lower confidence for plateau adjustments
112
+ break;
113
+ }
114
+ // Apply hysteresis - skip if delta is too small
115
+ if (Math.abs(baseDelta) < strategy.hysteresisThreshold) {
116
+ return null;
117
+ }
118
+ // Cap delta at max allowed
119
+ const cappedDelta = Math.sign(baseDelta) *
120
+ Math.min(Math.abs(baseDelta), strategy.maxDeltaPerAdjustment);
121
+ // Additional cap: never more than 5% per adjustment
122
+ const finalDelta = Math.sign(cappedDelta) * Math.min(Math.abs(cappedDelta), 0.05);
123
+ // Calculate suggested value
124
+ let suggestedValue = currentThreshold + finalDelta;
125
+ // Validate bounds
126
+ const bounds = THRESHOLD_BOUNDS[thresholdType];
127
+ suggestedValue = Math.max(bounds.min, Math.min(bounds.max, suggestedValue));
128
+ // If no actual change after bounds, skip
129
+ if (Math.abs(suggestedValue - currentThreshold) < 0.001) {
130
+ return null;
131
+ }
132
+ return {
133
+ threshold: thresholdType,
134
+ currentValue: currentThreshold,
135
+ suggestedValue: Math.round(suggestedValue * 1000) / 1000,
136
+ delta: Math.round((suggestedValue - currentThreshold) * 1000) / 1000,
137
+ reason,
138
+ confidence: Math.round(confidence * 100) / 100,
139
+ };
140
+ }
141
+ /**
142
+ * Calculate delta for improving trend
143
+ */
144
+ function calculateImprovingDelta(trend, strategy) {
145
+ // When improving, we can raise thresholds to use more context
146
+ // Scale by recency weight and success rate trend
147
+ const magnitude = trend.successRateTrend * strategy.recencyWeight;
148
+ return Math.min(magnitude, strategy.maxDeltaPerAdjustment);
149
+ }
150
+ /**
151
+ * Calculate delta for degrading trend
152
+ */
153
+ function calculateDegradingDelta(trend, strategy) {
154
+ // When degrading, lower thresholds to be more conservative
155
+ // Use absolute value of negative trend
156
+ const magnitude = Math.abs(trend.successRateTrend) * strategy.recencyWeight;
157
+ return -Math.min(magnitude, strategy.maxDeltaPerAdjustment);
158
+ }
159
+ /**
160
+ * Calculate delta for plateau trend
161
+ */
162
+ function calculatePlateauDelta(currentThreshold, trend, strategy) {
163
+ // On plateau, adjust based on whether we're under/over-utilizing context
164
+ // If avg utilization is low, we could raise thresholds
165
+ if (trend.avgBudgetUtilization < 0.5 && currentThreshold < 0.90) {
166
+ return strategy.maxDeltaPerAdjustment * 0.5; // Small raise
167
+ }
168
+ // If avg utilization is high, might want to lower thresholds
169
+ if (trend.avgBudgetUtilization > 0.85 && currentThreshold > 0.75) {
170
+ return -strategy.maxDeltaPerAdjustment * 0.5; // Small lower
171
+ }
172
+ return 0;
173
+ }
174
+ // =============================================================================
175
+ // Validation
176
+ // =============================================================================
177
+ /**
178
+ * Validate threshold values maintain proper ordering
179
+ */
180
+ export function validateThresholdOrder(warning, high, critical) {
181
+ // Must maintain: warning < high < critical
182
+ if (warning >= high)
183
+ return false;
184
+ if (high >= critical)
185
+ return false;
186
+ // Must be within bounds
187
+ if (warning < THRESHOLD_BOUNDS.warning.min || warning > THRESHOLD_BOUNDS.warning.max) {
188
+ return false;
189
+ }
190
+ if (high < THRESHOLD_BOUNDS.high.min || high > THRESHOLD_BOUNDS.high.max) {
191
+ return false;
192
+ }
193
+ if (critical < THRESHOLD_BOUNDS.critical.min || critical > THRESHOLD_BOUNDS.critical.max) {
194
+ return false;
195
+ }
196
+ return true;
197
+ }
198
+ /**
199
+ * Adjust a suggested value to maintain threshold ordering
200
+ */
201
+ export function enforceThresholdOrder(thresholdType, suggestedValue, currentThresholds) {
202
+ const minGap = 0.02; // Minimum 2% gap between thresholds
203
+ switch (thresholdType) {
204
+ case 'warning':
205
+ // Warning must be at least minGap below high
206
+ return Math.min(suggestedValue, currentThresholds.high - minGap);
207
+ case 'high':
208
+ // High must be at least minGap above warning and below critical
209
+ const highMin = currentThresholds.warning + minGap;
210
+ const highMax = currentThresholds.critical - minGap;
211
+ return Math.max(highMin, Math.min(suggestedValue, highMax));
212
+ case 'critical':
213
+ // Critical must be at least minGap above high
214
+ return Math.max(suggestedValue, currentThresholds.high + minGap);
215
+ }
216
+ }
217
+ // =============================================================================
218
+ // Formatting
219
+ // =============================================================================
220
+ /**
221
+ * Format threshold adjustment for display
222
+ */
223
+ export function formatThresholdAdjustment(adj) {
224
+ const direction = adj.delta > 0 ? '+' : '';
225
+ return `${adj.threshold}: ${(adj.currentValue * 100).toFixed(0)}% -> ${(adj.suggestedValue * 100).toFixed(0)}% (${direction}${(adj.delta * 100).toFixed(1)}%) - ${adj.reason}`;
226
+ }
227
+ /**
228
+ * Format strategy config for display
229
+ */
230
+ export function formatStrategyConfig(config) {
231
+ return `Strategy: ${config.type} (max delta: ${(config.maxDeltaPerAdjustment * 100).toFixed(0)}%, hysteresis: ${(config.hysteresisThreshold * 100).toFixed(0)}%, min data: ${config.minDataPoints})`;
232
+ }
233
+ //# sourceMappingURL=adaptation-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptation-strategy.js","sourceRoot":"","sources":["../../../src/core/context/adaptation-strategy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-injection-engine.d.ts","sourceRoot":"","sources":["../../../src/core/context/auto-injection-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,YAAY,EAOlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM9E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmBD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAoBT;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA4H9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAavD;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAO7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAgBnE"}
1
+ {"version":3,"file":"auto-injection-engine.d.ts","sourceRoot":"","sources":["../../../src/core/context/auto-injection-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,YAAY,EAOlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO9E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAmBD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAoBT;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAiJ9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAavD;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAO7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAgBnE"}
@@ -14,6 +14,7 @@
14
14
  import { detectDemandSignals, loadContextJIT, shouldInjectContext, formatAsReminder, calculateRelevanceScore, } from './demand-detector.js';
15
15
  import { isFeatureEnabled } from '../config/feature-flags.js';
16
16
  import { REPLEnvironment } from '../context-repl/index.js';
17
+ import { recordMetric } from '../metrics/index.js';
17
18
  // =============================================================================
18
19
  // Constants
19
20
  // =============================================================================
@@ -52,6 +53,8 @@ export function shouldAutoInject(budgetPercentage, signals) {
52
53
  * v13.6.0: Optionally uses REPL peek for reconnaissance before loading
53
54
  */
54
55
  export async function executeAutoInjection(prompt, projectDir, options = {}) {
56
+ // v16.0.0: Track execution time for metrics
57
+ const metricsStartTime = performance.now();
55
58
  const { budgetPercentage = 50, minRelevance = DEFAULT_MIN_RELEVANCE, maxTokens = DEFAULT_MAX_TOKENS, includeFailures = true, useReplPeek, } = options;
56
59
  // Check feature flag
57
60
  const enabled = await isFeatureEnabled('autoContextInjection', projectDir);
@@ -145,6 +148,24 @@ export async function executeAutoInjection(prompt, projectDir, options = {}) {
145
148
  finalContext = injectedContext.substring(0, maxChars - 3) + '...';
146
149
  }
147
150
  const relevanceScore = calculateRelevanceScore(prompt, jitResult);
151
+ // v16.0.0: Record metrics
152
+ try {
153
+ await recordMetric(projectDir, {
154
+ operationType: 'auto-injection',
155
+ outcome: 'success',
156
+ durationMs: performance.now() - metricsStartTime,
157
+ tokensSaved: jitResult.tokensEstimate,
158
+ budgetPercentage,
159
+ metadata: {
160
+ signalCount: signals.length,
161
+ relevanceScore,
162
+ usedRepl,
163
+ },
164
+ });
165
+ }
166
+ catch {
167
+ // Metrics recording failure should not break the main flow
168
+ }
148
169
  return {
149
170
  executed: true,
150
171
  reason: `Injected context based on ${signals.length} demand signal(s)`,
@@ -1 +1 @@
1
- {"version":3,"file":"auto-injection-engine.js","sourceRoot":"","sources":["../../../src/core/context/auto-injection-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-injection-engine.js","sourceRoot":"","sources":["../../../src/core/context/auto-injection-engine.ts"],"names":[],"mappings":"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"}
@@ -46,14 +46,28 @@ export interface AutoUnloadOptions {
46
46
  /** Files to never unload */
47
47
  protectedFiles?: string[];
48
48
  }
49
- /** Budget threshold to start unloading (70%) */
49
+ /** Budget threshold to start unloading (70%) - static default */
50
50
  export declare const UNLOAD_THRESHOLD_START = 70;
51
- /** Budget threshold for aggressive unloading (85%) */
51
+ /** Budget threshold for aggressive unloading (85%) - static default */
52
52
  export declare const UNLOAD_THRESHOLD_AGGRESSIVE = 85;
53
+ /**
54
+ * v16.0.0: Get dynamic unload thresholds
55
+ *
56
+ * When dynamic thresholds are enabled, derives unload thresholds from
57
+ * the active warning/high thresholds (unload starts at warning - 15%).
58
+ */
59
+ export declare function getDynamicUnloadThresholds(projectDir: string): Promise<{
60
+ start: number;
61
+ aggressive: number;
62
+ }>;
53
63
  /**
54
64
  * Check if auto unload should execute
55
65
  */
56
66
  export declare function shouldAutoUnload(budgetPercentage: number): boolean;
67
+ /**
68
+ * v16.0.0: Check if auto unload should execute with dynamic thresholds
69
+ */
70
+ export declare function shouldAutoUnloadDynamic(budgetPercentage: number, projectDir: string): Promise<boolean>;
57
71
  /**
58
72
  * Calculate budget pressure (0-1)
59
73
  */
@@ -62,6 +76,10 @@ export declare function calculateBudgetPressure(budgetPercentage: number): numbe
62
76
  * Determine unload aggressiveness based on budget
63
77
  */
64
78
  export declare function getUnloadAggressiveness(budgetPercentage: number): 'none' | 'normal' | 'aggressive';
79
+ /**
80
+ * v16.0.0: Determine unload aggressiveness with dynamic thresholds
81
+ */
82
+ export declare function getUnloadAggressivenessDynamic(budgetPercentage: number, projectDir: string): Promise<'none' | 'normal' | 'aggressive'>;
65
83
  /**
66
84
  * Select resources to unload based on coldness and budget pressure
67
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auto-unload-engine.d.ts","sourceRoot":"","sources":["../../../src/core/context/auto-unload-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAKlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,gDAAgD;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAe9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAQlG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,EAAE,iBAAiB,GACzB,YAAY,EAAE,CAwChB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,mBAAmB,EAChC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAoI3B;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,YAAY,EAAE,GAC5B,MAAM,CAmBR"}
1
+ {"version":3,"file":"auto-unload-engine.d.ts","sourceRoot":"","sources":["../../../src/core/context/auto-unload-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAKlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,kBAAkB,CAAC;AAS1B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,uEAAuE;AACvE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAahD;AAeD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAQlG;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,CAU3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,EAAE,iBAAiB,GACzB,YAAY,EAAE,CAwChB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,mBAAmB,EAChC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAsK3B;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,YAAY,EAAE,GAC5B,MAAM,CAmBR"}
@@ -13,13 +13,34 @@
13
13
  import { getColdResources, getRecentlyAccessedFiles, } from './access-tracker.js';
14
14
  import { deferFile, getLoadedResources, } from './lazy-loader.js';
15
15
  import { isFeatureEnabled } from '../config/feature-flags.js';
16
+ import { recordMetric } from '../metrics/index.js';
17
+ import { getActiveThresholds } from './budget-thresholds.js';
16
18
  // =============================================================================
17
19
  // Constants
18
20
  // =============================================================================
19
- /** Budget threshold to start unloading (70%) */
21
+ /** Budget threshold to start unloading (70%) - static default */
20
22
  export const UNLOAD_THRESHOLD_START = 70;
21
- /** Budget threshold for aggressive unloading (85%) */
23
+ /** Budget threshold for aggressive unloading (85%) - static default */
22
24
  export const UNLOAD_THRESHOLD_AGGRESSIVE = 85;
25
+ /**
26
+ * v16.0.0: Get dynamic unload thresholds
27
+ *
28
+ * When dynamic thresholds are enabled, derives unload thresholds from
29
+ * the active warning/high thresholds (unload starts at warning - 15%).
30
+ */
31
+ export async function getDynamicUnloadThresholds(projectDir) {
32
+ try {
33
+ const thresholds = await getActiveThresholds(projectDir);
34
+ // Unload starts 15% below warning threshold
35
+ const start = Math.max(50, (thresholds.warning * 100) - 15);
36
+ // Aggressive unload at warning threshold
37
+ const aggressive = thresholds.warning * 100;
38
+ return { start, aggressive };
39
+ }
40
+ catch {
41
+ return { start: UNLOAD_THRESHOLD_START, aggressive: UNLOAD_THRESHOLD_AGGRESSIVE };
42
+ }
43
+ }
23
44
  /** Default max files to unload per execution */
24
45
  const DEFAULT_MAX_FILES_TO_UNLOAD = 5;
25
46
  /** Minimum coldness to evict at normal threshold */
@@ -35,6 +56,13 @@ const AGGRESSIVE_MIN_COLDNESS = 0.4;
35
56
  export function shouldAutoUnload(budgetPercentage) {
36
57
  return budgetPercentage >= UNLOAD_THRESHOLD_START;
37
58
  }
59
+ /**
60
+ * v16.0.0: Check if auto unload should execute with dynamic thresholds
61
+ */
62
+ export async function shouldAutoUnloadDynamic(budgetPercentage, projectDir) {
63
+ const thresholds = await getDynamicUnloadThresholds(projectDir);
64
+ return budgetPercentage >= thresholds.start;
65
+ }
38
66
  /**
39
67
  * Calculate budget pressure (0-1)
40
68
  */
@@ -57,6 +85,19 @@ export function getUnloadAggressiveness(budgetPercentage) {
57
85
  }
58
86
  return 'none';
59
87
  }
88
+ /**
89
+ * v16.0.0: Determine unload aggressiveness with dynamic thresholds
90
+ */
91
+ export async function getUnloadAggressivenessDynamic(budgetPercentage, projectDir) {
92
+ const thresholds = await getDynamicUnloadThresholds(projectDir);
93
+ if (budgetPercentage >= thresholds.aggressive) {
94
+ return 'aggressive';
95
+ }
96
+ if (budgetPercentage >= thresholds.start) {
97
+ return 'normal';
98
+ }
99
+ return 'none';
100
+ }
60
101
  /**
61
102
  * Select resources to unload based on coldness and budget pressure
62
103
  */
@@ -95,6 +136,8 @@ export function selectResourcesToUnload(coldResources, options) {
95
136
  * freeing up context budget.
96
137
  */
97
138
  export async function executeAutoUnload(lazyState, accessState, options, projectDir) {
139
+ // v16.0.0: Track execution time for metrics
140
+ const metricsStartTime = performance.now();
98
141
  // Check feature flag
99
142
  const enabled = await isFeatureEnabled('autoUnload', projectDir);
100
143
  if (!enabled) {
@@ -108,11 +151,23 @@ export async function executeAutoUnload(lazyState, accessState, options, project
108
151
  };
109
152
  }
110
153
  const { budgetPercentage } = options;
111
- // Check if we should unload
112
- if (!shouldAutoUnload(budgetPercentage)) {
154
+ // v16.0.0: Check if we should unload with dynamic threshold support
155
+ const dynamicEnabled = await isFeatureEnabled('dynamicThresholds', projectDir);
156
+ let shouldUnload;
157
+ let thresholdStart;
158
+ if (dynamicEnabled) {
159
+ const thresholds = await getDynamicUnloadThresholds(projectDir);
160
+ shouldUnload = budgetPercentage >= thresholds.start;
161
+ thresholdStart = thresholds.start;
162
+ }
163
+ else {
164
+ shouldUnload = shouldAutoUnload(budgetPercentage);
165
+ thresholdStart = UNLOAD_THRESHOLD_START;
166
+ }
167
+ if (!shouldUnload) {
113
168
  return {
114
169
  executed: false,
115
- reason: `Budget at ${budgetPercentage}% - below ${UNLOAD_THRESHOLD_START}% threshold`,
170
+ reason: `Budget at ${budgetPercentage}% - below ${thresholdStart}% threshold`,
116
171
  unloaded: [],
117
172
  totalTokensFreed: 0,
118
173
  budgetBefore: budgetPercentage,
@@ -193,6 +248,24 @@ export async function executeAutoUnload(lazyState, accessState, options, project
193
248
  const tokensReduced = totalTokensFreed;
194
249
  const percentageReduced = (tokensReduced / totalTokens) * 100;
195
250
  const budgetAfter = Math.max(0, budgetPercentage - percentageReduced);
251
+ // v16.0.0: Record metrics
252
+ try {
253
+ await recordMetric(projectDir, {
254
+ operationType: 'auto-unload',
255
+ outcome: 'success',
256
+ durationMs: performance.now() - metricsStartTime,
257
+ tokensFreed: totalTokensFreed,
258
+ budgetPercentage,
259
+ metadata: {
260
+ filesUnloaded: toUnload.length,
261
+ aggressiveness: getUnloadAggressiveness(budgetPercentage),
262
+ budgetAfter,
263
+ },
264
+ });
265
+ }
266
+ catch {
267
+ // Metrics recording failure should not break the main flow
268
+ }
196
269
  return {
197
270
  executed: true,
198
271
  reason: `Unloaded ${toUnload.length} cold resources at ${budgetPercentage}% budget`,
@@ -1 +1 @@
1
- {"version":3,"file":"auto-unload-engine.js","sourceRoot":"","sources":["../../../src/core/context/auto-unload-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-unload-engine.js","sourceRoot":"","sources":["../../../src/core/context/auto-unload-engine.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Budget Thresholds - v14.0.0
2
+ * Budget Thresholds - v16.0.0
3
3
  *
4
4
  * Configurable context budget thresholds with safety margins.
5
5
  * Optimized for Claude 4.5's extended context window (200K tokens).
@@ -10,6 +10,11 @@
10
10
  * - Config-driven thresholds via .dino/config.json
11
11
  * - Backwards compatible with existing budget tracking
12
12
  *
13
+ * v16.0.0:
14
+ * - Real-time budget percentage via getBudgetPercentage()
15
+ * - Dynamic threshold support with getActiveThresholds()
16
+ * - Budget change propagation within 100ms
17
+ *
13
18
  * Reference: Anthropic context engineering best practices
14
19
  */
15
20
  /**
@@ -164,4 +169,73 @@ export declare function calculateSafeCapacity(limit: number, threshold: number,
164
169
  * @returns Effective limit with safety margin applied
165
170
  */
166
171
  export declare function getEffectiveLimit(limit: number, config?: ThresholdConfig): number;
172
+ /** Default context limit (200K tokens for Claude 4.5) */
173
+ export declare const DEFAULT_CONTEXT_LIMIT = 200000;
174
+ /**
175
+ * Get current budget percentage (0-100)
176
+ *
177
+ * Returns the real-time budget utilization percentage.
178
+ * Updates are propagated within 100ms.
179
+ *
180
+ * @returns Budget percentage 0-100
181
+ */
182
+ export declare function getBudgetPercentage(): number;
183
+ /**
184
+ * Update current budget state
185
+ *
186
+ * Called by token tracker and other systems to update budget.
187
+ * Propagates changes for real-time access.
188
+ *
189
+ * @param usage - Current token usage
190
+ * @param limit - Context limit (optional, defaults to current)
191
+ */
192
+ export declare function updateBudgetState(usage: number, limit?: number): void;
193
+ /**
194
+ * Get current budget state
195
+ *
196
+ * @returns Current budget state with usage, limit, and last update time
197
+ */
198
+ export declare function getBudgetState(): {
199
+ usage: number;
200
+ limit: number;
201
+ percentage: number;
202
+ lastUpdated: number;
203
+ msSinceUpdate: number;
204
+ };
205
+ /**
206
+ * Get active thresholds (dynamic if enabled, static otherwise)
207
+ *
208
+ * When dynamicThresholds feature is enabled, returns adjusted thresholds
209
+ * from the feedback loop. Otherwise returns static config thresholds.
210
+ *
211
+ * @param projectDir - Project directory
212
+ * @returns Active threshold configuration
213
+ */
214
+ export declare function getActiveThresholds(projectDir?: string): Promise<ThresholdConfig>;
215
+ /**
216
+ * Check threshold with dynamic support
217
+ *
218
+ * Uses active thresholds (dynamic or static) to determine level.
219
+ *
220
+ * @param usage - Current token usage
221
+ * @param limit - Context limit
222
+ * @param projectDir - Project directory
223
+ * @returns Threshold result with dynamic threshold support
224
+ */
225
+ export declare function checkThresholdWithDynamic(usage: number, limit: number, projectDir?: string): Promise<ThresholdResult & {
226
+ usingDynamicThresholds: boolean;
227
+ }>;
228
+ /**
229
+ * Format budget state for session.md
230
+ *
231
+ * Includes dynamic threshold delta information when active.
232
+ *
233
+ * @param projectDir - Project directory
234
+ * @returns Formatted budget section
235
+ */
236
+ export declare function formatBudgetForSession(projectDir?: string): Promise<string>;
237
+ /**
238
+ * Reset budget state (for testing)
239
+ */
240
+ export declare function resetBudgetState(): void;
167
241
  //# sourceMappingURL=budget-thresholds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"budget-thresholds.d.ts","sourceRoot":"","sources":["../../../src/core/context/budget-thresholds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;IACtC,4CAA4C;;IAE5C,wCAAwC;;IAExC,iDAAiD;;CAEzC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAKtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,eAA0C,GACjD,cAAc,CAahB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,eAA0C,GACjD,eAAe,CAcjB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,GAAE,MAAsB,GACjC,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAMnE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CA0B3E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAsBrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,MAA8B,GAC3C,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,eAA0C,GACjD,MAAM,CAGR"}
1
+ {"version":3,"file":"budget-thresholds.d.ts","sourceRoot":"","sources":["../../../src/core/context/budget-thresholds.ts"],"names":[],"mappings":"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"}