vzcode 2.2.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 (220) 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-CpxqGhXj.js → index-DuUjtrt6.js} +150 -150
  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 +22 -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/MicOffSVG.tsx +0 -35
  79. package/src/client/Icons/MicSVG.tsx +0 -25
  80. package/src/client/Icons/NewSVG.tsx +0 -19
  81. package/src/client/Icons/PinSVG.tsx +0 -14
  82. package/src/client/Icons/PlaySVG.tsx +0 -16
  83. package/src/client/Icons/QuestionMarkSVG.tsx +0 -18
  84. package/src/client/Icons/ReactSVG.tsx +0 -16
  85. package/src/client/Icons/SearchSVG.tsx +0 -20
  86. package/src/client/Icons/SparklesSVG.tsx +0 -23
  87. package/src/client/Icons/SplitEditorSVG.tsx +0 -34
  88. package/src/client/Icons/StopSVG.tsx +0 -15
  89. package/src/client/Icons/SvelteSVG.tsx +0 -16
  90. package/src/client/Icons/TrashSVG.tsx +0 -19
  91. package/src/client/Icons/TypeScriptSVG.tsx +0 -16
  92. package/src/client/Icons/index.tsx +0 -26
  93. package/src/client/ImageViewer/index.tsx +0 -91
  94. package/src/client/ImageViewer/style.scss +0 -41
  95. package/src/client/PresenceNotifications/PresenceNotifications.test.ts +0 -134
  96. package/src/client/PresenceNotifications/index.tsx +0 -158
  97. package/src/client/PresenceNotifications/style.scss +0 -17
  98. package/src/client/RunCodeWidget/index.tsx +0 -117
  99. package/src/client/RunCodeWidget/style.scss +0 -24
  100. package/src/client/SplitPaneResizeContext.tsx +0 -159
  101. package/src/client/TabList/Tab.tsx +0 -73
  102. package/src/client/TabList/index.tsx +0 -35
  103. package/src/client/TabList/style.scss +0 -51
  104. package/src/client/VZCodeContext/index.tsx +0 -29
  105. package/src/client/VZCodeContext/types.ts +0 -249
  106. package/src/client/VZCodeContext/useVZCodeState.ts +0 -584
  107. package/src/client/VZKeyboardShortcutsDoc.tsx +0 -148
  108. package/src/client/VZLeft.tsx +0 -28
  109. package/src/client/VZMiddle.tsx +0 -172
  110. package/src/client/VZResizer/index.tsx +0 -128
  111. package/src/client/VZResizer/styles.scss +0 -33
  112. package/src/client/VZRight.tsx +0 -113
  113. package/src/client/VZSettings.tsx +0 -275
  114. package/src/client/VZSidebar/AIChat/ChatInput.tsx +0 -239
  115. package/src/client/VZSidebar/AIChat/DiffView.scss +0 -136
  116. package/src/client/VZSidebar/AIChat/DiffView.tsx +0 -176
  117. package/src/client/VZSidebar/AIChat/Message.tsx +0 -143
  118. package/src/client/VZSidebar/AIChat/MessageList.tsx +0 -205
  119. package/src/client/VZSidebar/AIChat/StreamingMessage.tsx +0 -35
  120. package/src/client/VZSidebar/AIChat/ThinkingScratchpad.tsx +0 -156
  121. package/src/client/VZSidebar/AIChat/TypingIndicator.tsx +0 -19
  122. package/src/client/VZSidebar/AIChat/index.tsx +0 -273
  123. package/src/client/VZSidebar/AIChat/styles.scss +0 -627
  124. package/src/client/VZSidebar/AIChat/useSpeechRecognition.ts +0 -117
  125. package/src/client/VZSidebar/CreateDirModal.tsx +0 -111
  126. package/src/client/VZSidebar/CreateFileModal.tsx +0 -111
  127. package/src/client/VZSidebar/DeleteConfirmationModal.tsx +0 -76
  128. package/src/client/VZSidebar/DirectoryListing.tsx +0 -89
  129. package/src/client/VZSidebar/EmptyState.tsx +0 -11
  130. package/src/client/VZSidebar/FileListing.tsx +0 -91
  131. package/src/client/VZSidebar/FileTypeIcon.tsx +0 -49
  132. package/src/client/VZSidebar/Item.tsx +0 -237
  133. package/src/client/VZSidebar/Listing.tsx +0 -47
  134. package/src/client/VZSidebar/Search.tsx +0 -527
  135. package/src/client/VZSidebar/VisualEditor.tsx +0 -282
  136. package/src/client/VZSidebar/VoiceChatModal.tsx +0 -121
  137. package/src/client/VZSidebar/aiCopyPaste.ts +0 -199
  138. package/src/client/VZSidebar/index.tsx +0 -728
  139. package/src/client/VZSidebar/styles.scss +0 -612
  140. package/src/client/VZSidebar/useDragAndDrop.tsx +0 -408
  141. package/src/client/bootstrap.ts +0 -26
  142. package/src/client/buildWorker.ts +0 -3
  143. package/src/client/featureFlags.ts +0 -8
  144. package/src/client/generateRequestId.ts +0 -6
  145. package/src/client/getFileTree.ts +0 -53
  146. package/src/client/index.ts +0 -19
  147. package/src/client/main.jsx +0 -10
  148. package/src/client/presenceColor.ts +0 -8
  149. package/src/client/shouldTriggerRun.ts +0 -31
  150. package/src/client/sortFileTree.ts +0 -21
  151. package/src/client/tabsSearchParameters.test.ts +0 -79
  152. package/src/client/tabsSearchParameters.ts +0 -137
  153. package/src/client/themes/index.ts +0 -7
  154. package/src/client/themes/themes.ts +0 -77
  155. package/src/client/themes/uiwImports.ts +0 -32
  156. package/src/client/themes/useDynamicTheme.ts +0 -29
  157. package/src/client/themes/vizhubTheme/colors.ts +0 -80
  158. package/src/client/themes/vizhubTheme/index.ts +0 -193
  159. package/src/client/useActions.ts +0 -288
  160. package/src/client/useESLint/index.ts +0 -72
  161. package/src/client/useESLint/worker.ts +0 -113
  162. package/src/client/useEditorCache.ts +0 -35
  163. package/src/client/useFileCRUD.ts +0 -228
  164. package/src/client/useKeyboardShortcuts.ts +0 -451
  165. package/src/client/useOpenDirectories.ts +0 -99
  166. package/src/client/usePresenceAutoFollow.ts +0 -85
  167. package/src/client/usePrettier/index.ts +0 -178
  168. package/src/client/usePrettier/worker.ts +0 -109
  169. package/src/client/useRunCode.tsx +0 -15
  170. package/src/client/useRuntimeError.ts +0 -32
  171. package/src/client/useSubmitOperation.ts +0 -15
  172. package/src/client/useURLSync.ts +0 -137
  173. package/src/client/usernameLocalStorage.ts +0 -43
  174. package/src/client/utils/fileExtension.ts +0 -10
  175. package/src/client/utils/isImageFile.ts +0 -12
  176. package/src/client/vzReducer/aiChatReducer.ts +0 -44
  177. package/src/client/vzReducer/closeTabReducer.test.ts +0 -205
  178. package/src/client/vzReducer/closeTabsReducer.ts +0 -96
  179. package/src/client/vzReducer/createInitialState.ts +0 -38
  180. package/src/client/vzReducer/editorNoLongerWantsFocusReducer.ts +0 -9
  181. package/src/client/vzReducer/findPane.ts +0 -19
  182. package/src/client/vzReducer/index.ts +0 -250
  183. package/src/client/vzReducer/openTabReducer.test.ts +0 -127
  184. package/src/client/vzReducer/openTabReducer.ts +0 -74
  185. package/src/client/vzReducer/searchReducer.test.ts +0 -292
  186. package/src/client/vzReducer/searchReducer.ts +0 -181
  187. package/src/client/vzReducer/setActiveFileIdReducer.ts +0 -28
  188. package/src/client/vzReducer/setActiveFileLeftRightReducer.ts +0 -76
  189. package/src/client/vzReducer/setIsDocOpenReducer.ts +0 -9
  190. package/src/client/vzReducer/setIsSettingsOpenReducer.ts +0 -9
  191. package/src/client/vzReducer/setThemeReducer.ts +0 -9
  192. package/src/client/vzReducer/setUsernameReducer.ts +0 -9
  193. package/src/client/vzReducer/splitCurrentPaneReducer.ts +0 -66
  194. package/src/client/vzReducer/toggleAutoFollowReducer.ts +0 -12
  195. package/src/client/vzReducer/updatePane.ts +0 -40
  196. package/src/client/vzReducer/updatePresenceIndicatorReducer.ts +0 -30
  197. package/src/client/vzReducer/visualEditorReducer.ts +0 -9
  198. package/src/reactRouterExports.ts +0 -15
  199. package/src/runCode.ts +0 -27
  200. package/src/server/aiChatHandler/aiEditing.ts +0 -152
  201. package/src/server/aiChatHandler/chatOperations.ts +0 -510
  202. package/src/server/aiChatHandler/errorHandling.ts +0 -66
  203. package/src/server/aiChatHandler/index.ts +0 -200
  204. package/src/server/aiChatHandler/llmStreaming.ts +0 -419
  205. package/src/server/aiChatHandler/undoHandler.ts +0 -97
  206. package/src/server/aiChatHandler/validation.ts +0 -24
  207. package/src/server/computeInitialDocument.ts +0 -220
  208. package/src/server/generateAIResponse.ts +0 -188
  209. package/src/server/handleAIAssist.ts +0 -53
  210. package/src/server/handleAIChatUndo.ts +0 -2
  211. package/src/server/handleAICopilot.ts +0 -97
  212. package/src/server/index.ts +0 -388
  213. package/src/server/livekit.ts +0 -24
  214. package/src/server/prettier.ts +0 -115
  215. package/src/submitOperation.ts +0 -25
  216. package/src/types.ts +0 -205
  217. package/src/utils/fileDiff.ts +0 -117
  218. package/src/vite-env.d.ts +0 -10
  219. /package/{src/server/handleAIChatMessage.ts → dist/server/handleAIChatMessage.js} +0 -0
  220. /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
- };