codebuff 1.0.256 → 1.0.258
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/dist/background-process-manager.d.ts +50 -0
- package/dist/background-process-manager.js +359 -0
- package/dist/background-process-manager.js.map +1 -0
- package/dist/browser-runner.d.ts +35 -0
- package/dist/browser-runner.js +680 -0
- package/dist/browser-runner.js.map +1 -0
- package/dist/chat-storage.d.ts +2 -0
- package/dist/chat-storage.js +93 -0
- package/dist/chat-storage.js.map +1 -0
- package/dist/checkpoints/checkpoint-manager.d.ts +94 -0
- package/dist/checkpoints/checkpoint-manager.js +280 -0
- package/dist/checkpoints/checkpoint-manager.js.map +1 -0
- package/dist/checkpoints/file-manager.d.ts +72 -0
- package/dist/checkpoints/file-manager.js +294 -0
- package/dist/checkpoints/file-manager.js.map +1 -0
- package/dist/cli-handlers/api-key.d.ts +25 -0
- package/dist/cli-handlers/api-key.js +66 -0
- package/dist/cli-handlers/api-key.js.map +1 -0
- package/dist/cli-handlers/checkpoint.d.ts +18 -0
- package/dist/cli-handlers/checkpoint.js +195 -0
- package/dist/cli-handlers/checkpoint.js.map +1 -0
- package/dist/cli-handlers/diff.d.ts +2 -0
- package/dist/cli-handlers/diff.js +31 -0
- package/dist/cli-handlers/diff.js.map +1 -0
- package/dist/cli-handlers/easter-egg.d.ts +1 -0
- package/dist/cli-handlers/easter-egg.js +126 -0
- package/dist/cli-handlers/easter-egg.js.map +1 -0
- package/dist/cli-handlers/inititalization-flow.d.ts +1 -0
- package/dist/cli-handlers/inititalization-flow.js +24 -0
- package/dist/cli-handlers/inititalization-flow.js.map +1 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.js +485 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +151 -0
- package/dist/client.js +833 -0
- package/dist/client.js.map +1 -0
- package/dist/common/constants/analytics-events.d.ts +2 -1
- package/dist/common/constants/analytics-events.js +2 -1
- package/dist/common/constants/analytics-events.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/create-template-project.d.ts +1 -0
- package/dist/create-template-project.js +107 -0
- package/dist/create-template-project.js.map +1 -0
- package/dist/credentials.d.ts +4 -0
- package/dist/credentials.js +38 -0
- package/dist/credentials.js.map +1 -0
- package/dist/dev-process-manager.d.ts +10 -0
- package/dist/dev-process-manager.js +54 -0
- package/dist/dev-process-manager.js.map +1 -0
- package/dist/display.d.ts +9 -0
- package/dist/display.js +68 -0
- package/dist/display.js.map +1 -0
- package/dist/fingerprint.d.ts +1 -0
- package/dist/fingerprint.js +48 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +119 -0
- package/dist/index.js.map +1 -0
- package/dist/menu.d.ts +3 -0
- package/dist/menu.js +126 -0
- package/dist/menu.js.map +1 -0
- package/dist/project-files.d.ts +114 -0
- package/dist/project-files.js +513 -0
- package/dist/project-files.js.map +1 -0
- package/dist/startup-process-handler.d.ts +2 -0
- package/dist/startup-process-handler.js +21 -0
- package/dist/startup-process-handler.js.map +1 -0
- package/dist/tool-handlers.d.ts +28 -0
- package/dist/tool-handlers.js +240 -0
- package/dist/tool-handlers.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/update-codebuff.d.ts +1 -0
- package/dist/update-codebuff.js +160 -0
- package/dist/update-codebuff.js.map +1 -0
- package/dist/utils/__tests__/background-process-manager.test.d.ts +1 -0
- package/dist/utils/__tests__/background-process-manager.test.js +289 -0
- package/dist/utils/__tests__/background-process-manager.test.js.map +1 -0
- package/dist/utils/__tests__/tool-renderers.test.d.ts +1 -0
- package/dist/utils/__tests__/tool-renderers.test.js +51 -0
- package/dist/utils/__tests__/tool-renderers.test.js.map +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js +229 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -0
- package/dist/utils/analytics.d.ts +6 -0
- package/dist/utils/analytics.js +75 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/detect-shell.d.ts +1 -0
- package/dist/utils/detect-shell.js +60 -0
- package/dist/utils/detect-shell.js.map +1 -0
- package/dist/utils/git.d.ts +1 -0
- package/dist/utils/git.js +23 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/logger.d.ts +21 -0
- package/dist/utils/logger.js +105 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/spinner.d.ts +11 -0
- package/dist/utils/spinner.js +87 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/utils/system-info.d.ts +8 -0
- package/dist/utils/system-info.js +22 -0
- package/dist/utils/system-info.js.map +1 -0
- package/dist/utils/terminal.d.ts +43 -0
- package/dist/utils/terminal.js +493 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils/tool-renderers.d.ts +16 -0
- package/dist/utils/tool-renderers.js +148 -0
- package/dist/utils/tool-renderers.js.map +1 -0
- package/dist/utils/xml-stream-parser.d.ts +9 -0
- package/dist/utils/xml-stream-parser.js +128 -0
- package/dist/utils/xml-stream-parser.js.map +1 -0
- package/dist/web-scraper.d.ts +3 -0
- package/dist/web-scraper.js +57 -0
- package/dist/web-scraper.js.map +1 -0
- package/dist/workers/checkpoint-worker.d.ts +1 -0
- package/dist/workers/checkpoint-worker.js +48 -0
- package/dist/workers/checkpoint-worker.js.map +1 -0
- package/dist/workers/project-context.d.ts +1 -0
- package/dist/workers/project-context.js +17 -0
- package/dist/workers/project-context.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-runner.js","sourceRoot":"","sources":["../src/browser-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.setMessages = setMessages;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
const project_files_1 = require("./project-files");
|
|
30
|
+
const string_1 = require("./common/util/string");
|
|
31
|
+
const ts_pattern_1 = require("ts-pattern");
|
|
32
|
+
function setMessages(messages) {
|
|
33
|
+
// Clean up any screenshots and logs in previous messages
|
|
34
|
+
// Skip the last message as it may not have been processed by the backend yet
|
|
35
|
+
const lastIndex = messages.length - 1;
|
|
36
|
+
const cleanedMessages = messages.map((msg, index) => {
|
|
37
|
+
if (index === lastIndex) {
|
|
38
|
+
return msg; // Preserve the most recent message in its entirety
|
|
39
|
+
}
|
|
40
|
+
// Helper function to clean up message content
|
|
41
|
+
const cleanContent = (content) => {
|
|
42
|
+
// Keep only tool logs
|
|
43
|
+
content = (0, string_1.transformJsonInString)(content, 'logs', (logs) => logs.filter((log) => log.source === 'tool'), '(LOGS_REMOVED)');
|
|
44
|
+
// Remove metrics
|
|
45
|
+
content = (0, string_1.transformJsonInString)(content, 'metrics', () => '(METRICS_REMOVED)', '(METRICS_REMOVED)');
|
|
46
|
+
return content;
|
|
47
|
+
};
|
|
48
|
+
// Clean up message content
|
|
49
|
+
if (!msg.content)
|
|
50
|
+
return msg;
|
|
51
|
+
return (0, ts_pattern_1.match)(msg)
|
|
52
|
+
.with({ content: ts_pattern_1.P.array() }, (message) => ({
|
|
53
|
+
...message,
|
|
54
|
+
content: message.content.reduce((acc, contentObj) => [
|
|
55
|
+
...acc,
|
|
56
|
+
...(0, ts_pattern_1.match)(contentObj)
|
|
57
|
+
.with({ type: 'tool_result', content: ts_pattern_1.P.string }, (obj) => [
|
|
58
|
+
{
|
|
59
|
+
...obj,
|
|
60
|
+
content: cleanContent(obj.content),
|
|
61
|
+
},
|
|
62
|
+
])
|
|
63
|
+
.with({ type: 'text', text: ts_pattern_1.P.string }, (obj) => [
|
|
64
|
+
{
|
|
65
|
+
...obj,
|
|
66
|
+
text: cleanContent(obj.text),
|
|
67
|
+
},
|
|
68
|
+
])
|
|
69
|
+
.otherwise((obj) => [obj]),
|
|
70
|
+
], []),
|
|
71
|
+
}))
|
|
72
|
+
.with({ content: ts_pattern_1.P.string }, (message) => ({
|
|
73
|
+
...message,
|
|
74
|
+
content: cleanContent(message.content),
|
|
75
|
+
}))
|
|
76
|
+
.otherwise((message) => message);
|
|
77
|
+
});
|
|
78
|
+
// Save messages to chat directory
|
|
79
|
+
try {
|
|
80
|
+
const chatDir = (0, project_files_1.getCurrentChatDir)();
|
|
81
|
+
const messagesPath = path.join(chatDir, 'messages.json');
|
|
82
|
+
const messagesData = {
|
|
83
|
+
id: project_files_1.currentChatId,
|
|
84
|
+
messages: cleanedMessages,
|
|
85
|
+
updatedAt: new Date().toISOString(),
|
|
86
|
+
};
|
|
87
|
+
fs.writeFileSync(messagesPath, JSON.stringify(messagesData, null, 2));
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error('Failed to save messages to file:', error);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=chat-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-storage.js","sourceRoot":"","sources":["../src/chat-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { AgentState, ToolResult } from '../common/types/agent-state';
|
|
2
|
+
export declare class CheckpointsDisabledError extends Error {
|
|
3
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Interface representing a checkpoint of agent state
|
|
7
|
+
*/
|
|
8
|
+
export interface Checkpoint {
|
|
9
|
+
agentStateString: string;
|
|
10
|
+
lastToolResultsString: string;
|
|
11
|
+
/** Promise resolving to the git commit hash for this checkpoint */
|
|
12
|
+
fileStateIdPromise: Promise<string>;
|
|
13
|
+
/** Number of messages in the agent's history at checkpoint time */
|
|
14
|
+
historyLength: number;
|
|
15
|
+
id: number;
|
|
16
|
+
parentId: number;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
/** User input that triggered this checkpoint */
|
|
19
|
+
userInput: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Manages checkpoints of agent state and file state using git operations in a worker thread.
|
|
23
|
+
* Each checkpoint contains both the agent's conversation state and a git commit
|
|
24
|
+
* representing the state of all tracked files at that point.
|
|
25
|
+
*/
|
|
26
|
+
export declare class CheckpointManager {
|
|
27
|
+
checkpoints: Array<Checkpoint>;
|
|
28
|
+
currentCheckpointId: number;
|
|
29
|
+
disabledReason: string | null;
|
|
30
|
+
private bareRepoPath;
|
|
31
|
+
/** Stores the undo chain (leaf node first, current node last) */
|
|
32
|
+
private undoIds;
|
|
33
|
+
/** Worker thread for git operations */
|
|
34
|
+
private worker;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize or return the existing worker thread
|
|
37
|
+
* @returns The worker thread instance
|
|
38
|
+
*/
|
|
39
|
+
private initWorker;
|
|
40
|
+
/**
|
|
41
|
+
* Execute an operation in the worker thread with timeout handling
|
|
42
|
+
* @param message - The message describing the operation to perform
|
|
43
|
+
* @returns A promise that resolves with the operation result
|
|
44
|
+
* @throws {Error} if the operation fails or times out
|
|
45
|
+
*/
|
|
46
|
+
private runWorkerOperation;
|
|
47
|
+
/**
|
|
48
|
+
* Get the path to the bare git repository used for storing file states
|
|
49
|
+
* @returns The bare repo path
|
|
50
|
+
*/
|
|
51
|
+
private getBareRepoPath;
|
|
52
|
+
/**
|
|
53
|
+
* Add a new checkpoint of the current agent and file state
|
|
54
|
+
* @param agentState - The current agent state to checkpoint
|
|
55
|
+
* @param lastToolResults - The tool results from the last assistant turn
|
|
56
|
+
* @param userInput - The user input that triggered this checkpoint
|
|
57
|
+
* @returns The latest checkpoint and whether that checkpoint was created (or already existed)
|
|
58
|
+
* @throws {Error} If the checkpoint cannot be added
|
|
59
|
+
*/
|
|
60
|
+
addCheckpoint(agentState: AgentState, lastToolResults: ToolResult[], userInput: string, saveWithNoChanges?: boolean): Promise<{
|
|
61
|
+
checkpoint: Checkpoint;
|
|
62
|
+
created: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Get the most recent checkpoint
|
|
66
|
+
* @returns The most recent checkpoint or null if none exist
|
|
67
|
+
* @throws {CheckpointsDisabledError} If checkpoints are disabled
|
|
68
|
+
* @throws {ReferenceError} If no checkpoints exist
|
|
69
|
+
*/
|
|
70
|
+
getLatestCheckpoint(): Checkpoint;
|
|
71
|
+
/**
|
|
72
|
+
* Restore the file state from a specific checkpoint
|
|
73
|
+
* @param id - The ID of the checkpoint to restore
|
|
74
|
+
* @param resetUndoIds - Whether to reset the chain of undo/redo ids
|
|
75
|
+
* @throws {Error} If the file state cannot be restored
|
|
76
|
+
*/
|
|
77
|
+
restoreCheckointFileState({ id, resetUndoIds, }: {
|
|
78
|
+
id: number;
|
|
79
|
+
resetUndoIds?: boolean;
|
|
80
|
+
}): Promise<void>;
|
|
81
|
+
restoreUndoCheckpoint(): Promise<void>;
|
|
82
|
+
restoreRedoCheckpoint(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Clear all checkpoints
|
|
85
|
+
*/
|
|
86
|
+
clearCheckpoints(resetBareRepoPath?: boolean): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get a formatted string representation of all checkpoints
|
|
89
|
+
* @param detailed Whether to include detailed information about each checkpoint
|
|
90
|
+
* @returns A formatted string representation of all checkpoints
|
|
91
|
+
*/
|
|
92
|
+
getCheckpointsAsString(detailed?: boolean): string;
|
|
93
|
+
}
|
|
94
|
+
export declare const checkpointManager: CheckpointManager;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkpointManager = exports.CheckpointManager = exports.CheckpointsDisabledError = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const worker_threads_1 = require("worker_threads");
|
|
11
|
+
const project_file_tree_1 = require("../common/project-file-tree");
|
|
12
|
+
const picocolors_1 = require("picocolors");
|
|
13
|
+
const project_files_1 = require("../project-files");
|
|
14
|
+
const file_manager_1 = require("./file-manager");
|
|
15
|
+
class CheckpointsDisabledError extends Error {
|
|
16
|
+
constructor(message, options) {
|
|
17
|
+
super(message, options);
|
|
18
|
+
this.name = 'CheckpointsDisabledError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.CheckpointsDisabledError = CheckpointsDisabledError;
|
|
22
|
+
/**
|
|
23
|
+
* Manages checkpoints of agent state and file state using git operations in a worker thread.
|
|
24
|
+
* Each checkpoint contains both the agent's conversation state and a git commit
|
|
25
|
+
* representing the state of all tracked files at that point.
|
|
26
|
+
*/
|
|
27
|
+
class CheckpointManager {
|
|
28
|
+
checkpoints = [];
|
|
29
|
+
currentCheckpointId = 0;
|
|
30
|
+
disabledReason = null;
|
|
31
|
+
bareRepoPath = null;
|
|
32
|
+
/** Stores the undo chain (leaf node first, current node last) */
|
|
33
|
+
undoIds = [];
|
|
34
|
+
/** Worker thread for git operations */
|
|
35
|
+
worker = null;
|
|
36
|
+
/**
|
|
37
|
+
* Initialize or return the existing worker thread
|
|
38
|
+
* @returns The worker thread instance
|
|
39
|
+
*/
|
|
40
|
+
initWorker() {
|
|
41
|
+
if (!this.worker) {
|
|
42
|
+
// NOTE: Uses the built workers/checkpoint-worker.js within dist.
|
|
43
|
+
// So you need to run `bun run build` before running locally.
|
|
44
|
+
const workerPath = __filename.endsWith('.ts')
|
|
45
|
+
? (0, path_1.join)(__dirname, '../../dist', 'workers/checkpoint-worker.js')
|
|
46
|
+
: (0, path_1.join)(__dirname, '../workers/checkpoint-worker.js');
|
|
47
|
+
this.worker = new worker_threads_1.Worker(workerPath);
|
|
48
|
+
}
|
|
49
|
+
return this.worker;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute an operation in the worker thread with timeout handling
|
|
53
|
+
* @param message - The message describing the operation to perform
|
|
54
|
+
* @returns A promise that resolves with the operation result
|
|
55
|
+
* @throws {Error} if the operation fails or times out
|
|
56
|
+
*/
|
|
57
|
+
async runWorkerOperation(message) {
|
|
58
|
+
const worker = this.initWorker();
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
const timeoutMs = 30000; // 30 seconds timeout
|
|
61
|
+
const handler = (response) => {
|
|
62
|
+
if (response.id !== message.id) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (response.success) {
|
|
66
|
+
resolve(response.result);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
reject(new Error(response.error));
|
|
70
|
+
}
|
|
71
|
+
worker.off('message', handler);
|
|
72
|
+
};
|
|
73
|
+
worker.on('message', handler);
|
|
74
|
+
worker.postMessage(message);
|
|
75
|
+
// Add timeout
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
worker.off('message', handler);
|
|
78
|
+
reject(new Error('Worker operation timed out'));
|
|
79
|
+
}, timeoutMs);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the path to the bare git repository used for storing file states
|
|
84
|
+
* @returns The bare repo path
|
|
85
|
+
*/
|
|
86
|
+
getBareRepoPath() {
|
|
87
|
+
if (!this.bareRepoPath) {
|
|
88
|
+
this.bareRepoPath = (0, file_manager_1.getBareRepoPath)((0, project_files_1.getProjectRoot)());
|
|
89
|
+
}
|
|
90
|
+
return this.bareRepoPath;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Add a new checkpoint of the current agent and file state
|
|
94
|
+
* @param agentState - The current agent state to checkpoint
|
|
95
|
+
* @param lastToolResults - The tool results from the last assistant turn
|
|
96
|
+
* @param userInput - The user input that triggered this checkpoint
|
|
97
|
+
* @returns The latest checkpoint and whether that checkpoint was created (or already existed)
|
|
98
|
+
* @throws {Error} If the checkpoint cannot be added
|
|
99
|
+
*/
|
|
100
|
+
async addCheckpoint(agentState, lastToolResults, userInput, saveWithNoChanges = false) {
|
|
101
|
+
if (this.disabledReason !== null) {
|
|
102
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
103
|
+
}
|
|
104
|
+
const id = this.checkpoints.length + 1;
|
|
105
|
+
const projectDir = (0, project_files_1.getProjectRoot)();
|
|
106
|
+
if (projectDir === os_1.default.homedir()) {
|
|
107
|
+
this.disabledReason = 'In home directory';
|
|
108
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
109
|
+
}
|
|
110
|
+
const bareRepoPath = this.getBareRepoPath();
|
|
111
|
+
const relativeFilepaths = (0, project_file_tree_1.getAllFilePaths)(agentState.fileContext.fileTree);
|
|
112
|
+
if (relativeFilepaths.length >= project_file_tree_1.DEFAULT_MAX_FILES) {
|
|
113
|
+
this.disabledReason = 'Project too large';
|
|
114
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
115
|
+
}
|
|
116
|
+
const needToStage = saveWithNoChanges ||
|
|
117
|
+
(await (0, file_manager_1.hasUnsavedChanges)({
|
|
118
|
+
projectDir,
|
|
119
|
+
bareRepoPath,
|
|
120
|
+
relativeFilepaths,
|
|
121
|
+
})) ||
|
|
122
|
+
saveWithNoChanges;
|
|
123
|
+
if (!needToStage && this.checkpoints.length > 0) {
|
|
124
|
+
return {
|
|
125
|
+
checkpoint: this.checkpoints[this.checkpoints.length - 1],
|
|
126
|
+
created: false,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
let fileStateIdPromise;
|
|
130
|
+
if (needToStage) {
|
|
131
|
+
const params = {
|
|
132
|
+
type: 'store',
|
|
133
|
+
projectDir,
|
|
134
|
+
bareRepoPath,
|
|
135
|
+
message: `Checkpoint ${id}`,
|
|
136
|
+
relativeFilepaths,
|
|
137
|
+
};
|
|
138
|
+
fileStateIdPromise = this.runWorkerOperation({
|
|
139
|
+
...params,
|
|
140
|
+
id: JSON.stringify(params),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
fileStateIdPromise = (0, file_manager_1.getLatestCommit)({ bareRepoPath });
|
|
145
|
+
}
|
|
146
|
+
const checkpoint = {
|
|
147
|
+
agentStateString: JSON.stringify(agentState),
|
|
148
|
+
lastToolResultsString: JSON.stringify(lastToolResults),
|
|
149
|
+
fileStateIdPromise,
|
|
150
|
+
historyLength: agentState.messageHistory.length,
|
|
151
|
+
id,
|
|
152
|
+
parentId: this.currentCheckpointId,
|
|
153
|
+
timestamp: Date.now(),
|
|
154
|
+
userInput,
|
|
155
|
+
};
|
|
156
|
+
this.checkpoints.push(checkpoint);
|
|
157
|
+
this.currentCheckpointId = id;
|
|
158
|
+
this.undoIds = [];
|
|
159
|
+
return { checkpoint, created: true };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get the most recent checkpoint
|
|
163
|
+
* @returns The most recent checkpoint or null if none exist
|
|
164
|
+
* @throws {CheckpointsDisabledError} If checkpoints are disabled
|
|
165
|
+
* @throws {ReferenceError} If no checkpoints exist
|
|
166
|
+
*/
|
|
167
|
+
getLatestCheckpoint() {
|
|
168
|
+
if (this.disabledReason !== null) {
|
|
169
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
170
|
+
}
|
|
171
|
+
if (this.checkpoints.length === 0) {
|
|
172
|
+
throw new ReferenceError('No checkpoints available');
|
|
173
|
+
}
|
|
174
|
+
return this.checkpoints[this.checkpoints.length - 1];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Restore the file state from a specific checkpoint
|
|
178
|
+
* @param id - The ID of the checkpoint to restore
|
|
179
|
+
* @param resetUndoIds - Whether to reset the chain of undo/redo ids
|
|
180
|
+
* @throws {Error} If the file state cannot be restored
|
|
181
|
+
*/
|
|
182
|
+
async restoreCheckointFileState({ id, resetUndoIds = false, }) {
|
|
183
|
+
if (this.disabledReason !== null) {
|
|
184
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
185
|
+
}
|
|
186
|
+
const checkpoint = this.checkpoints[id - 1];
|
|
187
|
+
if (!checkpoint) {
|
|
188
|
+
throw new ReferenceError('No checkpoints available');
|
|
189
|
+
}
|
|
190
|
+
const relativeFilepaths = (0, project_file_tree_1.getAllFilePaths)(JSON.parse(checkpoint.agentStateString).fileContext
|
|
191
|
+
.fileTree);
|
|
192
|
+
const params = {
|
|
193
|
+
type: 'restore',
|
|
194
|
+
projectDir: (0, project_files_1.getProjectRoot)(),
|
|
195
|
+
bareRepoPath: this.getBareRepoPath(),
|
|
196
|
+
commit: await checkpoint.fileStateIdPromise,
|
|
197
|
+
relativeFilepaths,
|
|
198
|
+
};
|
|
199
|
+
await this.runWorkerOperation({ ...params, id: JSON.stringify(params) });
|
|
200
|
+
this.currentCheckpointId = id;
|
|
201
|
+
if (resetUndoIds) {
|
|
202
|
+
this.undoIds = [];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
async restoreUndoCheckpoint() {
|
|
206
|
+
if (this.disabledReason !== null) {
|
|
207
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
208
|
+
}
|
|
209
|
+
const currentCheckpoint = this.checkpoints[this.currentCheckpointId - 1];
|
|
210
|
+
(0, assert_1.default)(currentCheckpoint, `Internal error: checkpoint #${this.currentCheckpointId} not found`);
|
|
211
|
+
if (currentCheckpoint.parentId === 0) {
|
|
212
|
+
throw new ReferenceError('Already at earliest change');
|
|
213
|
+
}
|
|
214
|
+
await this.restoreCheckointFileState({ id: currentCheckpoint.parentId });
|
|
215
|
+
this.undoIds.push(currentCheckpoint.id);
|
|
216
|
+
}
|
|
217
|
+
async restoreRedoCheckpoint() {
|
|
218
|
+
if (this.disabledReason !== null) {
|
|
219
|
+
throw new CheckpointsDisabledError(this.disabledReason);
|
|
220
|
+
}
|
|
221
|
+
const targetId = this.undoIds.pop();
|
|
222
|
+
if (targetId === undefined) {
|
|
223
|
+
throw new ReferenceError('Nothing to redo');
|
|
224
|
+
}
|
|
225
|
+
// Check if targetId is either 0 or undefined
|
|
226
|
+
(0, assert_1.default)(targetId, `Internal error: Checkpoint ID ${targetId} found in undo list`);
|
|
227
|
+
try {
|
|
228
|
+
await this.restoreCheckointFileState({ id: targetId });
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
this.undoIds.push(targetId);
|
|
232
|
+
throw new Error('Unable to restore checkpoint', { cause: error });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Clear all checkpoints
|
|
237
|
+
*/
|
|
238
|
+
clearCheckpoints(resetBareRepoPath = false) {
|
|
239
|
+
this.checkpoints = [];
|
|
240
|
+
this.currentCheckpointId = 0;
|
|
241
|
+
this.undoIds = [];
|
|
242
|
+
if (resetBareRepoPath) {
|
|
243
|
+
this.bareRepoPath = null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get a formatted string representation of all checkpoints
|
|
248
|
+
* @param detailed Whether to include detailed information about each checkpoint
|
|
249
|
+
* @returns A formatted string representation of all checkpoints
|
|
250
|
+
*/
|
|
251
|
+
getCheckpointsAsString(detailed = false) {
|
|
252
|
+
if (this.disabledReason !== null) {
|
|
253
|
+
return (0, picocolors_1.red)(`Checkpoints not enabled: ${this.disabledReason}`);
|
|
254
|
+
}
|
|
255
|
+
if (this.checkpoints.length === 0) {
|
|
256
|
+
return (0, picocolors_1.yellow)('No checkpoints available.');
|
|
257
|
+
}
|
|
258
|
+
const lines = [(0, picocolors_1.bold)((0, picocolors_1.underline)('Agent State Checkpoints:')), ''];
|
|
259
|
+
this.checkpoints.forEach((checkpoint) => {
|
|
260
|
+
const date = new Date(checkpoint.timestamp);
|
|
261
|
+
const formattedDate = date.toLocaleString();
|
|
262
|
+
const userInputOneLine = checkpoint.userInput.replaceAll('\n', ' ');
|
|
263
|
+
const userInput = userInputOneLine.length > 50
|
|
264
|
+
? userInputOneLine.substring(0, 47) + '...'
|
|
265
|
+
: userInputOneLine;
|
|
266
|
+
lines.push(`${(0, picocolors_1.cyan)((0, picocolors_1.bold)(`#${checkpoint.id}`))} ${(0, picocolors_1.gray)(`[${formattedDate}]`)}:`);
|
|
267
|
+
lines.push(` ${(0, picocolors_1.blue)('Input')}: ${userInput}`);
|
|
268
|
+
if (detailed) {
|
|
269
|
+
const messageCount = checkpoint.historyLength;
|
|
270
|
+
lines.push(` ${(0, picocolors_1.blue)('Messages')}: ${messageCount}`);
|
|
271
|
+
}
|
|
272
|
+
lines.push(''); // Empty line between checkpoints
|
|
273
|
+
});
|
|
274
|
+
return lines.join('\n');
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
exports.CheckpointManager = CheckpointManager;
|
|
278
|
+
// Export a singleton instance for use throughout the application
|
|
279
|
+
exports.checkpointManager = new CheckpointManager();
|
|
280
|
+
//# sourceMappingURL=checkpoint-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/checkpoints/checkpoint-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a unique path for storing the bare git repository based on the project directory.
|
|
4
|
+
* Uses SHA-256 hashing to create a unique identifier.
|
|
5
|
+
* @param dir - The project directory path to hash
|
|
6
|
+
* @returns The full path where the bare repo should be stored
|
|
7
|
+
*/
|
|
8
|
+
export declare function getBareRepoPath(dir: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Checks if there are any uncommitted changes in the working directory.
|
|
11
|
+
* First attempts to use native git commands, falling back to isomorphic-git if unavailable.
|
|
12
|
+
* @param projectDir - The working tree directory path
|
|
13
|
+
* @param bareRepoPath - The bare git repository path
|
|
14
|
+
* @param relativeFilepaths - Array of file paths relative to projectDir to check
|
|
15
|
+
* @returns Promise resolving to true if there are uncommitted changes, false otherwise
|
|
16
|
+
*/
|
|
17
|
+
export declare function hasUnsavedChanges({ projectDir, bareRepoPath, relativeFilepaths, }: {
|
|
18
|
+
projectDir: string;
|
|
19
|
+
bareRepoPath: string;
|
|
20
|
+
relativeFilepaths: Array<string>;
|
|
21
|
+
}): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the hash of the latest commit in the repository.
|
|
24
|
+
* First attempts to use native git commands, falling back to isomorphic-git if unavailable.
|
|
25
|
+
* @param bareRepoPath - The bare git repository path
|
|
26
|
+
* @returns Promise resolving to the commit hash
|
|
27
|
+
*/
|
|
28
|
+
export declare function getLatestCommit({ bareRepoPath, }: {
|
|
29
|
+
bareRepoPath: string;
|
|
30
|
+
}): Promise<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Initializes a bare git repository for tracking file changes.
|
|
33
|
+
* Creates the repository if it doesn't exist, otherwise uses the existing one.
|
|
34
|
+
* Makes an initial commit of the current file state.
|
|
35
|
+
* @param projectDir - The working tree directory path
|
|
36
|
+
* @param relativeFilepaths - Array of file paths relative to projectDir to track
|
|
37
|
+
*/
|
|
38
|
+
export declare function initializeCheckpointFileManager({ projectDir, relativeFilepaths, }: {
|
|
39
|
+
projectDir: string;
|
|
40
|
+
relativeFilepaths: Array<string>;
|
|
41
|
+
}): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new commit with the current state of all tracked files.
|
|
44
|
+
* Stages all changes and creates a commit with the specified message.
|
|
45
|
+
* @param projectDir - The working tree directory path
|
|
46
|
+
* @param bareRepoPath - The bare git repository path
|
|
47
|
+
* @param message - The commit message
|
|
48
|
+
* @param relativeFilepaths - Array of file paths relative to projectDir to commit
|
|
49
|
+
* @returns Promise resolving to the new commit's hash
|
|
50
|
+
*/
|
|
51
|
+
export declare function storeFileState({ projectDir, bareRepoPath, message, relativeFilepaths: relativeFilepaths, }: {
|
|
52
|
+
projectDir: string;
|
|
53
|
+
bareRepoPath: string;
|
|
54
|
+
message: string;
|
|
55
|
+
relativeFilepaths: Array<string>;
|
|
56
|
+
}): Promise<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Restores the working directory and index to match the specified commit.
|
|
59
|
+
* Equivalent to `git reset --hard`
|
|
60
|
+
* First attempts to use native git commands, falling back to isomorphic-git if unavailable.
|
|
61
|
+
* @param projectDir - The working tree directory path
|
|
62
|
+
* @param bareRepoPath - The bare git repository path
|
|
63
|
+
* @param commit - The commit hash to restore to
|
|
64
|
+
* @param relativeFilepaths - Array of file paths relative to projectDir to restore
|
|
65
|
+
*/
|
|
66
|
+
export declare function restoreFileState({ projectDir, bareRepoPath, commit, relativeFilepaths, }: {
|
|
67
|
+
projectDir: string;
|
|
68
|
+
bareRepoPath: string;
|
|
69
|
+
commit: string;
|
|
70
|
+
relativeFilepaths: Array<string>;
|
|
71
|
+
}): Promise<void>;
|
|
72
|
+
export { fs };
|