@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,319 @@
1
+ // K:BOT ACP Server — Agent Client Protocol for JetBrains IDEs
2
+ //
3
+ // JSON-RPC over stdio, similar to MCP but with agent-specific semantics.
4
+ // ACP defines conversations, capabilities, and agent identity.
5
+ //
6
+ // Supported IDEs: IntelliJ IDEA, WebStorm, PyCharm, GoLand, Android Studio
7
+ //
8
+ // Usage:
9
+ // kbot ide acp
10
+ import { initBridge, chat, executeCommand, getStatus, getAgents, getContext, getMemory, getFileDiagnostics, remember, setAgent, getToolList, } from './bridge.js';
11
+ import { formatDiagnostics } from './lsp-bridge.js';
12
+ const AGENT_IDENTITY = {
13
+ name: 'K:BOT',
14
+ version: '2.2.0',
15
+ description: 'Open-source terminal AI agent — 17 specialists, 60+ tools, 14 providers, local-first',
16
+ capabilities: ['chat', 'codeAction', 'diagnostics', 'tools'],
17
+ };
18
+ /** Encode a JSON-RPC message with Content-Length header (LSP-style framing) */
19
+ function encode(msg) {
20
+ const body = JSON.stringify(msg);
21
+ return `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n${body}`;
22
+ }
23
+ /** Send a JSON-RPC response */
24
+ function respond(id, result) {
25
+ process.stdout.write(encode({ jsonrpc: '2.0', id, result }));
26
+ }
27
+ /** Send a JSON-RPC error */
28
+ function respondError(id, code, message) {
29
+ process.stdout.write(encode({ jsonrpc: '2.0', id, error: { code, message } }));
30
+ }
31
+ /** Send a JSON-RPC notification (no id) */
32
+ function notify(method, params) {
33
+ process.stdout.write(encode({ jsonrpc: '2.0', method, params }));
34
+ }
35
+ /**
36
+ * Start the ACP server on stdio.
37
+ */
38
+ export async function startAcpServer(config = {}) {
39
+ await initBridge(config);
40
+ let buffer = '';
41
+ let initialized = false;
42
+ let conversationId = 0;
43
+ process.stdin.setEncoding('utf-8');
44
+ process.stdin.on('data', (chunk) => {
45
+ buffer += chunk;
46
+ processBuffer();
47
+ });
48
+ function processBuffer() {
49
+ while (true) {
50
+ const headerEnd = buffer.indexOf('\r\n\r\n');
51
+ if (headerEnd === -1)
52
+ break;
53
+ const header = buffer.slice(0, headerEnd);
54
+ const lengthMatch = header.match(/Content-Length:\s*(\d+)/i);
55
+ if (!lengthMatch) {
56
+ buffer = buffer.slice(headerEnd + 4);
57
+ continue;
58
+ }
59
+ const contentLength = parseInt(lengthMatch[1], 10);
60
+ const bodyStart = headerEnd + 4;
61
+ if (buffer.length < bodyStart + contentLength)
62
+ break;
63
+ const body = buffer.slice(bodyStart, bodyStart + contentLength);
64
+ buffer = buffer.slice(bodyStart + contentLength);
65
+ try {
66
+ const msg = JSON.parse(body);
67
+ handleMessage(msg);
68
+ }
69
+ catch {
70
+ // Skip malformed messages
71
+ }
72
+ }
73
+ }
74
+ async function handleMessage(msg) {
75
+ if (!msg.method)
76
+ return;
77
+ // Handle requests (have id) and notifications (no id)
78
+ const id = msg.id;
79
+ try {
80
+ switch (msg.method) {
81
+ // ── Lifecycle ──
82
+ case 'initialize': {
83
+ initialized = true;
84
+ const result = {
85
+ agent: AGENT_IDENTITY,
86
+ capabilities: {
87
+ chat: true,
88
+ codeAction: true,
89
+ diagnostics: true,
90
+ tools: true,
91
+ },
92
+ serverInfo: {
93
+ name: 'kbot-acp',
94
+ version: '2.2.0',
95
+ },
96
+ };
97
+ if (id !== undefined)
98
+ respond(id, result);
99
+ break;
100
+ }
101
+ case 'initialized':
102
+ // Client acknowledged — no response needed
103
+ break;
104
+ case 'shutdown':
105
+ if (id !== undefined)
106
+ respond(id, null);
107
+ break;
108
+ case 'exit':
109
+ process.exit(0);
110
+ break;
111
+ // ── Chat ──
112
+ case 'chat/send': {
113
+ if (!initialized) {
114
+ if (id !== undefined)
115
+ respondError(id, -32002, 'Server not initialized');
116
+ break;
117
+ }
118
+ const params = msg.params || {};
119
+ const message = params.message;
120
+ if (!message) {
121
+ if (id !== undefined)
122
+ respondError(id, -32602, 'Missing message parameter');
123
+ break;
124
+ }
125
+ conversationId++;
126
+ const agent = params.agent;
127
+ const response = await chat(message, { agent });
128
+ if (id !== undefined) {
129
+ respond(id, {
130
+ conversationId,
131
+ content: response.content,
132
+ agent: response.agent,
133
+ model: response.model,
134
+ toolCalls: response.toolCalls,
135
+ usage: response.usage,
136
+ });
137
+ }
138
+ break;
139
+ }
140
+ // ── Code Actions ──
141
+ case 'codeAction/edit': {
142
+ if (!initialized) {
143
+ if (id !== undefined)
144
+ respondError(id, -32002, 'Server not initialized');
145
+ break;
146
+ }
147
+ const params = msg.params || {};
148
+ const result = await executeCommand('edit_file', params);
149
+ if (id !== undefined)
150
+ respond(id, { success: !result.error, output: result.result });
151
+ break;
152
+ }
153
+ case 'codeAction/create': {
154
+ if (!initialized) {
155
+ if (id !== undefined)
156
+ respondError(id, -32002, 'Server not initialized');
157
+ break;
158
+ }
159
+ const params = msg.params || {};
160
+ const result = await executeCommand('write_file', params);
161
+ if (id !== undefined)
162
+ respond(id, { success: !result.error, output: result.result });
163
+ break;
164
+ }
165
+ case 'codeAction/read': {
166
+ if (!initialized) {
167
+ if (id !== undefined)
168
+ respondError(id, -32002, 'Server not initialized');
169
+ break;
170
+ }
171
+ const params = msg.params || {};
172
+ const result = await executeCommand('read_file', params);
173
+ if (id !== undefined)
174
+ respond(id, { success: !result.error, output: result.result });
175
+ break;
176
+ }
177
+ // ── Diagnostics ──
178
+ case 'diagnostics/check': {
179
+ if (!initialized) {
180
+ if (id !== undefined)
181
+ respondError(id, -32002, 'Server not initialized');
182
+ break;
183
+ }
184
+ const params = msg.params || {};
185
+ const filePath = params.path;
186
+ if (!filePath) {
187
+ if (id !== undefined)
188
+ respondError(id, -32602, 'Missing path parameter');
189
+ break;
190
+ }
191
+ const diags = await getFileDiagnostics(filePath);
192
+ if (id !== undefined) {
193
+ respond(id, {
194
+ diagnostics: diags,
195
+ summary: formatDiagnostics(diags),
196
+ });
197
+ }
198
+ break;
199
+ }
200
+ // ── Tools ──
201
+ case 'tools/list': {
202
+ const tools = getToolList();
203
+ if (id !== undefined)
204
+ respond(id, { tools });
205
+ break;
206
+ }
207
+ case 'tools/execute': {
208
+ if (!initialized) {
209
+ if (id !== undefined)
210
+ respondError(id, -32002, 'Server not initialized');
211
+ break;
212
+ }
213
+ const params = msg.params || {};
214
+ const toolName = params.name;
215
+ const toolArgs = (params.arguments || {});
216
+ if (!toolName) {
217
+ if (id !== undefined)
218
+ respondError(id, -32602, 'Missing tool name');
219
+ break;
220
+ }
221
+ const result = await executeCommand(toolName, toolArgs);
222
+ if (id !== undefined)
223
+ respond(id, { success: !result.error, output: result.result });
224
+ break;
225
+ }
226
+ // ── Agent ──
227
+ case 'agent/list': {
228
+ const agents = getAgents();
229
+ if (id !== undefined)
230
+ respond(id, { agents });
231
+ break;
232
+ }
233
+ case 'agent/switch': {
234
+ const params = msg.params || {};
235
+ const agentId = params.agent;
236
+ if (!agentId) {
237
+ if (id !== undefined)
238
+ respondError(id, -32602, 'Missing agent parameter');
239
+ break;
240
+ }
241
+ setAgent(agentId);
242
+ if (id !== undefined)
243
+ respond(id, { agent: agentId });
244
+ break;
245
+ }
246
+ case 'agent/status': {
247
+ const status = getStatus();
248
+ if (id !== undefined)
249
+ respond(id, status);
250
+ break;
251
+ }
252
+ // ── Memory ──
253
+ case 'memory/read': {
254
+ const memory = getMemory();
255
+ if (id !== undefined)
256
+ respond(id, { memory });
257
+ break;
258
+ }
259
+ case 'memory/remember': {
260
+ const params = msg.params || {};
261
+ const fact = params.fact;
262
+ if (!fact) {
263
+ if (id !== undefined)
264
+ respondError(id, -32602, 'Missing fact parameter');
265
+ break;
266
+ }
267
+ remember(fact);
268
+ if (id !== undefined)
269
+ respond(id, { success: true });
270
+ break;
271
+ }
272
+ // ── Context ──
273
+ case 'chat/plan': {
274
+ if (!initialized) {
275
+ if (id !== undefined)
276
+ respondError(id, -32002, 'Server not initialized');
277
+ break;
278
+ }
279
+ const params = msg.params || {};
280
+ const task = params.task;
281
+ if (!task) {
282
+ if (id !== undefined)
283
+ respondError(id, -32602, 'Missing task parameter');
284
+ break;
285
+ }
286
+ const { autonomousExecute, formatPlanSummary } = await import('../planner.js');
287
+ const plan = await autonomousExecute(task, { agent: 'coder' }, {
288
+ autoApprove: params.auto_approve || false,
289
+ });
290
+ if (id !== undefined) {
291
+ respond(id, {
292
+ plan: { summary: plan.summary, status: plan.status, steps: plan.steps },
293
+ text: formatPlanSummary(plan),
294
+ });
295
+ }
296
+ break;
297
+ }
298
+ case 'context/get': {
299
+ const ctx = getContext();
300
+ if (id !== undefined)
301
+ respond(id, { context: ctx });
302
+ break;
303
+ }
304
+ default:
305
+ if (id !== undefined)
306
+ respondError(id, -32601, `Method not found: ${msg.method}`);
307
+ }
308
+ }
309
+ catch (err) {
310
+ if (id !== undefined) {
311
+ respondError(id, -32603, err instanceof Error ? err.message : String(err));
312
+ }
313
+ }
314
+ }
315
+ process.stderr.write('K:BOT ACP server started\n');
316
+ // Keep process alive
317
+ await new Promise(() => { });
318
+ }
319
+ //# sourceMappingURL=acp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-server.js","sourceRoot":"","sources":["../../src/ide/acp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { type AgentResponse } from '../agent.js';
2
+ import { type ProjectContext } from '../context.js';
3
+ import { type ToolResult } from '../tools/index.js';
4
+ import { type Session } from '../sessions.js';
5
+ import { type Diagnostic, type LspBridgeOptions } from './lsp-bridge.js';
6
+ export interface BridgeConfig {
7
+ /** Working directory for context gathering */
8
+ cwd?: string;
9
+ /** API tier override */
10
+ tier?: string;
11
+ /** Default agent to use */
12
+ agent?: string;
13
+ /** LSP bridge options */
14
+ lsp?: LspBridgeOptions;
15
+ }
16
+ export interface BridgeStatus {
17
+ version: string;
18
+ agent: string;
19
+ tier: string;
20
+ cwd: string;
21
+ toolCount: number;
22
+ learning: {
23
+ patternsCount: number;
24
+ solutionsCount: number;
25
+ knowledgeCount: number;
26
+ totalMessages: number;
27
+ };
28
+ sessionCount: number;
29
+ }
30
+ export interface ChatOptions {
31
+ agent?: string;
32
+ model?: string;
33
+ stream?: boolean;
34
+ }
35
+ /**
36
+ * Initialize the IDE bridge. Must be called before any other bridge function.
37
+ * Registers tools and gathers project context.
38
+ */
39
+ export declare function initBridge(config?: BridgeConfig): Promise<void>;
40
+ /**
41
+ * Send a message through the full agent loop.
42
+ * Returns the agent response with content, tool calls, usage.
43
+ */
44
+ export declare function chat(message: string, opts?: ChatOptions): Promise<AgentResponse>;
45
+ /**
46
+ * Execute a single tool by name with arguments.
47
+ * Bypasses the agent loop — direct tool execution.
48
+ */
49
+ export declare function executeCommand(toolName: string, args?: Record<string, unknown>): Promise<ToolResult>;
50
+ /**
51
+ * Get current project context (git info, file tree, framework, etc.)
52
+ */
53
+ export declare function getContext(): ProjectContext | null;
54
+ /**
55
+ * Get formatted context string for prompts
56
+ */
57
+ export declare function getFormattedContext(): string;
58
+ /**
59
+ * Get all registered tool definitions in Claude API format
60
+ */
61
+ export declare function getTools(tier?: string): Array<{
62
+ name: string;
63
+ description: string;
64
+ input_schema: {
65
+ type: 'object';
66
+ properties: Record<string, unknown>;
67
+ required?: string[];
68
+ };
69
+ }>;
70
+ /**
71
+ * Get raw tool list (names + descriptions)
72
+ */
73
+ export declare function getToolList(): Array<{
74
+ name: string;
75
+ description: string;
76
+ tier: string;
77
+ }>;
78
+ /**
79
+ * Get diagnostics for a file by spawning the appropriate LSP server.
80
+ * Returns type errors, warnings, etc.
81
+ */
82
+ export declare function getFileDiagnostics(filePath: string): Promise<Diagnostic[]>;
83
+ /**
84
+ * Get bridge status — learning stats, session info, active agent
85
+ */
86
+ export declare function getStatus(): BridgeStatus;
87
+ /**
88
+ * Teach kbot a fact for future use
89
+ */
90
+ export declare function remember(fact: string): void;
91
+ /**
92
+ * Get persistent memory contents
93
+ */
94
+ export declare function getMemory(): string;
95
+ /**
96
+ * Get conversation history
97
+ */
98
+ export declare function getConversationHistory(): Array<{
99
+ role: string;
100
+ content: string;
101
+ }>;
102
+ /**
103
+ * List available agents
104
+ */
105
+ export declare function getAgents(): Array<{
106
+ id: string;
107
+ name: string;
108
+ description: string;
109
+ }>;
110
+ /**
111
+ * Get saved sessions
112
+ */
113
+ export declare function getSessions(): Session[];
114
+ /**
115
+ * Run self-training on accumulated knowledge
116
+ */
117
+ export declare function train(): {
118
+ summary: string;
119
+ };
120
+ /**
121
+ * Refresh project context (e.g., after git changes)
122
+ */
123
+ export declare function refreshContext(): ProjectContext;
124
+ /**
125
+ * Set active agent for subsequent chat calls
126
+ */
127
+ export declare function setAgent(agent: string): void;
128
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/ide/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ // K:BOT IDE Bridge — Shared core for all IDE protocol adapters
2
+ //
3
+ // Wraps kbot's tool registry, agent loop, learning engine, and memory
4
+ // into a unified API that MCP, ACP, and LSP adapters consume.
5
+ import { runAgent } from '../agent.js';
6
+ import { gatherContext, formatContextForPrompt } from '../context.js';
7
+ import { registerAllTools, executeTool, getAllTools, getToolDefinitionsForApi } from '../tools/index.js';
8
+ import { getExtendedStats, learnFact, selfTrain } from '../learning.js';
9
+ import { listSessions } from '../sessions.js';
10
+ import { getPreviousMessages, loadMemory } from '../memory.js';
11
+ import { loadConfig } from '../auth.js';
12
+ import { getDiagnostics } from './lsp-bridge.js';
13
+ let initialized = false;
14
+ let bridgeConfig = {};
15
+ let projectContext = null;
16
+ /**
17
+ * Initialize the IDE bridge. Must be called before any other bridge function.
18
+ * Registers tools and gathers project context.
19
+ */
20
+ export async function initBridge(config = {}) {
21
+ if (initialized)
22
+ return;
23
+ bridgeConfig = config;
24
+ if (config.cwd)
25
+ process.chdir(config.cwd);
26
+ await registerAllTools();
27
+ projectContext = gatherContext();
28
+ initialized = true;
29
+ }
30
+ /** Ensure bridge is initialized, throw if not */
31
+ function assertInit() {
32
+ if (!initialized)
33
+ throw new Error('IDE bridge not initialized. Call initBridge() first.');
34
+ }
35
+ /**
36
+ * Send a message through the full agent loop.
37
+ * Returns the agent response with content, tool calls, usage.
38
+ */
39
+ export async function chat(message, opts = {}) {
40
+ assertInit();
41
+ const config = loadConfig();
42
+ const agentOpts = {
43
+ agent: opts.agent || bridgeConfig.agent || 'auto',
44
+ model: opts.model,
45
+ stream: opts.stream,
46
+ context: projectContext || undefined,
47
+ tier: bridgeConfig.tier || 'free',
48
+ };
49
+ return runAgent(message, agentOpts);
50
+ }
51
+ /**
52
+ * Execute a single tool by name with arguments.
53
+ * Bypasses the agent loop — direct tool execution.
54
+ */
55
+ export async function executeCommand(toolName, args = {}) {
56
+ assertInit();
57
+ const call = {
58
+ id: `ide_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
59
+ name: toolName,
60
+ arguments: args,
61
+ };
62
+ return executeTool(call);
63
+ }
64
+ /**
65
+ * Get current project context (git info, file tree, framework, etc.)
66
+ */
67
+ export function getContext() {
68
+ assertInit();
69
+ return projectContext;
70
+ }
71
+ /**
72
+ * Get formatted context string for prompts
73
+ */
74
+ export function getFormattedContext() {
75
+ assertInit();
76
+ if (!projectContext)
77
+ return '';
78
+ return formatContextForPrompt(projectContext);
79
+ }
80
+ /**
81
+ * Get all registered tool definitions in Claude API format
82
+ */
83
+ export function getTools(tier) {
84
+ assertInit();
85
+ return getToolDefinitionsForApi(tier || bridgeConfig.tier || 'free');
86
+ }
87
+ /**
88
+ * Get raw tool list (names + descriptions)
89
+ */
90
+ export function getToolList() {
91
+ assertInit();
92
+ return getAllTools().map(t => ({ name: t.name, description: t.description, tier: t.tier }));
93
+ }
94
+ /**
95
+ * Get diagnostics for a file by spawning the appropriate LSP server.
96
+ * Returns type errors, warnings, etc.
97
+ */
98
+ export async function getFileDiagnostics(filePath) {
99
+ assertInit();
100
+ return getDiagnostics(filePath, bridgeConfig.lsp);
101
+ }
102
+ /**
103
+ * Get bridge status — learning stats, session info, active agent
104
+ */
105
+ export function getStatus() {
106
+ assertInit();
107
+ const stats = getExtendedStats();
108
+ const sessions = listSessions();
109
+ return {
110
+ version: '2.2.0',
111
+ agent: bridgeConfig.agent || 'auto',
112
+ tier: bridgeConfig.tier || 'free',
113
+ cwd: process.cwd(),
114
+ toolCount: getAllTools().length,
115
+ learning: {
116
+ patternsCount: stats.patternsCount,
117
+ solutionsCount: stats.solutionsCount,
118
+ knowledgeCount: stats.knowledgeCount,
119
+ totalMessages: stats.totalMessages,
120
+ },
121
+ sessionCount: sessions.length,
122
+ };
123
+ }
124
+ /**
125
+ * Teach kbot a fact for future use
126
+ */
127
+ export function remember(fact) {
128
+ assertInit();
129
+ learnFact(fact, 'fact', 'user-taught');
130
+ }
131
+ /**
132
+ * Get persistent memory contents
133
+ */
134
+ export function getMemory() {
135
+ return loadMemory();
136
+ }
137
+ /**
138
+ * Get conversation history
139
+ */
140
+ export function getConversationHistory() {
141
+ return getPreviousMessages();
142
+ }
143
+ /**
144
+ * List available agents
145
+ */
146
+ export function getAgents() {
147
+ return [
148
+ { id: 'kernel', name: 'Kernel', description: 'General-purpose personal assistant' },
149
+ { id: 'researcher', name: 'Researcher', description: 'Research & fact-finding specialist' },
150
+ { id: 'coder', name: 'Coder', description: 'Programming & development specialist' },
151
+ { id: 'writer', name: 'Writer', description: 'Content creation specialist' },
152
+ { id: 'analyst', name: 'Analyst', description: 'Strategy & evaluation specialist' },
153
+ { id: 'aesthete', name: 'Aesthete', description: 'Design & aesthetics specialist' },
154
+ { id: 'guardian', name: 'Guardian', description: 'Security specialist' },
155
+ { id: 'curator', name: 'Curator', description: 'Knowledge curation specialist' },
156
+ { id: 'strategist', name: 'Strategist', description: 'Strategic planning specialist' },
157
+ ];
158
+ }
159
+ /**
160
+ * Get saved sessions
161
+ */
162
+ export function getSessions() {
163
+ return listSessions();
164
+ }
165
+ /**
166
+ * Run self-training on accumulated knowledge
167
+ */
168
+ export function train() {
169
+ assertInit();
170
+ return selfTrain();
171
+ }
172
+ /**
173
+ * Refresh project context (e.g., after git changes)
174
+ */
175
+ export function refreshContext() {
176
+ projectContext = gatherContext();
177
+ return projectContext;
178
+ }
179
+ /**
180
+ * Set active agent for subsequent chat calls
181
+ */
182
+ export function setAgent(agent) {
183
+ bridgeConfig.agent = agent;
184
+ }
185
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/ide/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { startMcpServer } from './mcp-server.js';
2
+ export { startAcpServer } from './acp-server.js';
3
+ export { getDiagnostics, formatDiagnostics, type Diagnostic, type LspBridgeOptions } from './lsp-bridge.js';
4
+ export { initBridge, chat, executeCommand, getContext, getTools, getToolList, getStatus, getAgents, getMemory, getSessions, getFileDiagnostics, remember, setAgent, refreshContext, train, type BridgeConfig, type BridgeStatus, type ChatOptions, } from './bridge.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ide/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,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,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAA"}