codecane 1.0.156 → 1.0.171

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 (106) hide show
  1. package/dist/browser-runner.d.ts +2 -0
  2. package/dist/browser-runner.js +210 -135
  3. package/dist/browser-runner.js.map +1 -1
  4. package/dist/chat-storage.d.ts +1 -1
  5. package/dist/chat-storage.js +35 -31
  6. package/dist/chat-storage.js.map +1 -1
  7. package/dist/checkpoints.d.ts +64 -0
  8. package/dist/checkpoints.js +147 -0
  9. package/dist/checkpoints.js.map +1 -0
  10. package/dist/cli.d.ts +22 -16
  11. package/dist/cli.js +472 -367
  12. package/dist/cli.js.map +1 -1
  13. package/dist/client.d.ts +178 -25
  14. package/dist/client.js +252 -198
  15. package/dist/client.js.map +1 -1
  16. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  17. package/dist/common/actions.d.ts +2083 -443
  18. package/dist/common/actions.js +31 -78
  19. package/dist/common/actions.js.map +1 -1
  20. package/dist/common/browser-actions.d.ts +221 -141
  21. package/dist/common/browser-actions.js +25 -12
  22. package/dist/common/browser-actions.js.map +1 -1
  23. package/dist/common/constants/tools.d.ts +3 -0
  24. package/dist/common/constants/tools.js +24 -0
  25. package/dist/common/constants/tools.js.map +1 -0
  26. package/dist/common/constants.d.ts +14 -8
  27. package/dist/common/constants.js +7 -6
  28. package/dist/common/constants.js.map +1 -1
  29. package/dist/common/message-image-handling.d.ts +41 -0
  30. package/dist/common/message-image-handling.js +57 -0
  31. package/dist/common/message-image-handling.js.map +1 -0
  32. package/dist/common/project-file-tree.js +7 -7
  33. package/dist/common/project-file-tree.js.map +1 -1
  34. package/dist/common/types/agent-state.d.ts +461 -0
  35. package/dist/common/types/agent-state.js +30 -0
  36. package/dist/common/types/agent-state.js.map +1 -0
  37. package/dist/common/types/message.d.ts +311 -0
  38. package/dist/common/types/message.js +54 -0
  39. package/dist/common/types/message.js.map +1 -0
  40. package/dist/common/types/tools.d.ts +5 -0
  41. package/dist/common/types/tools.js +3 -0
  42. package/dist/common/types/tools.js.map +1 -0
  43. package/dist/common/util/__tests__/messages.test.js +70 -0
  44. package/dist/common/util/__tests__/messages.test.js.map +1 -0
  45. package/dist/common/util/changes.js +3 -3
  46. package/dist/common/util/changes.js.map +1 -1
  47. package/dist/common/util/credentials.d.ts +4 -4
  48. package/dist/common/util/file.d.ts +6 -2
  49. package/dist/common/util/file.js +30 -27
  50. package/dist/common/util/file.js.map +1 -1
  51. package/dist/common/util/git.js +1 -1
  52. package/dist/common/util/git.js.map +1 -1
  53. package/dist/common/util/lru-cache.d.ts +9 -0
  54. package/dist/common/util/lru-cache.js +42 -0
  55. package/dist/common/util/lru-cache.js.map +1 -0
  56. package/dist/common/util/messages.d.ts +6 -0
  57. package/dist/common/util/messages.js +22 -0
  58. package/dist/common/util/messages.js.map +1 -0
  59. package/dist/common/util/min-heap.d.ts +15 -0
  60. package/dist/common/util/min-heap.js +73 -0
  61. package/dist/common/util/min-heap.js.map +1 -0
  62. package/dist/common/util/process-stream.d.ts +8 -0
  63. package/dist/common/util/process-stream.js +102 -0
  64. package/dist/common/util/process-stream.js.map +1 -0
  65. package/dist/common/util/promise.d.ts +8 -0
  66. package/dist/common/util/promise.js +25 -2
  67. package/dist/common/util/promise.js.map +1 -1
  68. package/dist/common/util/string.d.ts +31 -0
  69. package/dist/common/util/string.js +71 -1
  70. package/dist/common/util/string.js.map +1 -1
  71. package/dist/common/websockets/websocket-schema.d.ts +3920 -938
  72. package/dist/config.d.ts +1 -0
  73. package/dist/config.js +3 -2
  74. package/dist/config.js.map +1 -1
  75. package/dist/credentials.d.ts +1 -0
  76. package/dist/credentials.js +7 -3
  77. package/dist/credentials.js.map +1 -1
  78. package/dist/index.js +3 -3
  79. package/dist/index.js.map +1 -1
  80. package/dist/menu.js +16 -12
  81. package/dist/menu.js.map +1 -1
  82. package/dist/project-files.d.ts +40 -2
  83. package/dist/project-files.js +95 -17
  84. package/dist/project-files.js.map +1 -1
  85. package/dist/tool-handlers.d.ts +22 -7
  86. package/dist/tool-handlers.js +110 -43
  87. package/dist/tool-handlers.js.map +1 -1
  88. package/dist/utils/logger.d.ts +1 -0
  89. package/dist/utils/logger.js +46 -0
  90. package/dist/utils/logger.js.map +1 -0
  91. package/dist/utils/process-xml-chunks.d.ts +37 -0
  92. package/dist/utils/process-xml-chunks.js +247 -0
  93. package/dist/utils/process-xml-chunks.js.map +1 -0
  94. package/dist/utils/spinner.d.ts +11 -0
  95. package/dist/utils/spinner.js +87 -0
  96. package/dist/utils/spinner.js.map +1 -0
  97. package/dist/utils/terminal.d.ts +3 -3
  98. package/dist/utils/terminal.js +23 -24
  99. package/dist/utils/terminal.js.map +1 -1
  100. package/dist/web-scraper.d.ts +1 -1
  101. package/dist/web-scraper.js +11 -7
  102. package/dist/web-scraper.js.map +1 -1
  103. package/package.json +3 -4
  104. package/dist/__tests__/browser-runner.test.js +0 -15
  105. package/dist/__tests__/browser-runner.test.js.map +0 -1
  106. /package/dist/{__tests__/browser-runner.test.d.ts → common/util/__tests__/messages.test.d.ts} +0 -0
