dino-spec 6.5.0 → 6.6.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 (57) hide show
  1. package/dist/core/context/demand-detector.d.ts +71 -0
  2. package/dist/core/context/demand-detector.d.ts.map +1 -0
  3. package/dist/core/context/demand-detector.js +333 -0
  4. package/dist/core/context/demand-detector.js.map +1 -0
  5. package/dist/core/context/index.d.ts +4 -2
  6. package/dist/core/context/index.d.ts.map +1 -1
  7. package/dist/core/context/index.js +13 -2
  8. package/dist/core/context/index.js.map +1 -1
  9. package/dist/core/generator/claude-md.d.ts +84 -1
  10. package/dist/core/generator/claude-md.d.ts.map +1 -1
  11. package/dist/core/generator/claude-md.js +172 -1
  12. package/dist/core/generator/claude-md.js.map +1 -1
  13. package/dist/core/memory/consolidation.d.ts +140 -0
  14. package/dist/core/memory/consolidation.d.ts.map +1 -0
  15. package/dist/core/memory/consolidation.js +426 -0
  16. package/dist/core/memory/consolidation.js.map +1 -0
  17. package/dist/core/memory/distillation.d.ts +93 -0
  18. package/dist/core/memory/distillation.d.ts.map +1 -0
  19. package/dist/core/memory/distillation.js +292 -0
  20. package/dist/core/memory/distillation.js.map +1 -0
  21. package/dist/core/memory/failure-registry.d.ts +125 -0
  22. package/dist/core/memory/failure-registry.d.ts.map +1 -0
  23. package/dist/core/memory/failure-registry.js +340 -0
  24. package/dist/core/memory/failure-registry.js.map +1 -0
  25. package/dist/core/memory/formatters.d.ts +77 -0
  26. package/dist/core/memory/formatters.d.ts.map +1 -0
  27. package/dist/core/memory/formatters.js +319 -0
  28. package/dist/core/memory/formatters.js.map +1 -0
  29. package/dist/core/memory/graph.d.ts +151 -0
  30. package/dist/core/memory/graph.d.ts.map +1 -0
  31. package/dist/core/memory/graph.js +323 -0
  32. package/dist/core/memory/graph.js.map +1 -0
  33. package/dist/core/memory/index.d.ts +9 -1
  34. package/dist/core/memory/index.d.ts.map +1 -1
  35. package/dist/core/memory/index.js +86 -1
  36. package/dist/core/memory/index.js.map +1 -1
  37. package/dist/core/memory/memory-decay.d.ts +148 -0
  38. package/dist/core/memory/memory-decay.d.ts.map +1 -0
  39. package/dist/core/memory/memory-decay.js +344 -0
  40. package/dist/core/memory/memory-decay.js.map +1 -0
  41. package/dist/core/memory/proactive-extractor.d.ts +99 -0
  42. package/dist/core/memory/proactive-extractor.d.ts.map +1 -0
  43. package/dist/core/memory/proactive-extractor.js +389 -0
  44. package/dist/core/memory/proactive-extractor.js.map +1 -0
  45. package/dist/core/tasks/index.d.ts +3 -1
  46. package/dist/core/tasks/index.d.ts.map +1 -1
  47. package/dist/core/tasks/index.js +12 -1
  48. package/dist/core/tasks/index.js.map +1 -1
  49. package/dist/core/tasks/todo-sync.d.ts +92 -0
  50. package/dist/core/tasks/todo-sync.d.ts.map +1 -0
  51. package/dist/core/tasks/todo-sync.js +217 -0
  52. package/dist/core/tasks/todo-sync.js.map +1 -0
  53. package/dist/hooks/session-end.d.ts +2 -1
  54. package/dist/hooks/session-end.d.ts.map +1 -1
  55. package/dist/hooks/session-end.js +12 -11
  56. package/dist/hooks/session-end.js.map +1 -1
  57. package/package.json +1 -1
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Demand Detector - v6.6.0
3
+ *
4
+ * Just-in-time context retrieval based on current prompt needs.
5
+ * Instead of loading all context at session-start, load only what's
6
+ * relevant to the current task.
7
+ *
8
+ * Research insight: "Context loaded at session-start may not be relevant"
9
+ *
10
+ * Features:
11
+ * - Detect context demand signals from prompts
12
+ * - Lazy memory loading with semantic recall
13
+ * - Condensed injection format for minimal tokens
14
+ * - Relevance threshold filtering
15
+ */
16
+ import { type ScoredMemoryEntry, type DecisionEntry, type PatternEntry, type LearningEntry } from '../memory/index.js';
17
+ /**
18
+ * Types of context that can be demanded
19
+ */
20
+ export type ContextDemandType = 'decisions' | 'patterns' | 'learnings' | 'failures' | 'structure' | 'commands' | 'session' | 'all';
21
+ /**
22
+ * Demand signal detected from prompt
23
+ */
24
+ export interface DemandSignal {
25
+ type: ContextDemandType;
26
+ confidence: 'high' | 'medium' | 'low';
27
+ trigger: string;
28
+ keywords: string[];
29
+ }
30
+ /**
31
+ * Detect context demand signals from a prompt
32
+ */
33
+ export declare function detectDemandSignals(prompt: string): DemandSignal[];
34
+ /**
35
+ * Extract keywords from prompt for semantic matching
36
+ */
37
+ export declare function extractKeywords(prompt: string): string[];
38
+ /**
39
+ * JIT loading result
40
+ */
41
+ export interface JITLoadResult {
42
+ signals: DemandSignal[];
43
+ loadedContext: {
44
+ decisions: ScoredMemoryEntry<DecisionEntry>[];
45
+ patterns: ScoredMemoryEntry<PatternEntry>[];
46
+ learnings: ScoredMemoryEntry<LearningEntry>[];
47
+ };
48
+ injectionText: string;
49
+ tokensEstimate: number;
50
+ }
51
+ /**
52
+ * Load context just-in-time based on demand signals
53
+ */
54
+ export declare function loadContextJIT(prompt: string, projectDir?: string, options?: {
55
+ minRelevance?: number;
56
+ maxEntries?: number;
57
+ includeFailures?: boolean;
58
+ }): Promise<JITLoadResult>;
59
+ /**
60
+ * Format JIT context as a reminder block
61
+ */
62
+ export declare function formatAsReminder(jitResult: JITLoadResult): string;
63
+ /**
64
+ * Calculate overall relevance score for a prompt-context pair
65
+ */
66
+ export declare function calculateRelevanceScore(prompt: string, jitResult: JITLoadResult): number;
67
+ /**
68
+ * Decide whether to inject context based on relevance
69
+ */
70
+ export declare function shouldInjectContext(jitResult: JITLoadResult, threshold?: number): boolean;
71
+ //# sourceMappingURL=demand-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demand-detector.d.ts","sourceRoot":"","sources":["../../../src/core/context/demand-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAa5B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,SAAS,GACT,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA2ED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAwBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxD;AAgBD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE;QACb,SAAS,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,SAAS,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;KAC/C,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAsB,EAClC,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,GACL,OAAO,CAAC,aAAa,CAAC,CAsFxB;AA+DD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAQjE;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,aAAa,GACvB,MAAM,CAiCR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,SAAS,GAAE,MAAY,GACtB,OAAO,CAmBT"}
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Demand Detector - v6.6.0
3
+ *
4
+ * Just-in-time context retrieval based on current prompt needs.
5
+ * Instead of loading all context at session-start, load only what's
6
+ * relevant to the current task.
7
+ *
8
+ * Research insight: "Context loaded at session-start may not be relevant"
9
+ *
10
+ * Features:
11
+ * - Detect context demand signals from prompts
12
+ * - Lazy memory loading with semantic recall
13
+ * - Condensed injection format for minimal tokens
14
+ * - Relevance threshold filtering
15
+ */
16
+ import { semanticRecall, } from '../memory/index.js';
17
+ import { distillDecision, distillPattern, distillLearning, } from '../memory/distillation.js';
18
+ /**
19
+ * Patterns that indicate demand for specific context types
20
+ */
21
+ const DEMAND_PATTERNS = {
22
+ decisions: [
23
+ /(?:why|what).+(?:decided|chose|chose)/i,
24
+ /(?:decision|choice|approach).+(?:for|about)/i,
25
+ /(?:rationale|reason).+(?:for|behind)/i,
26
+ /(?:architecture|design).+(?:decision|choice)/i,
27
+ /what.+(?:trade-?off|alternative)/i,
28
+ ],
29
+ patterns: [
30
+ /(?:pattern|convention|style).+(?:for|in|when)/i,
31
+ /how.+(?:usually|normally|typically)/i,
32
+ /(?:best practice|standard).+(?:for|in)/i,
33
+ /(?:prefer|preference).+(?:for|when)/i,
34
+ /what.+(?:convention|pattern)/i,
35
+ ],
36
+ learnings: [
37
+ /(?:learned|discovered|found out)/i,
38
+ /(?:remember|recall).+(?:about|from)/i,
39
+ /(?:previous|earlier|before)/i,
40
+ /what.+(?:know|knew).+(?:about)/i,
41
+ /(?:insight|discovery)/i,
42
+ ],
43
+ failures: [
44
+ /(?:didn't|did not|doesn't|won't).+work/i,
45
+ /(?:tried|attempted).+(?:before|already)/i,
46
+ /(?:failed|failure|error)/i,
47
+ /(?:avoid|don't use|problem with)/i,
48
+ /what.+(?:didn't|failed)/i,
49
+ ],
50
+ structure: [
51
+ /(?:where|which).+(?:file|folder|directory)/i,
52
+ /(?:structure|layout|organization)/i,
53
+ /(?:find|locate|look for)/i,
54
+ /(?:architecture|codebase)/i,
55
+ ],
56
+ commands: [
57
+ /(?:how|what).+(?:build|test|run|start|lint)/i,
58
+ /(?:command|script).+(?:for|to)/i,
59
+ /(?:npm|yarn|pnpm|cargo|go).+(?:command|run)/i,
60
+ ],
61
+ session: [
62
+ /(?:current|now|today).+(?:doing|working|focus)/i,
63
+ /(?:status|progress|state)/i,
64
+ /(?:continue|resume|pick up)/i,
65
+ /(?:where|what).+(?:left off|stopped)/i,
66
+ ],
67
+ all: [
68
+ /(?:context|background|history)/i,
69
+ /(?:everything|all).+(?:know|remember)/i,
70
+ ],
71
+ };
72
+ /**
73
+ * Keyword extraction for semantic matching
74
+ */
75
+ const KEYWORD_PATTERNS = [
76
+ // Technical terms
77
+ /(?:api|database|auth|cache|config|test|build|deploy|docker)/gi,
78
+ // Action words
79
+ /(?:implement|fix|add|remove|update|refactor|debug)/gi,
80
+ // Component names (CamelCase)
81
+ /[A-Z][a-z]+(?:[A-Z][a-z]+)+/g,
82
+ // File paths
83
+ /(?:src|lib|test|spec)\/[\w\/.-]+/gi,
84
+ ];
85
+ // =============================================================================
86
+ // Demand Detection
87
+ // =============================================================================
88
+ /**
89
+ * Detect context demand signals from a prompt
90
+ */
91
+ export function detectDemandSignals(prompt) {
92
+ const signals = [];
93
+ const promptLower = prompt.toLowerCase();
94
+ // Check each demand type
95
+ for (const [type, patterns] of Object.entries(DEMAND_PATTERNS)) {
96
+ for (const pattern of patterns) {
97
+ const match = prompt.match(pattern);
98
+ if (match) {
99
+ // Extract keywords from the match context
100
+ const keywords = extractKeywords(prompt);
101
+ signals.push({
102
+ type: type,
103
+ confidence: determineConfidence(pattern, match[0]),
104
+ trigger: match[0],
105
+ keywords,
106
+ });
107
+ break; // One signal per type
108
+ }
109
+ }
110
+ }
111
+ return signals;
112
+ }
113
+ /**
114
+ * Extract keywords from prompt for semantic matching
115
+ */
116
+ export function extractKeywords(prompt) {
117
+ const keywords = new Set();
118
+ for (const pattern of KEYWORD_PATTERNS) {
119
+ const matches = prompt.match(pattern);
120
+ if (matches) {
121
+ for (const match of matches) {
122
+ keywords.add(match.toLowerCase());
123
+ }
124
+ }
125
+ }
126
+ // Also extract quoted strings
127
+ const quoted = prompt.match(/"([^"]+)"|'([^']+)'/g);
128
+ if (quoted) {
129
+ for (const q of quoted) {
130
+ keywords.add(q.replace(/["']/g, '').toLowerCase());
131
+ }
132
+ }
133
+ return Array.from(keywords);
134
+ }
135
+ /**
136
+ * Determine confidence based on pattern strength
137
+ */
138
+ function determineConfidence(pattern, match) {
139
+ // Longer matches are more confident
140
+ if (match.length > 20)
141
+ return 'high';
142
+ if (match.length > 10)
143
+ return 'medium';
144
+ return 'low';
145
+ }
146
+ /**
147
+ * Load context just-in-time based on demand signals
148
+ */
149
+ export async function loadContextJIT(prompt, projectDir = process.cwd(), options = {}) {
150
+ const { minRelevance = 0.3, maxEntries = 5, includeFailures = true, } = options;
151
+ // Detect what context is needed
152
+ const signals = detectDemandSignals(prompt);
153
+ // Build query from signals
154
+ const queryParts = [prompt];
155
+ for (const signal of signals) {
156
+ queryParts.push(...signal.keywords);
157
+ }
158
+ const query = queryParts.join(' ');
159
+ // Determine which categories to load
160
+ const categories = new Set();
161
+ for (const signal of signals) {
162
+ switch (signal.type) {
163
+ case 'decisions':
164
+ categories.add('decisions');
165
+ break;
166
+ case 'patterns':
167
+ categories.add('patterns');
168
+ break;
169
+ case 'learnings':
170
+ case 'failures':
171
+ categories.add('learnings');
172
+ break;
173
+ case 'all':
174
+ categories.add('decisions');
175
+ categories.add('patterns');
176
+ categories.add('learnings');
177
+ break;
178
+ // structure, commands, session handled elsewhere
179
+ }
180
+ }
181
+ // If no specific signals, check if prompt warrants any context
182
+ if (categories.size === 0) {
183
+ // Default: light context load for implementation tasks
184
+ const implPatterns = /implement|fix|add|build|create|update/i;
185
+ if (implPatterns.test(prompt)) {
186
+ categories.add('patterns');
187
+ categories.add('learnings');
188
+ }
189
+ }
190
+ // Load relevant memories via semantic recall
191
+ const loadedContext = {
192
+ decisions: [],
193
+ patterns: [],
194
+ learnings: [],
195
+ };
196
+ if (categories.size > 0) {
197
+ const recalled = await semanticRecall({
198
+ query,
199
+ category: categories.size === 3 ? 'all' : Array.from(categories)[0],
200
+ limit: maxEntries,
201
+ minRelevance,
202
+ includeSessionContext: true,
203
+ }, projectDir);
204
+ loadedContext.decisions = recalled.decisions;
205
+ loadedContext.patterns = recalled.patterns;
206
+ loadedContext.learnings = recalled.learnings;
207
+ }
208
+ // Generate injection text
209
+ const injectionText = formatJITInjection(loadedContext, {
210
+ includeFailures,
211
+ maxChars: 500,
212
+ });
213
+ // Estimate tokens
214
+ const tokensEstimate = Math.ceil(injectionText.length / 4);
215
+ return {
216
+ signals,
217
+ loadedContext,
218
+ injectionText,
219
+ tokensEstimate,
220
+ };
221
+ }
222
+ // =============================================================================
223
+ // Injection Formatting
224
+ // =============================================================================
225
+ /**
226
+ * Format loaded context for minimal injection
227
+ */
228
+ function formatJITInjection(context, options = {}) {
229
+ const { includeFailures = true, maxChars = 500 } = options;
230
+ const parts = [];
231
+ // Distill and format decisions
232
+ if (context.decisions.length > 0) {
233
+ const topDecision = context.decisions[0];
234
+ const distilled = distillDecision(topDecision.entry);
235
+ parts.push(`📌 ${distilled.distilled}`);
236
+ }
237
+ // Distill and format patterns
238
+ if (context.patterns.length > 0) {
239
+ const topPattern = context.patterns[0];
240
+ const distilled = distillPattern(topPattern.entry);
241
+ parts.push(`📐 ${distilled.distilled}`);
242
+ }
243
+ // Distill and format learnings (prioritize failures)
244
+ if (context.learnings.length > 0) {
245
+ const failureLearning = includeFailures
246
+ ? context.learnings.find(l => l.entry.failedApproaches && l.entry.failedApproaches.length > 0)
247
+ : null;
248
+ if (failureLearning) {
249
+ const distilled = distillLearning(failureLearning.entry);
250
+ parts.push(`⚠️ ${distilled.distilled}`);
251
+ }
252
+ else {
253
+ const topLearning = context.learnings[0];
254
+ const distilled = distillLearning(topLearning.entry);
255
+ parts.push(`💡 ${distilled.distilled}`);
256
+ }
257
+ }
258
+ if (parts.length === 0) {
259
+ return '';
260
+ }
261
+ let result = parts.join('\n');
262
+ // Truncate if needed
263
+ if (result.length > maxChars) {
264
+ result = result.substring(0, maxChars - 3) + '...';
265
+ }
266
+ return result;
267
+ }
268
+ /**
269
+ * Format JIT context as a reminder block
270
+ */
271
+ export function formatAsReminder(jitResult) {
272
+ if (!jitResult.injectionText) {
273
+ return '';
274
+ }
275
+ return `<memory-context>
276
+ ${jitResult.injectionText}
277
+ </memory-context>`;
278
+ }
279
+ // =============================================================================
280
+ // Relevance Scoring
281
+ // =============================================================================
282
+ /**
283
+ * Calculate overall relevance score for a prompt-context pair
284
+ */
285
+ export function calculateRelevanceScore(prompt, jitResult) {
286
+ if (jitResult.signals.length === 0) {
287
+ return 0;
288
+ }
289
+ // Base score from signal confidence
290
+ let score = 0;
291
+ for (const signal of jitResult.signals) {
292
+ switch (signal.confidence) {
293
+ case 'high':
294
+ score += 0.4;
295
+ break;
296
+ case 'medium':
297
+ score += 0.25;
298
+ break;
299
+ case 'low':
300
+ score += 0.1;
301
+ break;
302
+ }
303
+ }
304
+ // Boost if we found relevant memories
305
+ const totalLoaded = jitResult.loadedContext.decisions.length +
306
+ jitResult.loadedContext.patterns.length +
307
+ jitResult.loadedContext.learnings.length;
308
+ if (totalLoaded > 0) {
309
+ score += 0.2;
310
+ }
311
+ // Cap at 1.0
312
+ return Math.min(1.0, score);
313
+ }
314
+ /**
315
+ * Decide whether to inject context based on relevance
316
+ */
317
+ export function shouldInjectContext(jitResult, threshold = 0.3) {
318
+ // No context loaded
319
+ if (!jitResult.injectionText) {
320
+ return false;
321
+ }
322
+ // Check if any high-confidence signals
323
+ const hasHighConfidence = jitResult.signals.some(s => s.confidence === 'high');
324
+ if (hasHighConfidence) {
325
+ return true;
326
+ }
327
+ // Check total loaded context
328
+ const totalLoaded = jitResult.loadedContext.decisions.length +
329
+ jitResult.loadedContext.patterns.length +
330
+ jitResult.loadedContext.learnings.length;
331
+ return totalLoaded > 0;
332
+ }
333
+ //# sourceMappingURL=demand-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demand-detector.js","sourceRoot":"","sources":["../../../src/core/context/demand-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,cAAc,GASf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,GAGhB,MAAM,2BAA2B,CAAC;AA6BnC;;GAEG;AACH,MAAM,eAAe,GAAwC;IAC3D,SAAS,EAAE;QACT,wCAAwC;QACxC,8CAA8C;QAC9C,uCAAuC;QACvC,+CAA+C;QAC/C,mCAAmC;KACpC;IACD,QAAQ,EAAE;QACR,gDAAgD;QAChD,sCAAsC;QACtC,yCAAyC;QACzC,sCAAsC;QACtC,+BAA+B;KAChC;IACD,SAAS,EAAE;QACT,mCAAmC;QACnC,sCAAsC;QACtC,8BAA8B;QAC9B,iCAAiC;QACjC,wBAAwB;KACzB;IACD,QAAQ,EAAE;QACR,yCAAyC;QACzC,0CAA0C;QAC1C,2BAA2B;QAC3B,mCAAmC;QACnC,0BAA0B;KAC3B;IACD,SAAS,EAAE;QACT,6CAA6C;QAC7C,oCAAoC;QACpC,2BAA2B;QAC3B,4BAA4B;KAC7B;IACD,QAAQ,EAAE;QACR,8CAA8C;QAC9C,iCAAiC;QACjC,8CAA8C;KAC/C;IACD,OAAO,EAAE;QACP,iDAAiD;QACjD,4BAA4B;QAC5B,8BAA8B;QAC9B,uCAAuC;KACxC;IACD,GAAG,EAAE;QACH,iCAAiC;QACjC,wCAAwC;KACzC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAa;IACjC,kBAAkB;IAClB,+DAA+D;IAC/D,eAAe;IACf,sDAAsD;IACtD,8BAA8B;IAC9B,8BAA8B;IAC9B,aAAa;IACb,oCAAoC;CACrC,CAAC;AAEF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,yBAAyB;IACzB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,0CAA0C;gBAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBAEzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAyB;oBAC/B,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClD,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBACjB,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,CAAC,sBAAsB;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAa;IACzD,oCAAoC;IACpC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAoBD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,aAAqB,OAAO,CAAC,GAAG,EAAE,EAClC,UAII,EAAE;IAEN,MAAM,EACJ,YAAY,GAAG,GAAG,EAClB,UAAU,GAAG,CAAC,EACd,eAAe,GAAG,IAAI,GACvB,GAAG,OAAO,CAAC;IAEZ,gCAAgC;IAChC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5C,2BAA2B;IAC3B,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAC;IACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,UAAU;gBACb,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,UAAU;gBACb,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,KAAK;gBACR,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5B,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5B,MAAM;YACR,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1B,uDAAuD;QACvD,MAAM,YAAY,GAAG,wCAAwC,CAAC;QAC9D,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,aAAa,GAAmC;QACpD,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;KACd,CAAC;IAEF,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;YACpC,KAAK;YACL,QAAQ,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnE,KAAK,EAAE,UAAU;YACjB,YAAY;YACZ,qBAAqB,EAAE,IAAI;SAC5B,EAAE,UAAU,CAAC,CAAC;QAEf,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC7C,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC3C,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE;QACtD,eAAe;QACf,QAAQ,EAAE,GAAG;KACd,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE3D,OAAO;QACL,OAAO;QACP,aAAa;QACb,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,kBAAkB,CACzB,OAAuC,EACvC,UAGI,EAAE;IAEN,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,+BAA+B;IAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,eAAe;YACrC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9F,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9B,qBAAqB;IACrB,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;EACP,SAAS,CAAC,aAAa;kBACP,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,SAAwB;IAExB,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,MAAM;gBACT,KAAK,IAAI,GAAG,CAAC;gBACb,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,IAAI,IAAI,CAAC;gBACd,MAAM;YACR,KAAK,KAAK;gBACR,KAAK,IAAI,GAAG,CAAC;gBACb,MAAM;QACV,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GACf,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM;QACxC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;QACvC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;IAE3C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,IAAI,GAAG,CAAC;IACf,CAAC;IAED,aAAa;IACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAwB,EACxB,YAAoB,GAAG;IAEvB,oBAAoB;IACpB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;IAC/E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GACf,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM;QACxC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;QACvC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;IAE3C,OAAO,WAAW,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * Context Management Module - v6.3.0
2
+ * Context Management Module - v6.6.0
3
3
  *
4
4
  * Tools for managing context window efficiently.
5
- * Includes tool result protection and clearing recommendations.
5
+ * Includes tool result protection, clearing recommendations,
6
+ * and just-in-time context retrieval (v6.6.0).
6
7
  */
7
8
  export { type ProtectionLevel, type ToolCategory, type ProtectionResult, TOOL_PROTECTION_RULES, DEFAULT_RECENCY_THRESHOLD, shouldProtectToolResult, getProtectionSummary, getAlwaysProtectedTools, formatProtectionRules, estimateClearingSavings, } from './tool-protection.js';
9
+ export { type ContextDemandType, type DemandSignal, type JITLoadResult, detectDemandSignals, extractKeywords, loadContextJIT, formatAsReminder, calculateRelevanceScore, shouldInjectContext, } from './demand-detector.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGrB,qBAAqB,EACrB,yBAAyB,EAGzB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAGrB,qBAAqB,EACrB,yBAAyB,EAGzB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAGlB,mBAAmB,EACnB,eAAe,EAGf,cAAc,EAGd,gBAAgB,EAGhB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
@@ -1,12 +1,23 @@
1
1
  /**
2
- * Context Management Module - v6.3.0
2
+ * Context Management Module - v6.6.0
3
3
  *
4
4
  * Tools for managing context window efficiently.
5
- * Includes tool result protection and clearing recommendations.
5
+ * Includes tool result protection, clearing recommendations,
6
+ * and just-in-time context retrieval (v6.6.0).
6
7
  */
7
8
  export {
8
9
  // Constants
9
10
  TOOL_PROTECTION_RULES, DEFAULT_RECENCY_THRESHOLD,
10
11
  // Functions
11
12
  shouldProtectToolResult, getProtectionSummary, getAlwaysProtectedTools, formatProtectionRules, estimateClearingSavings, } from './tool-protection.js';
13
+ // Just-in-time context retrieval (v6.6.0)
14
+ export {
15
+ // Detection
16
+ detectDemandSignals, extractKeywords,
17
+ // Loading
18
+ loadContextJIT,
19
+ // Formatting
20
+ formatAsReminder,
21
+ // Scoring
22
+ calculateRelevanceScore, shouldInjectContext, } from './demand-detector.js';
12
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AAML,YAAY;AACZ,qBAAqB,EACrB,yBAAyB;AAEzB,YAAY;AACZ,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO;AAML,YAAY;AACZ,qBAAqB,EACrB,yBAAyB;AAEzB,YAAY;AACZ,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,0CAA0C;AAC1C,OAAO;AAML,YAAY;AACZ,mBAAmB,EACnB,eAAe;AAEf,UAAU;AACV,cAAc;AAEd,aAAa;AACb,gBAAgB;AAEhB,UAAU;AACV,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
@@ -1,8 +1,14 @@
1
1
  /**
2
- * CLAUDE.md generator - v4.0.0
2
+ * CLAUDE.md generator - v6.6.0
3
3
  *
4
4
  * Generates machine-first CLAUDE.md from analysis results
5
5
  * Supports both full and minimal (progressive loading) modes
6
+ *
7
+ * v6.6.0: KV-Cache optimization
8
+ * - Stable prefix structure for cache efficiency (100:1 ratio benefit)
9
+ * - Static content (rules, patterns) at TOP
10
+ * - Dynamic state (session, memories) at BOTTOM
11
+ * - Soft tool disabling via instructions (preserves cache)
6
12
  */
7
13
  import type { AnalysisResult } from '../analyzer/index.js';
8
14
  /**
@@ -16,6 +22,17 @@ export declare const SECTION_MARKERS: {
16
22
  readonly patternsStart: "<!-- DINO:SECTION:patterns -->";
17
23
  readonly patternsEnd: "<!-- DINO:END:patterns -->";
18
24
  };
25
+ /**
26
+ * KV-Cache optimization markers (v6.6.0)
27
+ *
28
+ * Content before STABLE_PREFIX_END remains constant across sessions,
29
+ * enabling KV-cache reuse for significant performance benefits.
30
+ */
31
+ export declare const CACHE_MARKERS: {
32
+ readonly stablePrefixEnd: "<!-- DINO:STABLE_PREFIX_END -->";
33
+ readonly dynamicStateStart: "<!-- DINO:DYNAMIC_STATE_START -->";
34
+ readonly dynamicStateEnd: "<!-- DINO:DYNAMIC_STATE_END -->";
35
+ };
19
36
  /**
20
37
  * Generate machine-first CLAUDE.md content
21
38
  */
@@ -45,4 +62,70 @@ export declare function generatePatternsJson(analysis: AnalysisResult): object;
45
62
  * Generate commands.json content from analysis
46
63
  */
47
64
  export declare function generateCommandsJson(analysis: AnalysisResult): object;
65
+ /**
66
+ * Soft tool disable configuration
67
+ *
68
+ * Instead of removing tools from the API call (which breaks KV-cache),
69
+ * we add instructions to avoid using certain tools in certain contexts.
70
+ * This preserves the stable prefix while still guiding behavior.
71
+ */
72
+ export interface SoftToolDisable {
73
+ tool: string;
74
+ reason: string;
75
+ context: string;
76
+ }
77
+ /**
78
+ * Generate soft tool disable instructions
79
+ * These go in the dynamic section and guide behavior without breaking cache
80
+ */
81
+ export declare function generateSoftToolDisables(disables: SoftToolDisable[]): string;
82
+ /**
83
+ * Cache-optimized CLAUDE.md structure
84
+ *
85
+ * Layout:
86
+ * 1. STABLE PREFIX (cached) - Project info, architecture, commands, patterns
87
+ * 2. STABLE_PREFIX_END marker
88
+ * 3. DYNAMIC STATE (not cached) - Session state, memories, tool guidance
89
+ */
90
+ export interface CacheOptimizedContent {
91
+ stablePrefix: string;
92
+ dynamicState: string;
93
+ full: string;
94
+ }
95
+ /**
96
+ * Generate cache-optimized CLAUDE.md content
97
+ *
98
+ * @param analysis - Project analysis result
99
+ * @param dynamicContent - Optional dynamic content (session state, memories)
100
+ * @param softDisables - Optional soft tool disables
101
+ */
102
+ export declare function generateCacheOptimizedClaudeMd(analysis: AnalysisResult, dynamicContent?: string, softDisables?: SoftToolDisable[]): CacheOptimizedContent;
103
+ /**
104
+ * Check if content has cache optimization markers
105
+ */
106
+ export declare function hasCacheMarkers(content: string): boolean;
107
+ /**
108
+ * Extract stable prefix from cache-optimized content
109
+ */
110
+ export declare function extractStablePrefix(content: string): string | null;
111
+ /**
112
+ * Extract dynamic state from cache-optimized content
113
+ */
114
+ export declare function extractDynamicState(content: string): string | null;
115
+ /**
116
+ * Update only the dynamic state section
117
+ * Preserves stable prefix for cache efficiency
118
+ */
119
+ export declare function updateDynamicState(content: string, newDynamicContent: string, softDisables?: SoftToolDisable[]): string;
120
+ /**
121
+ * Estimate cache efficiency
122
+ * Returns ratio of stable content to total content
123
+ */
124
+ export declare function estimateCacheEfficiency(content: string): {
125
+ stableChars: number;
126
+ dynamicChars: number;
127
+ totalChars: number;
128
+ cacheRatio: number;
129
+ estimatedTokensSaved: number;
130
+ };
48
131
  //# sourceMappingURL=claude-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/core/generator/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAqCjE;AAqGD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,EACrD,UAAU,EAAE,MAAM,GACjB,MAAM,CA0BR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAsCxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAUrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAgCrE"}
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../../src/core/generator/claude-md.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAqCjE;AAqGD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,EACrD,UAAU,EAAE,MAAM,GACjB,MAAM,CA0BR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAsCxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAUrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAgCrE;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAgB5E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,eAAe,EAAE,GAC/B,qBAAqB,CAqEvB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUlE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,YAAY,CAAC,EAAE,eAAe,EAAE,GAC/B,MAAM,CAwBR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAoBA"}