@metabob/minibob 0.1.2

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 (174) hide show
  1. package/ARCHITECTURE.md +255 -0
  2. package/CHANGELOG.md +112 -0
  3. package/README.md +380 -0
  4. package/bin/minibob.js +36 -0
  5. package/dist/acp-gossip.d.ts +72 -0
  6. package/dist/acp-gossip.d.ts.map +1 -0
  7. package/dist/acp-gossip.js +156 -0
  8. package/dist/acp-gossip.js.map +1 -0
  9. package/dist/acp.d.ts +62 -0
  10. package/dist/acp.d.ts.map +1 -0
  11. package/dist/acp.js +292 -0
  12. package/dist/acp.js.map +1 -0
  13. package/dist/activity.d.ts +157 -0
  14. package/dist/activity.d.ts.map +1 -0
  15. package/dist/activity.js +518 -0
  16. package/dist/activity.js.map +1 -0
  17. package/dist/agent-runtime.d.ts +104 -0
  18. package/dist/agent-runtime.d.ts.map +1 -0
  19. package/dist/boredom.d.ts +125 -0
  20. package/dist/boredom.d.ts.map +1 -0
  21. package/dist/boredom.js +244 -0
  22. package/dist/boredom.js.map +1 -0
  23. package/dist/cli/acp-server.d.ts +23 -0
  24. package/dist/cli/acp-server.d.ts.map +1 -0
  25. package/dist/cli/burrow.d.ts +26 -0
  26. package/dist/cli/burrow.d.ts.map +1 -0
  27. package/dist/cli/doctor.d.ts +22 -0
  28. package/dist/cli/doctor.d.ts.map +1 -0
  29. package/dist/cli/goal.d.ts +22 -0
  30. package/dist/cli/goal.d.ts.map +1 -0
  31. package/dist/cli/index.d.ts +47 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/cli/instance-registry.d.ts +78 -0
  34. package/dist/cli/instance-registry.d.ts.map +1 -0
  35. package/dist/cli/observe.d.ts +35 -0
  36. package/dist/cli/observe.d.ts.map +1 -0
  37. package/dist/cli/vessel.d.ts +14 -0
  38. package/dist/cli/vessel.d.ts.map +1 -0
  39. package/dist/composition-observer.d.ts +96 -0
  40. package/dist/composition-observer.d.ts.map +1 -0
  41. package/dist/config.d.ts +36 -0
  42. package/dist/config.d.ts.map +1 -0
  43. package/dist/config.js +128 -0
  44. package/dist/config.js.map +1 -0
  45. package/dist/docker/Dockerfile +35 -0
  46. package/dist/environment.d.ts +72 -0
  47. package/dist/environment.d.ts.map +1 -0
  48. package/dist/environment.js +142 -0
  49. package/dist/environment.js.map +1 -0
  50. package/dist/goal-processor.d.ts +165 -0
  51. package/dist/goal-processor.d.ts.map +1 -0
  52. package/dist/helm/minibob-cluster/Chart.yaml +13 -0
  53. package/dist/helm/minibob-cluster/templates/_helpers.tpl +60 -0
  54. package/dist/helm/minibob-cluster/templates/configmap.yaml +11 -0
  55. package/dist/helm/minibob-cluster/templates/deployment.yaml +108 -0
  56. package/dist/helm/minibob-cluster/templates/secret.yaml +10 -0
  57. package/dist/helm/minibob-cluster/templates/service.yaml +37 -0
  58. package/dist/helm/minibob-cluster/values-local.yaml +41 -0
  59. package/dist/helm/minibob-cluster/values-production.yaml +57 -0
  60. package/dist/helm/minibob-cluster/values-testing-cluster.yaml +43 -0
  61. package/dist/helm/minibob-cluster/values.yaml +127 -0
  62. package/dist/improviser.d.ts +74 -0
  63. package/dist/improviser.d.ts.map +1 -0
  64. package/dist/impulse-filter.d.ts +74 -0
  65. package/dist/impulse-filter.d.ts.map +1 -0
  66. package/dist/impulse.d.ts +92 -0
  67. package/dist/impulse.d.ts.map +1 -0
  68. package/dist/impulse.js +234 -0
  69. package/dist/impulse.js.map +1 -0
  70. package/dist/lib.d.ts +29 -0
  71. package/dist/lib.d.ts.map +1 -0
  72. package/dist/lib.js +18561 -0
  73. package/dist/lib.js.map +98 -0
  74. package/dist/lifecycle-hooks.d.ts +99 -0
  75. package/dist/lifecycle-hooks.d.ts.map +1 -0
  76. package/dist/lifecycle-hooks.js +135 -0
  77. package/dist/lifecycle-hooks.js.map +1 -0
  78. package/dist/llm.d.ts +31 -0
  79. package/dist/llm.d.ts.map +1 -0
  80. package/dist/llm.js +349 -0
  81. package/dist/llm.js.map +1 -0
  82. package/dist/mcp-activity-bridge.d.ts +66 -0
  83. package/dist/mcp-activity-bridge.d.ts.map +1 -0
  84. package/dist/mcp-activity-bridge.js +126 -0
  85. package/dist/mcp-activity-bridge.js.map +1 -0
  86. package/dist/mcp.d.ts +216 -0
  87. package/dist/mcp.d.ts.map +1 -0
  88. package/dist/mcp.js +292 -0
  89. package/dist/mcp.js.map +1 -0
  90. package/dist/memory-agent.d.ts +92 -0
  91. package/dist/memory-agent.d.ts.map +1 -0
  92. package/dist/memory-agent.js +277 -0
  93. package/dist/memory-agent.js.map +1 -0
  94. package/dist/runtime-mapping.d.ts +97 -0
  95. package/dist/runtime-mapping.d.ts.map +1 -0
  96. package/dist/search-first-executor.d.ts +113 -0
  97. package/dist/search-first-executor.d.ts.map +1 -0
  98. package/dist/session.d.ts +48 -0
  99. package/dist/session.d.ts.map +1 -0
  100. package/dist/template-extractor.d.ts +9 -0
  101. package/dist/template-extractor.d.ts.map +1 -0
  102. package/dist/template-generator.d.ts +12 -0
  103. package/dist/template-generator.d.ts.map +1 -0
  104. package/dist/tools.d.ts +58 -0
  105. package/dist/tools.d.ts.map +1 -0
  106. package/dist/tools.js +771 -0
  107. package/dist/tools.js.map +1 -0
  108. package/dist/types.d.ts +503 -0
  109. package/dist/types.d.ts.map +1 -0
  110. package/dist/types.js +8 -0
  111. package/dist/types.js.map +1 -0
  112. package/dist/understanding/analyzer.d.ts +55 -0
  113. package/dist/understanding/analyzer.d.ts.map +1 -0
  114. package/dist/understanding/explorer.d.ts +73 -0
  115. package/dist/understanding/explorer.d.ts.map +1 -0
  116. package/dist/understanding/index.d.ts +7 -0
  117. package/dist/understanding/index.d.ts.map +1 -0
  118. package/dist/understanding/types.d.ts +136 -0
  119. package/dist/understanding/types.d.ts.map +1 -0
  120. package/dist/validation.d.ts +29 -0
  121. package/dist/validation.d.ts.map +1 -0
  122. package/dist/validation.js +106 -0
  123. package/dist/validation.js.map +1 -0
  124. package/dist/vessel-bootstrap.d.ts +190 -0
  125. package/dist/vessel-bootstrap.d.ts.map +1 -0
  126. package/dist/vessel-registry.d.ts +229 -0
  127. package/dist/vessel-registry.d.ts.map +1 -0
  128. package/index.ts +1329 -0
  129. package/package.json +54 -0
  130. package/src/acp-gossip.ts +193 -0
  131. package/src/acp.ts +362 -0
  132. package/src/activity.ts +1464 -0
  133. package/src/agent-runtime.ts +365 -0
  134. package/src/boredom.ts +423 -0
  135. package/src/cli/acp-server.ts +377 -0
  136. package/src/cli/burrow.ts +896 -0
  137. package/src/cli/doctor.ts +526 -0
  138. package/src/cli/goal.ts +224 -0
  139. package/src/cli/index.ts +147 -0
  140. package/src/cli/instance-registry.ts +271 -0
  141. package/src/cli/observe.ts +682 -0
  142. package/src/cli/vessel.ts +287 -0
  143. package/src/components/SystemOverview.tsx +331 -0
  144. package/src/composition-observer.ts +449 -0
  145. package/src/config.ts +172 -0
  146. package/src/environment.ts +167 -0
  147. package/src/goal-processor.ts +654 -0
  148. package/src/improviser.ts +591 -0
  149. package/src/impulse-filter.ts +273 -0
  150. package/src/impulse.ts +311 -0
  151. package/src/lib.ts +147 -0
  152. package/src/lifecycle-hooks.ts +181 -0
  153. package/src/llm.ts +434 -0
  154. package/src/mcp-activity-bridge.ts +158 -0
  155. package/src/mcp.ts +747 -0
  156. package/src/memory-agent.ts +316 -0
  157. package/src/runtime-mapping.ts +527 -0
  158. package/src/search-first-executor.ts +666 -0
  159. package/src/session.ts +141 -0
  160. package/src/template-extractor.ts +256 -0
  161. package/src/template-generator.ts +130 -0
  162. package/src/tools.ts +924 -0
  163. package/src/types.ts +497 -0
  164. package/src/understanding/analyzer.ts +354 -0
  165. package/src/understanding/explorer.ts +488 -0
  166. package/src/understanding/index.ts +27 -0
  167. package/src/understanding/types.ts +153 -0
  168. package/src/validation.ts +125 -0
  169. package/src/vessel-bootstrap.ts +440 -0
  170. package/src/vessel-registry.ts +621 -0
  171. package/templates/core/edit-file.json +85 -0
  172. package/templates/understanding/diagnose-problem.json +32 -0
  173. package/templates/understanding/explore-codebase-v2.json +57 -0
  174. package/templates/understanding/explore-codebase.json +37 -0
