vzcode 2.0.0 → 2.3.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.
Files changed (218) hide show
  1. package/dist/assets/{buildWorker-Dsx6rOdK.js → buildWorker-wLkQ0yz1.js} +64 -64
  2. package/dist/assets/{index-BM8tDh6M.css → index-BoFeK4GL.css} +1 -1
  3. package/dist/assets/{index-BgqNq-ww.js → index-DuUjtrt6.js} +107 -107
  4. package/dist/assets/{worker-BeBZGG1n.js → worker-DHxSPM7N.js} +78 -78
  5. package/dist/cli.js +113 -0
  6. package/dist/index.html +2 -2
  7. package/{src/ot.ts → dist/ot.js} +2 -14
  8. package/{src/randomId.ts → dist/randomId.js} +5 -6
  9. package/dist/runCode.js +20 -0
  10. package/dist/server/aiChatHandler/aiEditing.js +89 -0
  11. package/dist/server/aiChatHandler/chatOperations.js +360 -0
  12. package/dist/server/aiChatHandler/errorHandling.js +49 -0
  13. package/dist/server/aiChatHandler/index.js +112 -0
  14. package/dist/server/aiChatHandler/llmStreaming.js +284 -0
  15. package/dist/server/aiChatHandler/validation.js +19 -0
  16. package/dist/server/computeInitialDocument.js +146 -0
  17. package/{src/server/config.ts → dist/server/config.js} +4 -7
  18. package/{src/server/featureFlags.ts → dist/server/featureFlags.js} +0 -3
  19. package/dist/server/generateAIResponse.js +129 -0
  20. package/dist/server/handleAIAssist.js +39 -0
  21. package/dist/server/handleAICopilot.js +81 -0
  22. package/dist/server/index.js +297 -0
  23. package/dist/server/livekit.js +17 -0
  24. package/dist/server/prettier.js +90 -0
  25. package/{src/server/setupEnv.ts → dist/server/setupEnv.js} +1 -2
  26. package/dist/submitOperation.js +14 -0
  27. package/dist/types.js +1 -0
  28. package/dist/utils/fileDiff.js +66 -0
  29. package/package.json +23 -22
  30. package/src/client/AIAssist/AIAssistCodeMirrorKeyMap.ts +0 -42
  31. package/src/client/AIAssist/AIAssistWidget/index.tsx +0 -135
  32. package/src/client/AIAssist/AIAssistWidget/style.scss +0 -47
  33. package/src/client/AIAssist/Spinner.jsx +0 -76
  34. package/src/client/AIAssist/formatFile.ts +0 -27
  35. package/src/client/AIAssist/generateFilesContext.ts +0 -25
  36. package/src/client/AIAssist/index.ts +0 -2
  37. package/src/client/AIAssist/startAIAssist.ts +0 -95
  38. package/src/client/App/index.tsx +0 -153
  39. package/src/client/App/style.scss +0 -82
  40. package/src/client/App/usePending.ts +0 -51
  41. package/src/client/App/useShareDB.ts +0 -161
  42. package/src/client/CodeEditor/Copilot/index.ts +0 -74
  43. package/src/client/CodeEditor/InteractiveWidgets/boolToggler.ts +0 -12
  44. package/src/client/CodeEditor/InteractiveWidgets/colorPicker.ts +0 -68
  45. package/src/client/CodeEditor/InteractiveWidgets/colorsInTextPlugin.ts +0 -174
  46. package/src/client/CodeEditor/InteractiveWidgets/highlightWidgets.ts +0 -79
  47. package/src/client/CodeEditor/InteractiveWidgets/index.ts +0 -44
  48. package/src/client/CodeEditor/InteractiveWidgets/markdownCheckboxToggler.ts +0 -12
  49. package/src/client/CodeEditor/InteractiveWidgets/numberDragger.ts +0 -20
  50. package/src/client/CodeEditor/InteractiveWidgets/rotateWidget.ts +0 -143
  51. package/src/client/CodeEditor/InteractiveWidgets/urlClicker.test.ts +0 -48
  52. package/src/client/CodeEditor/InteractiveWidgets/urlClicker.ts +0 -12
  53. package/src/client/CodeEditor/InteractiveWidgets/vec2Slider.ts +0 -25
  54. package/src/client/CodeEditor/basicSetup.ts +0 -73
  55. package/src/client/CodeEditor/getOrCreateEditor.tsx +0 -615
  56. package/src/client/CodeEditor/index.tsx +0 -202
  57. package/src/client/CodeEditor/json1PresenceBroadcast.ts +0 -41
  58. package/src/client/CodeEditor/json1PresenceDisplay.ts +0 -350
  59. package/src/client/CodeEditor/rainbowBrackets.ts +0 -122
  60. package/src/client/CodeEditor/style.scss +0 -156
  61. package/src/client/CodeEditor/typescriptExtension/worker.ts +0 -32
  62. package/src/client/CodeErrorOverlay/index.tsx +0 -77
  63. package/src/client/CodeErrorOverlay/style.scss +0 -33
  64. package/src/client/Fonts/fonts.ts +0 -8
  65. package/src/client/Icons/AdjustmentSVG.tsx +0 -19
  66. package/src/client/Icons/BugSVG.tsx +0 -20
  67. package/src/client/Icons/CloseSVG.tsx +0 -19
  68. package/src/client/Icons/CssSVG.tsx +0 -16
  69. package/src/client/Icons/DirectoryArrowSVG.tsx +0 -19
  70. package/src/client/Icons/EditSVG.tsx +0 -19
  71. package/src/client/Icons/FileSVG.tsx +0 -19
  72. package/src/client/Icons/FolderSVG.tsx +0 -20
  73. package/src/client/Icons/GearSVG.tsx +0 -16
  74. package/src/client/Icons/HtmlSVG.tsx +0 -16
  75. package/src/client/Icons/JavaScriptSVG.tsx +0 -16
  76. package/src/client/Icons/JsonSVG.tsx +0 -16
  77. package/src/client/Icons/MarkdownSVG.tsx +0 -16
  78. package/src/client/Icons/MicSVG.tsx +0 -25
  79. package/src/client/Icons/NewSVG.tsx +0 -19
  80. package/src/client/Icons/PinSVG.tsx +0 -14
  81. package/src/client/Icons/PlaySVG.tsx +0 -16
  82. package/src/client/Icons/QuestionMarkSVG.tsx +0 -18
  83. package/src/client/Icons/ReactSVG.tsx +0 -16
  84. package/src/client/Icons/SearchSVG.tsx +0 -20
  85. package/src/client/Icons/SparklesSVG.tsx +0 -23
  86. package/src/client/Icons/SplitEditorSVG.tsx +0 -34
  87. package/src/client/Icons/StopSVG.tsx +0 -15
  88. package/src/client/Icons/SvelteSVG.tsx +0 -16
  89. package/src/client/Icons/TrashSVG.tsx +0 -19
  90. package/src/client/Icons/TypeScriptSVG.tsx +0 -16
  91. package/src/client/Icons/index.tsx +0 -24
  92. package/src/client/ImageViewer/index.tsx +0 -91
  93. package/src/client/ImageViewer/style.scss +0 -41
  94. package/src/client/PresenceNotifications/PresenceNotifications.test.ts +0 -134
  95. package/src/client/PresenceNotifications/index.tsx +0 -158
  96. package/src/client/PresenceNotifications/style.scss +0 -17
  97. package/src/client/RunCodeWidget/index.tsx +0 -117
  98. package/src/client/RunCodeWidget/style.scss +0 -24
  99. package/src/client/SplitPaneResizeContext.tsx +0 -159
  100. package/src/client/TabList/Tab.tsx +0 -73
  101. package/src/client/TabList/index.tsx +0 -35
  102. package/src/client/TabList/style.scss +0 -51
  103. package/src/client/VZCodeContext/index.tsx +0 -29
  104. package/src/client/VZCodeContext/types.ts +0 -249
  105. package/src/client/VZCodeContext/useVZCodeState.ts +0 -584
  106. package/src/client/VZKeyboardShortcutsDoc.tsx +0 -148
  107. package/src/client/VZLeft.tsx +0 -28
  108. package/src/client/VZMiddle.tsx +0 -172
  109. package/src/client/VZResizer/index.tsx +0 -128
  110. package/src/client/VZResizer/styles.scss +0 -33
  111. package/src/client/VZRight.tsx +0 -113
  112. package/src/client/VZSettings.tsx +0 -275
  113. package/src/client/VZSidebar/AIChat/ChatInput.tsx +0 -196
  114. package/src/client/VZSidebar/AIChat/DiffView.scss +0 -136
  115. package/src/client/VZSidebar/AIChat/DiffView.tsx +0 -176
  116. package/src/client/VZSidebar/AIChat/Message.tsx +0 -143
  117. package/src/client/VZSidebar/AIChat/MessageList.tsx +0 -205
  118. package/src/client/VZSidebar/AIChat/StreamingMessage.tsx +0 -35
  119. package/src/client/VZSidebar/AIChat/ThinkingScratchpad.tsx +0 -156
  120. package/src/client/VZSidebar/AIChat/TypingIndicator.tsx +0 -19
  121. package/src/client/VZSidebar/AIChat/index.tsx +0 -273
  122. package/src/client/VZSidebar/AIChat/styles.scss +0 -627
  123. package/src/client/VZSidebar/CreateDirModal.tsx +0 -111
  124. package/src/client/VZSidebar/CreateFileModal.tsx +0 -111
  125. package/src/client/VZSidebar/DeleteConfirmationModal.tsx +0 -76
  126. package/src/client/VZSidebar/DirectoryListing.tsx +0 -89
  127. package/src/client/VZSidebar/EmptyState.tsx +0 -11
  128. package/src/client/VZSidebar/FileListing.tsx +0 -91
  129. package/src/client/VZSidebar/FileTypeIcon.tsx +0 -49
  130. package/src/client/VZSidebar/Item.tsx +0 -237
  131. package/src/client/VZSidebar/Listing.tsx +0 -47
  132. package/src/client/VZSidebar/Search.tsx +0 -527
  133. package/src/client/VZSidebar/VisualEditor.tsx +0 -295
  134. package/src/client/VZSidebar/VoiceChatModal.tsx +0 -121
  135. package/src/client/VZSidebar/aiCopyPaste.ts +0 -199
  136. package/src/client/VZSidebar/index.tsx +0 -728
  137. package/src/client/VZSidebar/styles.scss +0 -612
  138. package/src/client/VZSidebar/useDragAndDrop.tsx +0 -408
  139. package/src/client/bootstrap.ts +0 -26
  140. package/src/client/buildWorker.ts +0 -3
  141. package/src/client/featureFlags.ts +0 -8
  142. package/src/client/generateRequestId.ts +0 -6
  143. package/src/client/getFileTree.ts +0 -53
  144. package/src/client/index.ts +0 -19
  145. package/src/client/main.jsx +0 -10
  146. package/src/client/presenceColor.ts +0 -8
  147. package/src/client/shouldTriggerRun.ts +0 -31
  148. package/src/client/sortFileTree.ts +0 -21
  149. package/src/client/tabsSearchParameters.test.ts +0 -79
  150. package/src/client/tabsSearchParameters.ts +0 -137
  151. package/src/client/themes/index.ts +0 -7
  152. package/src/client/themes/themes.ts +0 -77
  153. package/src/client/themes/uiwImports.ts +0 -32
  154. package/src/client/themes/useDynamicTheme.ts +0 -29
  155. package/src/client/themes/vizhubTheme/colors.ts +0 -80
  156. package/src/client/themes/vizhubTheme/index.ts +0 -193
  157. package/src/client/useActions.ts +0 -288
  158. package/src/client/useESLint/index.ts +0 -72
  159. package/src/client/useESLint/worker.ts +0 -113
  160. package/src/client/useEditorCache.ts +0 -35
  161. package/src/client/useFileCRUD.ts +0 -228
  162. package/src/client/useKeyboardShortcuts.ts +0 -451
  163. package/src/client/useOpenDirectories.ts +0 -99
  164. package/src/client/usePresenceAutoFollow.ts +0 -85
  165. package/src/client/usePrettier/index.ts +0 -178
  166. package/src/client/usePrettier/worker.ts +0 -109
  167. package/src/client/useRunCode.tsx +0 -15
  168. package/src/client/useRuntimeError.ts +0 -32
  169. package/src/client/useSubmitOperation.ts +0 -15
  170. package/src/client/useURLSync.ts +0 -137
  171. package/src/client/usernameLocalStorage.ts +0 -43
  172. package/src/client/utils/fileExtension.ts +0 -10
  173. package/src/client/utils/isImageFile.ts +0 -12
  174. package/src/client/vzReducer/aiChatReducer.ts +0 -44
  175. package/src/client/vzReducer/closeTabReducer.test.ts +0 -205
  176. package/src/client/vzReducer/closeTabsReducer.ts +0 -96
  177. package/src/client/vzReducer/createInitialState.ts +0 -38
  178. package/src/client/vzReducer/editorNoLongerWantsFocusReducer.ts +0 -9
  179. package/src/client/vzReducer/findPane.ts +0 -19
  180. package/src/client/vzReducer/index.ts +0 -250
  181. package/src/client/vzReducer/openTabReducer.test.ts +0 -127
  182. package/src/client/vzReducer/openTabReducer.ts +0 -74
  183. package/src/client/vzReducer/searchReducer.test.ts +0 -292
  184. package/src/client/vzReducer/searchReducer.ts +0 -181
  185. package/src/client/vzReducer/setActiveFileIdReducer.ts +0 -28
  186. package/src/client/vzReducer/setActiveFileLeftRightReducer.ts +0 -76
  187. package/src/client/vzReducer/setIsDocOpenReducer.ts +0 -9
  188. package/src/client/vzReducer/setIsSettingsOpenReducer.ts +0 -9
  189. package/src/client/vzReducer/setThemeReducer.ts +0 -9
  190. package/src/client/vzReducer/setUsernameReducer.ts +0 -9
  191. package/src/client/vzReducer/splitCurrentPaneReducer.ts +0 -66
  192. package/src/client/vzReducer/toggleAutoFollowReducer.ts +0 -12
  193. package/src/client/vzReducer/updatePane.ts +0 -40
  194. package/src/client/vzReducer/updatePresenceIndicatorReducer.ts +0 -30
  195. package/src/client/vzReducer/visualEditorReducer.ts +0 -9
  196. package/src/reactRouterExports.ts +0 -15
  197. package/src/runCode.ts +0 -27
  198. package/src/server/aiChatHandler/aiEditing.ts +0 -152
  199. package/src/server/aiChatHandler/chatOperations.ts +0 -510
  200. package/src/server/aiChatHandler/errorHandling.ts +0 -66
  201. package/src/server/aiChatHandler/index.ts +0 -200
  202. package/src/server/aiChatHandler/llmStreaming.ts +0 -419
  203. package/src/server/aiChatHandler/undoHandler.ts +0 -97
  204. package/src/server/aiChatHandler/validation.ts +0 -24
  205. package/src/server/computeInitialDocument.ts +0 -220
  206. package/src/server/generateAIResponse.ts +0 -188
  207. package/src/server/handleAIAssist.ts +0 -53
  208. package/src/server/handleAIChatUndo.ts +0 -2
  209. package/src/server/handleAICopilot.ts +0 -97
  210. package/src/server/index.ts +0 -388
  211. package/src/server/livekit.ts +0 -24
  212. package/src/server/prettier.ts +0 -115
  213. package/src/submitOperation.ts +0 -25
  214. package/src/types.ts +0 -205
  215. package/src/utils/fileDiff.ts +0 -117
  216. package/src/vite-env.d.ts +0 -10
  217. /package/{src/server/handleAIChatMessage.ts → dist/server/handleAIChatMessage.js} +0 -0
  218. /package/{src/server/isDirectory.ts → dist/server/isDirectory.js} +0 -0
