@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
@@ -0,0 +1,66 @@
1
+ /**
2
+ * MCP Activity Bridge
3
+ *
4
+ * Bridges MiniBob's activity callbacks to Metabob MCP tools.
5
+ *
6
+ * Architecture:
7
+ * - MiniBob activity.ts defines callbacks (onSearchActivities, onCreateActivity)
8
+ * - This bridge translates those callbacks to MCP tool calls
9
+ * - MCP tools (in metabob-cli Python) delegate to RPC API
10
+ * - RPC API handles Thompson Sampling and learning (NOT OpenCode)
11
+ *
12
+ * Specification: minibob-trailblazing-activity-system
13
+ * Compliance: Activity-first constraint enforcement
14
+ */
15
+ export declare namespace MCPActivityBridge {
16
+ /**
17
+ * Search activities via /v2/activities/templates endpoint.
18
+ *
19
+ * This implements the onSearchActivities callback expected by MiniBob tools.
20
+ *
21
+ * @param category Optional category filter (feature, bugfix, refactor, tool, infrastructure)
22
+ * @param verbose If true, return full template details; if false, return minimal info
23
+ * @returns Activity search results
24
+ */
25
+ function searchActivities(category?: string, _verbose?: boolean): Promise<{
26
+ count: number;
27
+ activities: unknown[];
28
+ }>;
29
+ /**
30
+ * Create activity via metabob_create_activity_goal_seeking MCP tool.
31
+ *
32
+ * This implements the onCreateActivity callback expected by MiniBob tools.
33
+ *
34
+ * Architecture Note:
35
+ * - This delegates to MCP tool (metabob_create_activity_goal_seeking)
36
+ * - MCP tool calls RPC API /v2/activities/create-goal-seeking
37
+ * - RPC API handles:
38
+ * - Thompson Sampling initialization (NOT OpenCode)
39
+ * - Goal decomposition
40
+ * - Template registration
41
+ *
42
+ * @param params Goal seeking parameters
43
+ * @returns Created template ID
44
+ */
45
+ function createActivity(params: {
46
+ goalDescription: string;
47
+ templateName: string;
48
+ category: string;
49
+ variables: Record<string, unknown>;
50
+ impulseRefs?: string[];
51
+ constraints?: {
52
+ maxTasks?: number;
53
+ maxCost?: number;
54
+ preferComposition?: boolean;
55
+ };
56
+ }): Promise<{
57
+ templateId: string;
58
+ }>;
59
+ /**
60
+ * Check if MCP activity bridge is available.
61
+ *
62
+ * Returns true if MCP client is initialized and bridge can be used.
63
+ */
64
+ function isAvailable(): boolean;
65
+ }
66
+ //# sourceMappingURL=mcp-activity-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-activity-bridge.d.ts","sourceRoot":"","sources":["../src/mcp-activity-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,yBAAiB,iBAAiB,CAAC;IACjC;;;;;;;;OAQG;IACH,SAAsB,gBAAgB,CACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAyCnD;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAsB,cAAc,CAAC,MAAM,EAAE;QAC3C,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAClC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;QACtB,WAAW,CAAC,EAAE;YACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;SAC5B,CAAA;KACF,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CA+ClC;IAED;;;;OAIG;IACH,SAAgB,WAAW,IAAI,OAAO,CAErC;CACF"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * MCP Activity Bridge
3
+ *
4
+ * Bridges MiniBob's activity callbacks to Metabob MCP tools.
5
+ *
6
+ * Architecture:
7
+ * - MiniBob activity.ts defines callbacks (onSearchActivities, onCreateActivity)
8
+ * - This bridge translates those callbacks to MCP tool calls
9
+ * - MCP tools (in metabob-cli Python) delegate to RPC API
10
+ * - RPC API handles Thompson Sampling and learning (NOT OpenCode)
11
+ *
12
+ * Specification: minibob-trailblazing-activity-system
13
+ * Compliance: Activity-first constraint enforcement
14
+ */
15
+ import { getMCPClient } from "./mcp";
16
+ export var MCPActivityBridge;
17
+ (function (MCPActivityBridge) {
18
+ /**
19
+ * Search activities via metabob_search_activities MCP tool.
20
+ *
21
+ * This implements the onSearchActivities callback expected by MiniBob tools.
22
+ *
23
+ * @param category Optional category filter (feature, bugfix, refactor, tool, infrastructure)
24
+ * @param verbose If true, return full template details; if false, return minimal info
25
+ * @returns Activity search results
26
+ */
27
+ async function searchActivities(category, _verbose // Reserved for future use
28
+ ) {
29
+ const mcp = getMCPClient();
30
+ if (!mcp) {
31
+ console.warn("[MCPActivityBridge] MCP not available, returning empty results");
32
+ return { count: 0, activities: [] };
33
+ }
34
+ try {
35
+ // Call metabob_search_activities MCP tool
36
+ // The Python MCP tool will delegate to RPC API /v2/activities/templates
37
+ const params = new URLSearchParams();
38
+ if (category)
39
+ params.set("category", category);
40
+ // Note: verbose parameter not used by current MCP tool, but kept for future compatibility
41
+ const response = await mcp["request"]("POST", "/mcp/tools/metabob_search_activities", {
42
+ category,
43
+ });
44
+ if (!response.ok) {
45
+ throw new Error(`MCP search failed: ${response.status} ${response.statusText}`);
46
+ }
47
+ const result = await response.json();
48
+ if (result.status !== "success") {
49
+ console.error("[MCPActivityBridge] Search error:", result.error);
50
+ return { count: 0, activities: [] };
51
+ }
52
+ return {
53
+ count: result.template_count ?? 0,
54
+ activities: result.templates ?? [],
55
+ };
56
+ }
57
+ catch (error) {
58
+ console.error("[MCPActivityBridge] Search activities failed:", error);
59
+ return { count: 0, activities: [] };
60
+ }
61
+ }
62
+ MCPActivityBridge.searchActivities = searchActivities;
63
+ /**
64
+ * Create activity via metabob_create_activity_goal_seeking MCP tool.
65
+ *
66
+ * This implements the onCreateActivity callback expected by MiniBob tools.
67
+ *
68
+ * Architecture Note:
69
+ * - This delegates to MCP tool (metabob_create_activity_goal_seeking)
70
+ * - MCP tool calls RPC API /v2/activities/create-goal-seeking
71
+ * - RPC API handles:
72
+ * - Thompson Sampling initialization (NOT OpenCode)
73
+ * - Goal decomposition
74
+ * - Template registration
75
+ *
76
+ * @param params Goal seeking parameters
77
+ * @returns Created template ID
78
+ */
79
+ async function createActivity(params) {
80
+ const mcp = getMCPClient();
81
+ if (!mcp) {
82
+ throw new Error("MCP not available - cannot create activity template");
83
+ }
84
+ try {
85
+ // Call metabob_create_activity_goal_seeking MCP tool
86
+ const response = await mcp["request"]("POST", "/mcp/tools/metabob_create_activity_goal_seeking", {
87
+ goal_description: params.goalDescription,
88
+ template_name: params.templateName,
89
+ category: params.category,
90
+ variables: params.variables,
91
+ impulse_refs: params.impulseRefs ?? [],
92
+ constraints: params.constraints ?? {
93
+ max_tasks: 7,
94
+ max_cost: 5.0,
95
+ prefer_composition: true,
96
+ },
97
+ });
98
+ if (!response.ok) {
99
+ throw new Error(`MCP create activity failed: ${response.status} ${response.statusText}`);
100
+ }
101
+ const result = await response.json();
102
+ if (result.status !== "success" || !result.template_id) {
103
+ throw new Error(`Failed to create activity: ${result.error ?? "Unknown error"}`);
104
+ }
105
+ console.log(`[MCPActivityBridge] Created activity template: ${result.template_id} via goal-seeking`);
106
+ return {
107
+ templateId: result.template_id,
108
+ };
109
+ }
110
+ catch (error) {
111
+ console.error("[MCPActivityBridge] Create activity failed:", error);
112
+ throw error;
113
+ }
114
+ }
115
+ MCPActivityBridge.createActivity = createActivity;
116
+ /**
117
+ * Check if MCP activity bridge is available.
118
+ *
119
+ * Returns true if MCP client is initialized and bridge can be used.
120
+ */
121
+ function isAvailable() {
122
+ return getMCPClient() !== null;
123
+ }
124
+ MCPActivityBridge.isAvailable = isAvailable;
125
+ })(MCPActivityBridge || (MCPActivityBridge = {}));
126
+ //# sourceMappingURL=mcp-activity-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-activity-bridge.js","sourceRoot":"","sources":["../src/mcp-activity-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEpC,MAAM,KAAW,iBAAiB,CA8IjC;AA9ID,WAAiB,iBAAiB;IAChC;;;;;;;;OAQG;IACI,KAAK,UAAU,gBAAgB,CACpC,QAAiB,EACjB,QAAkB,CAAC,0BAA0B;;QAE7C,MAAM,GAAG,GAAG,YAAY,EAAE,CAAA;QAE1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;YAC9E,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,CAAC;YACH,0CAA0C;YAC1C,wEAAwE;YACxE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;YACpC,IAAI,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC9C,0FAA0F;YAE1F,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,sCAAsC,EAAE;gBACpF,QAAQ;aACT,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACjF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAKjC,CAAA;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;gBAChE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;YACrC,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;gBACjC,UAAU,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;aACnC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAA;YACrE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;QACrC,CAAC;IACH,CAAC;IA9CqB,kCAAgB,mBA8CrC,CAAA;IAED;;;;;;;;;;;;;;;OAeG;IACI,KAAK,UAAU,cAAc,CAAC,MAWpC;QACC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAA;QAE1B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,iDAAiD,EAAE;gBAC/F,gBAAgB,EAAE,MAAM,CAAC,eAAe;gBACxC,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;gBACtC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI;oBACjC,SAAS,EAAE,CAAC;oBACZ,QAAQ,EAAE,GAAG;oBACb,kBAAkB,EAAE,IAAI;iBACzB;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YAC1F,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAIjC,CAAA;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAA;YAClF,CAAC;YAED,OAAO,CAAC,GAAG,CACT,kDAAkD,MAAM,CAAC,WAAW,mBAAmB,CACxF,CAAA;YAED,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,WAAW;aAC/B,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAA;YACnE,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IA1DqB,gCAAc,iBA0DnC,CAAA;IAED;;;;OAIG;IACH,SAAgB,WAAW;QACzB,OAAO,YAAY,EAAE,KAAK,IAAI,CAAA;IAChC,CAAC;IAFe,6BAAW,cAE1B,CAAA;AACH,CAAC,EA9IgB,iBAAiB,KAAjB,iBAAiB,QA8IjC"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,216 @@
1
+ /**
2
+ * minibob MCP Client
3
+ *
4
+ * Integrates with Metabob backend for:
5
+ * - Activity template fetching
6
+ * - Execution metrics reporting
7
+ * - Impulse storage/retrieval
8
+ * - Learning and optimization
9
+ */
10
+ import type { ActivityTemplate, ActivityExecution, Impulse } from "./types";
11
+ export interface ImpulseRelevanceMetric {
12
+ impulse_id: string;
13
+ activity_variant_id: string;
14
+ task_id?: string;
15
+ times_loaded: number;
16
+ times_execution_succeeded: number;
17
+ times_execution_failed: number;
18
+ times_not_loaded_succeeded: number;
19
+ times_not_loaded_failed: number;
20
+ relevance_score: number;
21
+ irrelevance_score: number;
22
+ avg_content_size_tokens: number;
23
+ typical_pointer_type?: string;
24
+ created_at: string;
25
+ updated_at: string;
26
+ }
27
+ export interface MCPConfig {
28
+ endpoint: string;
29
+ apiKey?: string;
30
+ timeout?: number;
31
+ }
32
+ export declare class MCPClient {
33
+ private endpoint;
34
+ private apiKey?;
35
+ private timeout;
36
+ constructor(config: MCPConfig);
37
+ /**
38
+ * Fetch activity template by ID
39
+ */
40
+ getActivityTemplate(templateId: string): Promise<ActivityTemplate | null>;
41
+ /**
42
+ * Search activity templates
43
+ */
44
+ searchActivityTemplates(query?: {
45
+ category?: string;
46
+ limit?: number;
47
+ }): Promise<Array<{
48
+ id: string;
49
+ name: string;
50
+ category: string;
51
+ successRate?: number;
52
+ }>>;
53
+ /**
54
+ * Recommend activities for a goal using Thompson Sampling
55
+ *
56
+ * This is the key method for goal-driven execution.
57
+ * The backend uses Thompson Sampling with historical execution data
58
+ * to recommend the best activities for achieving a goal.
59
+ *
60
+ * @param taskDescription - User's goal description
61
+ * @param category - Optional category filter
62
+ * @param loadedImpulses - IDs of currently loaded impulses for context
63
+ * @param limit - Max number of recommendations
64
+ * @returns Array of activity recommendations with selection metadata
65
+ */
66
+ recommendActivities(taskDescription: string, category?: string, loadedImpulses?: string[], limit?: number): Promise<Array<{
67
+ template_id: string;
68
+ selection_metadata: any;
69
+ }>>;
70
+ /**
71
+ * Register activity template variant
72
+ * Called when executing a template loaded from local JSON file
73
+ */
74
+ registerTemplate(template: ActivityTemplate): Promise<boolean>;
75
+ /**
76
+ * Report activity execution results
77
+ */
78
+ reportExecution(execution: ActivityExecution): Promise<boolean>;
79
+ /**
80
+ * Record activity composition event (when one activity calls another)
81
+ *
82
+ * This enables learning of composition patterns:
83
+ * - Which activities typically work together
84
+ * - Success rates of different compositions
85
+ * - Optimal activity sequences
86
+ */
87
+ recordComposition(params: {
88
+ parentActivityId: string;
89
+ childActivityId: string;
90
+ executionId: string;
91
+ goalContext?: string;
92
+ success: boolean;
93
+ }): Promise<boolean>;
94
+ /**
95
+ * Record tool usage during activity execution
96
+ *
97
+ * This enables learning of tool usage patterns:
98
+ * - Which tools are required vs optional for each activity
99
+ * - Success correlation between tool usage and outcomes
100
+ * - Pre-flight checks (does vessel have required tools?)
101
+ */
102
+ recordToolUsage(params: {
103
+ toolName: string;
104
+ activityVariantId: string;
105
+ taskId?: string;
106
+ executionId: string;
107
+ toolSucceeded: boolean;
108
+ activitySucceeded: boolean;
109
+ paramsComplexity?: number;
110
+ }): Promise<boolean>;
111
+ /**
112
+ * Record execution sequence for session-level learning
113
+ *
114
+ * This enables learning:
115
+ * - Which activities typically run together
116
+ * - Successful sequences for achieving goals
117
+ * - Optimal sequence length and patterns
118
+ */
119
+ recordExecutionSequence(params: {
120
+ sessionId: string;
121
+ goalContext?: string;
122
+ sequence: Array<{
123
+ activityId: string;
124
+ executionId: string;
125
+ order: number;
126
+ triggerType: 'goal' | 'nested' | 'boredom' | 'manual';
127
+ parentExecutionId?: string;
128
+ success: boolean;
129
+ durationMs: number;
130
+ costUsd: number;
131
+ }>;
132
+ outcome: 'success' | 'partial' | 'failure';
133
+ }): Promise<boolean>;
134
+ /**
135
+ * Store impulse in backend
136
+ */
137
+ storeImpulse(impulse: Impulse): Promise<boolean>;
138
+ /**
139
+ * Retrieve impulse from backend
140
+ */
141
+ retrieveImpulse(impulseId: string): Promise<Impulse | null>;
142
+ /**
143
+ * Track impulse usage for learning
144
+ */
145
+ trackImpulseUsage(impulseId: string, context: {
146
+ activityId: string;
147
+ taskId: string;
148
+ tokensUsed: number;
149
+ }): Promise<boolean>;
150
+ /**
151
+ * Query impulse relevance metrics for an activity (Phase 1.8)
152
+ */
153
+ queryImpulseRelevance(params: {
154
+ activityVariantId: string;
155
+ impulseIds?: string[];
156
+ }): Promise<ImpulseRelevanceMetric[]>;
157
+ /**
158
+ * Record impulse relevance for learning (Phase 1.8)
159
+ */
160
+ recordImpulseRelevance(params: {
161
+ impulseId: string;
162
+ activityVariantId: string;
163
+ taskId?: string;
164
+ wasLoaded: boolean;
165
+ executionSucceeded: boolean;
166
+ contentSizeTokens?: number;
167
+ pointerType?: string;
168
+ }): Promise<boolean>;
169
+ /**
170
+ * Resolve an impulse pointer via backend (Phase 1.8+)
171
+ *
172
+ * Architecture: MiniBob delegates all non-local impulse resolution to backend.
173
+ * This allows backend to introduce new pointer types without minibob changes.
174
+ */
175
+ resolveImpulse(pointer: any): Promise<string>;
176
+ /**
177
+ * Store execution trace in backend (Phase 1.8+)
178
+ *
179
+ * Enables execution traces to be referenced as impulses in future activities.
180
+ */
181
+ storeExecutionTrace(execution: ActivityExecution): Promise<boolean>;
182
+ /**
183
+ * Register minibob vessel with backend
184
+ */
185
+ registerVessel(manifest: {
186
+ id: string;
187
+ name: string;
188
+ version: string;
189
+ capabilities: string[];
190
+ endpoint: string;
191
+ }): Promise<boolean>;
192
+ /**
193
+ * Make HTTP request to MCP backend
194
+ */
195
+ private request;
196
+ }
197
+ /**
198
+ * Initialize MCP client with backend health check (singleton)
199
+ *
200
+ * Checks backend availability before initialization.
201
+ * Returns null if backend is unreachable, allowing graceful fallback to local mode.
202
+ *
203
+ * @param config MCP configuration
204
+ * @param skipHealthCheck Skip health check (for testing)
205
+ * @returns MCPClient instance or null if backend unavailable
206
+ */
207
+ export declare function initializeMCP(config: MCPConfig, skipHealthCheck?: boolean): Promise<MCPClient | null>;
208
+ /**
209
+ * Get MCP client instance
210
+ */
211
+ export declare function getMCPClient(): MCPClient | null;
212
+ /**
213
+ * Check if MCP is enabled
214
+ */
215
+ export declare function isMCPEnabled(): boolean;
216
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}