@kernel.chat/kbot 1.3.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 (176) hide show
  1. package/README.md +94 -0
  2. package/dist/agent.d.ts +9 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +576 -119
  5. package/dist/agent.js.map +1 -1
  6. package/dist/auth.d.ts +20 -35
  7. package/dist/auth.d.ts.map +1 -1
  8. package/dist/auth.js +236 -66
  9. package/dist/auth.js.map +1 -1
  10. package/dist/auth.test.d.ts +2 -0
  11. package/dist/auth.test.d.ts.map +1 -0
  12. package/dist/auth.test.js +89 -0
  13. package/dist/auth.test.js.map +1 -0
  14. package/dist/build-targets.d.ts +37 -0
  15. package/dist/build-targets.d.ts.map +1 -0
  16. package/dist/build-targets.js +507 -0
  17. package/dist/build-targets.js.map +1 -0
  18. package/dist/cli.js +1211 -131
  19. package/dist/cli.js.map +1 -1
  20. package/dist/context.d.ts +2 -0
  21. package/dist/context.d.ts.map +1 -1
  22. package/dist/context.js +72 -22
  23. package/dist/context.js.map +1 -1
  24. package/dist/hooks.d.ts +27 -0
  25. package/dist/hooks.d.ts.map +1 -0
  26. package/dist/hooks.js +145 -0
  27. package/dist/hooks.js.map +1 -0
  28. package/dist/ide/acp-server.d.ts +6 -0
  29. package/dist/ide/acp-server.d.ts.map +1 -0
  30. package/dist/ide/acp-server.js +319 -0
  31. package/dist/ide/acp-server.js.map +1 -0
  32. package/dist/ide/bridge.d.ts +128 -0
  33. package/dist/ide/bridge.d.ts.map +1 -0
  34. package/dist/ide/bridge.js +185 -0
  35. package/dist/ide/bridge.js.map +1 -0
  36. package/dist/ide/index.d.ts +5 -0
  37. package/dist/ide/index.d.ts.map +1 -0
  38. package/dist/ide/index.js +11 -0
  39. package/dist/ide/index.js.map +1 -0
  40. package/dist/ide/lsp-bridge.d.ts +27 -0
  41. package/dist/ide/lsp-bridge.d.ts.map +1 -0
  42. package/dist/ide/lsp-bridge.js +267 -0
  43. package/dist/ide/lsp-bridge.js.map +1 -0
  44. package/dist/ide/mcp-server.d.ts +7 -0
  45. package/dist/ide/mcp-server.d.ts.map +1 -0
  46. package/dist/ide/mcp-server.js +451 -0
  47. package/dist/ide/mcp-server.js.map +1 -0
  48. package/dist/learning.d.ts +179 -0
  49. package/dist/learning.d.ts.map +1 -0
  50. package/dist/learning.js +829 -0
  51. package/dist/learning.js.map +1 -0
  52. package/dist/learning.test.d.ts +2 -0
  53. package/dist/learning.test.d.ts.map +1 -0
  54. package/dist/learning.test.js +115 -0
  55. package/dist/learning.test.js.map +1 -0
  56. package/dist/matrix.d.ts +49 -0
  57. package/dist/matrix.d.ts.map +1 -0
  58. package/dist/matrix.js +302 -0
  59. package/dist/matrix.js.map +1 -0
  60. package/dist/memory.d.ts +11 -0
  61. package/dist/memory.d.ts.map +1 -1
  62. package/dist/memory.js +54 -2
  63. package/dist/memory.js.map +1 -1
  64. package/dist/multimodal.d.ts +57 -0
  65. package/dist/multimodal.d.ts.map +1 -0
  66. package/dist/multimodal.js +206 -0
  67. package/dist/multimodal.js.map +1 -0
  68. package/dist/permissions.d.ts +21 -0
  69. package/dist/permissions.d.ts.map +1 -0
  70. package/dist/permissions.js +122 -0
  71. package/dist/permissions.js.map +1 -0
  72. package/dist/planner.d.ts +54 -0
  73. package/dist/planner.d.ts.map +1 -0
  74. package/dist/planner.js +298 -0
  75. package/dist/planner.js.map +1 -0
  76. package/dist/plugins.d.ts +30 -0
  77. package/dist/plugins.d.ts.map +1 -0
  78. package/dist/plugins.js +135 -0
  79. package/dist/plugins.js.map +1 -0
  80. package/dist/sessions.d.ts +38 -0
  81. package/dist/sessions.d.ts.map +1 -0
  82. package/dist/sessions.js +177 -0
  83. package/dist/sessions.js.map +1 -0
  84. package/dist/streaming.d.ts +88 -0
  85. package/dist/streaming.d.ts.map +1 -0
  86. package/dist/streaming.js +317 -0
  87. package/dist/streaming.js.map +1 -0
  88. package/dist/tools/background.d.ts +2 -0
  89. package/dist/tools/background.d.ts.map +1 -0
  90. package/dist/tools/background.js +163 -0
  91. package/dist/tools/background.js.map +1 -0
  92. package/dist/tools/bash.d.ts.map +1 -1
  93. package/dist/tools/bash.js +26 -1
  94. package/dist/tools/bash.js.map +1 -1
  95. package/dist/tools/browser.js +7 -7
  96. package/dist/tools/browser.js.map +1 -1
  97. package/dist/tools/build-matrix.d.ts +2 -0
  98. package/dist/tools/build-matrix.d.ts.map +1 -0
  99. package/dist/tools/build-matrix.js +463 -0
  100. package/dist/tools/build-matrix.js.map +1 -0
  101. package/dist/tools/computer.js +5 -5
  102. package/dist/tools/computer.js.map +1 -1
  103. package/dist/tools/fetch.d.ts +2 -0
  104. package/dist/tools/fetch.d.ts.map +1 -0
  105. package/dist/tools/fetch.js +106 -0
  106. package/dist/tools/fetch.js.map +1 -0
  107. package/dist/tools/files.d.ts.map +1 -1
  108. package/dist/tools/files.js +112 -6
  109. package/dist/tools/files.js.map +1 -1
  110. package/dist/tools/git.js +3 -3
  111. package/dist/tools/git.js.map +1 -1
  112. package/dist/tools/github.d.ts +2 -0
  113. package/dist/tools/github.d.ts.map +1 -0
  114. package/dist/tools/github.js +196 -0
  115. package/dist/tools/github.js.map +1 -0
  116. package/dist/tools/index.d.ts +29 -5
  117. package/dist/tools/index.d.ts.map +1 -1
  118. package/dist/tools/index.js +136 -20
  119. package/dist/tools/index.js.map +1 -1
  120. package/dist/tools/index.test.d.ts +2 -0
  121. package/dist/tools/index.test.d.ts.map +1 -0
  122. package/dist/tools/index.test.js +162 -0
  123. package/dist/tools/index.test.js.map +1 -0
  124. package/dist/tools/matrix.d.ts +2 -0
  125. package/dist/tools/matrix.d.ts.map +1 -0
  126. package/dist/tools/matrix.js +79 -0
  127. package/dist/tools/matrix.js.map +1 -0
  128. package/dist/tools/mcp-client.d.ts +2 -0
  129. package/dist/tools/mcp-client.d.ts.map +1 -0
  130. package/dist/tools/mcp-client.js +295 -0
  131. package/dist/tools/mcp-client.js.map +1 -0
  132. package/dist/tools/notebook.d.ts +2 -0
  133. package/dist/tools/notebook.d.ts.map +1 -0
  134. package/dist/tools/notebook.js +207 -0
  135. package/dist/tools/notebook.js.map +1 -0
  136. package/dist/tools/openclaw.d.ts +2 -0
  137. package/dist/tools/openclaw.d.ts.map +1 -0
  138. package/dist/tools/openclaw.js +187 -0
  139. package/dist/tools/openclaw.js.map +1 -0
  140. package/dist/tools/parallel.d.ts +2 -0
  141. package/dist/tools/parallel.d.ts.map +1 -0
  142. package/dist/tools/parallel.js +60 -0
  143. package/dist/tools/parallel.js.map +1 -0
  144. package/dist/tools/sandbox.d.ts +2 -0
  145. package/dist/tools/sandbox.d.ts.map +1 -0
  146. package/dist/tools/sandbox.js +352 -0
  147. package/dist/tools/sandbox.js.map +1 -0
  148. package/dist/tools/search.d.ts.map +1 -1
  149. package/dist/tools/search.js +135 -28
  150. package/dist/tools/search.js.map +1 -1
  151. package/dist/tools/subagent.d.ts +4 -0
  152. package/dist/tools/subagent.d.ts.map +1 -0
  153. package/dist/tools/subagent.js +260 -0
  154. package/dist/tools/subagent.js.map +1 -0
  155. package/dist/tools/tasks.d.ts +14 -0
  156. package/dist/tools/tasks.d.ts.map +1 -0
  157. package/dist/tools/tasks.js +210 -0
  158. package/dist/tools/tasks.js.map +1 -0
  159. package/dist/tools/worktree.d.ts +2 -0
  160. package/dist/tools/worktree.d.ts.map +1 -0
  161. package/dist/tools/worktree.js +223 -0
  162. package/dist/tools/worktree.js.map +1 -0
  163. package/dist/tui.d.ts +73 -0
  164. package/dist/tui.d.ts.map +1 -0
  165. package/dist/tui.js +257 -0
  166. package/dist/tui.js.map +1 -0
  167. package/dist/ui.d.ts +11 -19
  168. package/dist/ui.d.ts.map +1 -1
  169. package/dist/ui.js +143 -171
  170. package/dist/ui.js.map +1 -1
  171. package/dist/updater.d.ts +3 -0
  172. package/dist/updater.d.ts.map +1 -0
  173. package/dist/updater.js +70 -0
  174. package/dist/updater.js.map +1 -0
  175. package/install.sh +5 -7
  176. package/package.json +8 -4
