codebuff 1.0.169 → 1.0.170

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
package/dist/client.d.ts CHANGED
@@ -1,19 +1,19 @@
1
- import { User } from './common/util/credentials';
2
- import { ChatStorage } from './chat-storage';
3
- import { FileChanges, UsageResponse } from './common/actions';
4
- import { type CostMode } from './common/constants';
5
1
  import * as readline from 'readline';
6
- import { FileVersion, ProjectFileContext } from './common/util/file';
2
+ import { FileChanges, UsageResponse } from './common/actions';
3
+ import { User } from './common/util/credentials';
4
+ import { AgentState } from './common/types/agent-state';
5
+ import { ProjectFileContext } from './common/util/file';
6
+ import type { CostMode } from './common/constants';
7
7
  import { GitCommand } from './types';
8
8
  export declare class Client {
9
9
  private webSocket;
10
- private chatStorage;
11
- private currentUserInputId;
12
10
  private returnControlToUser;
13
11
  private fingerprintId;
14
12
  private costMode;
15
- fileVersions: FileVersion[][];
16
13
  fileContext: ProjectFileContext | undefined;
14
+ lastChanges: FileChanges;
15
+ agentState: AgentState | undefined;
16
+ originalFileVersions: Record<string, string | null>;
17
17
  user: User | undefined;
18
18
  lastWarnedPct: number;
19
19
  usage: number;
@@ -22,11 +22,12 @@ export declare class Client {
22
22
  lastRequestCredits: number;
23
23
  sessionCreditsUsed: number;
24
24
  nextQuotaReset: Date | null;
25
+ private hadFileChanges;
25
26
  private git;
26
27
  private rl;
27
- constructor(websocketUrl: string, chatStorage: ChatStorage, onWebSocketError: () => void, onWebSocketReconnect: () => void, returnControlToUser: () => void, costMode: CostMode, git: GitCommand, rl: readline.Interface);
28
+ constructor(websocketUrl: string, onWebSocketError: () => void, onWebSocketReconnect: () => void, returnControlToUser: () => void, costMode: CostMode, git: GitCommand, rl: readline.Interface);
28
29
  exit(): Promise<void>;
29
- initFileVersions(projectFileContext: ProjectFileContext): void;
30
+ initAgentState(projectFileContext: ProjectFileContext): void;
30
31
  private getFingerprintId;
31
32
  private getUser;
32
33
  connect(): Promise<void>;
@@ -37,27 +38,177 @@ export declare class Client {
37
38
  private setupSubscriptions;
38
39
  showUsageWarning(referralLink?: string): void;
39
40
  generateCommitMessage(stagedChanges: string): Promise<string>;
40
- sendUserInput(previousChanges: FileChanges, userInputId: string): Promise<void>;
41
- subscribeToResponse(onChunk: (chunk: string) => void, userInputId: string, onStreamStart: () => void): {
41
+ sendUserInput(prompt: string): Promise<{
42
42
  responsePromise: Promise<{
43
- type: "response-complete";
44
- userInputId: string;
45
- response: string;
46
- changes: {
47
- type: "file" | "patch";
48
- filePath: string;
49
- content: string;
43
+ type: "prompt-response";
44
+ promptId: string;
45
+ agentState: {
46
+ fileContext: {
47
+ currentWorkingDirectory: string;
48
+ fileTree: import("./common/util/file").FileTreeNode[];
49
+ fileTokenScores: Record<string, Record<string, number>>;
50
+ knowledgeFiles: Record<string, string>;
51
+ gitChanges: {
52
+ diff: string;
53
+ status: string;
54
+ diffCached: string;
55
+ lastCommitMessages: string;
56
+ };
57
+ changesSinceLastChat: Record<string, string>;
58
+ shellConfigFiles: Record<string, string>;
59
+ systemInfo: {
60
+ platform: string;
61
+ shell: string;
62
+ nodeVersion: string;
63
+ arch: string;
64
+ homedir: string;
65
+ cpus: number;
66
+ };
67
+ fileVersions: {
68
+ path: string;
69
+ content: string;
70
+ }[][];
71
+ userKnowledgeFiles?: Record<string, string> | undefined;
72
+ };
73
+ agentContext: string;
74
+ messageHistory: {
75
+ content: string | ({
76
+ type: "text";
77
+ text: string;
78
+ cache_control?: {
79
+ type: "ephemeral";
80
+ } | undefined;
81
+ } | {
82
+ type: "tool_use";
83
+ name: string;
84
+ id: string;
85
+ input: Record<string, any>;
86
+ cache_control?: {
87
+ type: "ephemeral";
88
+ } | undefined;
89
+ } | {
90
+ type: "tool_result";
91
+ content: string;
92
+ tool_use_id: string;
93
+ cache_control?: {
94
+ type: "ephemeral";
95
+ } | undefined;
96
+ } | {
97
+ type: "image";
98
+ source: {
99
+ type: "base64";
100
+ data: string;
101
+ media_type: "image/jpeg";
102
+ };
103
+ cache_control?: {
104
+ type: "ephemeral";
105
+ } | undefined;
106
+ })[];
107
+ role: "user" | "assistant";
108
+ }[];
109
+ };
110
+ toolResults: {
111
+ name: string;
112
+ id: string;
113
+ result: string;
114
+ }[];
115
+ toolCalls: {
116
+ name: string;
117
+ id: string;
118
+ parameters: Record<string, string>;
50
119
  }[];
51
- changesAlreadyApplied: {
52
- type: "file" | "patch";
53
- filePath: string;
54
- content: string;
120
+ usage?: number | undefined;
121
+ limit?: number | undefined;
122
+ referralLink?: string | undefined;
123
+ subscription_active?: boolean | undefined;
124
+ next_quota_reset?: Date | undefined;
125
+ session_credits_used?: number | undefined;
126
+ } & {
127
+ type: "prompt-response";
128
+ } & {
129
+ wasStoppedByUser: boolean;
130
+ }>;
131
+ stopResponse: () => void;
132
+ }>;
133
+ subscribeToResponse(onChunk: (chunk: string) => void, userInputId: string, onStreamStart: () => void, prompt: string): {
134
+ responsePromise: Promise<{
135
+ type: "prompt-response";
136
+ promptId: string;
137
+ agentState: {
138
+ fileContext: {
139
+ currentWorkingDirectory: string;
140
+ fileTree: import("./common/util/file").FileTreeNode[];
141
+ fileTokenScores: Record<string, Record<string, number>>;
142
+ knowledgeFiles: Record<string, string>;
143
+ gitChanges: {
144
+ diff: string;
145
+ status: string;
146
+ diffCached: string;
147
+ lastCommitMessages: string;
148
+ };
149
+ changesSinceLastChat: Record<string, string>;
150
+ shellConfigFiles: Record<string, string>;
151
+ systemInfo: {
152
+ platform: string;
153
+ shell: string;
154
+ nodeVersion: string;
155
+ arch: string;
156
+ homedir: string;
157
+ cpus: number;
158
+ };
159
+ fileVersions: {
160
+ path: string;
161
+ content: string;
162
+ }[][];
163
+ userKnowledgeFiles?: Record<string, string> | undefined;
164
+ };
165
+ agentContext: string;
166
+ messageHistory: {
167
+ content: string | ({
168
+ type: "text";
169
+ text: string;
170
+ cache_control?: {
171
+ type: "ephemeral";
172
+ } | undefined;
173
+ } | {
174
+ type: "tool_use";
175
+ name: string;
176
+ id: string;
177
+ input: Record<string, any>;
178
+ cache_control?: {
179
+ type: "ephemeral";
180
+ } | undefined;
181
+ } | {
182
+ type: "tool_result";
183
+ content: string;
184
+ tool_use_id: string;
185
+ cache_control?: {
186
+ type: "ephemeral";
187
+ } | undefined;
188
+ } | {
189
+ type: "image";
190
+ source: {
191
+ type: "base64";
192
+ data: string;
193
+ media_type: "image/jpeg";
194
+ };
195
+ cache_control?: {
196
+ type: "ephemeral";
197
+ } | undefined;
198
+ })[];
199
+ role: "user" | "assistant";
200
+ }[];
201
+ };
202
+ toolResults: {
203
+ name: string;
204
+ id: string;
205
+ result: string;
55
206
  }[];
56
- addedFileVersions: {
57
- path: string;
58
- content: string;
207
+ toolCalls: {
208
+ name: string;
209
+ id: string;
210
+ parameters: Record<string, string>;
59
211
  }[];
60
- resetFileVersions: boolean;
61
212
  usage?: number | undefined;
62
213
  limit?: number | undefined;
63
214
  referralLink?: string | undefined;
@@ -65,7 +216,7 @@ export declare class Client {
65
216
  next_quota_reset?: Date | undefined;
66
217
  session_credits_used?: number | undefined;
67
218
  } & {
68
- type: "response-complete";
219
+ type: "prompt-response";
69
220
  } & {
70
221
  wasStoppedByUser: boolean;
71
222
  }>;