@@ -1,19 +0,0 @@
1
- import { memo } from 'react';
2
-
3
- const TypingIndicatorComponent = () => {
4
- return (
5
- <div className="ai-chat-message assistant">
6
- <div className="ai-chat-message-content">
7
- <div className="ai-chat-typing">
8
- <span></span>
9
- <span></span>
10
- <span></span>
11
- </div>
12
- </div>
13
- </div>
14
- );
15
- };
16
-
17
- export const TypingIndicator = memo(
18
- TypingIndicatorComponent,
19
- );
@@ -1,273 +0,0 @@
1
- import { useContext, useMemo, useEffect } from 'react';
2
- import { VZCodeContext } from '../../VZCodeContext';
3
- import { MessageList } from './MessageList';
4
- import { ChatInput } from './ChatInput';
5
- import './styles.scss';
6
-
7
- const DEBUG = false;
8
-
9
- const showSuggestedRequests = false;
10
-
11
- export const AIChat = () => {
12
- const {
13
- aiChatFocused,
14
- content,
15
- aiChatMode,
16
- aiChatMessage,
17
- isLoading,
18
- currentChatId,
19
- aiErrorMessage,
20
- setAIChatMode,
21
- clearStoredAIPrompt,
22
- getStoredAIPrompt,
23
- setAIChatMessage,
24
- handleSendMessage,
25
- setAIErrorMessage,
26
- navigateMessageHistoryUp,
27
- navigateMessageHistoryDown,
28
- resetMessageHistoryNavigation,
29
- } = useContext(VZCodeContext);
30
-
31
- // Get current chat data from content
32
- const currentChat = content?.chats?.[currentChatId];
33
- const rawMessages = currentChat?.messages || [];
34
- const aiStatus = currentChat?.aiStatus;
35
- const aiScratchpad = currentChat?.aiScratchpad;
36
-
37
- // Transform messages to ensure they have required id field - memoized to avoid recreation
38
- const messages = useMemo(
39
- () =>
40
- rawMessages.map((msg, index) => ({
41
- ...msg,
42
- id: msg.id || `msg-${index}`,
43
- })),
44
- [rawMessages],
45
- );
46
-
47
- // Check if this is the first time opening the chat (no messages)
48
- const isEmptyState = rawMessages.length === 0;
49
-
50
- // Check for stored AI prompt on component mount (post-fork restoration)
51
- useEffect(() => {
52
- DEBUG &&
53
- console.log('AIChat: Checking for stored AI prompt');
54
- if (getStoredAIPrompt) {
55
- const storedPrompt = getStoredAIPrompt();
56
- DEBUG &&
57
- console.log(
58
- 'AIChat: Stored prompt result:',
59
- storedPrompt,
60
- );
61
- if (storedPrompt) {
62
- // Restore the prompt and mode
63
- DEBUG &&
64
- console.log('AIChat: Restoring prompt and mode');
65
- setAIChatMessage(storedPrompt.prompt);
66
- setAIChatMode(
67
- storedPrompt.modelName === 'ask' ? 'ask' : 'edit',
68
- );
69
-
70
- // Clear the stored prompt
71
- DEBUG &&
72
- console.log('AIChat: Clearing stored prompt');
73
- clearStoredAIPrompt();
74
-
75
- // Auto-submit the restored prompt after a short delay
76
- DEBUG &&
77
- console.log('AIChat: Scheduling auto-submit');
78
- setTimeout(() => {
79
- DEBUG &&
80
- console.log(
81
- 'AIChat: Auto-submitting restored prompt',
82
- );
83
- handleSendMessage(storedPrompt.prompt);
84
- }, 100);
85
- } else {
86
- DEBUG &&
87
- console.log('AIChat: No stored prompt found');
88
- }
89
- }
90
- }, [
91
- getStoredAIPrompt,
92
- clearStoredAIPrompt,
93
- setAIChatMessage,
94
- setAIChatMode,
95
- handleSendMessage,
96
- ]);
97
-
98
- return (
99
- <div className="ai-chat-container">
100
- <div className="ai-chat-content">
101
- <div className="ai-chat-messages-container">
102
- {isEmptyState ? (
103
- <div className="ai-chat-empty">
104
- <div className="ai-chat-empty-icon">✨</div>
105
- <h3 className="ai-chat-empty-title">
106
- Edit with AI
107
- </h3>
108
- <div className="ai-chat-empty-text">
109
- How can I help you?
110
- </div>
111
- {showSuggestedRequests && (
112
- <div className="ai-chat-empty-examples">
113
- {aiChatMode === 'ask' ? (
114
- <>
115
- <h4>Try asking questions like:</h4>
116
- <div className="ai-chat-suggested-prompts">
117
- <button
118
- className="ai-chat-suggested-prompt"
119
- onClick={() =>
120
- handleSendMessage(
121
- 'Explain how this works',
122
- )
123
- }
124
- >
125
- "Explain how this works"
126
- </button>
127
- <button
128
- className="ai-chat-suggested-prompt"
129
- onClick={() =>
130
- handleSendMessage(
131
- 'How could I change it so that the circles are bigger?',
132
- )
133
- }
134
- >
135
- "How could I change it so that the
136
- circles are bigger?"
137
- </button>
138
- <button
139
- className="ai-chat-suggested-prompt"
140
- onClick={() =>
141
- handleSendMessage(
142
- 'What does this function do?',
143
- )
144
- }
145
- >
146
- "What does this function do?"
147
- </button>
148
- <button
149
- className="ai-chat-suggested-prompt"
150
- onClick={() =>
151
- handleSendMessage(
152
- 'How can I make this more accessible?',
153
- )
154
- }
155
- >
156
- "How can I make this more
157
- accessible?"
158
- </button>
159
- </div>
160
- </>
161
- ) : (
162
- <>
163
- <h4>Try edit requests like these:</h4>
164
- <div className="ai-chat-suggested-prompts">
165
- <button
166
- className="ai-chat-suggested-prompt"
167
- onClick={() =>
168
- handleSendMessage(
169
- 'Change the circles to squares',
170
- )
171
- }
172
- >
173
- "Change the circles to squares"
174
- </button>
175
- <button
176
- className="ai-chat-suggested-prompt"
177
- onClick={() =>
178
- handleSendMessage(
179
- 'Add a button that toggles the animation',
180
- )
181
- }
182
- >
183
- "Add a button that toggles the
184
- animation"
185
- </button>
186
- <button
187
- className="ai-chat-suggested-prompt"
188
- onClick={() =>
189
- handleSendMessage(
190
- 'Fix the CSS so the layout is responsive',
191
- )
192
- }
193
- >
194
- "Fix the CSS so the layout is
195
- responsive"
196
- </button>
197
- <button
198
- className="ai-chat-suggested-prompt"
199
- onClick={() =>
200
- handleSendMessage(
201
- 'Refactor this function to use async/await',
202
- )
203
- }
204
- >
205
- "Refactor this function to use
206
- async/await"
207
- </button>
208
- </div>
209
- </>
210
- )}
211
- </div>
212
- )}
213
- {showSuggestedRequests && (
214
- <div className="ai-chat-empty-text">
215
- {aiChatMode === 'ask'
216
- ? 'Type your question below to get started!'
217
- : 'Type your edit request below to get started!'}
218
- </div>
219
- )}
220
- </div>
221
- ) : (
222
- <MessageList
223
- messages={messages}
224
- aiStatus={aiStatus}
225
- isLoading={isLoading}
226
- chatId={currentChatId}
227
- aiScratchpad={aiScratchpad}
228
- />
229
- )}
230
- {aiErrorMessage && (
231
- <div className="ai-chat-error">
232
- <div className="ai-chat-error-content">
233
- <span className="ai-chat-error-icon">
234
- ⚠️
235
- </span>
236
- <span className="ai-chat-error-message">
237
- {aiErrorMessage}
238
- </span>
239
- <button
240
- className="ai-chat-error-dismiss"
241
- onClick={() => setAIErrorMessage(null)}
242
- aria-label="Dismiss error"
243
- >
244
- ×
245
- </button>
246
- </div>
247
- </div>
248
- )}
249
- </div>
250
- </div>
251
- <div className="ai-chat-input-fixed">
252
- <ChatInput
253
- aiChatMessage={aiChatMessage}
254
- setAIChatMessage={setAIChatMessage}
255
- onSendMessage={handleSendMessage}
256
- isLoading={isLoading}
257
- focused={aiChatFocused}
258
- aiChatMode={aiChatMode}
259
- setAIChatMode={setAIChatMode}
260
- navigateMessageHistoryUp={
261
- navigateMessageHistoryUp
262
- }
263
- navigateMessageHistoryDown={
264
- navigateMessageHistoryDown
265
- }
266
- resetMessageHistoryNavigation={
267
- resetMessageHistoryNavigation
268
- }
269
- />
270
- </div>
271
- </div>
272
- );
273
- };