dino-spec 13.6.0 → 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/bin/dino-hud.js +1 -1
- package/bin/dino.js +1 -1
- package/dist/core/agents/context-isolation.js +26 -26
- 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/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/index.d.ts +7 -3
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +22 -3
- package/dist/core/context/index.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/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/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/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/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/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/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/index.d.ts +3 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +13 -1
- 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 +27 -2
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Context Management Module -
|
|
2
|
+
* Context Management Module - v14.0.0
|
|
3
3
|
*
|
|
4
4
|
* Tools for managing context window efficiently.
|
|
5
5
|
* Includes tool result protection, clearing recommendations,
|
|
6
6
|
* just-in-time context retrieval, automated clearing,
|
|
7
7
|
* summarization before clearing (v9.6.0), lazy context
|
|
8
|
-
* loading (v10.1.0), auto-lazy context (v12.5.0),
|
|
9
|
-
* auto context engineering (v13.3.0)
|
|
8
|
+
* loading (v10.1.0), auto-lazy context (v12.5.0),
|
|
9
|
+
* auto context engineering (v13.3.0), and
|
|
10
|
+
* optimized budget thresholds (v14.0.0).
|
|
10
11
|
*/
|
|
11
12
|
export {
|
|
12
13
|
// Constants
|
|
@@ -159,4 +160,22 @@ calculateStalenessScore, calculateRedundancyScore, calculateFragmentationScore,
|
|
|
159
160
|
calculateFocusFragmentationScore, calculateFocusDistribution,
|
|
160
161
|
// Formatting
|
|
161
162
|
formatHealthReport, formatHealthStatus, } from './context-health.js';
|
|
163
|
+
// Budget thresholds (v14.0.0)
|
|
164
|
+
export {
|
|
165
|
+
// Constants
|
|
166
|
+
OPTIMIZED_BUDGET_THRESHOLDS, LEGACY_BUDGET_THRESHOLDS, DEFAULT_SAFETY_MARGIN, DEFAULT_THRESHOLD_CONFIG,
|
|
167
|
+
// Functions
|
|
168
|
+
getThresholdLevel, calculateThresholdResult, loadThresholdConfig, isLegacyThresholds, getThresholdRecommendations, formatThresholdResult, calculateSafeCapacity, getEffectiveLimit, } from './budget-thresholds.js';
|
|
169
|
+
// Output persistence (v14.0.0)
|
|
170
|
+
export {
|
|
171
|
+
// Constants
|
|
172
|
+
OUTPUT_SIZE_THRESHOLD, OUTPUT_DIR, OUTPUT_RETENTION_DAYS,
|
|
173
|
+
// Functions
|
|
174
|
+
shouldPersist, persistOutput, readPersistedOutput, getOutputMetadata, listPersistedOutputs, cleanupExpiredOutputs, getPersistedOutputsStats, generateContentHash, generateOutputFilename, createFileReference, parseFileReference, formatPersistenceResult, } from './output-persistence.js';
|
|
175
|
+
// Auto compaction engine (v14.0.0)
|
|
176
|
+
export {
|
|
177
|
+
// Constants
|
|
178
|
+
AUTO_COMPACT_THRESHOLD, COMPACT_OUTPUT_DIR, AUTO_COMPACT_FEATURE_FLAG,
|
|
179
|
+
// Functions
|
|
180
|
+
shouldAutoCompact, getUsagePercent, generateSessionId, extractDecisions, extractBlockers, extractProgress, createStructuredCompaction, persistStructuredCompaction, listCompactions, runAutoCompaction, formatCompactionEngineResult, getCompactionEngineStats, } from './compaction-engine.js';
|
|
162
181
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/context/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Persistence - v14.0.0
|
|
3
|
+
*
|
|
4
|
+
* Persists large tool outputs to disk to reduce context usage.
|
|
5
|
+
* When tool outputs exceed the threshold (30K chars), they are
|
|
6
|
+
* saved to .dino/outputs/ and a file reference is returned instead.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Automatic size detection
|
|
10
|
+
* - Content hashing for deduplication
|
|
11
|
+
* - File reference format for retrieval
|
|
12
|
+
* - Automatic cleanup of old outputs
|
|
13
|
+
* - Integration with MCP tool results
|
|
14
|
+
*
|
|
15
|
+
* Reference: Anthropic context engineering best practices
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Output size threshold in characters
|
|
19
|
+
* Outputs larger than this will be persisted to disk
|
|
20
|
+
*/
|
|
21
|
+
export declare const OUTPUT_SIZE_THRESHOLD = 30000;
|
|
22
|
+
/**
|
|
23
|
+
* Directory for persisted outputs
|
|
24
|
+
*/
|
|
25
|
+
export declare const OUTPUT_DIR = ".dino/outputs";
|
|
26
|
+
/**
|
|
27
|
+
* Default retention period in days
|
|
28
|
+
*/
|
|
29
|
+
export declare const OUTPUT_RETENTION_DAYS = 7;
|
|
30
|
+
/**
|
|
31
|
+
* Persisted output metadata
|
|
32
|
+
*/
|
|
33
|
+
export interface PersistedOutput {
|
|
34
|
+
/** File path where output is stored */
|
|
35
|
+
path: string;
|
|
36
|
+
/** Content hash for deduplication */
|
|
37
|
+
hash: string;
|
|
38
|
+
/** Original content size in characters */
|
|
39
|
+
sizeChars: number;
|
|
40
|
+
/** ISO timestamp when created */
|
|
41
|
+
createdAt: string;
|
|
42
|
+
/** ISO timestamp when output expires */
|
|
43
|
+
expiresAt: string;
|
|
44
|
+
/** Original source identifier (e.g., tool name) */
|
|
45
|
+
source?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Output persistence result
|
|
49
|
+
*/
|
|
50
|
+
export interface OutputPersistenceResult {
|
|
51
|
+
/** Whether output was persisted to disk */
|
|
52
|
+
persisted: boolean;
|
|
53
|
+
/** File path (if persisted) or original content (if not) */
|
|
54
|
+
reference: string;
|
|
55
|
+
/** Original content size in characters */
|
|
56
|
+
originalSize: number;
|
|
57
|
+
/** Token estimate for original content */
|
|
58
|
+
estimatedTokens: number;
|
|
59
|
+
/** Token savings if persisted (original - reference) */
|
|
60
|
+
tokensSaved: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Persistence options
|
|
64
|
+
*/
|
|
65
|
+
export interface PersistenceOptions {
|
|
66
|
+
/** Size threshold in characters (default: 30K) */
|
|
67
|
+
threshold?: number;
|
|
68
|
+
/** Retention period in days (default: 7) */
|
|
69
|
+
retentionDays?: number;
|
|
70
|
+
/** Source identifier for tracking */
|
|
71
|
+
source?: string;
|
|
72
|
+
/** Force persistence even if below threshold */
|
|
73
|
+
force?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate content hash (first 8 characters of SHA-256)
|
|
77
|
+
*/
|
|
78
|
+
export declare function generateContentHash(content: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Generate output filename
|
|
81
|
+
* Format: {ISO-timestamp}-{hash}.txt
|
|
82
|
+
*/
|
|
83
|
+
export declare function generateOutputFilename(content: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Calculate expiration date
|
|
86
|
+
*/
|
|
87
|
+
export declare function calculateExpirationDate(retentionDays?: number): string;
|
|
88
|
+
/**
|
|
89
|
+
* Estimate tokens from character count
|
|
90
|
+
* Uses conservative 4 chars per token for English text
|
|
91
|
+
*/
|
|
92
|
+
export declare function estimateTokensFromChars(chars: number): number;
|
|
93
|
+
/**
|
|
94
|
+
* Check if output should be persisted based on size
|
|
95
|
+
*/
|
|
96
|
+
export declare function shouldPersist(content: string, options?: PersistenceOptions): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Create a file reference string for persisted output
|
|
99
|
+
* Format: [Output persisted to: .dino/outputs/filename.txt (X chars, ~Y tokens)]
|
|
100
|
+
*/
|
|
101
|
+
export declare function createFileReference(path: string, sizeChars: number): string;
|
|
102
|
+
/**
|
|
103
|
+
* Parse file reference to extract path
|
|
104
|
+
* Returns null if not a valid file reference
|
|
105
|
+
*/
|
|
106
|
+
export declare function parseFileReference(reference: string): string | null;
|
|
107
|
+
/**
|
|
108
|
+
* Persist output to disk
|
|
109
|
+
*/
|
|
110
|
+
export declare function persistOutput(content: string, projectDir?: string, options?: PersistenceOptions): Promise<OutputPersistenceResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Read persisted output from disk
|
|
113
|
+
*/
|
|
114
|
+
export declare function readPersistedOutput(filePath: string, projectDir?: string): Promise<string | null>;
|
|
115
|
+
/**
|
|
116
|
+
* Get metadata for persisted output
|
|
117
|
+
*/
|
|
118
|
+
export declare function getOutputMetadata(filePath: string, projectDir?: string): Promise<PersistedOutput | null>;
|
|
119
|
+
/**
|
|
120
|
+
* List all persisted outputs
|
|
121
|
+
*/
|
|
122
|
+
export declare function listPersistedOutputs(projectDir?: string): Promise<PersistedOutput[]>;
|
|
123
|
+
/**
|
|
124
|
+
* Clean up expired outputs
|
|
125
|
+
* Returns number of files cleaned up
|
|
126
|
+
*/
|
|
127
|
+
export declare function cleanupExpiredOutputs(projectDir?: string): Promise<number>;
|
|
128
|
+
/**
|
|
129
|
+
* Get total size of persisted outputs
|
|
130
|
+
*/
|
|
131
|
+
export declare function getPersistedOutputsStats(projectDir?: string): Promise<{
|
|
132
|
+
count: number;
|
|
133
|
+
totalChars: number;
|
|
134
|
+
estimatedTokensSaved: number;
|
|
135
|
+
oldestOutput: string | null;
|
|
136
|
+
newestOutput: string | null;
|
|
137
|
+
}>;
|
|
138
|
+
/**
|
|
139
|
+
* Format persistence result for display
|
|
140
|
+
*/
|
|
141
|
+
export declare function formatPersistenceResult(result: OutputPersistenceResult): string;
|
|
142
|
+
//# sourceMappingURL=output-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-persistence.d.ts","sourceRoot":"","sources":["../../../src/core/context/output-persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Persistence - v14.0.0
|
|
3
|
+
*
|
|
4
|
+
* Persists large tool outputs to disk to reduce context usage.
|
|
5
|
+
* When tool outputs exceed the threshold (30K chars), they are
|
|
6
|
+
* saved to .dino/outputs/ and a file reference is returned instead.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Automatic size detection
|
|
10
|
+
* - Content hashing for deduplication
|
|
11
|
+
* - File reference format for retrieval
|
|
12
|
+
* - Automatic cleanup of old outputs
|
|
13
|
+
* - Integration with MCP tool results
|
|
14
|
+
*
|
|
15
|
+
* Reference: Anthropic context engineering best practices
|
|
16
|
+
*/
|
|
17
|
+
import { join } from 'path';
|
|
18
|
+
import { createHash } from 'crypto';
|
|
19
|
+
import { FileSystem } from '../../utils/file-system.js';
|
|
20
|
+
/**
|
|
21
|
+
* Output size threshold in characters
|
|
22
|
+
* Outputs larger than this will be persisted to disk
|
|
23
|
+
*/
|
|
24
|
+
export const OUTPUT_SIZE_THRESHOLD = 30_000;
|
|
25
|
+
/**
|
|
26
|
+
* Directory for persisted outputs
|
|
27
|
+
*/
|
|
28
|
+
export const OUTPUT_DIR = '.dino/outputs';
|
|
29
|
+
/**
|
|
30
|
+
* Default retention period in days
|
|
31
|
+
*/
|
|
32
|
+
export const OUTPUT_RETENTION_DAYS = 7;
|
|
33
|
+
/**
|
|
34
|
+
* Generate content hash (first 8 characters of SHA-256)
|
|
35
|
+
*/
|
|
36
|
+
export function generateContentHash(content) {
|
|
37
|
+
return createHash('sha256').update(content).digest('hex').slice(0, 8);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Generate output filename
|
|
41
|
+
* Format: {ISO-timestamp}-{hash}.txt
|
|
42
|
+
*/
|
|
43
|
+
export function generateOutputFilename(content) {
|
|
44
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
45
|
+
const hash = generateContentHash(content);
|
|
46
|
+
return `${timestamp}-${hash}.txt`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Calculate expiration date
|
|
50
|
+
*/
|
|
51
|
+
export function calculateExpirationDate(retentionDays = OUTPUT_RETENTION_DAYS) {
|
|
52
|
+
const expirationDate = new Date();
|
|
53
|
+
expirationDate.setDate(expirationDate.getDate() + retentionDays);
|
|
54
|
+
return expirationDate.toISOString();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Estimate tokens from character count
|
|
58
|
+
* Uses conservative 4 chars per token for English text
|
|
59
|
+
*/
|
|
60
|
+
export function estimateTokensFromChars(chars) {
|
|
61
|
+
return Math.ceil(chars / 4);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if output should be persisted based on size
|
|
65
|
+
*/
|
|
66
|
+
export function shouldPersist(content, options = {}) {
|
|
67
|
+
if (options.force) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
const threshold = options.threshold ?? OUTPUT_SIZE_THRESHOLD;
|
|
71
|
+
return content.length > threshold;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a file reference string for persisted output
|
|
75
|
+
* Format: [Output persisted to: .dino/outputs/filename.txt (X chars, ~Y tokens)]
|
|
76
|
+
*/
|
|
77
|
+
export function createFileReference(path, sizeChars) {
|
|
78
|
+
const tokens = estimateTokensFromChars(sizeChars);
|
|
79
|
+
return `[Output persisted to: ${path} (${sizeChars.toLocaleString()} chars, ~${tokens.toLocaleString()} tokens)]`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parse file reference to extract path
|
|
83
|
+
* Returns null if not a valid file reference
|
|
84
|
+
*/
|
|
85
|
+
export function parseFileReference(reference) {
|
|
86
|
+
const match = reference.match(/\[Output persisted to: ([^\s]+)\s+\(/);
|
|
87
|
+
return match ? match[1] : null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Persist output to disk
|
|
91
|
+
*/
|
|
92
|
+
export async function persistOutput(content, projectDir = process.cwd(), options = {}) {
|
|
93
|
+
const originalSize = content.length;
|
|
94
|
+
const estimatedTokens = estimateTokensFromChars(originalSize);
|
|
95
|
+
// Check if should persist
|
|
96
|
+
if (!shouldPersist(content, options)) {
|
|
97
|
+
return {
|
|
98
|
+
persisted: false,
|
|
99
|
+
reference: content,
|
|
100
|
+
originalSize,
|
|
101
|
+
estimatedTokens,
|
|
102
|
+
tokensSaved: 0,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Ensure output directory exists
|
|
106
|
+
const outputDir = join(projectDir, OUTPUT_DIR);
|
|
107
|
+
await FileSystem.createDirectory(outputDir);
|
|
108
|
+
// Generate filename and path
|
|
109
|
+
const filename = generateOutputFilename(content);
|
|
110
|
+
const outputPath = join(outputDir, filename);
|
|
111
|
+
const relativePath = join(OUTPUT_DIR, filename);
|
|
112
|
+
// Write content to file
|
|
113
|
+
await FileSystem.writeFile(outputPath, content);
|
|
114
|
+
// Create metadata
|
|
115
|
+
const metadata = {
|
|
116
|
+
path: relativePath,
|
|
117
|
+
hash: generateContentHash(content),
|
|
118
|
+
sizeChars: originalSize,
|
|
119
|
+
createdAt: new Date().toISOString(),
|
|
120
|
+
expiresAt: calculateExpirationDate(options.retentionDays),
|
|
121
|
+
source: options.source,
|
|
122
|
+
};
|
|
123
|
+
// Write metadata file
|
|
124
|
+
const metadataPath = outputPath.replace('.txt', '.meta.json');
|
|
125
|
+
await FileSystem.writeJson(metadataPath, metadata);
|
|
126
|
+
// Create file reference
|
|
127
|
+
const reference = createFileReference(relativePath, originalSize);
|
|
128
|
+
const referenceTokens = estimateTokensFromChars(reference.length);
|
|
129
|
+
return {
|
|
130
|
+
persisted: true,
|
|
131
|
+
reference,
|
|
132
|
+
originalSize,
|
|
133
|
+
estimatedTokens,
|
|
134
|
+
tokensSaved: estimatedTokens - referenceTokens,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Read persisted output from disk
|
|
139
|
+
*/
|
|
140
|
+
export async function readPersistedOutput(filePath, projectDir = process.cwd()) {
|
|
141
|
+
// Handle both relative and absolute paths
|
|
142
|
+
const absolutePath = filePath.startsWith(projectDir)
|
|
143
|
+
? filePath
|
|
144
|
+
: join(projectDir, filePath);
|
|
145
|
+
return FileSystem.readFileSafe(absolutePath);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get metadata for persisted output
|
|
149
|
+
*/
|
|
150
|
+
export async function getOutputMetadata(filePath, projectDir = process.cwd()) {
|
|
151
|
+
const absolutePath = filePath.startsWith(projectDir)
|
|
152
|
+
? filePath
|
|
153
|
+
: join(projectDir, filePath);
|
|
154
|
+
const metadataPath = absolutePath.replace('.txt', '.meta.json');
|
|
155
|
+
return FileSystem.readJsonSafe(metadataPath);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* List all persisted outputs
|
|
159
|
+
*/
|
|
160
|
+
export async function listPersistedOutputs(projectDir = process.cwd()) {
|
|
161
|
+
const outputDir = join(projectDir, OUTPUT_DIR);
|
|
162
|
+
if (!(await FileSystem.exists(outputDir))) {
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
const files = await FileSystem.listDirectory(outputDir);
|
|
166
|
+
const outputs = [];
|
|
167
|
+
for (const file of files) {
|
|
168
|
+
if (file.endsWith('.meta.json')) {
|
|
169
|
+
const metadata = await FileSystem.readJsonSafe(join(outputDir, file));
|
|
170
|
+
if (metadata) {
|
|
171
|
+
outputs.push(metadata);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return outputs;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Clean up expired outputs
|
|
179
|
+
* Returns number of files cleaned up
|
|
180
|
+
*/
|
|
181
|
+
export async function cleanupExpiredOutputs(projectDir = process.cwd()) {
|
|
182
|
+
const outputs = await listPersistedOutputs(projectDir);
|
|
183
|
+
const now = new Date();
|
|
184
|
+
let cleaned = 0;
|
|
185
|
+
for (const output of outputs) {
|
|
186
|
+
const expiresAt = new Date(output.expiresAt);
|
|
187
|
+
if (expiresAt < now) {
|
|
188
|
+
const outputPath = join(projectDir, output.path);
|
|
189
|
+
const metadataPath = outputPath.replace('.txt', '.meta.json');
|
|
190
|
+
try {
|
|
191
|
+
await FileSystem.remove(outputPath);
|
|
192
|
+
await FileSystem.remove(metadataPath);
|
|
193
|
+
cleaned++;
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// Ignore deletion errors
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return cleaned;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get total size of persisted outputs
|
|
204
|
+
*/
|
|
205
|
+
export async function getPersistedOutputsStats(projectDir = process.cwd()) {
|
|
206
|
+
const outputs = await listPersistedOutputs(projectDir);
|
|
207
|
+
if (outputs.length === 0) {
|
|
208
|
+
return {
|
|
209
|
+
count: 0,
|
|
210
|
+
totalChars: 0,
|
|
211
|
+
estimatedTokensSaved: 0,
|
|
212
|
+
oldestOutput: null,
|
|
213
|
+
newestOutput: null,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
const totalChars = outputs.reduce((sum, o) => sum + o.sizeChars, 0);
|
|
217
|
+
const estimatedTokensSaved = estimateTokensFromChars(totalChars);
|
|
218
|
+
// Sort by creation date
|
|
219
|
+
outputs.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
220
|
+
return {
|
|
221
|
+
count: outputs.length,
|
|
222
|
+
totalChars,
|
|
223
|
+
estimatedTokensSaved,
|
|
224
|
+
oldestOutput: outputs[0].createdAt,
|
|
225
|
+
newestOutput: outputs[outputs.length - 1].createdAt,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Format persistence result for display
|
|
230
|
+
*/
|
|
231
|
+
export function formatPersistenceResult(result) {
|
|
232
|
+
if (!result.persisted) {
|
|
233
|
+
return `Output not persisted (${result.originalSize.toLocaleString()} chars, below threshold)`;
|
|
234
|
+
}
|
|
235
|
+
return [
|
|
236
|
+
`Output persisted successfully`,
|
|
237
|
+
`- Original size: ${result.originalSize.toLocaleString()} chars (~${result.estimatedTokens.toLocaleString()} tokens)`,
|
|
238
|
+
`- Tokens saved: ~${result.tokensSaved.toLocaleString()}`,
|
|
239
|
+
`- Reference: ${result.reference}`,
|
|
240
|
+
].join('\n');
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=output-persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-persistence.js","sourceRoot":"","sources":["../../../src/core/context/output-persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pre-verify.test.d.ts","sourceRoot":"","sources":["../../../../src/core/environment/__tests__/pre-verify.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|