package/dist/acp.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * minibob ACP Protocol Handler
3
+ *
4
+ * Agent Client Protocol support for vessel-to-vessel communication.
5
+ * Supports both receiving delegated tasks and delegating to other vessels.
6
+ */
7
+ import type { ACPMessage, ACPDelegateRequest, ACPDelegateResponse } from "./types";
8
+ export interface ACPServerConfig {
9
+ provider: "anthropic" | "openai";
10
+ apiKey: string;
11
+ model: string;
12
+ workingDirectory: string;
13
+ systemPrompt?: string;
14
+ }
15
+ /**
16
+ * ACP session handler for streaming connections
17
+ */
18
+ export declare class ACPSession {
19
+ private llm;
20
+ private toolHandlers;
21
+ private config;
22
+ private sessionId;
23
+ private messages;
24
+ private toolsUsed;
25
+ constructor(config: ACPServerConfig, sessionId: string);
26
+ /**
27
+ * Handle an incoming ACP message
28
+ */
29
+ handleMessage(message: ACPMessage): Promise<ACPMessage[]>;
30
+ /**
31
+ * Get tools used in this session
32
+ */
33
+ getToolsUsed(): string[];
34
+ private getDefaultSystemPrompt;
35
+ }
36
+ /**
37
+ * Handle WebSocket upgrade for ACP streaming
38
+ */
39
+ export declare function createACPWebSocketHandler(config: ACPServerConfig): {
40
+ upgrade(request: Request): Response | undefined;
41
+ websocket: {
42
+ message(ws: WebSocket & {
43
+ data: {
44
+ sessionId?: string;
45
+ };
46
+ }, message: string | Buffer): Promise<void>;
47
+ close(ws: WebSocket & {
48
+ data: {
49
+ sessionId?: string;
50
+ };
51
+ }): void;
52
+ };
53
+ };
54
+ /**
55
+ * Delegate a task to another vessel via ACP
56
+ */
57
+ export declare function delegateTask(request: ACPDelegateRequest): Promise<ACPDelegateResponse>;
58
+ /**
59
+ * Handle ACP HTTP POST requests (non-streaming)
60
+ */
61
+ export declare function handleACPRequest(config: ACPServerConfig, request: Request): Promise<Response>;
62
+ //# sourceMappingURL=acp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../src/acp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EAGpB,MAAM,SAAS,CAAA;AAQhB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,GAAG,QAAQ,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAe;gBAEpB,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM;IAOtD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqG/D;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB,OAAO,CAAC,sBAAsB;CAK/B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe;qBAI5C,OAAO,GAAG,QAAQ,GAAG,SAAS;;oBAc3B,SAAS,GAAG;YAAE,IAAI,EAAE;gBAAE,SAAS,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,WAAW,MAAM,GAAG,MAAM;kBA8B9E,SAAS,GAAG;YAAE,IAAI,EAAE;gBAAE,SAAS,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE;;EAO3D;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8D5F;AA6BD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAgCnB"}
package/dist/acp.js ADDED
@@ -0,0 +1,292 @@
1
+ /**
2
+ * minibob ACP Protocol Handler
3
+ *
4
+ * Agent Client Protocol support for vessel-to-vessel communication.
5
+ * Supports both receiving delegated tasks and delegating to other vessels.
6
+ */
7
+ import { createLLMClient } from "./llm";
8
+ import { createToolHandlers, getAllToolDefinitions } from "./tools";
9
+ /**
10
+ * ACP session handler for streaming connections
11
+ */
12
+ export class ACPSession {
13
+ llm;
14
+ toolHandlers;
15
+ config;
16
+ sessionId;
17
+ messages = [];
18
+ toolsUsed = [];
19
+ constructor(config, sessionId) {
20
+ this.config = config;
21
+ this.sessionId = sessionId;
22
+ this.llm = createLLMClient(config.provider, config.apiKey);
23
+ this.toolHandlers = createToolHandlers(config.workingDirectory);
24
+ }
25
+ /**
26
+ * Handle an incoming ACP message
27
+ */
28
+ async handleMessage(message) {
29
+ const responses = [];
30
+ switch (message.type) {
31
+ case "hello":
32
+ // Respond with our capabilities
33
+ responses.push({
34
+ type: "hello",
35
+ version: "1.0",
36
+ capabilities: ["prompt", "tool_call"],
37
+ });
38
+ break;
39
+ case "prompt":
40
+ // Execute the prompt with tools
41
+ try {
42
+ this.messages = message.messages;
43
+ // Add system prompt if not present
44
+ if (!this.messages.find((m) => m.role === "system")) {
45
+ this.messages.unshift({
46
+ role: "system",
47
+ content: this.config.systemPrompt ?? this.getDefaultSystemPrompt(),
48
+ });
49
+ }
50
+ const result = await this.llm.completeWithTools({
51
+ model: this.config.model,
52
+ messages: this.messages,
53
+ tools: message.tools ?? getAllToolDefinitions(),
54
+ maxTokens: 4096,
55
+ }, this.toolHandlers);
56
+ this.toolsUsed = result.toolsUsed;
57
+ responses.push({
58
+ type: "response",
59
+ sessionId: this.sessionId,
60
+ content: result.content,
61
+ finishReason: "stop",
62
+ });
63
+ responses.push({
64
+ type: "complete",
65
+ sessionId: this.sessionId,
66
+ metrics: {
67
+ duration: 0, // Would need timing
68
+ tokens: { input: result.usage.inputTokens, output: result.usage.outputTokens },
69
+ },
70
+ });
71
+ }
72
+ catch (error) {
73
+ responses.push({
74
+ type: "error",
75
+ sessionId: this.sessionId,
76
+ error: error instanceof Error ? error.message : String(error),
77
+ });
78
+ }
79
+ break;
80
+ case "tool_call":
81
+ // Execute a tool call
82
+ try {
83
+ const handler = this.toolHandlers[message.name];
84
+ let result;
85
+ if (!handler) {
86
+ result = {
87
+ success: false,
88
+ error: `Unknown tool: ${message.name}`,
89
+ };
90
+ }
91
+ else {
92
+ result = await handler(message.arguments);
93
+ this.toolsUsed.push(message.name);
94
+ }
95
+ responses.push({
96
+ type: "tool_result",
97
+ sessionId: this.sessionId,
98
+ toolCallId: message.toolCallId,
99
+ result,
100
+ });
101
+ }
102
+ catch (error) {
103
+ responses.push({
104
+ type: "tool_result",
105
+ sessionId: this.sessionId,
106
+ toolCallId: message.toolCallId,
107
+ result: {
108
+ success: false,
109
+ error: error instanceof Error ? error.message : String(error),
110
+ },
111
+ });
112
+ }
113
+ break;
114
+ }
115
+ return responses;
116
+ }
117
+ /**
118
+ * Get tools used in this session
119
+ */
120
+ getToolsUsed() {
121
+ return [...new Set(this.toolsUsed)];
122
+ }
123
+ getDefaultSystemPrompt() {
124
+ return `You are minibob, a minimal vessel for executing delegated tasks.
125
+ You have access to tools for file operations, shell commands, and git.
126
+ Execute the requested task efficiently and report the results.`;
127
+ }
128
+ }
129
+ /**
130
+ * Handle WebSocket upgrade for ACP streaming
131
+ */
132
+ export function createACPWebSocketHandler(config) {
133
+ const sessions = new Map();
134
+ return {
135
+ upgrade(request) {
136
+ const url = new URL(request.url);
137
+ if (url.pathname !== "/acp/stream") {
138
+ return undefined;
139
+ }
140
+ const sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
141
+ const session = new ACPSession(config, sessionId);
142
+ sessions.set(sessionId, session);
143
+ return undefined; // Let Bun handle the upgrade
144
+ },
145
+ websocket: {
146
+ async message(ws, message) {
147
+ try {
148
+ const data = JSON.parse(typeof message === "string" ? message : message.toString());
149
+ // Get or create session
150
+ let sessionId = ws.data?.sessionId;
151
+ if (!sessionId) {
152
+ sessionId = `acp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
153
+ ws.data = { sessionId };
154
+ sessions.set(sessionId, new ACPSession(config, sessionId));
155
+ }
156
+ const session = sessions.get(sessionId);
157
+ if (!session) {
158
+ ws.send(JSON.stringify({ type: "error", error: "Session not found" }));
159
+ return;
160
+ }
161
+ const responses = await session.handleMessage(data);
162
+ for (const response of responses) {
163
+ ws.send(JSON.stringify(response));
164
+ }
165
+ }
166
+ catch (error) {
167
+ ws.send(JSON.stringify({
168
+ type: "error",
169
+ error: error instanceof Error ? error.message : String(error),
170
+ }));
171
+ }
172
+ },
173
+ close(ws) {
174
+ if (ws.data?.sessionId) {
175
+ sessions.delete(ws.data.sessionId);
176
+ }
177
+ },
178
+ },
179
+ };
180
+ }
181
+ // =============================================================================
182
+ // ACP CLIENT (Delegate to other vessels)
183
+ // =============================================================================
184
+ /**
185
+ * Delegate a task to another vessel via ACP
186
+ */
187
+ export async function delegateTask(request) {
188
+ const startTime = Date.now();
189
+ const sessionId = `delegate_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
190
+ try {
191
+ // Parse target URL
192
+ const targetUrl = parseTargetUrl(request.target);
193
+ // Connect via HTTP streaming or WebSocket
194
+ const response = await fetch(targetUrl, {
195
+ method: "POST",
196
+ headers: {
197
+ "Content-Type": "application/json",
198
+ },
199
+ body: JSON.stringify({
200
+ type: "prompt",
201
+ sessionId,
202
+ messages: [
203
+ {
204
+ role: "user",
205
+ content: request.prompt,
206
+ },
207
+ ],
208
+ }),
209
+ });
210
+ if (!response.ok) {
211
+ throw new Error(`ACP request failed: ${response.status}`);
212
+ }
213
+ const result = (await response.json());
214
+ return {
215
+ success: !result.error,
216
+ sessionId,
217
+ response: result.content,
218
+ toolsUsed: result.toolsUsed,
219
+ error: result.error,
220
+ metrics: {
221
+ duration: Date.now() - startTime,
222
+ tokens: result.metrics?.tokens ?? { input: 0, output: 0 },
223
+ },
224
+ };
225
+ }
226
+ catch (error) {
227
+ return {
228
+ success: false,
229
+ sessionId,
230
+ error: error instanceof Error ? error.message : String(error),
231
+ metrics: {
232
+ duration: Date.now() - startTime,
233
+ tokens: { input: 0, output: 0 },
234
+ },
235
+ };
236
+ }
237
+ }
238
+ /**
239
+ * Parse ACP target URL
240
+ */
241
+ function parseTargetUrl(target) {
242
+ if (target.startsWith("http://") || target.startsWith("https://")) {
243
+ return target;
244
+ }
245
+ if (target.startsWith("docker://")) {
246
+ const container = target.replace("docker://", "");
247
+ // For Docker, we'd need to resolve the container IP
248
+ // For now, assume localhost with a port mapping
249
+ return `http://${container}:8080/acp`;
250
+ }
251
+ if (target.startsWith("tcp://")) {
252
+ const hostPort = target.replace("tcp://", "");
253
+ return `http://${hostPort}/acp`;
254
+ }
255
+ throw new Error(`Unsupported ACP target: ${target}`);
256
+ }
257
+ // =============================================================================
258
+ // HTTP ENDPOINT HANDLER
259
+ // =============================================================================
260
+ /**
261
+ * Handle ACP HTTP POST requests (non-streaming)
262
+ */
263
+ export async function handleACPRequest(config, request) {
264
+ const sessionId = `http_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
265
+ const session = new ACPSession(config, sessionId);
266
+ try {
267
+ const message = (await request.json());
268
+ const responses = await session.handleMessage(message);
269
+ // For HTTP, we return the last meaningful response
270
+ const lastResponse = responses.find((r) => r.type === "response" || r.type === "error");
271
+ return new Response(JSON.stringify({
272
+ success: lastResponse?.type === "response",
273
+ content: lastResponse?.type === "response" ? lastResponse.content : undefined,
274
+ error: lastResponse?.type === "error" ? lastResponse.error : undefined,
275
+ toolsUsed: session.getToolsUsed(),
276
+ sessionId,
277
+ }), {
278
+ headers: { "Content-Type": "application/json" },
279
+ });
280
+ }
281
+ catch (error) {
282
+ return new Response(JSON.stringify({
283
+ success: false,
284
+ error: error instanceof Error ? error.message : String(error),
285
+ sessionId,
286
+ }), {
287
+ status: 500,
288
+ headers: { "Content-Type": "application/json" },
289
+ });
290
+ }
291
+ }
292
+ //# sourceMappingURL=acp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.js","sourceRoot":"","sources":["../src/acp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * minibob Activity Executor
3
+ *
4
+ * Executes activity templates with impulse injection and tool calling.
5
+ */
6
+ import type { ActivityTemplate, ActivityExecution, TaskResult, Impulse, ToolResult } from "./types";
7
+ import { type LLMClient } from "./llm";
8
+ import { type ToolHandlerOptions } from "./tools";
9
+ export interface ExecutorConfig {
10
+ provider: "anthropic" | "openai";
11
+ apiKey: string;
12
+ model: string;
13
+ workingDirectory: string;
14
+ systemPrompt?: string;
15
+ onSearchActivities?: (category?: string, verbose?: boolean) => Promise<{
16
+ count: number;
17
+ activities: unknown[];
18
+ }>;
19
+ onCreateActivity?: (params: {
20
+ goalDescription: string;
21
+ templateName: string;
22
+ category: string;
23
+ variables: Record<string, unknown>;
24
+ }) => Promise<{
25
+ templateId: string;
26
+ }>;
27
+ /**
28
+ * Callback when an activity is executed (for composition tracking)
29
+ */
30
+ onActivityExecute?: (templateId: string, variables: Record<string, unknown>, reason?: string) => Promise<ActivityExecution>;
31
+ /**
32
+ * Custom domain-specific tools to expose to the LLM in addition to built-in tools.
33
+ * The host application (e.g. PerspectiveMinibobAdapter) injects these so that
34
+ * activity templates can call Perspective-specific database / API operations.
35
+ */
36
+ customTools?: ToolHandlerOptions["customTools"];
37
+ /**
38
+ * Maximum nesting depth for nested activity execution.
39
+ * Prevents runaway recursion when activities call other activities.
40
+ * Default: 3
41
+ */
42
+ maxNestingDepth?: number;
43
+ /**
44
+ * Activity call stack for cycle detection.
45
+ * Tracks the chain of activity IDs from root to current execution.
46
+ * Used to detect and prevent circular activity calls (A → B → A).
47
+ *
48
+ * Example: ["process-goal", "explore-codebase", "read-file"]
49
+ *
50
+ * Internal use only - populated automatically during composition.
51
+ */
52
+ activityCallStack?: string[];
53
+ }
54
+ export interface ExecuteOptions {
55
+ template: ActivityTemplate;
56
+ variables: Record<string, unknown>;
57
+ reason?: string;
58
+ impulses?: Impulse[];
59
+ onTaskStart?: (taskId: string) => void;
60
+ onTaskComplete?: (taskId: string, result: TaskResult) => void;
61
+ parentActivityId?: string;
62
+ parentExecutionId?: string;
63
+ goalContext?: string;
64
+ }
65
+ /**
66
+ * Activity executor for running activity templates
67
+ */
68
+ export declare class ActivityExecutor {
69
+ private llm;
70
+ private toolHandlers;
71
+ private config;
72
+ private customToolDefinitions;
73
+ private currentActivityId?;
74
+ private currentExecutionId?;
75
+ private currentGoalContext?;
76
+ private toolCallRecords;
77
+ /** Public accessor for LLM client (needed by GoalProcessor for improvisation fallback) */
78
+ get llmClient(): LLMClient;
79
+ constructor(config: ExecutorConfig);
80
+ /**
81
+ * Execute an activity template
82
+ */
83
+ execute(options: ExecuteOptions): Promise<ActivityExecution>;
84
+ /**
85
+ * Get current executor state for TUI display
86
+ * Returns real-time information about what MiniBob is doing
87
+ */
88
+ getState(): {
89
+ currentActivityId: string | undefined;
90
+ currentExecutionId: string | undefined;
91
+ currentGoalContext: string | undefined;
92
+ toolCallRecords: Array<{
93
+ toolName: string;
94
+ params: any;
95
+ result: ToolResult;
96
+ timestamp: number;
97
+ }>;
98
+ workingDirectory: string;
99
+ };
100
+ /**
101
+ * Create impulses from template context requirements
102
+ */
103
+ private createImpulsesFromRequirements;
104
+ /**
105
+ * Execute a single task
106
+ */
107
+ private executeTask;
108
+ /**
109
+ * Phase 1.8: Record impulse relevance metrics to backend
110
+ */
111
+ private recordImpulseRelevance;
112
+ /**
113
+ * Run validation checks
114
+ */
115
+ private runValidation;
116
+ /**
117
+ * Topological sort for task dependencies
118
+ */
119
+ private topologicalSort;
120
+ /**
121
+ * Interpolate variables into template string
122
+ */
123
+ private interpolate;
124
+ /**
125
+ * Estimate cost based on token usage
126
+ */
127
+ private estimateCost;
128
+ /**
129
+ * Get default system prompt
130
+ *
131
+ * ARCHITECTURE: Enforces activity-first constraint per corrected trailblazing architecture.
132
+ * MiniBob must search for existing activities and create new ones for non-trivial tasks.
133
+ */
134
+ private getDefaultSystemPrompt;
135
+ }
136
+ /**
137
+ * Load an activity template from a JSON file
138
+ */
139
+ export declare function loadTemplate(path: string): Promise<ActivityTemplate>;
140
+ /**
141
+ * Load activity template from MCP backend or local file
142
+ *
143
+ * If templateIdOrPath looks like a file path (contains / or .json), load from file.
144
+ * Otherwise, try to load from MCP backend first, then fall back to local templates/ directory.
145
+ */
146
+ export declare function loadTemplateFromMCPOrLocal(templateIdOrPath: string): Promise<ActivityTemplate>;
147
+ /**
148
+ * Create executor and run activity
149
+ */
150
+ export declare function runActivity(config: ExecutorConfig, templatePath: string, variables: Record<string, unknown>, reason?: string): Promise<ActivityExecution>;
151
+ /**
152
+ * Format execution duration in human-readable format
153
+ * @param ms - Duration in milliseconds
154
+ * @returns Formatted string (e.g., "1.2s" or "345ms")
155
+ */
156
+ export declare function formatDuration(ms: number): string;
157
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}