@@ -0,0 +1,11 @@
1
+ // K:BOT IDE Matrix — Protocol adapters for universal IDE integration
2
+ //
3
+ // Three protocols, every major IDE:
4
+ // MCP → VS Code, Cursor, Windsurf, Zed, Neovim
5
+ // ACP → JetBrains (IntelliJ, WebStorm, PyCharm, GoLand, Android Studio)
6
+ // LSP → All editors (diagnostics feedback loop)
7
+ export { startMcpServer } from './mcp-server.js';
8
+ export { startAcpServer } from './acp-server.js';
9
+ export { getDiagnostics, formatDiagnostics } from './lsp-bridge.js';
10
+ export { initBridge, chat, executeCommand, getContext, getTools, getToolList, getStatus, getAgents, getMemory, getSessions, getFileDiagnostics, remember, setAgent, refreshContext, train, } from './bridge.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ide/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,oCAAoC;AACpC,kDAAkD;AAClD,2EAA2E;AAC3E,mDAAmD;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAA0C,MAAM,iBAAiB,CAAA;AAC3G,OAAO,EACL,UAAU,EACV,IAAI,EACJ,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,KAAK,GAIN,MAAM,aAAa,CAAA"}
@@ -0,0 +1,27 @@
1
+ export interface Diagnostic {
2
+ file: string;
3
+ line: number;
4
+ column: number;
5
+ severity: 'error' | 'warning' | 'info' | 'hint';
6
+ message: string;
7
+ source?: string;
8
+ code?: string | number;
9
+ }
10
+ export interface LspBridgeOptions {
11
+ /** Timeout in ms for LSP response (default: 10000) */
12
+ timeout?: number;
13
+ /** Custom LSP server commands by language */
14
+ servers?: Record<string, string[]>;
15
+ }
16
+ /**
17
+ * Get diagnostics for a file by spawning the appropriate LSP server.
18
+ *
19
+ * This is a one-shot operation: spawn LSP, initialize, open file,
20
+ * collect diagnostics, shut down. Not a persistent connection.
21
+ */
22
+ export declare function getDiagnostics(filePath: string, options?: LspBridgeOptions): Promise<Diagnostic[]>;
23
+ /**
24
+ * Format diagnostics as a human-readable string for the agent loop.
25
+ */
26
+ export declare function formatDiagnostics(diagnostics: Diagnostic[]): string;
27
+ //# sourceMappingURL=lsp-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-bridge.d.ts","sourceRoot":"","sources":["../../src/ide/lsp-bridge.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACnC;AA4FD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,UAAU,EAAE,CAAC,CAqIvB;AAsCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAoBnE"}
@@ -0,0 +1,267 @@
1
+ // K:BOT LSP Diagnostics Bridge
2
+ //
3
+ // Spawns language-specific LSP servers and collects diagnostics
4
+ // after kbot edits a file. Enables auto-correction loop:
5
+ // 1. kbot edits a file
6
+ // 2. LSP bridge sends textDocument/didOpen
7
+ // 3. Collects textDocument/publishDiagnostics
8
+ // 4. Returns errors/warnings to agent loop for self-correction
9
+ import { spawn } from 'node:child_process';
10
+ import { existsSync } from 'node:fs';
11
+ import { join, extname, resolve } from 'node:path';
12
+ import { readFileSync } from 'node:fs';
13
+ /** Map file extensions to LSP server commands */
14
+ const DEFAULT_SERVERS = {
15
+ '.ts': ['typescript-language-server', '--stdio'],
16
+ '.tsx': ['typescript-language-server', '--stdio'],
17
+ '.js': ['typescript-language-server', '--stdio'],
18
+ '.jsx': ['typescript-language-server', '--stdio'],
19
+ '.py': ['pyright-langserver', '--stdio'],
20
+ '.rs': ['rust-analyzer'],
21
+ '.go': ['gopls', 'serve'],
22
+ };
23
+ /** Detect which LSP server to use for a file */
24
+ function detectServer(filePath, options) {
25
+ const ext = extname(filePath).toLowerCase();
26
+ // Check custom overrides first
27
+ if (options?.servers?.[ext]) {
28
+ return options.servers[ext];
29
+ }
30
+ const serverCmd = DEFAULT_SERVERS[ext];
31
+ if (!serverCmd)
32
+ return null;
33
+ // Check if the server binary exists in PATH
34
+ try {
35
+ const { execSync } = require('node:child_process');
36
+ execSync(`which ${serverCmd[0]}`, { stdio: 'ignore', timeout: 3000 });
37
+ return serverCmd;
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ /** Encode a JSON-RPC message with Content-Length header */
44
+ function encodeMessage(msg) {
45
+ const body = JSON.stringify(msg);
46
+ return `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n${body}`;
47
+ }
48
+ /** Parse JSON-RPC messages from LSP server output */
49
+ function parseMessages(data) {
50
+ const messages = [];
51
+ let remaining = data;
52
+ while (remaining.length > 0) {
53
+ const headerEnd = remaining.indexOf('\r\n\r\n');
54
+ if (headerEnd === -1)
55
+ break;
56
+ const header = remaining.slice(0, headerEnd);
57
+ const lengthMatch = header.match(/Content-Length:\s*(\d+)/i);
58
+ if (!lengthMatch)
59
+ break;
60
+ const contentLength = parseInt(lengthMatch[1], 10);
61
+ const bodyStart = headerEnd + 4;
62
+ const body = remaining.slice(bodyStart, bodyStart + contentLength);
63
+ if (body.length < contentLength)
64
+ break;
65
+ try {
66
+ messages.push(JSON.parse(body));
67
+ }
68
+ catch {
69
+ // Skip malformed messages
70
+ }
71
+ remaining = remaining.slice(bodyStart + contentLength);
72
+ }
73
+ return messages;
74
+ }
75
+ /** Map LSP severity number to string */
76
+ function mapSeverity(severity) {
77
+ switch (severity) {
78
+ case 1: return 'error';
79
+ case 2: return 'warning';
80
+ case 3: return 'info';
81
+ case 4: return 'hint';
82
+ default: return 'warning';
83
+ }
84
+ }
85
+ /**
86
+ * Get diagnostics for a file by spawning the appropriate LSP server.
87
+ *
88
+ * This is a one-shot operation: spawn LSP, initialize, open file,
89
+ * collect diagnostics, shut down. Not a persistent connection.
90
+ */
91
+ export async function getDiagnostics(filePath, options) {
92
+ const absPath = resolve(filePath);
93
+ if (!existsSync(absPath)) {
94
+ return [{ file: filePath, line: 0, column: 0, severity: 'error', message: 'File not found' }];
95
+ }
96
+ const serverCmd = detectServer(absPath, options);
97
+ if (!serverCmd) {
98
+ return []; // No LSP server available — not an error, just no diagnostics
99
+ }
100
+ const timeout = options?.timeout || 10000;
101
+ const fileUri = `file://${absPath}`;
102
+ const fileContent = readFileSync(absPath, 'utf-8');
103
+ const rootUri = `file://${findProjectRoot(absPath)}`;
104
+ return new Promise((resolve) => {
105
+ const diagnostics = [];
106
+ let lsp = null;
107
+ let buffer = '';
108
+ let messageId = 0;
109
+ let initialized = false;
110
+ let timer = null;
111
+ const cleanup = () => {
112
+ if (timer)
113
+ clearTimeout(timer);
114
+ if (lsp) {
115
+ try {
116
+ // Send shutdown + exit
117
+ lsp.stdin?.write(encodeMessage({ jsonrpc: '2.0', id: ++messageId, method: 'shutdown', params: null }));
118
+ setTimeout(() => {
119
+ lsp?.stdin?.write(encodeMessage({ jsonrpc: '2.0', method: 'exit', params: null }));
120
+ lsp?.kill();
121
+ }, 200);
122
+ }
123
+ catch {
124
+ lsp.kill();
125
+ }
126
+ }
127
+ resolve(diagnostics);
128
+ };
129
+ // Timeout — return whatever we have
130
+ timer = setTimeout(cleanup, timeout);
131
+ try {
132
+ lsp = spawn(serverCmd[0], serverCmd.slice(1), {
133
+ stdio: ['pipe', 'pipe', 'pipe'],
134
+ cwd: findProjectRoot(absPath),
135
+ });
136
+ }
137
+ catch {
138
+ resolve([]);
139
+ return;
140
+ }
141
+ lsp.on('error', () => {
142
+ resolve([]);
143
+ });
144
+ lsp.stdout?.on('data', (chunk) => {
145
+ buffer += chunk.toString();
146
+ const messages = parseMessages(buffer);
147
+ for (const msg of messages) {
148
+ // Initialize response — send didOpen
149
+ if (msg.id === 1 && msg.result) {
150
+ initialized = true;
151
+ // Send initialized notification
152
+ lsp.stdin?.write(encodeMessage({
153
+ jsonrpc: '2.0',
154
+ method: 'initialized',
155
+ params: {},
156
+ }));
157
+ // Open the file
158
+ lsp.stdin?.write(encodeMessage({
159
+ jsonrpc: '2.0',
160
+ method: 'textDocument/didOpen',
161
+ params: {
162
+ textDocument: {
163
+ uri: fileUri,
164
+ languageId: getLanguageId(absPath),
165
+ version: 1,
166
+ text: fileContent,
167
+ },
168
+ },
169
+ }));
170
+ }
171
+ // Diagnostics notification
172
+ if (msg.method === 'textDocument/publishDiagnostics') {
173
+ const params = msg.params;
174
+ if (params.uri === fileUri) {
175
+ for (const d of params.diagnostics) {
176
+ diagnostics.push({
177
+ file: filePath,
178
+ line: d.range.start.line + 1,
179
+ column: d.range.start.character + 1,
180
+ severity: mapSeverity(d.severity),
181
+ message: d.message,
182
+ source: d.source,
183
+ code: d.code,
184
+ });
185
+ }
186
+ // Got diagnostics — we can clean up
187
+ cleanup();
188
+ }
189
+ }
190
+ }
191
+ });
192
+ // Send initialize request
193
+ lsp.stdin?.write(encodeMessage({
194
+ jsonrpc: '2.0',
195
+ id: ++messageId,
196
+ method: 'initialize',
197
+ params: {
198
+ processId: process.pid,
199
+ capabilities: {
200
+ textDocument: {
201
+ publishDiagnostics: { relatedInformation: true },
202
+ },
203
+ },
204
+ rootUri,
205
+ workspaceFolders: [{ uri: rootUri, name: 'workspace' }],
206
+ },
207
+ }));
208
+ });
209
+ }
210
+ /** Find the nearest project root (package.json, Cargo.toml, go.mod, etc.) */
211
+ function findProjectRoot(filePath) {
212
+ const markers = ['package.json', 'Cargo.toml', 'go.mod', 'pyproject.toml', 'setup.py', '.git'];
213
+ let dir = filePath;
214
+ for (let i = 0; i < 20; i++) {
215
+ const parent = join(dir, '..');
216
+ if (parent === dir)
217
+ break;
218
+ dir = parent;
219
+ for (const marker of markers) {
220
+ if (existsSync(join(dir, marker)))
221
+ return dir;
222
+ }
223
+ }
224
+ return process.cwd();
225
+ }
226
+ /** Map file extension to LSP language ID */
227
+ function getLanguageId(filePath) {
228
+ const ext = extname(filePath).toLowerCase();
229
+ const map = {
230
+ '.ts': 'typescript',
231
+ '.tsx': 'typescriptreact',
232
+ '.js': 'javascript',
233
+ '.jsx': 'javascriptreact',
234
+ '.py': 'python',
235
+ '.rs': 'rust',
236
+ '.go': 'go',
237
+ '.json': 'json',
238
+ '.md': 'markdown',
239
+ '.css': 'css',
240
+ '.html': 'html',
241
+ };
242
+ return map[ext] || 'plaintext';
243
+ }
244
+ /**
245
+ * Format diagnostics as a human-readable string for the agent loop.
246
+ */
247
+ export function formatDiagnostics(diagnostics) {
248
+ if (diagnostics.length === 0)
249
+ return 'No diagnostics.';
250
+ const errors = diagnostics.filter(d => d.severity === 'error');
251
+ const warnings = diagnostics.filter(d => d.severity === 'warning');
252
+ const lines = [];
253
+ if (errors.length > 0) {
254
+ lines.push(`${errors.length} error(s):`);
255
+ for (const e of errors) {
256
+ lines.push(` ${e.file}:${e.line}:${e.column} — ${e.message}${e.source ? ` [${e.source}]` : ''}`);
257
+ }
258
+ }
259
+ if (warnings.length > 0) {
260
+ lines.push(`${warnings.length} warning(s):`);
261
+ for (const w of warnings) {
262
+ lines.push(` ${w.file}:${w.line}:${w.column} — ${w.message}${w.source ? ` [${w.source}]` : ''}`);
263
+ }
264
+ }
265
+ return lines.join('\n');
266
+ }
267
+ //# sourceMappingURL=lsp-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-bridge.js","sourceRoot":"","sources":["../../src/ide/lsp-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type BridgeConfig } from './bridge.js';
2
+ /**
3
+ * Start the MCP server on stdio.
4
+ * This is the entry point called by `kbot ide mcp`.
5
+ */
6
+ export declare function startMcpServer(config?: BridgeConfig): Promise<void>;
7
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/ide/mcp-server.ts"],"names":[],"mappings":"AAwBA,OAAO,EAcL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAA;AAGpB;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkd7E"}