@defai.digital/ax-cli 2.7.0 → 3.0.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.
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-2dd84869-e62d-46c8-9885-7e45f37f36e2.json +69 -0
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-484dc350-353f-4808-9ed1-ebb3cefdab37.json +24 -0
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-74a18b87-6172-4215-962b-44bb9f46a662.json +69 -0
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-870a5fb9-6e82-4ff2-8ec8-af4c251cc514.json +44 -0
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-93946601-0e83-456c-ba47-def9713124dd.json +24 -0
- package/.ax-cli/checkpoints/metadata.json +62 -0
- package/README.md +87 -11
- package/dist/agent/context-manager.d.ts +2 -2
- package/dist/agent/context-manager.js +37 -15
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/dependency-resolver.d.ts +83 -0
- package/dist/agent/dependency-resolver.js +310 -0
- package/dist/agent/dependency-resolver.js.map +1 -0
- package/dist/agent/llm-agent.d.ts +111 -0
- package/dist/agent/llm-agent.js +625 -3
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/specialized/analysis-agent.d.ts +11 -0
- package/dist/agent/specialized/analysis-agent.js +33 -0
- package/dist/agent/specialized/analysis-agent.js.map +1 -0
- package/dist/agent/specialized/debug-agent.d.ts +11 -0
- package/dist/agent/specialized/debug-agent.js +33 -0
- package/dist/agent/specialized/debug-agent.js.map +1 -0
- package/dist/agent/specialized/documentation-agent.d.ts +11 -0
- package/dist/agent/specialized/documentation-agent.js +33 -0
- package/dist/agent/specialized/documentation-agent.js.map +1 -0
- package/dist/agent/specialized/index.d.ts +11 -0
- package/dist/agent/specialized/index.js +12 -0
- package/dist/agent/specialized/index.js.map +1 -0
- package/dist/agent/specialized/performance-agent.d.ts +11 -0
- package/dist/agent/specialized/performance-agent.js +33 -0
- package/dist/agent/specialized/performance-agent.js.map +1 -0
- package/dist/agent/specialized/refactoring-agent.d.ts +11 -0
- package/dist/agent/specialized/refactoring-agent.js +33 -0
- package/dist/agent/specialized/refactoring-agent.js.map +1 -0
- package/dist/agent/specialized/testing-agent.d.ts +11 -0
- package/dist/agent/specialized/testing-agent.js +33 -0
- package/dist/agent/specialized/testing-agent.js.map +1 -0
- package/dist/agent/subagent-orchestrator.d.ts +128 -0
- package/dist/agent/subagent-orchestrator.js +388 -0
- package/dist/agent/subagent-orchestrator.js.map +1 -0
- package/dist/agent/subagent-types.d.ts +262 -0
- package/dist/agent/subagent-types.js +152 -0
- package/dist/agent/subagent-types.js.map +1 -0
- package/dist/agent/subagent.d.ts +88 -0
- package/dist/agent/subagent.js +426 -0
- package/dist/agent/subagent.js.map +1 -0
- package/dist/checkpoint/index.d.ts +9 -0
- package/dist/checkpoint/index.js +11 -0
- package/dist/checkpoint/index.js.map +1 -0
- package/dist/checkpoint/manager.d.ts +99 -0
- package/dist/checkpoint/manager.js +281 -0
- package/dist/checkpoint/manager.js.map +1 -0
- package/dist/checkpoint/storage.d.ts +31 -0
- package/dist/checkpoint/storage.js +265 -0
- package/dist/checkpoint/storage.js.map +1 -0
- package/dist/checkpoint/types.d.ts +111 -0
- package/dist/checkpoint/types.js +17 -0
- package/dist/checkpoint/types.js.map +1 -0
- package/dist/commands/cache.js +5 -3
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/memory.js +21 -16
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/plan.d.ts +43 -0
- package/dist/commands/plan.js +385 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/rewind.d.ts +19 -0
- package/dist/commands/rewind.js +221 -0
- package/dist/commands/rewind.js.map +1 -0
- package/dist/constants.d.ts +28 -0
- package/dist/constants.js +29 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/use-enhanced-input.d.ts +5 -1
- package/dist/hooks/use-enhanced-input.js +23 -10
- package/dist/hooks/use-enhanced-input.js.map +1 -1
- package/dist/hooks/use-input-handler.d.ts +11 -1
- package/dist/hooks/use-input-handler.js +294 -2
- package/dist/hooks/use-input-handler.js.map +1 -1
- package/dist/llm/client.js +2 -1
- package/dist/llm/client.js.map +1 -1
- package/dist/llm/tools.d.ts +5 -0
- package/dist/llm/tools.js +57 -6
- package/dist/llm/tools.js.map +1 -1
- package/dist/mcp/client.d.ts +1 -0
- package/dist/mcp/client.js +30 -8
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/transports.d.ts +0 -1
- package/dist/mcp/transports.js +10 -7
- package/dist/mcp/transports.js.map +1 -1
- package/dist/planner/dependency-resolver.d.ts +72 -0
- package/dist/planner/dependency-resolver.js +272 -0
- package/dist/planner/dependency-resolver.js.map +1 -0
- package/dist/planner/index.d.ts +12 -0
- package/dist/planner/index.js +26 -0
- package/dist/planner/index.js.map +1 -0
- package/dist/planner/plan-generator.d.ts +74 -0
- package/dist/planner/plan-generator.js +244 -0
- package/dist/planner/plan-generator.js.map +1 -0
- package/dist/planner/plan-storage.d.ts +98 -0
- package/dist/planner/plan-storage.js +325 -0
- package/dist/planner/plan-storage.js.map +1 -0
- package/dist/planner/prompts/planning-prompt.d.ts +41 -0
- package/dist/planner/prompts/planning-prompt.js +289 -0
- package/dist/planner/prompts/planning-prompt.js.map +1 -0
- package/dist/planner/task-planner.d.ts +135 -0
- package/dist/planner/task-planner.js +493 -0
- package/dist/planner/task-planner.js.map +1 -0
- package/dist/planner/token-estimator.d.ts +63 -0
- package/dist/planner/token-estimator.js +295 -0
- package/dist/planner/token-estimator.js.map +1 -0
- package/dist/planner/types.d.ts +669 -0
- package/dist/planner/types.js +213 -0
- package/dist/planner/types.js.map +1 -0
- package/dist/schemas/api-schemas.js +4 -0
- package/dist/schemas/api-schemas.js.map +1 -1
- package/dist/schemas/confirmation-schemas.d.ts +5 -0
- package/dist/schemas/confirmation-schemas.js +7 -0
- package/dist/schemas/confirmation-schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +4 -4
- package/dist/tools/bash-output.d.ts +25 -0
- package/dist/tools/bash-output.js +145 -0
- package/dist/tools/bash-output.js.map +1 -0
- package/dist/tools/bash.d.ts +46 -2
- package/dist/tools/bash.js +241 -42
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/search.js +34 -9
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/text-editor.d.ts +16 -0
- package/dist/tools/text-editor.js +37 -2
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/ui/components/chat-history.d.ts +1 -0
- package/dist/ui/components/chat-history.js +125 -41
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.js +10 -3
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +154 -45
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/collapsible-tool-result.d.ts +26 -0
- package/dist/ui/components/collapsible-tool-result.js +172 -0
- package/dist/ui/components/collapsible-tool-result.js.map +1 -0
- package/dist/ui/components/command-suggestions.js +2 -1
- package/dist/ui/components/command-suggestions.js.map +1 -1
- package/dist/ui/components/confirmation-dialog.js +25 -36
- package/dist/ui/components/confirmation-dialog.js.map +1 -1
- package/dist/ui/components/index.d.ts +8 -0
- package/dist/ui/components/index.js +9 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/components/keyboard-hints.d.ts +35 -0
- package/dist/ui/components/keyboard-hints.js +134 -0
- package/dist/ui/components/keyboard-hints.js.map +1 -0
- package/dist/ui/components/loading-spinner.d.ts +2 -1
- package/dist/ui/components/loading-spinner.js +86 -34
- package/dist/ui/components/loading-spinner.js.map +1 -1
- package/dist/ui/components/phase-progress.d.ts +21 -0
- package/dist/ui/components/phase-progress.js +228 -0
- package/dist/ui/components/phase-progress.js.map +1 -0
- package/dist/ui/components/quick-actions.d.ts +12 -0
- package/dist/ui/components/quick-actions.js +122 -0
- package/dist/ui/components/quick-actions.js.map +1 -0
- package/dist/ui/components/reasoning-display.d.ts +0 -80
- package/dist/ui/components/reasoning-display.js +0 -83
- package/dist/ui/components/reasoning-display.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +25 -0
- package/dist/ui/components/status-bar.js +125 -0
- package/dist/ui/components/status-bar.js.map +1 -0
- package/dist/ui/components/subagent-monitor.d.ts +29 -0
- package/dist/ui/components/subagent-monitor.js +150 -0
- package/dist/ui/components/subagent-monitor.js.map +1 -0
- package/dist/ui/components/toast-notification.d.ts +123 -0
- package/dist/ui/components/toast-notification.js +143 -0
- package/dist/ui/components/toast-notification.js.map +1 -0
- package/dist/ui/components/welcome-panel.d.ts +10 -0
- package/dist/ui/components/welcome-panel.js +107 -0
- package/dist/ui/components/welcome-panel.js.map +1 -0
- package/dist/utils/background-task-manager.d.ts +95 -0
- package/dist/utils/background-task-manager.js +330 -0
- package/dist/utils/background-task-manager.js.map +1 -0
- package/dist/utils/confirmation-service.js +8 -3
- package/dist/utils/confirmation-service.js.map +1 -1
- package/dist/utils/history-manager.d.ts +1 -0
- package/dist/utils/history-manager.js +40 -5
- package/dist/utils/history-manager.js.map +1 -1
- package/dist/utils/json-utils.d.ts +7 -0
- package/dist/utils/json-utils.js +70 -2
- package/dist/utils/json-utils.js.map +1 -1
- package/dist/utils/message-optimizer.d.ts +1 -0
- package/dist/utils/message-optimizer.js +7 -1
- package/dist/utils/message-optimizer.js.map +1 -1
- package/dist/utils/project-analyzer.js +5 -2
- package/dist/utils/project-analyzer.js.map +1 -1
- package/dist/utils/settings-manager.js +12 -10
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/utils/text-utils.js +3 -3
- package/dist/utils/text-utils.js.map +1 -1
- package/dist/utils/token-counter.d.ts +5 -0
- package/dist/utils/token-counter.js +18 -3
- package/dist/utils/token-counter.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/agent/subagent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint System
|
|
3
|
+
*
|
|
4
|
+
* Exports all checkpoint-related functionality
|
|
5
|
+
*/
|
|
6
|
+
export type { Checkpoint, CheckpointConfig, CheckpointFilter, CheckpointInfo, CheckpointMetadata, CheckpointOptions, CheckpointRestoreResult, CheckpointStats, CheckpointIndex, FileSnapshot, } from './types.js';
|
|
7
|
+
export { DEFAULT_CHECKPOINT_CONFIG } from './types.js';
|
|
8
|
+
export { CheckpointStorage, calculateHash, verifyFileSnapshot } from './storage.js';
|
|
9
|
+
export { CheckpointManager, getCheckpointManager, resetCheckpointManager } from './manager.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint System
|
|
3
|
+
*
|
|
4
|
+
* Exports all checkpoint-related functionality
|
|
5
|
+
*/
|
|
6
|
+
export { DEFAULT_CHECKPOINT_CONFIG } from './types.js';
|
|
7
|
+
// Storage
|
|
8
|
+
export { CheckpointStorage, calculateHash, verifyFileSnapshot } from './storage.js';
|
|
9
|
+
// Manager
|
|
10
|
+
export { CheckpointManager, getCheckpointManager, resetCheckpointManager } from './manager.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkpoint/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpF,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint Manager
|
|
3
|
+
*
|
|
4
|
+
* High-level API for checkpoint operations:
|
|
5
|
+
* - Creating checkpoints
|
|
6
|
+
* - Listing checkpoints
|
|
7
|
+
* - Restoring checkpoints
|
|
8
|
+
* - Pruning old checkpoints
|
|
9
|
+
* - Automatic checkpoint scheduling
|
|
10
|
+
*/
|
|
11
|
+
import type { Checkpoint, CheckpointConfig, CheckpointInfo, CheckpointOptions, CheckpointRestoreResult, CheckpointStats, CheckpointFilter } from './types.js';
|
|
12
|
+
import type { ChatEntry } from '../agent/llm-agent.js';
|
|
13
|
+
export declare class CheckpointManager {
|
|
14
|
+
private storage;
|
|
15
|
+
private config;
|
|
16
|
+
constructor(config?: Partial<CheckpointConfig>, baseDir?: string);
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Create a new checkpoint
|
|
20
|
+
*/
|
|
21
|
+
createCheckpoint(options: CheckpointOptions): Promise<Checkpoint>;
|
|
22
|
+
/**
|
|
23
|
+
* Restore a checkpoint
|
|
24
|
+
*/
|
|
25
|
+
restoreCheckpoint(checkpointId: string): Promise<CheckpointRestoreResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Apply a checkpoint (restore files and return conversation state)
|
|
28
|
+
* Alias for restoreCheckpoint for backward compatibility
|
|
29
|
+
*/
|
|
30
|
+
applyCheckpoint(checkpointId: string): Promise<CheckpointRestoreResult>;
|
|
31
|
+
/**
|
|
32
|
+
* List checkpoints with optional filtering
|
|
33
|
+
*/
|
|
34
|
+
listCheckpoints(filter?: CheckpointFilter): Promise<CheckpointInfo[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Get checkpoint by ID
|
|
37
|
+
*/
|
|
38
|
+
getCheckpoint(checkpointId: string): Promise<Checkpoint | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Get checkpoint info
|
|
41
|
+
*/
|
|
42
|
+
getCheckpointInfo(checkpointId: string): Promise<CheckpointInfo | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Delete a checkpoint
|
|
45
|
+
*/
|
|
46
|
+
deleteCheckpoint(checkpointId: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Get checkpoint statistics
|
|
49
|
+
*/
|
|
50
|
+
getStats(): Promise<CheckpointStats>;
|
|
51
|
+
/**
|
|
52
|
+
* Prune old checkpoints based on config
|
|
53
|
+
*/
|
|
54
|
+
pruneOldCheckpoints(): Promise<number>;
|
|
55
|
+
/**
|
|
56
|
+
* Compress old checkpoints based on config
|
|
57
|
+
*/
|
|
58
|
+
compressOldCheckpoints(): Promise<number>;
|
|
59
|
+
/**
|
|
60
|
+
* Run maintenance (pruning, compression, limit enforcement)
|
|
61
|
+
*/
|
|
62
|
+
runMaintenance(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Enforce maximum number of checkpoints
|
|
65
|
+
*/
|
|
66
|
+
private enforceCheckpointLimit;
|
|
67
|
+
/**
|
|
68
|
+
* Enforce storage size limit (in MB)
|
|
69
|
+
*/
|
|
70
|
+
private enforceStorageLimit;
|
|
71
|
+
/**
|
|
72
|
+
* Get conversation state from a checkpoint
|
|
73
|
+
*/
|
|
74
|
+
getConversationState(checkpointId: string): Promise<ChatEntry[] | null>;
|
|
75
|
+
/**
|
|
76
|
+
* Check if checkpoint should be created before an operation
|
|
77
|
+
*/
|
|
78
|
+
shouldCreateCheckpoint(operation: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Update configuration
|
|
81
|
+
*/
|
|
82
|
+
updateConfig(config: Partial<CheckpointConfig>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get current configuration
|
|
85
|
+
*/
|
|
86
|
+
getConfig(): CheckpointConfig;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get the singleton checkpoint manager instance
|
|
90
|
+
*/
|
|
91
|
+
export declare function getCheckpointManager(config?: Partial<CheckpointConfig>, baseDir?: string): CheckpointManager;
|
|
92
|
+
/**
|
|
93
|
+
* Initialize a new checkpoint manager instance (creates new singleton)
|
|
94
|
+
*/
|
|
95
|
+
export declare function initCheckpointManager(config?: Partial<CheckpointConfig>, baseDir?: string): CheckpointManager;
|
|
96
|
+
/**
|
|
97
|
+
* Reset the singleton instance (for testing)
|
|
98
|
+
*/
|
|
99
|
+
export declare function resetCheckpointManager(): void;
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint Manager
|
|
3
|
+
*
|
|
4
|
+
* High-level API for checkpoint operations:
|
|
5
|
+
* - Creating checkpoints
|
|
6
|
+
* - Listing checkpoints
|
|
7
|
+
* - Restoring checkpoints
|
|
8
|
+
* - Pruning old checkpoints
|
|
9
|
+
* - Automatic checkpoint scheduling
|
|
10
|
+
*/
|
|
11
|
+
import crypto from 'crypto';
|
|
12
|
+
import * as fs from 'fs/promises';
|
|
13
|
+
import { CheckpointStorage, calculateHash } from './storage.js';
|
|
14
|
+
import { DEFAULT_CHECKPOINT_CONFIG } from './types.js';
|
|
15
|
+
export class CheckpointManager {
|
|
16
|
+
storage;
|
|
17
|
+
config;
|
|
18
|
+
constructor(config, baseDir) {
|
|
19
|
+
this.config = { ...DEFAULT_CHECKPOINT_CONFIG, ...config };
|
|
20
|
+
// Use config.storageDir if provided, otherwise use baseDir parameter
|
|
21
|
+
const storageDir = this.config.storageDir || baseDir;
|
|
22
|
+
this.storage = new CheckpointStorage(storageDir);
|
|
23
|
+
}
|
|
24
|
+
async initialize() {
|
|
25
|
+
await this.storage.initialize();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a new checkpoint
|
|
29
|
+
*/
|
|
30
|
+
async createCheckpoint(options) {
|
|
31
|
+
if (!this.config.enabled) {
|
|
32
|
+
throw new Error('Checkpoint system is disabled');
|
|
33
|
+
}
|
|
34
|
+
const checkpointId = crypto.randomUUID();
|
|
35
|
+
const timestamp = new Date();
|
|
36
|
+
// Create file snapshots
|
|
37
|
+
const fileSnapshots = [];
|
|
38
|
+
for (const file of options.files) {
|
|
39
|
+
const hash = calculateHash(file.content);
|
|
40
|
+
fileSnapshots.push({
|
|
41
|
+
path: file.path,
|
|
42
|
+
content: file.content,
|
|
43
|
+
hash,
|
|
44
|
+
size: Buffer.byteLength(file.content, 'utf-8'),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Limit conversation depth
|
|
48
|
+
const conversationState = options.conversationState.slice(-this.config.conversationDepth);
|
|
49
|
+
// Generate default description if not provided
|
|
50
|
+
const defaultDescription = options.files.length > 0
|
|
51
|
+
? `Before modifying ${options.files.length === 1 ? options.files[0].path : `${options.files.length} files`}`
|
|
52
|
+
: 'Auto-generated checkpoint';
|
|
53
|
+
const checkpoint = {
|
|
54
|
+
id: checkpointId,
|
|
55
|
+
timestamp,
|
|
56
|
+
description: options.description || defaultDescription,
|
|
57
|
+
files: fileSnapshots,
|
|
58
|
+
conversationState,
|
|
59
|
+
metadata: {
|
|
60
|
+
model: options.metadata?.model || 'unknown',
|
|
61
|
+
triggeredBy: options.metadata?.triggeredBy || 'manual',
|
|
62
|
+
...options.metadata,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
await this.storage.save(checkpoint);
|
|
66
|
+
// Run maintenance
|
|
67
|
+
await this.runMaintenance();
|
|
68
|
+
return checkpoint;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Restore a checkpoint
|
|
72
|
+
*/
|
|
73
|
+
async restoreCheckpoint(checkpointId) {
|
|
74
|
+
const checkpoint = await this.storage.load(checkpointId);
|
|
75
|
+
if (!checkpoint) {
|
|
76
|
+
return {
|
|
77
|
+
success: false,
|
|
78
|
+
filesRestored: [],
|
|
79
|
+
filesFailed: [],
|
|
80
|
+
error: `Checkpoint ${checkpointId} not found`,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const filesRestored = [];
|
|
84
|
+
const filesFailed = [];
|
|
85
|
+
// Restore files
|
|
86
|
+
for (const snapshot of checkpoint.files) {
|
|
87
|
+
try {
|
|
88
|
+
await fs.writeFile(snapshot.path, snapshot.content, 'utf-8');
|
|
89
|
+
filesRestored.push(snapshot.path);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
filesFailed.push(snapshot.path);
|
|
93
|
+
console.error(`Failed to restore ${snapshot.path}: ${error.message}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
success: filesFailed.length === 0,
|
|
98
|
+
filesRestored,
|
|
99
|
+
filesFailed,
|
|
100
|
+
conversationIndex: checkpoint.conversationState.length,
|
|
101
|
+
error: filesFailed.length > 0
|
|
102
|
+
? `Failed to restore ${filesFailed.length} file(s)`
|
|
103
|
+
: undefined,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Apply a checkpoint (restore files and return conversation state)
|
|
108
|
+
* Alias for restoreCheckpoint for backward compatibility
|
|
109
|
+
*/
|
|
110
|
+
async applyCheckpoint(checkpointId) {
|
|
111
|
+
return await this.restoreCheckpoint(checkpointId);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* List checkpoints with optional filtering
|
|
115
|
+
*/
|
|
116
|
+
async listCheckpoints(filter) {
|
|
117
|
+
let checkpoints = await this.storage.listInfo();
|
|
118
|
+
// Apply filters
|
|
119
|
+
// Support both beforeDate/until (before this date, i.e., <=)
|
|
120
|
+
const beforeDate = filter?.beforeDate || filter?.until;
|
|
121
|
+
if (beforeDate) {
|
|
122
|
+
checkpoints = checkpoints.filter(c => c.timestamp <= beforeDate);
|
|
123
|
+
}
|
|
124
|
+
// Support both afterDate/since (after this date, i.e., >=)
|
|
125
|
+
const afterDate = filter?.afterDate || filter?.since;
|
|
126
|
+
if (afterDate) {
|
|
127
|
+
checkpoints = checkpoints.filter(c => c.timestamp >= afterDate);
|
|
128
|
+
}
|
|
129
|
+
if (filter?.filesChanged) {
|
|
130
|
+
checkpoints = checkpoints.filter(c => filter.filesChanged.some(searchPath => c.filesChanged.some(filePath => filePath.includes(searchPath))));
|
|
131
|
+
}
|
|
132
|
+
// Apply limit
|
|
133
|
+
if (filter?.limit) {
|
|
134
|
+
checkpoints = checkpoints.slice(0, filter.limit);
|
|
135
|
+
}
|
|
136
|
+
return checkpoints;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get checkpoint by ID
|
|
140
|
+
*/
|
|
141
|
+
async getCheckpoint(checkpointId) {
|
|
142
|
+
return await this.storage.load(checkpointId);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get checkpoint info
|
|
146
|
+
*/
|
|
147
|
+
async getCheckpointInfo(checkpointId) {
|
|
148
|
+
return await this.storage.getCheckpointInfo(checkpointId);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Delete a checkpoint
|
|
152
|
+
*/
|
|
153
|
+
async deleteCheckpoint(checkpointId) {
|
|
154
|
+
await this.storage.delete(checkpointId);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get checkpoint statistics
|
|
158
|
+
*/
|
|
159
|
+
async getStats() {
|
|
160
|
+
return await this.storage.getStats();
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Prune old checkpoints based on config
|
|
164
|
+
*/
|
|
165
|
+
async pruneOldCheckpoints() {
|
|
166
|
+
const pruneDate = new Date();
|
|
167
|
+
pruneDate.setDate(pruneDate.getDate() - this.config.pruneAfterDays);
|
|
168
|
+
return await this.storage.pruneOlderThan(pruneDate);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Compress old checkpoints based on config
|
|
172
|
+
*/
|
|
173
|
+
async compressOldCheckpoints() {
|
|
174
|
+
const compressDate = new Date();
|
|
175
|
+
compressDate.setDate(compressDate.getDate() - this.config.compressAfterDays);
|
|
176
|
+
const checkpoints = await this.storage.listInfo();
|
|
177
|
+
let compressed = 0;
|
|
178
|
+
for (const checkpoint of checkpoints) {
|
|
179
|
+
if (checkpoint.timestamp < compressDate && !checkpoint.compressed) {
|
|
180
|
+
await this.storage.compress(checkpoint.id);
|
|
181
|
+
compressed++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return compressed;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Run maintenance (pruning, compression, limit enforcement)
|
|
188
|
+
*/
|
|
189
|
+
async runMaintenance() {
|
|
190
|
+
// Compress old checkpoints
|
|
191
|
+
await this.compressOldCheckpoints();
|
|
192
|
+
// Prune very old checkpoints
|
|
193
|
+
await this.pruneOldCheckpoints();
|
|
194
|
+
// Enforce max checkpoints limit
|
|
195
|
+
await this.enforceCheckpointLimit();
|
|
196
|
+
// Enforce storage limit
|
|
197
|
+
await this.enforceStorageLimit();
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Enforce maximum number of checkpoints
|
|
201
|
+
*/
|
|
202
|
+
async enforceCheckpointLimit() {
|
|
203
|
+
const checkpoints = await this.storage.listInfo();
|
|
204
|
+
if (checkpoints.length > this.config.maxCheckpoints) {
|
|
205
|
+
const toDelete = checkpoints
|
|
206
|
+
.slice(this.config.maxCheckpoints)
|
|
207
|
+
.map(c => c.id);
|
|
208
|
+
for (const id of toDelete) {
|
|
209
|
+
await this.storage.delete(id);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Enforce storage size limit (in MB)
|
|
215
|
+
*/
|
|
216
|
+
async enforceStorageLimit() {
|
|
217
|
+
const stats = await this.storage.getStats();
|
|
218
|
+
const limitBytes = this.config.storageLimit * 1024 * 1024;
|
|
219
|
+
if (stats.totalSize > limitBytes) {
|
|
220
|
+
const checkpoints = await this.storage.listInfo();
|
|
221
|
+
let currentSize = stats.totalSize;
|
|
222
|
+
// Delete oldest checkpoints until under limit
|
|
223
|
+
for (let i = checkpoints.length - 1; i >= 0 && currentSize > limitBytes; i--) {
|
|
224
|
+
const checkpoint = checkpoints[i];
|
|
225
|
+
await this.storage.delete(checkpoint.id);
|
|
226
|
+
currentSize -= checkpoint.size;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get conversation state from a checkpoint
|
|
232
|
+
*/
|
|
233
|
+
async getConversationState(checkpointId) {
|
|
234
|
+
const checkpoint = await this.storage.load(checkpointId);
|
|
235
|
+
return checkpoint?.conversationState || null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Check if checkpoint should be created before an operation
|
|
239
|
+
*/
|
|
240
|
+
shouldCreateCheckpoint(operation) {
|
|
241
|
+
return (this.config.enabled &&
|
|
242
|
+
this.config.createBeforeOperations.includes(operation));
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Update configuration
|
|
246
|
+
*/
|
|
247
|
+
updateConfig(config) {
|
|
248
|
+
this.config = { ...this.config, ...config };
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get current configuration
|
|
252
|
+
*/
|
|
253
|
+
getConfig() {
|
|
254
|
+
return { ...this.config };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Singleton instance
|
|
258
|
+
let checkpointManagerInstance = null;
|
|
259
|
+
/**
|
|
260
|
+
* Get the singleton checkpoint manager instance
|
|
261
|
+
*/
|
|
262
|
+
export function getCheckpointManager(config, baseDir) {
|
|
263
|
+
if (!checkpointManagerInstance) {
|
|
264
|
+
checkpointManagerInstance = new CheckpointManager(config, baseDir);
|
|
265
|
+
}
|
|
266
|
+
return checkpointManagerInstance;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Initialize a new checkpoint manager instance (creates new singleton)
|
|
270
|
+
*/
|
|
271
|
+
export function initCheckpointManager(config, baseDir) {
|
|
272
|
+
checkpointManagerInstance = new CheckpointManager(config, baseDir);
|
|
273
|
+
return checkpointManagerInstance;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Reset the singleton instance (for testing)
|
|
277
|
+
*/
|
|
278
|
+
export function resetCheckpointManager() {
|
|
279
|
+
checkpointManagerInstance = null;
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/checkpoint/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkpoint Storage Layer
|
|
3
|
+
*/
|
|
4
|
+
import type { Checkpoint, CheckpointInfo, CheckpointStats, FileSnapshot } from './types.js';
|
|
5
|
+
export declare class CheckpointStorage {
|
|
6
|
+
private storageDir;
|
|
7
|
+
private indexPath;
|
|
8
|
+
private index;
|
|
9
|
+
constructor(baseDir?: string);
|
|
10
|
+
initialize(): Promise<void>;
|
|
11
|
+
save(checkpoint: Checkpoint): Promise<void>;
|
|
12
|
+
load(checkpointId: string): Promise<Checkpoint | null>;
|
|
13
|
+
delete(checkpointId: string): Promise<void>;
|
|
14
|
+
compress(checkpointId: string): Promise<void>;
|
|
15
|
+
getStats(): Promise<CheckpointStats>;
|
|
16
|
+
listInfo(): Promise<CheckpointInfo[]>;
|
|
17
|
+
list(): Promise<string[]>;
|
|
18
|
+
getCheckpointInfo(checkpointId: string): Promise<CheckpointInfo | null>;
|
|
19
|
+
getTotalSize(): Promise<number>;
|
|
20
|
+
private loadIndex;
|
|
21
|
+
private saveIndex;
|
|
22
|
+
private addToIndex;
|
|
23
|
+
private removeFromIndex;
|
|
24
|
+
private updateCompressionStatus;
|
|
25
|
+
private updateStats;
|
|
26
|
+
private getDateDir;
|
|
27
|
+
private findCheckpointFile;
|
|
28
|
+
pruneOlderThan(date: Date): Promise<number>;
|
|
29
|
+
}
|
|
30
|
+
export declare function calculateHash(content: string): string;
|
|
31
|
+
export declare function verifyFileSnapshot(snapshot: FileSnapshot): boolean;
|