@@ -27,6 +27,8 @@ exports.ChatStorage = void 0;
27
27
  const path = __importStar(require("path"));
28
28
  const fs = __importStar(require("fs"));
29
29
  const project_files_1 = require("./project-files");
30
+ const string_1 = require("./common/util/string");
31
+ const ts_pattern_1 = require("ts-pattern");
30
32
  class ChatStorage {
31
33
  currentChat;
32
34
  currentVersionIndex;
@@ -45,46 +47,48 @@ class ChatStorage {
45
47
  if (index === lastIndex) {
46
48
  return msg; // Preserve the most recent message in its entirety
47
49
  }
48
- // Helper function to clean up content string
50
+ // Helper function to clean up message content
49
51
  const cleanContent = (content) => {
50
- let result = content;
51
- if (content.includes('"screenshot"')) {
52
- result = result.replace(/"screenshot"\s*:\s*"[^"]+"/g, '"screenshot":"[SCREENSHOT_REMOVED]"');
53
- }
54
- if (content.includes('"logs"')) {
55
- result = result.replace(/"logs"\s*:\s*\[[^\]]*\]/g, '"logs":[LOGS_REMOVED]');
56
- }
57
- return result;
52
+ // Keep only tool logs
53
+ content = (0, string_1.transformJsonInString)(content, 'logs', (logs) => logs.filter((log) => log.source === 'tool'), '(LOGS_REMOVED)');
54
+ // Remove metrics
55
+ content = (0, string_1.transformJsonInString)(content, 'metrics', () => '(METRICS_REMOVED)', '(METRICS_REMOVED)');
56
+ return content;
58
57
  };
59
58
  // Clean up message content
60
59
  if (!msg.content)
61
60
  return msg;
62
- if (Array.isArray(msg.content)) {
63
- return {
64
- ...msg,
65
- content: msg.content.map((contentObj) => {
66
- if (contentObj.type === 'tool_result' && contentObj.content) {
67
- return {
68
- ...contentObj,
69
- content: cleanContent(contentObj.content),
70
- };
71
- }
72
- return contentObj;
73
- }),
74
- };
75
- }
76
- else if (typeof msg.content === 'string') {
77
- return {
78
- ...msg,
79
- content: cleanContent(msg.content),
80
- };
81
- }
82
- return msg;
61
+ return (0, ts_pattern_1.match)(msg)
62
+ .with({ content: ts_pattern_1.P.array() }, (message) => ({
63
+ ...message,
64
+ content: message.content.reduce((acc, contentObj) => [
65
+ ...acc,
66
+ ...(0, ts_pattern_1.match)(contentObj)
67
+ .with({ type: 'tool_result', content: ts_pattern_1.P.string }, (obj) => [
68
+ {
69
+ ...obj,
70
+ content: cleanContent(obj.content),
71
+ },
72
+ ])
73
+ .with({ type: 'text', text: ts_pattern_1.P.string }, (obj) => [
74
+ {
75
+ ...obj,
76
+ text: cleanContent(obj.text),
77
+ },
78
+ ])
79
+ .otherwise((obj) => [obj]),
80
+ ], []),
81
+ }))
82
+ .with({ content: ts_pattern_1.P.string }, (message) => ({
83
+ ...message,
84
+ content: cleanContent(message.content),
85
+ }))
86
+ .otherwise((message) => message);
83
87
  });
