@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.
- package/ARCHITECTURE.md +255 -0
- package/CHANGELOG.md +112 -0
- package/README.md +380 -0
- package/bin/minibob.js +36 -0
- package/dist/acp-gossip.d.ts +72 -0
- package/dist/acp-gossip.d.ts.map +1 -0
- package/dist/acp-gossip.js +156 -0
- package/dist/acp-gossip.js.map +1 -0
- package/dist/acp.d.ts +62 -0
- package/dist/acp.d.ts.map +1 -0
- package/dist/acp.js +292 -0
- package/dist/acp.js.map +1 -0
- package/dist/activity.d.ts +157 -0
- package/dist/activity.d.ts.map +1 -0
- package/dist/activity.js +518 -0
- package/dist/activity.js.map +1 -0
- package/dist/agent-runtime.d.ts +104 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/boredom.d.ts +125 -0
- package/dist/boredom.d.ts.map +1 -0
- package/dist/boredom.js +244 -0
- package/dist/boredom.js.map +1 -0
- package/dist/cli/acp-server.d.ts +23 -0
- package/dist/cli/acp-server.d.ts.map +1 -0
- package/dist/cli/burrow.d.ts +26 -0
- package/dist/cli/burrow.d.ts.map +1 -0
- package/dist/cli/doctor.d.ts +22 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/goal.d.ts +22 -0
- package/dist/cli/goal.d.ts.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/instance-registry.d.ts +78 -0
- package/dist/cli/instance-registry.d.ts.map +1 -0
- package/dist/cli/observe.d.ts +35 -0
- package/dist/cli/observe.d.ts.map +1 -0
- package/dist/cli/vessel.d.ts +14 -0
- package/dist/cli/vessel.d.ts.map +1 -0
- package/dist/composition-observer.d.ts +96 -0
- package/dist/composition-observer.d.ts.map +1 -0
- package/dist/config.d.ts +36 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +128 -0
- package/dist/config.js.map +1 -0
- package/dist/docker/Dockerfile +35 -0
- package/dist/environment.d.ts +72 -0
- package/dist/environment.d.ts.map +1 -0
- package/dist/environment.js +142 -0
- package/dist/environment.js.map +1 -0
- package/dist/goal-processor.d.ts +165 -0
- package/dist/goal-processor.d.ts.map +1 -0
- package/dist/helm/minibob-cluster/Chart.yaml +13 -0
- package/dist/helm/minibob-cluster/templates/_helpers.tpl +60 -0
- package/dist/helm/minibob-cluster/templates/configmap.yaml +11 -0
- package/dist/helm/minibob-cluster/templates/deployment.yaml +108 -0
- package/dist/helm/minibob-cluster/templates/secret.yaml +10 -0
- package/dist/helm/minibob-cluster/templates/service.yaml +37 -0
- package/dist/helm/minibob-cluster/values-local.yaml +41 -0
- package/dist/helm/minibob-cluster/values-production.yaml +57 -0
- package/dist/helm/minibob-cluster/values-testing-cluster.yaml +43 -0
- package/dist/helm/minibob-cluster/values.yaml +127 -0
- package/dist/improviser.d.ts +74 -0
- package/dist/improviser.d.ts.map +1 -0
- package/dist/impulse-filter.d.ts +74 -0
- package/dist/impulse-filter.d.ts.map +1 -0
- package/dist/impulse.d.ts +92 -0
- package/dist/impulse.d.ts.map +1 -0
- package/dist/impulse.js +234 -0
- package/dist/impulse.js.map +1 -0
- package/dist/lib.d.ts +29 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +18561 -0
- package/dist/lib.js.map +98 -0
- package/dist/lifecycle-hooks.d.ts +99 -0
- package/dist/lifecycle-hooks.d.ts.map +1 -0
- package/dist/lifecycle-hooks.js +135 -0
- package/dist/lifecycle-hooks.js.map +1 -0
- package/dist/llm.d.ts +31 -0
- package/dist/llm.d.ts.map +1 -0
- package/dist/llm.js +349 -0
- package/dist/llm.js.map +1 -0
- package/dist/mcp-activity-bridge.d.ts +66 -0
- package/dist/mcp-activity-bridge.d.ts.map +1 -0
- package/dist/mcp-activity-bridge.js +126 -0
- package/dist/mcp-activity-bridge.js.map +1 -0
- package/dist/mcp.d.ts +216 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +292 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory-agent.d.ts +92 -0
- package/dist/memory-agent.d.ts.map +1 -0
- package/dist/memory-agent.js +277 -0
- package/dist/memory-agent.js.map +1 -0
- package/dist/runtime-mapping.d.ts +97 -0
- package/dist/runtime-mapping.d.ts.map +1 -0
- package/dist/search-first-executor.d.ts +113 -0
- package/dist/search-first-executor.d.ts.map +1 -0
- package/dist/session.d.ts +48 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/template-extractor.d.ts +9 -0
- package/dist/template-extractor.d.ts.map +1 -0
- package/dist/template-generator.d.ts +12 -0
- package/dist/template-generator.d.ts.map +1 -0
- package/dist/tools.d.ts +58 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +771 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +503 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/understanding/analyzer.d.ts +55 -0
- package/dist/understanding/analyzer.d.ts.map +1 -0
- package/dist/understanding/explorer.d.ts +73 -0
- package/dist/understanding/explorer.d.ts.map +1 -0
- package/dist/understanding/index.d.ts +7 -0
- package/dist/understanding/index.d.ts.map +1 -0
- package/dist/understanding/types.d.ts +136 -0
- package/dist/understanding/types.d.ts.map +1 -0
- package/dist/validation.d.ts +29 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +106 -0
- package/dist/validation.js.map +1 -0
- package/dist/vessel-bootstrap.d.ts +190 -0
- package/dist/vessel-bootstrap.d.ts.map +1 -0
- package/dist/vessel-registry.d.ts +229 -0
- package/dist/vessel-registry.d.ts.map +1 -0
- package/index.ts +1329 -0
- package/package.json +54 -0
- package/src/acp-gossip.ts +193 -0
- package/src/acp.ts +362 -0
- package/src/activity.ts +1464 -0
- package/src/agent-runtime.ts +365 -0
- package/src/boredom.ts +423 -0
- package/src/cli/acp-server.ts +377 -0
- package/src/cli/burrow.ts +896 -0
- package/src/cli/doctor.ts +526 -0
- package/src/cli/goal.ts +224 -0
- package/src/cli/index.ts +147 -0
- package/src/cli/instance-registry.ts +271 -0
- package/src/cli/observe.ts +682 -0
- package/src/cli/vessel.ts +287 -0
- package/src/components/SystemOverview.tsx +331 -0
- package/src/composition-observer.ts +449 -0
- package/src/config.ts +172 -0
- package/src/environment.ts +167 -0
- package/src/goal-processor.ts +654 -0
- package/src/improviser.ts +591 -0
- package/src/impulse-filter.ts +273 -0
- package/src/impulse.ts +311 -0
- package/src/lib.ts +147 -0
- package/src/lifecycle-hooks.ts +181 -0
- package/src/llm.ts +434 -0
- package/src/mcp-activity-bridge.ts +158 -0
- package/src/mcp.ts +747 -0
- package/src/memory-agent.ts +316 -0
- package/src/runtime-mapping.ts +527 -0
- package/src/search-first-executor.ts +666 -0
- package/src/session.ts +141 -0
- package/src/template-extractor.ts +256 -0
- package/src/template-generator.ts +130 -0
- package/src/tools.ts +924 -0
- package/src/types.ts +497 -0
- package/src/understanding/analyzer.ts +354 -0
- package/src/understanding/explorer.ts +488 -0
- package/src/understanding/index.ts +27 -0
- package/src/understanding/types.ts +153 -0
- package/src/validation.ts +125 -0
- package/src/vessel-bootstrap.ts +440 -0
- package/src/vessel-registry.ts +621 -0
- package/templates/core/edit-file.json +85 -0
- package/templates/understanding/diagnose-problem.json +32 -0
- package/templates/understanding/explore-codebase-v2.json +57 -0
- 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":"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"}
|
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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"}
|