@nanocollective/nanocoder 1.16.5 → 1.17.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 (162) hide show
  1. package/README.md +53 -19
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/app.d.ts +6 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +54 -18
  6. package/dist/app.js.map +1 -1
  7. package/dist/cli.js +13 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/mcp.d.ts +6 -0
  10. package/dist/commands/mcp.d.ts.map +1 -1
  11. package/dist/commands/mcp.js +25 -3
  12. package/dist/commands/mcp.js.map +1 -1
  13. package/dist/components/vscode-extension-prompt.d.ts +12 -0
  14. package/dist/components/vscode-extension-prompt.d.ts.map +1 -0
  15. package/dist/components/vscode-extension-prompt.js +115 -0
  16. package/dist/components/vscode-extension-prompt.js.map +1 -0
  17. package/dist/hooks/useAppInitialization.d.ts +2 -0
  18. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  19. package/dist/hooks/useAppInitialization.js +55 -1
  20. package/dist/hooks/useAppInitialization.js.map +1 -1
  21. package/dist/hooks/useModeHandlers.d.ts +2 -1
  22. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  23. package/dist/hooks/useModeHandlers.js +13 -1
  24. package/dist/hooks/useModeHandlers.js.map +1 -1
  25. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  26. package/dist/hooks/useToolHandler.js +11 -0
  27. package/dist/hooks/useToolHandler.js.map +1 -1
  28. package/dist/hooks/useVSCodeServer.d.ts +45 -0
  29. package/dist/hooks/useVSCodeServer.d.ts.map +1 -0
  30. package/dist/hooks/useVSCodeServer.js +144 -0
  31. package/dist/hooks/useVSCodeServer.js.map +1 -0
  32. package/dist/lsp/index.d.ts +12 -0
  33. package/dist/lsp/index.d.ts.map +1 -0
  34. package/dist/lsp/index.js +11 -0
  35. package/dist/lsp/index.js.map +1 -0
  36. package/dist/lsp/lsp-client.d.ts +78 -0
  37. package/dist/lsp/lsp-client.d.ts.map +1 -0
  38. package/dist/lsp/lsp-client.js +378 -0
  39. package/dist/lsp/lsp-client.js.map +1 -0
  40. package/dist/lsp/lsp-client.spec.d.ts +2 -0
  41. package/dist/lsp/lsp-client.spec.d.ts.map +1 -0
  42. package/dist/lsp/lsp-client.spec.js +395 -0
  43. package/dist/lsp/lsp-client.spec.js.map +1 -0
  44. package/dist/lsp/lsp-manager.d.ts +124 -0
  45. package/dist/lsp/lsp-manager.d.ts.map +1 -0
  46. package/dist/lsp/lsp-manager.js +313 -0
  47. package/dist/lsp/lsp-manager.js.map +1 -0
  48. package/dist/lsp/lsp-manager.spec.d.ts +2 -0
  49. package/dist/lsp/lsp-manager.spec.d.ts.map +1 -0
  50. package/dist/lsp/lsp-manager.spec.js +388 -0
  51. package/dist/lsp/lsp-manager.spec.js.map +1 -0
  52. package/dist/lsp/protocol.d.ts +313 -0
  53. package/dist/lsp/protocol.d.ts.map +1 -0
  54. package/dist/lsp/protocol.js +70 -0
  55. package/dist/lsp/protocol.js.map +1 -0
  56. package/dist/lsp/protocol.spec.d.ts +2 -0
  57. package/dist/lsp/protocol.spec.d.ts.map +1 -0
  58. package/dist/lsp/protocol.spec.js +406 -0
  59. package/dist/lsp/protocol.spec.js.map +1 -0
  60. package/dist/lsp/server-discovery.d.ts +35 -0
  61. package/dist/lsp/server-discovery.d.ts.map +1 -0
  62. package/dist/lsp/server-discovery.js +291 -0
  63. package/dist/lsp/server-discovery.js.map +1 -0
  64. package/dist/lsp/server-discovery.spec.d.ts +2 -0
  65. package/dist/lsp/server-discovery.spec.d.ts.map +1 -0
  66. package/dist/lsp/server-discovery.spec.js +375 -0
  67. package/dist/lsp/server-discovery.spec.js.map +1 -0
  68. package/dist/mcp/mcp-client.d.ts +18 -0
  69. package/dist/mcp/mcp-client.d.ts.map +1 -1
  70. package/dist/mcp/mcp-client.js +59 -23
  71. package/dist/mcp/mcp-client.js.map +1 -1
  72. package/dist/mcp/mcp-client.spec.d.ts +2 -0
  73. package/dist/mcp/mcp-client.spec.d.ts.map +1 -0
  74. package/dist/mcp/mcp-client.spec.js +64 -0
  75. package/dist/mcp/mcp-client.spec.js.map +1 -0
  76. package/dist/mcp/transport-factory.d.ts +39 -0
  77. package/dist/mcp/transport-factory.d.ts.map +1 -0
  78. package/dist/mcp/transport-factory.js +176 -0
  79. package/dist/mcp/transport-factory.js.map +1 -0
  80. package/dist/mcp/transport-factory.spec.d.ts +2 -0
  81. package/dist/mcp/transport-factory.spec.d.ts.map +1 -0
  82. package/dist/mcp/transport-factory.spec.js +303 -0
  83. package/dist/mcp/transport-factory.spec.js.map +1 -0
  84. package/dist/tools/create-file.d.ts.map +1 -1
  85. package/dist/tools/create-file.js +37 -3
  86. package/dist/tools/create-file.js.map +1 -1
  87. package/dist/tools/delete-lines.d.ts.map +1 -1
  88. package/dist/tools/delete-lines.js +41 -1
  89. package/dist/tools/delete-lines.js.map +1 -1
  90. package/dist/tools/index.d.ts.map +1 -1
  91. package/dist/tools/index.js +2 -0
  92. package/dist/tools/index.js.map +1 -1
  93. package/dist/tools/insert-lines.d.ts.map +1 -1
  94. package/dist/tools/insert-lines.js +40 -1
  95. package/dist/tools/insert-lines.js.map +1 -1
  96. package/dist/tools/lsp-get-diagnostics.d.ts +3 -0
  97. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -0
  98. package/dist/tools/lsp-get-diagnostics.js +182 -0
  99. package/dist/tools/lsp-get-diagnostics.js.map +1 -0
  100. package/dist/tools/replace-lines.d.ts.map +1 -1
  101. package/dist/tools/replace-lines.js +44 -1
  102. package/dist/tools/replace-lines.js.map +1 -1
  103. package/dist/tools/tool-manager.d.ts +17 -0
  104. package/dist/tools/tool-manager.d.ts.map +1 -1
  105. package/dist/tools/tool-manager.js +12 -0
  106. package/dist/tools/tool-manager.js.map +1 -1
  107. package/dist/types/config.d.ts +27 -0
  108. package/dist/types/config.d.ts.map +1 -1
  109. package/dist/types/mcp.d.ts +23 -1
  110. package/dist/types/mcp.d.ts.map +1 -1
  111. package/dist/vscode/extension-installer.d.ts +24 -0
  112. package/dist/vscode/extension-installer.d.ts.map +1 -0
  113. package/dist/vscode/extension-installer.js +110 -0
  114. package/dist/vscode/extension-installer.js.map +1 -0
  115. package/dist/vscode/extension-installer.spec.d.ts +2 -0
  116. package/dist/vscode/extension-installer.spec.d.ts.map +1 -0
  117. package/dist/vscode/extension-installer.spec.js +132 -0
  118. package/dist/vscode/extension-installer.spec.js.map +1 -0
  119. package/dist/vscode/index.d.ts +14 -0
  120. package/dist/vscode/index.d.ts.map +1 -0
  121. package/dist/vscode/index.js +14 -0
  122. package/dist/vscode/index.js.map +1 -0
  123. package/dist/vscode/protocol.d.ts +101 -0
  124. package/dist/vscode/protocol.d.ts.map +1 -0
  125. package/dist/vscode/protocol.js +7 -0
  126. package/dist/vscode/protocol.js.map +1 -0
  127. package/dist/vscode/protocol.spec.d.ts +2 -0
  128. package/dist/vscode/protocol.spec.d.ts.map +1 -0
  129. package/dist/vscode/protocol.spec.js +354 -0
  130. package/dist/vscode/protocol.spec.js.map +1 -0
  131. package/dist/vscode/vscode-server.d.ts +118 -0
  132. package/dist/vscode/vscode-server.d.ts.map +1 -0
  133. package/dist/vscode/vscode-server.js +303 -0
  134. package/dist/vscode/vscode-server.js.map +1 -0
  135. package/dist/vscode/vscode-server.spec.d.ts +2 -0
  136. package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
  137. package/dist/vscode/vscode-server.spec.js +487 -0
  138. package/dist/vscode/vscode-server.spec.js.map +1 -0
  139. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  140. package/dist/wizard/steps/mcp-step.js +139 -72
  141. package/dist/wizard/steps/mcp-step.js.map +1 -1
  142. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  143. package/dist/wizard/steps/summary-step.js +58 -2
  144. package/dist/wizard/steps/summary-step.js.map +1 -1
  145. package/dist/wizard/templates/mcp-templates.d.ts +20 -2
  146. package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
  147. package/dist/wizard/templates/mcp-templates.js +351 -7
  148. package/dist/wizard/templates/mcp-templates.js.map +1 -1
  149. package/dist/wizard/templates/mcp-templates.spec.js +257 -0
  150. package/dist/wizard/templates/mcp-templates.spec.js.map +1 -1
  151. package/dist/wizard/validation-array.spec.d.ts +2 -0
  152. package/dist/wizard/validation-array.spec.d.ts.map +1 -0
  153. package/dist/wizard/validation-array.spec.js +221 -0
  154. package/dist/wizard/validation-array.spec.js.map +1 -0
  155. package/dist/wizard/validation.d.ts +26 -1
  156. package/dist/wizard/validation.d.ts.map +1 -1
  157. package/dist/wizard/validation.js +15 -2
  158. package/dist/wizard/validation.js.map +1 -1
  159. package/dist/wizard/validation.spec.js +13 -5
  160. package/dist/wizard/validation.spec.js.map +1 -1
  161. package/package.json +7 -3
  162. package/source/app/prompts/main-prompt.md +6 -0
