@nocturnium/svelte-ide 1.0.0-rc.1

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 (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +251 -0
  3. package/dist/components/agents/AgentActivityPanel.svelte +565 -0
  4. package/dist/components/agents/AgentActivityPanel.svelte.d.ts +24 -0
  5. package/dist/components/agents/AgentAvatar.svelte +417 -0
  6. package/dist/components/agents/AgentAvatar.svelte.d.ts +23 -0
  7. package/dist/components/agents/AgentCursor.svelte +224 -0
  8. package/dist/components/agents/AgentCursor.svelte.d.ts +35 -0
  9. package/dist/components/agents/AgentPresenceBar.svelte +261 -0
  10. package/dist/components/agents/AgentPresenceBar.svelte.d.ts +20 -0
  11. package/dist/components/agents/index.d.ts +4 -0
  12. package/dist/components/agents/index.js +5 -0
  13. package/dist/components/ai/AIConversationList.svelte +524 -0
  14. package/dist/components/ai/AIConversationList.svelte.d.ts +17 -0
  15. package/dist/components/ai/AIEditPreview.svelte +132 -0
  16. package/dist/components/ai/AIEditPreview.svelte.d.ts +8 -0
  17. package/dist/components/ai/AIInlineEdit.svelte +155 -0
  18. package/dist/components/ai/AIInlineEdit.svelte.d.ts +10 -0
  19. package/dist/components/ai/AIMessage.svelte +239 -0
  20. package/dist/components/ai/AIMessage.svelte.d.ts +13 -0
  21. package/dist/components/ai/AIMessageActions.svelte +176 -0
  22. package/dist/components/ai/AIMessageActions.svelte.d.ts +12 -0
  23. package/dist/components/ai/AIMessageContent.svelte +355 -0
  24. package/dist/components/ai/AIMessageContent.svelte.d.ts +7 -0
  25. package/dist/components/ai/AIPanel.svelte +561 -0
  26. package/dist/components/ai/AIPanel.svelte.d.ts +7 -0
  27. package/dist/components/ai/AISuggestionWidget.svelte +132 -0
  28. package/dist/components/ai/AISuggestionWidget.svelte.d.ts +10 -0
  29. package/dist/components/ai/AIToolCallDisplay.svelte +317 -0
  30. package/dist/components/ai/AIToolCallDisplay.svelte.d.ts +12 -0
  31. package/dist/components/ai/index.d.ts +9 -0
  32. package/dist/components/ai/index.js +10 -0
  33. package/dist/components/core/Avatar.svelte +110 -0
  34. package/dist/components/core/Avatar.svelte.d.ts +12 -0
  35. package/dist/components/core/Badge.svelte +98 -0
  36. package/dist/components/core/Badge.svelte.d.ts +11 -0
  37. package/dist/components/core/Button.svelte +175 -0
  38. package/dist/components/core/Button.svelte.d.ts +18 -0
  39. package/dist/components/core/ConnectionStatus.svelte +294 -0
  40. package/dist/components/core/ConnectionStatus.svelte.d.ts +20 -0
  41. package/dist/components/core/ContextMenu.svelte +176 -0
  42. package/dist/components/core/ContextMenu.svelte.d.ts +19 -0
  43. package/dist/components/core/ErrorBoundary.svelte +277 -0
  44. package/dist/components/core/ErrorBoundary.svelte.d.ts +23 -0
  45. package/dist/components/core/Icon.svelte +107 -0
  46. package/dist/components/core/Icon.svelte.d.ts +8 -0
  47. package/dist/components/core/Input.svelte +138 -0
  48. package/dist/components/core/Input.svelte.d.ts +20 -0
  49. package/dist/components/core/Kbd.svelte +34 -0
  50. package/dist/components/core/Kbd.svelte.d.ts +7 -0
  51. package/dist/components/core/ResizeHandle.svelte +200 -0
  52. package/dist/components/core/ResizeHandle.svelte.d.ts +23 -0
  53. package/dist/components/core/Spinner.svelte +35 -0
  54. package/dist/components/core/Spinner.svelte.d.ts +7 -0
  55. package/dist/components/core/Textarea.svelte +112 -0
  56. package/dist/components/core/Textarea.svelte.d.ts +18 -0
  57. package/dist/components/core/Tooltip.svelte +103 -0
  58. package/dist/components/core/Tooltip.svelte.d.ts +11 -0
  59. package/dist/components/core/index.d.ts +13 -0
  60. package/dist/components/core/index.js +14 -0
  61. package/dist/components/editor/AIFocusLayer.svelte +430 -0
  62. package/dist/components/editor/AIFocusLayer.svelte.d.ts +32 -0
  63. package/dist/components/editor/Breadcrumbs.svelte +435 -0
  64. package/dist/components/editor/Breadcrumbs.svelte.d.ts +33 -0
  65. package/dist/components/editor/BreakpointLayer.svelte +642 -0
  66. package/dist/components/editor/BreakpointLayer.svelte.d.ts +20 -0
  67. package/dist/components/editor/CognitiveLoadMeter.svelte +324 -0
  68. package/dist/components/editor/CognitiveLoadMeter.svelte.d.ts +18 -0
  69. package/dist/components/editor/CollaborativeEditor.svelte +218 -0
  70. package/dist/components/editor/CollaborativeEditor.svelte.d.ts +32 -0
  71. package/dist/components/editor/CommandPalette.svelte +434 -0
  72. package/dist/components/editor/CommandPalette.svelte.d.ts +11 -0
  73. package/dist/components/editor/ComplexityLayer.svelte +293 -0
  74. package/dist/components/editor/ComplexityLayer.svelte.d.ts +23 -0
  75. package/dist/components/editor/ConflictZoneLayer.svelte +441 -0
  76. package/dist/components/editor/ConflictZoneLayer.svelte.d.ts +25 -0
  77. package/dist/components/editor/ContextLens.svelte +262 -0
  78. package/dist/components/editor/ContextLens.svelte.d.ts +27 -0
  79. package/dist/components/editor/CustomEditor.svelte +1242 -0
  80. package/dist/components/editor/CustomEditor.svelte.d.ts +37 -0
  81. package/dist/components/editor/DebugConsole.svelte +646 -0
  82. package/dist/components/editor/DebugConsole.svelte.d.ts +41 -0
  83. package/dist/components/editor/EchoCursorLayer.svelte +363 -0
  84. package/dist/components/editor/EchoCursorLayer.svelte.d.ts +24 -0
  85. package/dist/components/editor/Editor.svelte +61 -0
  86. package/dist/components/editor/Editor.svelte.d.ts +22 -0
  87. package/dist/components/editor/EditorGutter.svelte +119 -0
  88. package/dist/components/editor/EditorGutter.svelte.d.ts +19 -0
  89. package/dist/components/editor/EditorLines.svelte +182 -0
  90. package/dist/components/editor/EditorLines.svelte.d.ts +43 -0
  91. package/dist/components/editor/EditorPane.svelte +134 -0
  92. package/dist/components/editor/EditorPane.svelte.d.ts +9 -0
  93. package/dist/components/editor/EditorSelections.svelte +186 -0
  94. package/dist/components/editor/EditorSelections.svelte.d.ts +25 -0
  95. package/dist/components/editor/EditorTabs.svelte +170 -0
  96. package/dist/components/editor/EditorTabs.svelte.d.ts +12 -0
  97. package/dist/components/editor/FileExplorer.svelte +811 -0
  98. package/dist/components/editor/FileExplorer.svelte.d.ts +67 -0
  99. package/dist/components/editor/FileIcon.svelte +110 -0
  100. package/dist/components/editor/FileIcon.svelte.d.ts +10 -0
  101. package/dist/components/editor/FindReplace.svelte +448 -0
  102. package/dist/components/editor/FindReplace.svelte.d.ts +40 -0
  103. package/dist/components/editor/GhostBracketLayer.svelte +391 -0
  104. package/dist/components/editor/GhostBracketLayer.svelte.d.ts +24 -0
  105. package/dist/components/editor/GitBlameLayer.svelte +436 -0
  106. package/dist/components/editor/GitBlameLayer.svelte.d.ts +18 -0
  107. package/dist/components/editor/InlineDiagnosticsLayer.svelte +540 -0
  108. package/dist/components/editor/InlineDiagnosticsLayer.svelte.d.ts +35 -0
  109. package/dist/components/editor/InlineDiffLayer.svelte +337 -0
  110. package/dist/components/editor/InlineDiffLayer.svelte.d.ts +31 -0
  111. package/dist/components/editor/MinimalEditor.svelte +75 -0
  112. package/dist/components/editor/MinimalEditor.svelte.d.ts +6 -0
  113. package/dist/components/editor/MinimalEditor2.svelte +84 -0
  114. package/dist/components/editor/MinimalEditor2.svelte.d.ts +6 -0
  115. package/dist/components/editor/Minimap.svelte +327 -0
  116. package/dist/components/editor/Minimap.svelte.d.ts +34 -0
  117. package/dist/components/editor/PluginPreviewSandbox.svelte +793 -0
  118. package/dist/components/editor/PluginPreviewSandbox.svelte.d.ts +49 -0
  119. package/dist/components/editor/ProblemsPanel.svelte +628 -0
  120. package/dist/components/editor/ProblemsPanel.svelte.d.ts +25 -0
  121. package/dist/components/editor/QuickActionsMenu.svelte +403 -0
  122. package/dist/components/editor/QuickActionsMenu.svelte.d.ts +18 -0
  123. package/dist/components/editor/SnippetPalette.svelte +530 -0
  124. package/dist/components/editor/SnippetPalette.svelte.d.ts +16 -0
  125. package/dist/components/editor/StructureMap.svelte +431 -0
  126. package/dist/components/editor/StructureMap.svelte.d.ts +37 -0
  127. package/dist/components/editor/SymbolOutline.svelte +722 -0
  128. package/dist/components/editor/SymbolOutline.svelte.d.ts +44 -0
  129. package/dist/components/editor/TimelineScrubber.svelte +470 -0
  130. package/dist/components/editor/TimelineScrubber.svelte.d.ts +40 -0
  131. package/dist/components/editor/TokenRenderer.svelte +69 -0
  132. package/dist/components/editor/TokenRenderer.svelte.d.ts +15 -0
  133. package/dist/components/editor/constants.d.ts +32 -0
  134. package/dist/components/editor/constants.js +36 -0
  135. package/dist/components/editor/core/ai-awareness.d.ts +176 -0
  136. package/dist/components/editor/core/ai-awareness.js +210 -0
  137. package/dist/components/editor/core/bracket-healer.d.ts +189 -0
  138. package/dist/components/editor/core/bracket-healer.js +406 -0
  139. package/dist/components/editor/core/breakpoints.d.ts +203 -0
  140. package/dist/components/editor/core/breakpoints.js +414 -0
  141. package/dist/components/editor/core/commands.d.ts +108 -0
  142. package/dist/components/editor/core/commands.js +246 -0
  143. package/dist/components/editor/core/complexity-analyzer.d.ts +123 -0
  144. package/dist/components/editor/core/complexity-analyzer.js +376 -0
  145. package/dist/components/editor/core/conflict-predictor.d.ts +135 -0
  146. package/dist/components/editor/core/conflict-predictor.js +316 -0
  147. package/dist/components/editor/core/crdt-binding.d.ts +118 -0
  148. package/dist/components/editor/core/crdt-binding.js +286 -0
  149. package/dist/components/editor/core/diagnostics.d.ts +210 -0
  150. package/dist/components/editor/core/diagnostics.js +335 -0
  151. package/dist/components/editor/core/echo-cursor.d.ts +201 -0
  152. package/dist/components/editor/core/echo-cursor.js +267 -0
  153. package/dist/components/editor/core/folding.d.ts +124 -0
  154. package/dist/components/editor/core/folding.js +672 -0
  155. package/dist/components/editor/core/ghost-pair.d.ts +122 -0
  156. package/dist/components/editor/core/ghost-pair.js +221 -0
  157. package/dist/components/editor/core/git-blame.d.ts +170 -0
  158. package/dist/components/editor/core/git-blame.js +324 -0
  159. package/dist/components/editor/core/index.d.ts +26 -0
  160. package/dist/components/editor/core/index.js +24 -0
  161. package/dist/components/editor/core/keybindings.d.ts +79 -0
  162. package/dist/components/editor/core/keybindings.js +357 -0
  163. package/dist/components/editor/core/multi-cursor.d.ts +196 -0
  164. package/dist/components/editor/core/multi-cursor.js +521 -0
  165. package/dist/components/editor/core/navigation.d.ts +107 -0
  166. package/dist/components/editor/core/navigation.js +408 -0
  167. package/dist/components/editor/core/quick-actions.d.ts +189 -0
  168. package/dist/components/editor/core/quick-actions.js +427 -0
  169. package/dist/components/editor/core/search.d.ts +88 -0
  170. package/dist/components/editor/core/search.js +192 -0
  171. package/dist/components/editor/core/semantic-analyzer.d.ts +77 -0
  172. package/dist/components/editor/core/semantic-analyzer.js +424 -0
  173. package/dist/components/editor/core/snippet-manager.d.ts +202 -0
  174. package/dist/components/editor/core/snippet-manager.js +565 -0
  175. package/dist/components/editor/core/state.d.ts +367 -0
  176. package/dist/components/editor/core/state.js +900 -0
  177. package/dist/components/editor/core/timeline.d.ts +204 -0
  178. package/dist/components/editor/core/timeline.js +349 -0
  179. package/dist/components/editor/editor-find.d.ts +56 -0
  180. package/dist/components/editor/editor-find.js +148 -0
  181. package/dist/components/editor/editor-input.d.ts +77 -0
  182. package/dist/components/editor/editor-input.js +445 -0
  183. package/dist/components/editor/editor-multicursor.d.ts +21 -0
  184. package/dist/components/editor/editor-multicursor.js +196 -0
  185. package/dist/components/editor/editor-scroll.d.ts +14 -0
  186. package/dist/components/editor/editor-scroll.js +34 -0
  187. package/dist/components/editor/index.d.ts +15 -0
  188. package/dist/components/editor/index.js +21 -0
  189. package/dist/components/editor/languages.d.ts +62 -0
  190. package/dist/components/editor/languages.js +285 -0
  191. package/dist/components/editor/theme.d.ts +88 -0
  192. package/dist/components/editor/theme.js +139 -0
  193. package/dist/components/editor/tokenizer/base.d.ts +40 -0
  194. package/dist/components/editor/tokenizer/base.js +203 -0
  195. package/dist/components/editor/tokenizer/index.d.ts +56 -0
  196. package/dist/components/editor/tokenizer/index.js +215 -0
  197. package/dist/components/editor/tokenizer/languages/css.d.ts +17 -0
  198. package/dist/components/editor/tokenizer/languages/css.js +194 -0
  199. package/dist/components/editor/tokenizer/languages/go.d.ts +17 -0
  200. package/dist/components/editor/tokenizer/languages/go.js +220 -0
  201. package/dist/components/editor/tokenizer/languages/html.d.ts +24 -0
  202. package/dist/components/editor/tokenizer/languages/html.js +145 -0
  203. package/dist/components/editor/tokenizer/languages/javascript.d.ts +56 -0
  204. package/dist/components/editor/tokenizer/languages/javascript.js +452 -0
  205. package/dist/components/editor/tokenizer/languages/json.d.ts +12 -0
  206. package/dist/components/editor/tokenizer/languages/json.js +91 -0
  207. package/dist/components/editor/tokenizer/languages/markdown.d.ts +16 -0
  208. package/dist/components/editor/tokenizer/languages/markdown.js +156 -0
  209. package/dist/components/editor/tokenizer/languages/python.d.ts +20 -0
  210. package/dist/components/editor/tokenizer/languages/python.js +227 -0
  211. package/dist/components/editor/tokenizer/languages/svelte.d.ts +40 -0
  212. package/dist/components/editor/tokenizer/languages/svelte.js +326 -0
  213. package/dist/components/editor/tokenizer/types.d.ts +86 -0
  214. package/dist/components/editor/tokenizer/types.js +4 -0
  215. package/dist/components/layout/IDELayout.svelte +274 -0
  216. package/dist/components/layout/IDELayout.svelte.d.ts +29 -0
  217. package/dist/components/layout/StatusBar.svelte +511 -0
  218. package/dist/components/layout/StatusBar.svelte.d.ts +47 -0
  219. package/dist/components/layout/index.d.ts +2 -0
  220. package/dist/components/layout/index.js +3 -0
  221. package/dist/components/lsp/AutocompleteWidget.svelte +364 -0
  222. package/dist/components/lsp/AutocompleteWidget.svelte.d.ts +33 -0
  223. package/dist/components/lsp/DiagnosticMarker.svelte +166 -0
  224. package/dist/components/lsp/DiagnosticMarker.svelte.d.ts +19 -0
  225. package/dist/components/lsp/DiagnosticsPanel.svelte +388 -0
  226. package/dist/components/lsp/DiagnosticsPanel.svelte.d.ts +21 -0
  227. package/dist/components/lsp/HoverTooltip.svelte +274 -0
  228. package/dist/components/lsp/HoverTooltip.svelte.d.ts +24 -0
  229. package/dist/components/lsp/LSPEditor.svelte +486 -0
  230. package/dist/components/lsp/LSPEditor.svelte.d.ts +39 -0
  231. package/dist/components/lsp/SignatureHelpWidget.svelte +216 -0
  232. package/dist/components/lsp/SignatureHelpWidget.svelte.d.ts +22 -0
  233. package/dist/components/lsp/index.d.ts +6 -0
  234. package/dist/components/lsp/index.js +7 -0
  235. package/dist/components/plugins/PluginCard.svelte +153 -0
  236. package/dist/components/plugins/PluginCard.svelte.d.ts +19 -0
  237. package/dist/components/plugins/PluginPanel.svelte +280 -0
  238. package/dist/components/plugins/PluginPanel.svelte.d.ts +8 -0
  239. package/dist/components/plugins/PluginProposalForm.svelte +250 -0
  240. package/dist/components/plugins/PluginProposalForm.svelte.d.ts +6 -0
  241. package/dist/components/plugins/PluginStatusBadge.svelte +14 -0
  242. package/dist/components/plugins/PluginStatusBadge.svelte.d.ts +8 -0
  243. package/dist/components/plugins/index.d.ts +4 -0
  244. package/dist/components/plugins/index.js +5 -0
  245. package/dist/components/vfs/LockConflictDialog.svelte +705 -0
  246. package/dist/components/vfs/LockConflictDialog.svelte.d.ts +21 -0
  247. package/dist/components/vfs/LockIndicator.svelte +194 -0
  248. package/dist/components/vfs/LockIndicator.svelte.d.ts +29 -0
  249. package/dist/components/vfs/LockOverlay.svelte +344 -0
  250. package/dist/components/vfs/LockOverlay.svelte.d.ts +17 -0
  251. package/dist/components/vfs/VersionConflictDialog.svelte +549 -0
  252. package/dist/components/vfs/VersionConflictDialog.svelte.d.ts +24 -0
  253. package/dist/components/vfs/index.d.ts +4 -0
  254. package/dist/components/vfs/index.js +5 -0
  255. package/dist/crdt/awareness.d.ts +42 -0
  256. package/dist/crdt/awareness.js +109 -0
  257. package/dist/crdt/document.d.ts +101 -0
  258. package/dist/crdt/document.js +187 -0
  259. package/dist/crdt/index.d.ts +9 -0
  260. package/dist/crdt/index.js +8 -0
  261. package/dist/crdt/provider.d.ts +85 -0
  262. package/dist/crdt/provider.js +150 -0
  263. package/dist/crdt/types.d.ts +61 -0
  264. package/dist/crdt/types.js +4 -0
  265. package/dist/crdt/undo.d.ts +34 -0
  266. package/dist/crdt/undo.js +70 -0
  267. package/dist/index.d.ts +277 -0
  268. package/dist/index.js +280 -0
  269. package/dist/plugins/index.d.ts +103 -0
  270. package/dist/plugins/index.js +153 -0
  271. package/dist/services/error-handling.d.ts +95 -0
  272. package/dist/services/error-handling.js +413 -0
  273. package/dist/services/ide-integration.d.ts +83 -0
  274. package/dist/services/ide-integration.js +367 -0
  275. package/dist/services/lsp-client.d.ts +69 -0
  276. package/dist/services/lsp-client.js +667 -0
  277. package/dist/services/mock-ai.d.ts +37 -0
  278. package/dist/services/mock-ai.js +318 -0
  279. package/dist/services/optimistic.d.ts +141 -0
  280. package/dist/services/optimistic.js +367 -0
  281. package/dist/services/vfs-client.d.ts +81 -0
  282. package/dist/services/vfs-client.js +348 -0
  283. package/dist/stores/agents.svelte.d.ts +85 -0
  284. package/dist/stores/agents.svelte.js +459 -0
  285. package/dist/stores/ai-persistence.svelte.d.ts +76 -0
  286. package/dist/stores/ai-persistence.svelte.js +334 -0
  287. package/dist/stores/ai.svelte.d.ts +140 -0
  288. package/dist/stores/ai.svelte.js +383 -0
  289. package/dist/stores/collaboration.svelte.d.ts +164 -0
  290. package/dist/stores/collaboration.svelte.js +334 -0
  291. package/dist/stores/editor.svelte.d.ts +131 -0
  292. package/dist/stores/editor.svelte.js +250 -0
  293. package/dist/stores/index.d.ts +10 -0
  294. package/dist/stores/index.js +29 -0
  295. package/dist/stores/layout.svelte.d.ts +171 -0
  296. package/dist/stores/layout.svelte.js +351 -0
  297. package/dist/stores/plugin.svelte.d.ts +121 -0
  298. package/dist/stores/plugin.svelte.js +410 -0
  299. package/dist/stores/vfs.svelte.d.ts +123 -0
  300. package/dist/stores/vfs.svelte.js +680 -0
  301. package/dist/styles/theme.css +623 -0
  302. package/dist/types/agents.d.ts +127 -0
  303. package/dist/types/agents.js +5 -0
  304. package/dist/types/ai.d.ts +137 -0
  305. package/dist/types/ai.js +4 -0
  306. package/dist/types/crdt.d.ts +222 -0
  307. package/dist/types/crdt.js +5 -0
  308. package/dist/types/editor.d.ts +52 -0
  309. package/dist/types/editor.js +18 -0
  310. package/dist/types/events.d.ts +133 -0
  311. package/dist/types/events.js +4 -0
  312. package/dist/types/filesystem.d.ts +77 -0
  313. package/dist/types/filesystem.js +4 -0
  314. package/dist/types/index.d.ts +9 -0
  315. package/dist/types/index.js +12 -0
  316. package/dist/types/lsp.d.ts +691 -0
  317. package/dist/types/lsp.js +108 -0
  318. package/dist/types/plugin.d.ts +239 -0
  319. package/dist/types/plugin.js +5 -0
  320. package/dist/types/vfs.d.ts +191 -0
  321. package/dist/types/vfs.js +18 -0
  322. package/dist/utils/format.d.ts +55 -0
  323. package/dist/utils/format.js +152 -0
  324. package/dist/utils/index.d.ts +3 -0
  325. package/dist/utils/index.js +4 -0
  326. package/dist/utils/keybindings.d.ts +33 -0
  327. package/dist/utils/keybindings.js +171 -0
  328. package/dist/utils/language.d.ts +27 -0
  329. package/dist/utils/language.js +222 -0
  330. package/package.json +178 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Nocturnium and Jordan Dziat
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,251 @@
1
+ # @nocturnium/svelte-ide
2
+
3
+ Lightweight, Svelte 5-native code editor components — a simpler alternative to
4
+ CodeMirror when you want a fast, themeable editor without dragging in a full IDE
5
+ framework.
6
+
7
+ [![npm version](https://img.shields.io/npm/v/@nocturnium/svelte-ide)](https://www.npmjs.com/package/@nocturnium/svelte-ide)
8
+ [![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
9
+ [![svelte](https://img.shields.io/badge/Svelte-5-ff3e00.svg)](https://svelte.dev)
10
+
11
+ Built from scratch with Svelte 5 runes and zero runtime UI dependencies. Use a
12
+ single `<CustomEditor>` for a textarea-grade upgrade, or compose the editor,
13
+ LSP, collaboration, AI, and plugin pieces into a full IDE experience.
14
+
15
+ ---
16
+
17
+ ## Features
18
+
19
+ - **Custom code editor** — no CodeMirror, no Monaco; pure Svelte 5.
20
+ - **Syntax highlighting** for 12 languages via a built-in tokenizer.
21
+ - **Code folding** — bracket, indentation, comment, and region strategies.
22
+ - **Multi-cursor editing** with overlap merging and configurable limits.
23
+ - **Find & replace** with regex support.
24
+ - **LSP client** — autocomplete, hover, signatures, diagnostics over WebSocket.
25
+ - **Realtime collaboration** (optional) — CRDT/Yjs, tree-shakeable.
26
+ - **AI panel & agent presence** layers for assistant-driven editing.
27
+ - **Plugin system** with a proposal-based lifecycle (bring your own backend).
28
+ - **Themeable** — every color/size is a CSS custom property you can override.
29
+ - **Zero external UI dependencies**; collaboration deps are optional peers.
30
+
31
+ ## Install
32
+
33
+ ```bash
34
+ npm install @nocturnium/svelte-ide
35
+ ```
36
+
37
+ Requires **Svelte 5** (declared as a peer dependency).
38
+
39
+ Collaboration is optional and tree-shakeable — install these only if you use the
40
+ `./crdt` entry point or `<CollaborativeEditor>`:
41
+
42
+ ```bash
43
+ npm install yjs y-websocket y-protocols
44
+ ```
45
+
46
+ ## Quick start
47
+
48
+ Import the component **and** the theme stylesheet (components are unstyled
49
+ without the design tokens):
50
+
51
+ ```svelte
52
+ <script>
53
+ import { CustomEditor } from '@nocturnium/svelte-ide';
54
+ import '@nocturnium/svelte-ide/theme.css';
55
+
56
+ let code = $state('function hello() {\n console.log("world");\n}');
57
+ </script>
58
+
59
+ <CustomEditor
60
+ content={code}
61
+ language="javascript"
62
+ onChange={(value) => (code = value)}
63
+ />
64
+ ```
65
+
66
+ `<CustomEditor>` also accepts `readonly`, `folding`, `multiCursor`, `maxCursors`,
67
+ `preferences`, and callbacks like `onCursorsChange`, `onSave`, and
68
+ `onComplexityChange`. See the [Editor guide](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/editor.md).
69
+
70
+ > **Theme it your way:** all tokens are CSS variables on `:root` (prefixed
71
+ > `--ide-*` and `--color-nocturnium-*`). Override them in a stylesheet loaded
72
+ > after `theme.css` — see [Theming](https://github.com/nocturnium/svelte-ide/blob/main/docs/theming.md).
73
+
74
+ ## Language support
75
+
76
+ JavaScript · TypeScript · JSX · TSX · HTML · XML · CSS · JSON · Python · Go ·
77
+ Markdown · Svelte (plus a `plaintext` fallback). Call `getSupportedLanguages()`
78
+ to enumerate them at runtime.
79
+
80
+ ## Feature highlights
81
+
82
+ ### Language Server Protocol
83
+
84
+ ```svelte
85
+ <script>
86
+ import { LSPEditor, createLSPClient } from '@nocturnium/svelte-ide';
87
+ import '@nocturnium/svelte-ide/theme.css';
88
+
89
+ const client = createLSPClient({
90
+ serverUrl: 'ws://localhost:8765/lsp?language=typescript',
91
+ rootUri: 'file:///workspace',
92
+ });
93
+
94
+ let code = $state('const greeting: string = "hi";');
95
+ </script>
96
+
97
+ <LSPEditor
98
+ content={code}
99
+ uri="file:///workspace/main.ts"
100
+ language="typescript"
101
+ lspClient={client}
102
+ onChange={(value) => (code = value)}
103
+ onDiagnostics={(diagnostics) => console.log(diagnostics)}
104
+ />
105
+ ```
106
+
107
+ You supply the LSP bridge. A ready-to-run Go WebSocket bridge lives in
108
+ [`backend/`](https://github.com/nocturnium/svelte-ide/blob/main/backend/README.md); any LSP-over-WebSocket server works. See the
109
+ [LSP guide](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/lsp.md).
110
+
111
+ ### Realtime collaboration (optional)
112
+
113
+ ```svelte
114
+ <script>
115
+ import { CollaborativeEditor } from '@nocturnium/svelte-ide';
116
+ import '@nocturnium/svelte-ide/theme.css';
117
+ // requires: npm install yjs y-websocket y-protocols
118
+
119
+ let content = $state('');
120
+ </script>
121
+
122
+ <CollaborativeEditor
123
+ documentId="room-1"
124
+ initialContent="// edit together"
125
+ language="javascript"
126
+ onChange={(value) => (content = value)}
127
+ />
128
+ ```
129
+
130
+ The collaboration server URL is always caller-supplied — nothing is baked in.
131
+ See the [Collaboration guide](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/collaboration.md).
132
+
133
+ ### AI assistant panel
134
+
135
+ ```svelte
136
+ <script>
137
+ import { AIPanel } from '@nocturnium/svelte-ide';
138
+ import '@nocturnium/svelte-ide/theme.css';
139
+ </script>
140
+
141
+ <AIPanel />
142
+ ```
143
+
144
+ `<AIPanel>` talks to **your own** chat endpoint (configurable; defaults to
145
+ `/api/chat`) via the AI store. Model output is HTML-escaped with link-scheme
146
+ whitelisting before rendering. See the
147
+ [AI & agents guide](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/ai-and-agents.md).
148
+
149
+ ## Entry points
150
+
151
+ The package root exposes the **stable core**. Backend-dependent and
152
+ experimental subsystems live behind dedicated subpaths — this keeps intent
153
+ explicit and tree-shaking clean.
154
+
155
+ | Import | Contents |
156
+ | --- | --- |
157
+ | `@nocturnium/svelte-ide` | Stable core: editors, layout shell, file explorer, core UI primitives, editor/language/tokenizer/theme utilities, LSP client, layout-store functions, public types |
158
+ | `@nocturnium/svelte-ide/theme.css` | Default theme (design tokens + component styles) |
159
+ | `.../components/editor` | `CustomEditor`, `Editor`, `EditorPane`, `EditorTabs`, … |
160
+ | `.../components/core` | `Button`, `Icon`, `Input`, `Tooltip`, `ResizeHandle`, … |
161
+ | `.../components/ai` | `AIPanel`, `AIMessage`, `AIInlineEdit`, … |
162
+ | `.../components/lsp` | `LSPEditor`, `AutocompleteWidget`, `HoverTooltip`, … |
163
+ | `.../components/agents` | `AgentAvatar`, `AgentActivityPanel`, `AgentCursor`, … |
164
+ | `.../components/vfs` | `LockIndicator`, `LockConflictDialog`, … |
165
+ | `.../components/layout` | `IDELayout`, `StatusBar` |
166
+ | `.../components/plugins` | `PluginPanel`, `PluginCard`, … |
167
+ | `.../stores` | Full Svelte 5 runes store surface (layout, editor, ai, plugin, …) |
168
+ | `.../plugins` | Plugin runtime (`createPluginLoader`, `definePlugin`, `defineCommand`, `definePanel`, `pluginRegistry`) |
169
+ | `.../crdt` | CRDT collaboration primitives (requires Yjs) |
170
+ | `.../types`, `.../utils` | Full type and helper-function surface |
171
+
172
+ ## API Stability
173
+
174
+ This package follows [SemVer](https://semver.org/). The surface is split into a
175
+ stable core and a set of experimental subpaths.
176
+
177
+ **Stable (root entry).** Imported from `@nocturnium/svelte-ide`, these follow
178
+ SemVer and only change with a major version bump:
179
+
180
+ - Editors: `Editor`, `CustomEditor`, `LSPEditor` (`CollaborativeEditor` is
181
+ experimental — see below).
182
+ - Composition: `EditorPane`, `EditorTabs`, `FileExplorer`, `FileIcon`,
183
+ `IDELayout`, `StatusBar`.
184
+ - Core UI primitives: `Button`, `Icon`, `Input`, `Textarea`, `Tooltip`, `Kbd`,
185
+ `Badge`, `Spinner`, `Avatar`, `ContextMenu`, `ResizeHandle`, `ErrorBoundary`,
186
+ `ConnectionStatus`.
187
+ - Editor-core, language, tokenizer, and theme utilities.
188
+ - LSP client: `LSPClient`, `createLSPClient`, the position helpers, and the
189
+ public LSP types (`Diagnostic`, `LSPConnectionState`, `ServerCapabilities`).
190
+ - The curated layout-store functions and the public editor/filesystem/LSP/AI
191
+ types.
192
+
193
+ **Experimental (subpath entries).** These are reachable only via their
194
+ subpaths and **may change in minor versions**:
195
+
196
+ - `./components/agents` — agent presence UI
197
+ - `./components/vfs` — virtual-filesystem lock/conflict UI
198
+ - `./components/plugins` — plugin UI components
199
+ - `./plugins` — plugin runtime/loader
200
+ - `./crdt` and `<CollaborativeEditor>` — realtime collaboration (requires Yjs)
201
+
202
+ The full store, type, and util surfaces exposed via `./stores`, `./types`, and
203
+ `./utils` beyond the curated root set are likewise experimental.
204
+
205
+ ## Documentation
206
+
207
+ - **[Documentation hub](https://github.com/nocturnium/svelte-ide/blob/main/docs/README.md)** — full table of contents
208
+ - [Getting started](https://github.com/nocturnium/svelte-ide/blob/main/docs/getting-started.md)
209
+ - [Architecture](https://github.com/nocturnium/svelte-ide/blob/main/docs/architecture.md)
210
+ - [Theming](https://github.com/nocturnium/svelte-ide/blob/main/docs/theming.md)
211
+ - Guides: [Editor](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/editor.md) ·
212
+ [Syntax highlighting](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/syntax-highlighting.md) ·
213
+ [Code folding](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/code-folding.md) ·
214
+ [Multi-cursor](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/multi-cursor.md) ·
215
+ [LSP](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/lsp.md) ·
216
+ [Collaboration](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/collaboration.md) ·
217
+ [AI & agents](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/ai-and-agents.md) ·
218
+ [Plugins](https://github.com/nocturnium/svelte-ide/blob/main/docs/guides/plugins.md)
219
+ - API reference: [Components](https://github.com/nocturnium/svelte-ide/blob/main/docs/api/components.md) ·
220
+ [Stores](https://github.com/nocturnium/svelte-ide/blob/main/docs/api/stores.md) ·
221
+ [Services](https://github.com/nocturnium/svelte-ide/blob/main/docs/api/services.md) ·
222
+ [Types & utils](https://github.com/nocturnium/svelte-ide/blob/main/docs/api/types-and-utils.md)
223
+
224
+ ## The LSP backend
225
+
226
+ [`backend/`](https://github.com/nocturnium/svelte-ide/tree/main/backend) is a standalone Go "lsp-bridge" WebSocket server that
227
+ proxies browser editors to native language servers (gopls,
228
+ typescript-language-server, …). It is a separate module — **not** part of the
229
+ npm package — and accepts `localhost` origins only by default. See
230
+ [`backend/README.md`](https://github.com/nocturnium/svelte-ide/blob/main/backend/README.md).
231
+
232
+ ## Try the demo
233
+
234
+ ```bash
235
+ git clone https://github.com/nocturnium/svelte-ide.git
236
+ cd svelte-ide
237
+ npm install
238
+ npm run dev # http://localhost:5173
239
+ ```
240
+
241
+ The SvelteKit app under `src/routes/` showcases every feature.
242
+
243
+ ## Contributing
244
+
245
+ Contributions are welcome! See [CONTRIBUTING.md](https://github.com/nocturnium/svelte-ide/blob/main/CONTRIBUTING.md) for setup,
246
+ scripts, and conventions, and our [Code of Conduct](https://github.com/nocturnium/svelte-ide/blob/main/CODE_OF_CONDUCT.md).
247
+ Security issues: please follow [SECURITY.md](https://github.com/nocturnium/svelte-ide/blob/main/SECURITY.md).
248
+
249
+ ## License
250
+
251
+ [MIT](./LICENSE) © Nocturnium and Jordan Dziat