84
88
  // Add the new message
85
89
  chat.messages.push(message);
86
90
  chat.updatedAt = new Date().toISOString();
87
- // Save messages to .codebuff/messages/messages.json
91
+ // Save messages to chat directory
88
92
  this.saveMessagesToFile(chat);
89
93
  }
90
94
  saveMessagesToFile(chat) {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-storage.js","sourceRoot":"","sources":["../src/chat-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-storage.js","sourceRoot":"","sources":["../src/chat-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { AgentState } from './common/types/agent-state';
2
+ /**
3
+ * Interface representing a checkpoint of agent state
4
+ */
5
+ export interface Checkpoint {
6
+ agentStateString: string;
7
+ fileVersions: Record<string, string>;
8
+ historyLength: number;
9
+ id: number;
10
+ timestamp: number;
11
+ userInput: string;
12
+ }
13
+ /**
14
+ * Simple in-memory checkpoint manager for agent states
15
+ */
16
+ export declare class CheckpointManager {
17
+ private checkpoints;
18
+ private maxCheckpoints;
19
+ private nextId;
20
+ private oldestId;
21
+ constructor(maxCheckpoints?: number);
22
+ /**
23
+ * Add a new checkpoint
24
+ * TODO update this jsdoc and add comments to this function
25
+ * @param agentState - The agent state to checkpoint
26
+ * @param userInput - The user input associated with this checkpoint
27
+ * @returns The ID of the created checkpoint
28
+ */
29
+ addCheckpoint(agentState: AgentState, userInput: string, parentId?: number | null): number;
30
+ /**
31
+ * Get a checkpoint by ID
32
+ * @param id The checkpoint ID
33
+ * @returns The checkpoint or null if not found
34
+ */
35
+ getCheckpoint(id: number | null): Checkpoint | null;
36
+ /**
37
+ * Get all checkpoints
38
+ * @returns Array of all checkpoints
39
+ */
40
+ getAllCheckpoints(): Checkpoint[];
41
+ /**
42
+ * Get the most recent checkpoint
43
+ * @returns The most recent checkpoint or null if none exist
44
+ */
45
+ getLatestCheckpoint(): Checkpoint | null;
46
+ /**
47
+ * Clear all checkpoints
48
+ */
49
+ clearCheckpoints(): void;
50
+ /**
51
+ * Get a formatted string representation of all checkpoints
52
+ * @param detailed Whether to include detailed information about each checkpoint
53
+ * @returns A formatted string representation of all checkpoints
54
+ */
55
+ getCheckpointsAsString(detailed?: boolean): string;
56
+ /**
57
+ * Get detailed information about a specific checkpoint
58
+ * @param id The checkpoint ID
59
+ * @returns A formatted string with detailed information about the checkpoint, or an error message if not found
60
+ */
61
+ getCheckpointDetails(id: number): string;
62
+ getNextId(): number;
63
+ }
64
+ export declare const checkpointManager: CheckpointManager;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkpointManager = exports.CheckpointManager = void 0;
4
+ const picocolors_1 = require("picocolors");
5
+ /**
6
+ * Simple in-memory checkpoint manager for agent states
7
+ */
8
+ class CheckpointManager {
9
+ checkpoints = new Map();
10
+ maxCheckpoints;
11
+ nextId = 1;
12
+ oldestId = 1;
13
+ constructor(maxCheckpoints = 100) {
14
+ this.maxCheckpoints = maxCheckpoints;
15
+ }
16
+ /**
17
+ * Add a new checkpoint
18
+ * TODO update this jsdoc and add comments to this function
19
+ * @param agentState - The agent state to checkpoint
20
+ * @param userInput - The user input associated with this checkpoint
21
+ * @returns The ID of the created checkpoint
22
+ */
23
+ addCheckpoint(agentState, userInput, parentId = null) {
24
+ // Use incremental ID starting at 1
25
+ const id = this.nextId++;
26
+ const parentFileVersions = this.getCheckpoint(parentId)?.fileVersions || {};
27
+ const currentFileVersions = agentState.fileContext.fileVersions
28
+ .flat()
29
+ .reduce((acc, { path, content }) => {
30
+ acc[path] = content;
31
+ return acc;
32
+ }, {});
33
+ const checkpoint = {
34
+ agentStateString: JSON.stringify(agentState), // Deep clone to prevent reference issues
35
+ fileVersions: { ...parentFileVersions, ...currentFileVersions },
36
+ historyLength: agentState.messageHistory.length,
37
+ id,
38
+ timestamp: Date.now(),
39
+ userInput,
40
+ };
41
+ // Add to map
42
+ this.checkpoints.set(id, checkpoint);
43
+ // If we exceed the maximum number of checkpoints, remove the oldest one
44
+ if (this.checkpoints.size > this.maxCheckpoints) {
45
+ this.checkpoints.delete(this.oldestId);
46
+ this.oldestId++;
47
+ }
48
+ return id;
49
+ }
50
+ /**
51
+ * Get a checkpoint by ID
52
+ * @param id The checkpoint ID
53
+ * @returns The checkpoint or null if not found
54
+ */
55
+ getCheckpoint(id) {
56
+ if (id === null) {
57
+ return null;
58
+ }
59
+ const checkpoint = this.checkpoints.get(id);
60
+ return checkpoint || null;
61
+ }
62
+ /**
63
+ * Get all checkpoints
64
+ * @returns Array of all checkpoints
65
+ */
66
+ getAllCheckpoints() {
67
+ return Array.from(this.checkpoints.values());
68
+ }
69
+ /**
70
+ * Get the most recent checkpoint
71
+ * @returns The most recent checkpoint or null if none exist
72
+ */
73
+ getLatestCheckpoint() {
74
+ return this.checkpoints.get(this.nextId - 1) || null;
75
+ }
76
+ /**
77
+ * Clear all checkpoints
78
+ */
79
+ clearCheckpoints() {
80
+ this.checkpoints.clear();
81
+ this.nextId = 1; // Reset the ID counter when clearing
82
+ this.oldestId = 1;
83
+ }
84
+ /**
85
+ * Get a formatted string representation of all checkpoints
86
+ * @param detailed Whether to include detailed information about each checkpoint
87
+ * @returns A formatted string representation of all checkpoints
88
+ */
89
+ getCheckpointsAsString(detailed = false) {
90
+ const checkpoints = this.getAllCheckpoints().sort((a, b) => a.id - b.id);
91
+ if (checkpoints.length === 0) {
92
+ return (0, picocolors_1.yellow)('No checkpoints available.');
93
+ }
94
+ const lines = [(0, picocolors_1.bold)((0, picocolors_1.underline)('Agent State Checkpoints:')), ''];
95
+ checkpoints.forEach((checkpoint) => {
96
+ const date = new Date(checkpoint.timestamp);
97
+ const formattedDate = date.toLocaleString();
98
+ const userInputOneLine = checkpoint.userInput.replaceAll('\n', ' ');
99
+ const userInput = userInputOneLine.length > 50
100
+ ? userInputOneLine.substring(0, 47) + '...'
101
+ : userInputOneLine;
102
+ lines.push(`${(0, picocolors_1.cyan)((0, picocolors_1.bold)(`#${checkpoint.id}`))} ${(0, picocolors_1.gray)(`[${formattedDate}]`)}:`);
103
+ lines.push(` ${(0, picocolors_1.blue)('Input')}: ${userInput}`);
104
+ if (detailed) {
105
+ // Add more details about the agent state if needed
106
+ const messageCount = checkpoint.historyLength;
107
+ lines.push(` ${(0, picocolors_1.blue)('Messages')}: ${messageCount}`);
108
+ // You can add more detailed information here as needed
109
+ // For example, file context information, etc.
110
+ }
111
+ lines.push(''); // Empty line between checkpoints
112
+ });
113
+ return lines.join('\n');
114
+ }
115
+ /**
116
+ * Get detailed information about a specific checkpoint
117
+ * @param id The checkpoint ID
118
+ * @returns A formatted string with detailed information about the checkpoint, or an error message if not found
119
+ */
120
+ getCheckpointDetails(id) {
121
+ const checkpoint = this.getCheckpoint(id);
122
+ if (!checkpoint) {
123
+ return (0, picocolors_1.cyan)(`\nCheckpoint #${id} not found.`);
124
+ }
125
+ const lines = [
126
+ (0, picocolors_1.cyan)(`Detailed information for checkpoint #${id}:`),
127
+ ];
128
+ const date = new Date(checkpoint.timestamp);
129
+ const formattedDate = date.toLocaleString();
130
+ lines.push(`${(0, picocolors_1.blue)('Created at')}: ${formattedDate}`);
131
+ if (checkpoint.userInput) {
132
+ lines.push(`${(0, picocolors_1.blue)('User input')}: ${checkpoint.userInput}`);
133
+ }
134
+ // Display more detailed information about the agent state
135
+ const messageCount = checkpoint.historyLength;
136
+ lines.push(`${(0, picocolors_1.blue)('Message history')}: ${messageCount} messages`);
137
+ // You could add more detailed information here as needed
138
+ return lines.join('\n');
139
+ }
140
+ getNextId() {
141
+ return this.nextId;
142
+ }
143
+ }
144
+ exports.CheckpointManager = CheckpointManager;
145
+ // Export a singleton instance for use throughout the application
146
+ exports.checkpointManager = new CheckpointManager();
147
+ //# sourceMappingURL=checkpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../src/checkpoints.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -9,33 +9,39 @@ export declare class CLI {
9
9
  private rl;
10
10
  private isReceivingResponse;
11
11
  private stopResponse;
12
- private loadingInterval;
13
- private lastChanges;
14
12
  private lastSigintTime;
15
13
  private lastInputTime;
16
14
  private consecutiveFastInputs;
17
15
  private pastedContent;
18
16
  private isPasting;
19
17
  constructor(readyPromise: Promise<[void, ProjectFileContext]>, { git, costMode }: CliOptions);
18
+ private setupSignalHandlers;
19
+ private initReadlineInterface;
20
+ private completer;
21
+ private setPrompt;
22
+ private promptWithCheckpointNumber;
23
+ printInitialPrompt(initialInput?: string): Promise<void>;
24
+ printDiff(): Promise<void>;
25
+ private handleLine;
26
+ private handleUserInput;
27
+ private beforeProcessCommand;
28
+ private processCommand;
29
+ private forwardUserInput;
20
30
  private returnControlToUser;
21
31
  private onWebSocketError;
22
32
  private onWebSocketReconnect;
23
- private detectPasting;
24
- private handleInput;
25
- private setPrompt;
26
- printInitialPrompt(initialInput?: string): Promise<void>;
27
33
  private handleUndo;
28
- private handleRedo;
29
- private navigateFileVersion;
34
+ private handleKeyPress;
35
+ private handleSigint;
36
+ private handleEscKey;
30
37
  private handleStopResponse;
31
- private restoreCursor;
38
+ private showEasterEgg;
32
39
  private handleExit;
33
- private handleEscKey;
34
- private applyAndDisplayCurrentFileVersion;
35
- private startLoadingAnimation;
36
- private stopLoadingAnimation;
37
- private autoCommitChanges;
40
+ private detectPasting;
38
41
  private handleDiff;
39
- private handleUserInput;
40
- private sendUserInputAndAwaitResponse;
42
+ private handleCheckpoints;
43
+ private handleCheckpointDetail;
44
+ private handleRestoreCheckpoint;
45
+ private restoreAgentStateAndFiles;
46
+ private handleClearCheckpoints;
41
47
  }