codebuff 1.0.169 → 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 (103) hide show
  1. package/dist/browser-runner.js +17 -7
  2. package/dist/browser-runner.js.map +1 -1
  3. package/dist/chat-storage.d.ts +2 -27
  4. package/dist/chat-storage.js +73 -139
  5. package/dist/chat-storage.js.map +1 -1
  6. package/dist/checkpoint-file-manager.d.ts +8 -0
  7. package/dist/checkpoint-file-manager.js +125 -0
  8. package/dist/checkpoint-file-manager.js.map +1 -0
  9. package/dist/checkpoints.d.ts +61 -0
  10. package/dist/checkpoints.js +171 -0
  11. package/dist/checkpoints.js.map +1 -0
  12. package/dist/cli.d.ts +7 -8
  13. package/dist/cli.js +127 -155
  14. package/dist/cli.js.map +1 -1
  15. package/dist/client.d.ts +179 -28
  16. package/dist/client.js +154 -150
  17. package/dist/client.js.map +1 -1
  18. package/dist/code-map/languages.js +17 -7
  19. package/dist/code-map/languages.js.map +1 -1
  20. package/dist/code-map/parse.js +17 -7
  21. package/dist/code-map/parse.js.map +1 -1
  22. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  23. package/dist/common/actions.d.ts +2121 -560
  24. package/dist/common/actions.js +58 -81
  25. package/dist/common/actions.js.map +1 -1
  26. package/dist/common/constants/tools.d.ts +13 -0
  27. package/dist/common/constants/tools.js +22 -0
  28. package/dist/common/constants/tools.js.map +1 -0
  29. package/dist/common/constants.d.ts +0 -1
  30. package/dist/common/constants.js +3 -3
  31. package/dist/common/constants.js.map +1 -1
  32. package/dist/common/logger.d.ts +1 -0
  33. package/dist/common/logger.js +7 -0
  34. package/dist/common/logger.js.map +1 -0
  35. package/dist/common/types/agent-state.d.ts +461 -0
  36. package/dist/common/types/agent-state.js +30 -0
  37. package/dist/common/types/agent-state.js.map +1 -0
  38. package/dist/common/types/message.d.ts +311 -0
  39. package/dist/common/types/message.js +54 -0
  40. package/dist/common/types/message.js.map +1 -0
  41. package/dist/common/types/tools.d.ts +5 -0
  42. package/dist/common/types/tools.js +3 -0
  43. package/dist/common/types/tools.js.map +1 -0
  44. package/dist/common/util/changes.js +3 -3
  45. package/dist/common/util/changes.js.map +1 -1
  46. package/dist/common/util/constants.d.ts +1 -0
  47. package/dist/common/util/constants.js +7 -0
  48. package/dist/common/util/constants.js.map +1 -0
  49. package/dist/common/util/credentials.d.ts +4 -4
  50. package/dist/common/util/file.d.ts +6 -2
  51. package/dist/common/util/file.js +25 -24
  52. package/dist/common/util/file.js.map +1 -1
  53. package/dist/common/util/git.js +1 -1
  54. package/dist/common/util/git.js.map +1 -1
  55. package/dist/common/util/helpers.d.ts +1 -0
  56. package/dist/common/util/helpers.js +6 -0
  57. package/dist/common/util/helpers.js.map +1 -0
  58. package/dist/common/util/messages.d.ts +1 -1
  59. package/dist/common/util/promise.d.ts +8 -0
  60. package/dist/common/util/promise.js +25 -2
  61. package/dist/common/util/promise.js.map +1 -1
  62. package/dist/common/util/saxy.d.ts +158 -0
  63. package/dist/common/util/saxy.js +450 -0
  64. package/dist/common/util/saxy.js.map +1 -0
  65. package/dist/common/util/string.d.ts +13 -0
  66. package/dist/common/util/string.js +21 -1
  67. package/dist/common/util/string.js.map +1 -1
  68. package/dist/common/util/token-counter.d.ts +3 -0
  69. package/dist/common/util/token-counter.js +27 -0
  70. package/dist/common/util/token-counter.js.map +1 -0
  71. package/dist/common/websockets/websocket-schema.d.ts +3646 -530
  72. package/dist/create-template-project.js +17 -7
  73. package/dist/create-template-project.js.map +1 -1
  74. package/dist/index.js +5 -3
  75. package/dist/index.js.map +1 -1
  76. package/dist/menu.js +31 -19
  77. package/dist/menu.js.map +1 -1
  78. package/dist/project-files.d.ts +40 -2
  79. package/dist/project-files.js +94 -34
  80. package/dist/project-files.js.map +1 -1
  81. package/dist/tool-handlers.d.ts +21 -7
  82. package/dist/tool-handlers.js +99 -37
  83. package/dist/tool-handlers.js.map +1 -1
  84. package/dist/utils/__tests__/xml-stream-parser.test.js +221 -0
  85. package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -0
  86. package/dist/utils/spinner.d.ts +1 -0
  87. package/dist/utils/spinner.js +28 -7
  88. package/dist/utils/spinner.js.map +1 -1
  89. package/dist/utils/terminal.d.ts +23 -3
  90. package/dist/utils/terminal.js +68 -45
  91. package/dist/utils/terminal.js.map +1 -1
  92. package/dist/utils/tool-renderers.d.ts +16 -0
  93. package/dist/utils/tool-renderers.js +105 -0
  94. package/dist/utils/tool-renderers.js.map +1 -0
  95. package/dist/utils/xml-stream-parser.d.ts +9 -0
  96. package/dist/utils/xml-stream-parser.js +128 -0
  97. package/dist/utils/xml-stream-parser.js.map +1 -0
  98. package/dist/worker-script-project-context.js +1 -1
  99. package/dist/worker-script-project-context.js.map +1 -1
  100. package/package.json +2 -1
  101. package/dist/__tests__/browser-runner.test.js +0 -15
  102. package/dist/__tests__/browser-runner.test.js.map +0 -1
  103. /package/dist/{__tests__/browser-runner.test.d.ts → utils/__tests__/xml-stream-parser.test.d.ts} +0 -0