@@ -0,0 +1,313 @@
1
+ /**
2
+ * LSP Manager
3
+ * Manages multiple language server connections with auto-discovery and routing
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ import { extname } from 'path';
7
+ import { readFile } from 'fs/promises';
8
+ import { LSPClient } from './lsp-client.js';
9
+ import { discoverLanguageServers, getLanguageId } from './server-discovery.js';
10
+ export class LSPManager extends EventEmitter {
11
+ clients = new Map(); // serverName -> client
12
+ languageToServer = new Map(); // extension -> serverName
13
+ documentServers = new Map(); // uri -> serverName
14
+ diagnosticsCache = new Map(); // uri -> diagnostics
15
+ rootUri;
16
+ initialized = false;
17
+ constructor(config = {}) {
18
+ super();
19
+ this.rootUri = config.rootUri || `file://${process.cwd()}`;
20
+ }
21
+ /**
22
+ * Initialize the LSP manager with auto-discovery and/or custom servers
23
+ */
24
+ async initialize(config = {}) {
25
+ const results = [];
26
+ const serversToStart = [];
27
+ // Add custom servers first (they take priority)
28
+ if (config.servers) {
29
+ for (const server of config.servers) {
30
+ serversToStart.push({
31
+ ...server,
32
+ rootUri: server.rootUri || this.rootUri,
33
+ });
34
+ }
35
+ }
36
+ // Auto-discover additional servers if enabled (default: true)
37
+ if (config.autoDiscover !== false) {
38
+ const discovered = discoverLanguageServers();
39
+ // Only add discovered servers for languages not already covered
40
+ const coveredLanguages = new Set();
41
+ for (const server of serversToStart) {
42
+ for (const lang of server.languages) {
43
+ coveredLanguages.add(lang);
44
+ }
45
+ }
46
+ for (const server of discovered) {
47
+ const hasNewLanguages = server.languages.some(lang => !coveredLanguages.has(lang));
48
+ if (hasNewLanguages) {
49
+ serversToStart.push({
50
+ ...server,
51
+ rootUri: this.rootUri,
52
+ });
53
+ for (const lang of server.languages) {
54
+ coveredLanguages.add(lang);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ // Start all servers in parallel
60
+ const startPromises = serversToStart.map(async (serverConfig) => {
61
+ const result = await this.startServer(serverConfig);
62
+ config.onProgress?.(result);
63
+ results.push(result);
64
+ return result;
65
+ });
66
+ await Promise.all(startPromises);
67
+ this.initialized = true;
68
+ return results;
69
+ }
70
+ /**
71
+ * Start a single language server
72
+ */
73
+ async startServer(config) {
74
+ try {
75
+ const client = new LSPClient(config);
76
+ // Handle diagnostics from this server
77
+ client.on('diagnostics', (params) => {
78
+ this.diagnosticsCache.set(params.uri, params.diagnostics);
79
+ this.emit('diagnostics', params);
80
+ });
81
+ client.on('exit', (_code) => {
82
+ this.clients.delete(config.name);
83
+ // Remove language mappings for this server
84
+ for (const [lang, serverName] of this.languageToServer.entries()) {
85
+ if (serverName === config.name) {
86
+ this.languageToServer.delete(lang);
87
+ }
88
+ }
89
+ });
90
+ await client.start();
91
+ // Store client and language mappings
92
+ this.clients.set(config.name, client);
93
+ for (const lang of config.languages) {
94
+ this.languageToServer.set(lang, config.name);
95
+ }
96
+ return {
97
+ serverName: config.name,
98
+ success: true,
99
+ languages: config.languages,
100
+ };
101
+ }
102
+ catch (error) {
103
+ return {
104
+ serverName: config.name,
105
+ success: false,
106
+ error: error instanceof Error ? error.message : String(error),
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Stop all language servers
112
+ */
113
+ async shutdown() {
114
+ const stopPromises = Array.from(this.clients.values()).map(client => client.stop());
115
+ await Promise.all(stopPromises);
116
+ this.clients.clear();
117
+ this.languageToServer.clear();
118
+ this.documentServers.clear();
119
+ this.diagnosticsCache.clear();
120
+ this.initialized = false;
121
+ }
122
+ /**
123
+ * Get the client for a file based on its extension
124
+ */
125
+ getClientForFile(filePath) {
126
+ const ext = extname(filePath).slice(1); // Remove leading dot
127
+ const serverName = this.languageToServer.get(ext);
128
+ if (!serverName)
129
+ return undefined;
130
+ return this.clients.get(serverName);
131
+ }
132
+ /**
133
+ * Convert file path to URI
134
+ */
135
+ fileToUri(filePath) {
136
+ if (filePath.startsWith('file://'))
137
+ return filePath;
138
+ return `file://${filePath}`;
139
+ }
140
+ /**
141
+ * Open a document in the appropriate language server
142
+ */
143
+ async openDocument(filePath, content) {
144
+ const client = this.getClientForFile(filePath);
145
+ if (!client || !client.isReady())
146
+ return false;
147
+ const uri = this.fileToUri(filePath);
148
+ const ext = extname(filePath).slice(1);
149
+ const languageId = getLanguageId(ext);
150
+ // Read content if not provided
151
+ const text = content ?? (await readFile(filePath, 'utf-8'));
152
+ client.openDocument(uri, languageId, text);
153
+ this.documentServers.set(uri, client.getCapabilities() ? 'active' : '');
154
+ return true;
155
+ }
156
+ /**
157
+ * Update a document in the language server
158
+ */
159
+ updateDocument(filePath, content) {
160
+ const client = this.getClientForFile(filePath);
161
+ if (!client || !client.isReady())
162
+ return false;
163
+ const uri = this.fileToUri(filePath);
164
+ client.updateDocument(uri, content);
165
+ return true;
166
+ }
167
+ /**
168
+ * Close a document in the language server
169
+ */
170
+ closeDocument(filePath) {
171
+ const client = this.getClientForFile(filePath);
172
+ if (!client || !client.isReady())
173
+ return false;
174
+ const uri = this.fileToUri(filePath);
175
+ client.closeDocument(uri);
176
+ this.documentServers.delete(uri);
177
+ this.diagnosticsCache.delete(uri);
178
+ return true;
179
+ }
180
+ /**
181
+ * Get diagnostics for a file
182
+ */
183
+ async getDiagnostics(filePath) {
184
+ const uri = this.fileToUri(filePath);
185
+ // First check cache (from push notifications)
186
+ const cached = this.diagnosticsCache.get(uri);
187
+ if (cached)
188
+ return cached;
189
+ // Try pull diagnostics
190
+ const client = this.getClientForFile(filePath);
191
+ if (!client || !client.isReady())
192
+ return [];
193
+ return client.getDiagnostics(uri);
194
+ }
195
+ /**
196
+ * Get diagnostics for all open documents
197
+ */
198
+ getAllDiagnostics() {
199
+ const results = [];
200
+ for (const [uri, diagnostics] of this.diagnosticsCache.entries()) {
201
+ if (diagnostics.length > 0) {
202
+ results.push({ uri, diagnostics });
203
+ }
204
+ }
205
+ return results;
206
+ }
207
+ /**
208
+ * Get completions at a position in a file
209
+ */
210
+ async getCompletions(filePath, line, character) {
211
+ const client = this.getClientForFile(filePath);
212
+ if (!client || !client.isReady())
213
+ return [];
214
+ const uri = this.fileToUri(filePath);
215
+ return client.getCompletions(uri, { line, character });
216
+ }
217
+ /**
218
+ * Get code actions for a range in a file
219
+ */
220
+ async getCodeActions(filePath, startLine, startChar, endLine, endChar, diagnostics) {
221
+ const client = this.getClientForFile(filePath);
222
+ if (!client || !client.isReady())
223
+ return [];
224
+ const uri = this.fileToUri(filePath);
225
+ // Use provided diagnostics or get from cache
226
+ const diags = diagnostics ||
227
+ this.diagnosticsCache.get(uri)?.filter(d => {
228
+ // Filter diagnostics that overlap with the range
229
+ return d.range.start.line <= endLine && d.range.end.line >= startLine;
230
+ }) ||
231
+ [];
232
+ return client.getCodeActions(uri, diags, startLine, startChar, endLine, endChar);
233
+ }
234
+ /**
235
+ * Format a document
236
+ */
237
+ async formatDocument(filePath, options) {
238
+ const client = this.getClientForFile(filePath);
239
+ if (!client || !client.isReady())
240
+ return [];
241
+ const uri = this.fileToUri(filePath);
242
+ return client.formatDocument(uri, options);
243
+ }
244
+ /**
245
+ * Check if LSP is available for a file type
246
+ */
247
+ hasLanguageSupport(filePath) {
248
+ const ext = extname(filePath).slice(1);
249
+ return this.languageToServer.has(ext);
250
+ }
251
+ /**
252
+ * Get list of connected servers
253
+ */
254
+ getConnectedServers() {
255
+ return Array.from(this.clients.keys());
256
+ }
257
+ /**
258
+ * Get supported languages
259
+ */
260
+ getSupportedLanguages() {
261
+ return Array.from(this.languageToServer.keys());
262
+ }
263
+ /**
264
+ * Check if manager is initialized
265
+ */
266
+ isInitialized() {
267
+ return this.initialized;
268
+ }
269
+ /**
270
+ * Get server status
271
+ */
272
+ getStatus() {
273
+ const servers = [];
274
+ for (const [name, client] of this.clients.entries()) {
275
+ const languages = [];
276
+ for (const [lang, serverName] of this.languageToServer.entries()) {
277
+ if (serverName === name) {
278
+ languages.push(lang);
279
+ }
280
+ }
281
+ servers.push({
282
+ name,
283
+ ready: client.isReady(),
284
+ languages,
285
+ });
286
+ }
287
+ return {
288
+ initialized: this.initialized,
289
+ servers,
290
+ };
291
+ }
292
+ }
293
+ // Singleton instance
294
+ let lspManagerInstance = null;
295
+ /**
296
+ * Get or create the LSP manager singleton
297
+ */
298
+ export function getLSPManager(config) {
299
+ if (!lspManagerInstance) {
300
+ lspManagerInstance = new LSPManager(config);
301
+ }
302
+ return lspManagerInstance;
303
+ }
304
+ /**
305
+ * Reset the LSP manager (for testing)
306
+ */
307
+ export async function resetLSPManager() {
308
+ if (lspManagerInstance) {
309
+ await lspManagerInstance.shutdown();
310
+ lspManagerInstance = null;
311
+ }
312
+ }
313
+ //# sourceMappingURL=lsp-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-manager.js","sourceRoot":"","sources":["../../source/lsp/lsp-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lsp-manager.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-manager.spec.d.ts","sourceRoot":"","sources":["../../source/lsp/lsp-manager.spec.ts"],"names":[],"mappings":""}