@@ -0,0 +1,171 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.checkpointManager = exports.CheckpointManager = void 0;
37
+ const picocolors_1 = require("picocolors");
38
+ const checkpointFileManager = __importStar(require("./checkpoint-file-manager"));
39
+ /**
40
+ * Simple in-memory checkpoint manager for agent states
41
+ */
42
+ class CheckpointManager {
43
+ checkpoints = new Map();
44
+ nextId = 1;
45
+ /**
46
+ * Add a new checkpoint
47
+ * @param agentState - The agent state to checkpoint
48
+ * @param userInput - The user input associated with this checkpoint
49
+ * @returns The ID of the created checkpoint
50
+ */
51
+ async addCheckpoint(agentState, userInput) {
52
+ // Use incremental ID starting at 1
53
+ const id = this.nextId++;
54
+ const fileStateIdPromise = checkpointFileManager.storeFileState(`Checkpoint ${id}`);
55
+ const checkpoint = {
56
+ agentStateString: JSON.stringify(agentState), // Deep clone to prevent reference issues
57
+ fileStateIdPromise,
58
+ historyLength: agentState.messageHistory.length,
59
+ id,
60
+ timestamp: Date.now(),
61
+ userInput,
62
+ };
63
+ // Add to map
64
+ this.checkpoints.set(id, checkpoint);
65
+ return id;
66
+ }
67
+ /**
68
+ * Get a checkpoint by ID
69
+ * @param id The checkpoint ID
70
+ * @returns The checkpoint or null if not found
71
+ */
72
+ getCheckpoint(id) {
73
+ if (id === null) {
74
+ return null;
75
+ }
76
+ const checkpoint = this.checkpoints.get(id);
77
+ return checkpoint || null;
78
+ }
79
+ /**
80
+ * Get all checkpoints
81
+ * @returns Array of all checkpoints
82
+ */
83
+ getAllCheckpoints() {
84
+ return Array.from(this.checkpoints.values());
85
+ }
86
+ /**
87
+ * Get the most recent checkpoint
88
+ * @returns The most recent checkpoint or null if none exist
89
+ */
90
+ getLatestCheckpoint() {
91
+ return this.checkpoints.get(this.nextId - 1) || null;
92
+ }
93
+ async restoreFileState(id) {
94
+ const checkpoint = this.getCheckpoint(id);
95
+ if (!checkpoint) {
96
+ return false;
97
+ }
98
+ checkpointFileManager.checkoutFileState(await checkpoint.fileStateIdPromise);
99
+ return true;
100
+ }
101
+ /**
102
+ * Clear all checkpoints
103
+ */
104
+ clearCheckpoints() {
105
+ this.checkpoints.clear();
106
+ this.nextId = 1; // Reset the ID counter when clearing
107
+ }
108
+ /**
109
+ * Get a formatted string representation of all checkpoints
110
+ * @param detailed Whether to include detailed information about each checkpoint
111
+ * @returns A formatted string representation of all checkpoints
112
+ */
113
+ getCheckpointsAsString(detailed = false) {
114
+ const checkpoints = this.getAllCheckpoints().sort((a, b) => a.id - b.id);
115
+ if (checkpoints.length === 0) {
116
+ return (0, picocolors_1.yellow)('No checkpoints available.');
117
+ }
118
+ const lines = [(0, picocolors_1.bold)((0, picocolors_1.underline)('Agent State Checkpoints:')), ''];
119
+ checkpoints.forEach((checkpoint) => {
120
+ const date = new Date(checkpoint.timestamp);
121
+ const formattedDate = date.toLocaleString();
122
+ const userInputOneLine = checkpoint.userInput.replaceAll('\n', ' ');
123
+ const userInput = userInputOneLine.length > 50
124
+ ? userInputOneLine.substring(0, 47) + '...'
125
+ : userInputOneLine;
126
+ lines.push(`${(0, picocolors_1.cyan)((0, picocolors_1.bold)(`#${checkpoint.id}`))} ${(0, picocolors_1.gray)(`[${formattedDate}]`)}:`);
127
+ lines.push(` ${(0, picocolors_1.blue)('Input')}: ${userInput}`);
128
+ if (detailed) {
129
+ // Add more details about the agent state if needed
130
+ const messageCount = checkpoint.historyLength;
131
+ lines.push(` ${(0, picocolors_1.blue)('Messages')}: ${messageCount}`);
132
+ // You can add more detailed information here as needed
133
+ // For example, file context information, etc.
134
+ }
135
+ lines.push(''); // Empty line between checkpoints
136
+ });
137
+ return lines.join('\n');
138
+ }
139
+ /**
140
+ * Get detailed information about a specific checkpoint
141
+ * @param id The checkpoint ID
142
+ * @returns A formatted string with detailed information about the checkpoint, or an error message if not found
143
+ */
144
+ getCheckpointDetails(id) {
145
+ const checkpoint = this.getCheckpoint(id);
146
+ if (!checkpoint) {
147
+ return (0, picocolors_1.cyan)(`\nCheckpoint #${id} not found.`);
148
+ }
149
+ const lines = [
150
+ (0, picocolors_1.cyan)(`Detailed information for checkpoint #${id}:`),
151
+ ];
152
+ const date = new Date(checkpoint.timestamp);
153
+ const formattedDate = date.toLocaleString();
154
+ lines.push(`${(0, picocolors_1.blue)('Created at')}: ${formattedDate}`);
155
+ if (checkpoint.userInput) {
156
+ lines.push(`${(0, picocolors_1.blue)('User input')}: ${checkpoint.userInput}`);
157
+ }
158
+ // Display more detailed information about the agent state
159
+ const messageCount = checkpoint.historyLength;
160
+ lines.push(`${(0, picocolors_1.blue)('Message history')}: ${messageCount} messages`);
161
+ // You could add more detailed information here as needed
162
+ return lines.join('\n');
163
+ }
164
+ getNextId() {
165
+ return this.nextId;
166
+ }
167
+ }
168
+ exports.CheckpointManager = CheckpointManager;
169
+ // Export a singleton instance for use throughout the application
170
+ exports.checkpointManager = new CheckpointManager();
171
+ //# 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
@@ -2,38 +2,34 @@ import { ProjectFileContext } from './common/util/file';
2
2
  import { CliOptions } from './types';
3
3
  export declare class CLI {
4
4
  private client;
5
- private chatStorage;
6
5
  private readyPromise;
7
6
  private git;
8
7
  private costMode;
9
8
  private rl;
10
9
  private isReceivingResponse;
11
10
  private stopResponse;
12
- private lastChanges;
13
11
  private lastSigintTime;
14
12
  private lastInputTime;
15
13
  private consecutiveFastInputs;
16
14
  private pastedContent;
17
15
  private isPasting;
18
- constructor(readyPromise: Promise<[void, ProjectFileContext]>, { git, costMode }: CliOptions);
16
+ constructor(readyPromise: Promise<[void, ProjectFileContext, void]>, { git, costMode }: CliOptions);
19
17
  private setupSignalHandlers;
20
18
  private initReadlineInterface;
21
19
  private completer;
22
20
  private setPrompt;
21
+ private promptWithCheckpointNumber;
23
22
  printInitialPrompt(initialInput?: string): Promise<void>;
24
23
  printDiff(): Promise<void>;
25
24
  private handleLine;
26
25
  private handleUserInput;
26
+ private beforeProcessCommand;
27
27
  private processCommand;
28
28
  private forwardUserInput;
29
29
  private returnControlToUser;
30
30
  private onWebSocketError;
31
31
  private onWebSocketReconnect;
32
- private sendUserInputAndAwaitResponse;
33
32
  private handleUndo;
34
- private handleRedo;
35
- private navigateFileVersion;
36
- private applyAndDisplayCurrentFileVersion;
37
33
  private handleKeyPress;
38
34
  private handleSigint;
39
35
  private handleEscKey;
@@ -41,6 +37,9 @@ export declare class CLI {
41
37
  private showEasterEgg;
42
38
  private handleExit;
43
39
  private detectPasting;
44
- private autoCommitChanges;
45
40
  private handleDiff;
41
+ private handleCheckpoints;
42
+ private handleRestoreCheckpoint;
43
+ private restoreAgentStateAndFiles;
44
+ private handleClearCheckpoints;
46
45
  }