funolio-agent 0.1.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.
- package/README.md +55 -0
- package/dist/clerk/index.d.ts +62 -0
- package/dist/clerk/index.d.ts.map +1 -0
- package/dist/clerk/index.js +186 -0
- package/dist/clerk/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/configure.d.ts +2 -0
- package/dist/commands/configure.d.ts.map +1 -0
- package/dist/commands/configure.js +252 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +151 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +6 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +170 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/start.d.ts +8 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +179 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +55 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/config.d.ts +46 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +113 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +9 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +15 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +83 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +338 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/registry.d.ts +32 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +139 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/message-loop.d.ts +18 -0
- package/dist/message-loop.d.ts.map +1 -0
- package/dist/message-loop.js +165 -0
- package/dist/message-loop.js.map +1 -0
- package/dist/mqtt-client.d.ts +67 -0
- package/dist/mqtt-client.d.ts.map +1 -0
- package/dist/mqtt-client.js +148 -0
- package/dist/mqtt-client.js.map +1 -0
- package/dist/providers/anthropic.d.ts +10 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +183 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/google.d.ts +10 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +161 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +42 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +10 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +173 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/retry.d.ts +6 -0
- package/dist/providers/retry.d.ts.map +1 -0
- package/dist/providers/retry.js +38 -0
- package/dist/providers/retry.js.map +1 -0
- package/dist/subagent/index.d.ts +8 -0
- package/dist/subagent/index.d.ts.map +1 -0
- package/dist/subagent/index.js +14 -0
- package/dist/subagent/index.js.map +1 -0
- package/dist/subagent/orchestrator.d.ts +67 -0
- package/dist/subagent/orchestrator.d.ts.map +1 -0
- package/dist/subagent/orchestrator.js +152 -0
- package/dist/subagent/orchestrator.js.map +1 -0
- package/dist/subagent/queue.d.ts +66 -0
- package/dist/subagent/queue.d.ts.map +1 -0
- package/dist/subagent/queue.js +298 -0
- package/dist/subagent/queue.js.map +1 -0
- package/dist/subagent/types.d.ts +76 -0
- package/dist/subagent/types.d.ts.map +1 -0
- package/dist/subagent/types.js +14 -0
- package/dist/subagent/types.js.map +1 -0
- package/dist/tools/edit-file.d.ts +3 -0
- package/dist/tools/edit-file.d.ts.map +1 -0
- package/dist/tools/edit-file.js +112 -0
- package/dist/tools/edit-file.js.map +1 -0
- package/dist/tools/git-tools.d.ts +5 -0
- package/dist/tools/git-tools.d.ts.map +1 -0
- package/dist/tools/git-tools.js +144 -0
- package/dist/tools/git-tools.js.map +1 -0
- package/dist/tools/index.d.ts +40 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +126 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/installer.d.ts +41 -0
- package/dist/tools/installer.d.ts.map +1 -0
- package/dist/tools/installer.js +227 -0
- package/dist/tools/installer.js.map +1 -0
- package/dist/tools/list-directory.d.ts +3 -0
- package/dist/tools/list-directory.d.ts.map +1 -0
- package/dist/tools/list-directory.js +107 -0
- package/dist/tools/list-directory.js.map +1 -0
- package/dist/tools/read-file.d.ts +3 -0
- package/dist/tools/read-file.d.ts.map +1 -0
- package/dist/tools/read-file.js +89 -0
- package/dist/tools/read-file.js.map +1 -0
- package/dist/tools/run-command.d.ts +3 -0
- package/dist/tools/run-command.d.ts.map +1 -0
- package/dist/tools/run-command.js +86 -0
- package/dist/tools/run-command.js.map +1 -0
- package/dist/tools/sandbox.d.ts +17 -0
- package/dist/tools/sandbox.d.ts.map +1 -0
- package/dist/tools/sandbox.js +78 -0
- package/dist/tools/sandbox.js.map +1 -0
- package/dist/tools/write-file.d.ts +3 -0
- package/dist/tools/write-file.d.ts.map +1 -0
- package/dist/tools/write-file.js +88 -0
- package/dist/tools/write-file.js.map +1 -0
- package/dist/types.d.ts +67 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/verification/index.d.ts +17 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +224 -0
- package/dist/verification/index.js.map +1 -0
- package/package.json +41 -0
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export interface ProviderConfig {
|
|
2
|
+
id: string;
|
|
3
|
+
authType: 'apiKey' | 'oauth';
|
|
4
|
+
apiKey?: string;
|
|
5
|
+
oauthToken?: string;
|
|
6
|
+
oauthRefreshToken?: string;
|
|
7
|
+
defaultModel: string;
|
|
8
|
+
label?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface FunolioConfig {
|
|
11
|
+
auth?: {
|
|
12
|
+
token: string;
|
|
13
|
+
userId: string;
|
|
14
|
+
username: string;
|
|
15
|
+
mqttJwt: string;
|
|
16
|
+
mqttJwtExpiresAt: number;
|
|
17
|
+
expiresAt: number;
|
|
18
|
+
};
|
|
19
|
+
/** @deprecated Use providers[] instead */
|
|
20
|
+
llm?: {
|
|
21
|
+
provider: string;
|
|
22
|
+
model: string;
|
|
23
|
+
apiKey: string;
|
|
24
|
+
};
|
|
25
|
+
providers?: ProviderConfig[];
|
|
26
|
+
defaultProvider?: string;
|
|
27
|
+
broker?: {
|
|
28
|
+
url: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export declare function getConfigDir(): string;
|
|
32
|
+
export declare function getConfigPath(): string;
|
|
33
|
+
export declare function loadConfig(): FunolioConfig;
|
|
34
|
+
export declare function saveConfig(config: FunolioConfig): void;
|
|
35
|
+
export declare function clearAuth(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Migrate legacy `llm` field to `providers[]` if needed.
|
|
38
|
+
* Mutates and saves config in place.
|
|
39
|
+
*/
|
|
40
|
+
export declare function migrateConfig(config: FunolioConfig): FunolioConfig;
|
|
41
|
+
export declare function getProvider(config: FunolioConfig, providerId?: string): ProviderConfig | undefined;
|
|
42
|
+
export declare const DEFAULT_MODELS: Record<string, string>;
|
|
43
|
+
export declare const MQTT_BROKER_URL = "mqtt://34.134.221.226:1883";
|
|
44
|
+
export declare const FUNOLIO_API_URL: string;
|
|
45
|
+
export declare const HEARTBEAT_INTERVAL_MS = 30000;
|
|
46
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,0CAA0C;IAC1C,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAKD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,aAAa,CAS1C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAKtD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAIhC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAclE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAKlG;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjD,CAAC;AAEF,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,eAAe,QAAuD,CAAC;AACpF,eAAO,MAAM,qBAAqB,QAAS,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HEARTBEAT_INTERVAL_MS = exports.FUNOLIO_API_URL = exports.MQTT_BROKER_URL = exports.DEFAULT_MODELS = void 0;
|
|
37
|
+
exports.getConfigDir = getConfigDir;
|
|
38
|
+
exports.getConfigPath = getConfigPath;
|
|
39
|
+
exports.loadConfig = loadConfig;
|
|
40
|
+
exports.saveConfig = saveConfig;
|
|
41
|
+
exports.clearAuth = clearAuth;
|
|
42
|
+
exports.migrateConfig = migrateConfig;
|
|
43
|
+
exports.getProvider = getProvider;
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const os = __importStar(require("os"));
|
|
47
|
+
const CONFIG_DIR = path.join(os.homedir(), '.funolio');
|
|
48
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
49
|
+
function getConfigDir() {
|
|
50
|
+
return CONFIG_DIR;
|
|
51
|
+
}
|
|
52
|
+
function getConfigPath() {
|
|
53
|
+
return CONFIG_FILE;
|
|
54
|
+
}
|
|
55
|
+
function loadConfig() {
|
|
56
|
+
try {
|
|
57
|
+
if (fs.existsSync(CONFIG_FILE)) {
|
|
58
|
+
return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf-8'));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// ignore corrupt config
|
|
63
|
+
}
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
function saveConfig(config) {
|
|
67
|
+
if (!fs.existsSync(CONFIG_DIR)) {
|
|
68
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
69
|
+
}
|
|
70
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
71
|
+
}
|
|
72
|
+
function clearAuth() {
|
|
73
|
+
const config = loadConfig();
|
|
74
|
+
delete config.auth;
|
|
75
|
+
saveConfig(config);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Migrate legacy `llm` field to `providers[]` if needed.
|
|
79
|
+
* Mutates and saves config in place.
|
|
80
|
+
*/
|
|
81
|
+
function migrateConfig(config) {
|
|
82
|
+
if (config.llm && (!config.providers || config.providers.length === 0)) {
|
|
83
|
+
config.providers = [
|
|
84
|
+
{
|
|
85
|
+
id: config.llm.provider || 'anthropic',
|
|
86
|
+
authType: 'apiKey',
|
|
87
|
+
apiKey: config.llm.apiKey,
|
|
88
|
+
defaultModel: config.llm.model || 'claude-sonnet-4-20250514',
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
config.defaultProvider = config.providers[0].id;
|
|
92
|
+
saveConfig(config);
|
|
93
|
+
}
|
|
94
|
+
return config;
|
|
95
|
+
}
|
|
96
|
+
function getProvider(config, providerId) {
|
|
97
|
+
if (!config.providers || config.providers.length === 0)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (providerId)
|
|
100
|
+
return config.providers.find((p) => p.id === providerId);
|
|
101
|
+
if (config.defaultProvider)
|
|
102
|
+
return config.providers.find((p) => p.id === config.defaultProvider);
|
|
103
|
+
return config.providers[0];
|
|
104
|
+
}
|
|
105
|
+
exports.DEFAULT_MODELS = {
|
|
106
|
+
anthropic: 'claude-sonnet-4-20250514',
|
|
107
|
+
openai: 'gpt-4o',
|
|
108
|
+
google: 'gemini-2.0-flash',
|
|
109
|
+
};
|
|
110
|
+
exports.MQTT_BROKER_URL = 'mqtt://34.134.221.226:1883';
|
|
111
|
+
exports.FUNOLIO_API_URL = process.env.FUNOLIO_API_URL || 'https://funolio.com';
|
|
112
|
+
exports.HEARTBEAT_INTERVAL_MS = 30_000;
|
|
113
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @funolio/agent - Tool Execution Engine
|
|
3
|
+
*
|
|
4
|
+
* Phase 3D: 8 tools (read_file, write_file, edit_file, list_directory, run_command, git_status, git_diff, git_commit)
|
|
5
|
+
* Phase 3E: Execution verification (ground truth checking after each tool)
|
|
6
|
+
* Phase 3F: Agent-side clerk (memory extraction to Funolio)
|
|
7
|
+
*/
|
|
8
|
+
export type { ToolCall, ToolResult, ToolDefinition, ToolContext, AgentConversationTurn, ClerkPayload, FileDiff, CommandLog, } from './types';
|
|
9
|
+
export { getToolDefinitions, executeTool, createToolContext, ALL_TOOLS, getAllToolDefinitions, executeToolWithMCP } from './tools';
|
|
10
|
+
export { verifyToolResult } from './verification';
|
|
11
|
+
export { AgentClerk } from './clerk';
|
|
12
|
+
export type { ClerkConfig } from './clerk';
|
|
13
|
+
export { MCPManager, BUILTIN_REGISTRY, findMatchingServers } from './mcp';
|
|
14
|
+
export type { MCPServerConfig, MCPDiscoveredTool, MCPServerEntry } from './mcp';
|
|
15
|
+
export { SubAgentQueue, SubAgentOrchestrator, TIER_CONCURRENCY } from './subagent';
|
|
16
|
+
export type { SubAgentTask, SubAgentJobData, SubAgentJobResult, SubAgentStatus, OrchestratorConfig, CheckpointWithDependencies, } from './subagent';
|
|
17
|
+
export { resolveSandboxed, existsInSandbox, checkFileSize } from './tools/sandbox';
|
|
18
|
+
/**
|
|
19
|
+
* Execute a tool call with automatic verification.
|
|
20
|
+
* This is the primary entry point combining 3D + 3E.
|
|
21
|
+
*/
|
|
22
|
+
import { ToolCall, ToolResult, ToolContext } from './types';
|
|
23
|
+
export declare function executeAndVerify(call: ToolCall, ctx: ToolContext): Promise<ToolResult>;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGnI,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnF;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI5D,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,CAIrB"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @funolio/agent - Tool Execution Engine
|
|
4
|
+
*
|
|
5
|
+
* Phase 3D: 8 tools (read_file, write_file, edit_file, list_directory, run_command, git_status, git_diff, git_commit)
|
|
6
|
+
* Phase 3E: Execution verification (ground truth checking after each tool)
|
|
7
|
+
* Phase 3F: Agent-side clerk (memory extraction to Funolio)
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.checkFileSize = exports.existsInSandbox = exports.resolveSandboxed = exports.TIER_CONCURRENCY = exports.SubAgentOrchestrator = exports.SubAgentQueue = exports.findMatchingServers = exports.BUILTIN_REGISTRY = exports.MCPManager = exports.AgentClerk = exports.verifyToolResult = exports.executeToolWithMCP = exports.getAllToolDefinitions = exports.ALL_TOOLS = exports.createToolContext = exports.executeTool = exports.getToolDefinitions = void 0;
|
|
11
|
+
exports.executeAndVerify = executeAndVerify;
|
|
12
|
+
// Phase 3D: Tool Execution Engine
|
|
13
|
+
var tools_1 = require("./tools");
|
|
14
|
+
Object.defineProperty(exports, "getToolDefinitions", { enumerable: true, get: function () { return tools_1.getToolDefinitions; } });
|
|
15
|
+
Object.defineProperty(exports, "executeTool", { enumerable: true, get: function () { return tools_1.executeTool; } });
|
|
16
|
+
Object.defineProperty(exports, "createToolContext", { enumerable: true, get: function () { return tools_1.createToolContext; } });
|
|
17
|
+
Object.defineProperty(exports, "ALL_TOOLS", { enumerable: true, get: function () { return tools_1.ALL_TOOLS; } });
|
|
18
|
+
Object.defineProperty(exports, "getAllToolDefinitions", { enumerable: true, get: function () { return tools_1.getAllToolDefinitions; } });
|
|
19
|
+
Object.defineProperty(exports, "executeToolWithMCP", { enumerable: true, get: function () { return tools_1.executeToolWithMCP; } });
|
|
20
|
+
// Phase 3E: Execution Verification
|
|
21
|
+
var verification_1 = require("./verification");
|
|
22
|
+
Object.defineProperty(exports, "verifyToolResult", { enumerable: true, get: function () { return verification_1.verifyToolResult; } });
|
|
23
|
+
// Phase 3F: Agent-Side Clerk
|
|
24
|
+
var clerk_1 = require("./clerk");
|
|
25
|
+
Object.defineProperty(exports, "AgentClerk", { enumerable: true, get: function () { return clerk_1.AgentClerk; } });
|
|
26
|
+
// Phase 3J: MCP Support
|
|
27
|
+
var mcp_1 = require("./mcp");
|
|
28
|
+
Object.defineProperty(exports, "MCPManager", { enumerable: true, get: function () { return mcp_1.MCPManager; } });
|
|
29
|
+
Object.defineProperty(exports, "BUILTIN_REGISTRY", { enumerable: true, get: function () { return mcp_1.BUILTIN_REGISTRY; } });
|
|
30
|
+
Object.defineProperty(exports, "findMatchingServers", { enumerable: true, get: function () { return mcp_1.findMatchingServers; } });
|
|
31
|
+
// Phase 3K: Sub-Agent System
|
|
32
|
+
var subagent_1 = require("./subagent");
|
|
33
|
+
Object.defineProperty(exports, "SubAgentQueue", { enumerable: true, get: function () { return subagent_1.SubAgentQueue; } });
|
|
34
|
+
Object.defineProperty(exports, "SubAgentOrchestrator", { enumerable: true, get: function () { return subagent_1.SubAgentOrchestrator; } });
|
|
35
|
+
Object.defineProperty(exports, "TIER_CONCURRENCY", { enumerable: true, get: function () { return subagent_1.TIER_CONCURRENCY; } });
|
|
36
|
+
// Sandbox utilities
|
|
37
|
+
var sandbox_1 = require("./tools/sandbox");
|
|
38
|
+
Object.defineProperty(exports, "resolveSandboxed", { enumerable: true, get: function () { return sandbox_1.resolveSandboxed; } });
|
|
39
|
+
Object.defineProperty(exports, "existsInSandbox", { enumerable: true, get: function () { return sandbox_1.existsInSandbox; } });
|
|
40
|
+
Object.defineProperty(exports, "checkFileSize", { enumerable: true, get: function () { return sandbox_1.checkFileSize; } });
|
|
41
|
+
const tools_2 = require("./tools");
|
|
42
|
+
const verification_2 = require("./verification");
|
|
43
|
+
async function executeAndVerify(call, ctx) {
|
|
44
|
+
const result = await (0, tools_2.executeTool)(call, ctx);
|
|
45
|
+
const verified = await (0, verification_2.verifyToolResult)(result, call.arguments, ctx);
|
|
46
|
+
return verified;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAkDH,4CAOC;AA3CD,kCAAkC;AAClC,iCAAmI;AAA1H,2GAAA,kBAAkB,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAEjH,mCAAmC;AACnC,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AAEzB,6BAA6B;AAC7B,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AAGnB,wBAAwB;AACxB,6BAA0E;AAAjE,iGAAA,UAAU,OAAA;AAAE,uGAAA,gBAAgB,OAAA;AAAE,0GAAA,mBAAmB,OAAA;AAG1D,6BAA6B;AAC7B,uCAAmF;AAA1E,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAU9D,oBAAoB;AACpB,2CAAmF;AAA1E,2GAAA,gBAAgB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAAE,wGAAA,aAAa,OAAA;AAOzD,mCAAsC;AACtC,iDAAkD;AAE3C,KAAK,UAAU,gBAAgB,CACpC,IAAc,EACd,GAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAgB,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 3J: MCP (Model Context Protocol) Support
|
|
3
|
+
*
|
|
4
|
+
* Enables funolio-agent to discover, install, and use MCP-compatible tool servers.
|
|
5
|
+
* Supports browser automation, database access, Notion, Docker, AWS, etc.
|
|
6
|
+
*/
|
|
7
|
+
export { MCPManager, MCPServerConfig, MCPDiscoveredTool } from './manager';
|
|
8
|
+
export { MCPServerEntry, BUILTIN_REGISTRY, findMatchingServers } from './registry';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase 3J: MCP (Model Context Protocol) Support
|
|
4
|
+
*
|
|
5
|
+
* Enables funolio-agent to discover, install, and use MCP-compatible tool servers.
|
|
6
|
+
* Supports browser automation, database access, Notion, Docker, AWS, etc.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.findMatchingServers = exports.BUILTIN_REGISTRY = exports.MCPManager = void 0;
|
|
10
|
+
var manager_1 = require("./manager");
|
|
11
|
+
Object.defineProperty(exports, "MCPManager", { enumerable: true, get: function () { return manager_1.MCPManager; } });
|
|
12
|
+
var registry_1 = require("./registry");
|
|
13
|
+
Object.defineProperty(exports, "BUILTIN_REGISTRY", { enumerable: true, get: function () { return registry_1.BUILTIN_REGISTRY; } });
|
|
14
|
+
Object.defineProperty(exports, "findMatchingServers", { enumerable: true, get: function () { return registry_1.findMatchingServers; } });
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qCAA2E;AAAlE,qGAAA,UAAU,OAAA;AACnB,uCAAmF;AAA1D,4GAAA,gBAAgB,OAAA;AAAE,+GAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 3J: MCP Manager
|
|
3
|
+
* Manages MCP server lifecycle: install, launch, tool discovery, persistence.
|
|
4
|
+
*
|
|
5
|
+
* MCP Protocol: communicates with MCP servers via JSON-RPC over stdio.
|
|
6
|
+
* Each server is launched as a subprocess; tools are discovered via the
|
|
7
|
+
* `initialize` + `tools/list` handshake.
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import { MCPServerEntry } from './registry';
|
|
11
|
+
import { ToolDefinition } from '../types';
|
|
12
|
+
/** Persisted config for an installed MCP server */
|
|
13
|
+
export interface MCPServerConfig {
|
|
14
|
+
id: string;
|
|
15
|
+
npmPackage?: string;
|
|
16
|
+
pipPackage?: string;
|
|
17
|
+
alwaysOn: boolean;
|
|
18
|
+
envVars: Record<string, string>;
|
|
19
|
+
args: string[];
|
|
20
|
+
installedAt: string;
|
|
21
|
+
}
|
|
22
|
+
/** Tool discovered via MCP protocol handshake */
|
|
23
|
+
export interface MCPDiscoveredTool {
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
inputSchema: Record<string, unknown>;
|
|
27
|
+
/** Which MCP server provides this tool */
|
|
28
|
+
serverId: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* MCP Manager — singleton per agent instance.
|
|
32
|
+
*/
|
|
33
|
+
export declare class MCPManager extends EventEmitter {
|
|
34
|
+
private servers;
|
|
35
|
+
private configPath;
|
|
36
|
+
private allDiscoveredTools;
|
|
37
|
+
constructor();
|
|
38
|
+
/** Load persisted MCP server configs */
|
|
39
|
+
loadPersistedConfigs(): MCPServerConfig[];
|
|
40
|
+
/** Save configs to disk */
|
|
41
|
+
private saveConfigs;
|
|
42
|
+
/**
|
|
43
|
+
* Auto-launch all "always on" MCP servers on agent start.
|
|
44
|
+
*/
|
|
45
|
+
autoLaunch(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Suggest MCP servers for a capability the agent is missing.
|
|
48
|
+
*/
|
|
49
|
+
suggestServers(query: string): MCPServerEntry[];
|
|
50
|
+
/**
|
|
51
|
+
* Install and launch an MCP server after user approval.
|
|
52
|
+
*/
|
|
53
|
+
installAndLaunch(entry: MCPServerEntry, envVars?: Record<string, string>, alwaysOn?: boolean): Promise<MCPDiscoveredTool[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Launch an MCP server subprocess and perform tool discovery.
|
|
56
|
+
*/
|
|
57
|
+
private launchServer;
|
|
58
|
+
/** Send a JSON-RPC request to an MCP server */
|
|
59
|
+
private sendRequest;
|
|
60
|
+
/** Send a JSON-RPC notification (no response expected) */
|
|
61
|
+
private sendNotification;
|
|
62
|
+
/** Call a tool on an MCP server */
|
|
63
|
+
callTool(toolName: string, args: Record<string, unknown>): Promise<any>;
|
|
64
|
+
/** Rebuild the merged list of all discovered tools */
|
|
65
|
+
private rebuildToolList;
|
|
66
|
+
/** Get all discovered MCP tools as ToolDefinitions for the agent */
|
|
67
|
+
getToolDefinitions(): ToolDefinition[];
|
|
68
|
+
/** Get list of running server IDs */
|
|
69
|
+
getRunningServers(): string[];
|
|
70
|
+
/** Get info about a running server */
|
|
71
|
+
getServerInfo(id: string): {
|
|
72
|
+
entry: MCPServerEntry;
|
|
73
|
+
tools: MCPDiscoveredTool[];
|
|
74
|
+
alwaysOn: boolean;
|
|
75
|
+
} | null;
|
|
76
|
+
/** Stop a running MCP server */
|
|
77
|
+
stopServer(id: string): Promise<void>;
|
|
78
|
+
/** Set always-on flag for a server */
|
|
79
|
+
setAlwaysOn(id: string, alwaysOn: boolean): void;
|
|
80
|
+
/** Shutdown all MCP servers */
|
|
81
|
+
shutdown(): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAyC,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,cAAc,EAA2B,MAAM,UAAU,CAAC;AAEnE,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAaD,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA2B;;IAOrD,wCAAwC;IACxC,oBAAoB,IAAI,eAAe,EAAE;IAWzC,2BAA2B;IAC3B,OAAO,CAAC,WAAW;IASnB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAK/C;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoB/B;;OAEG;YACW,YAAY;IA4F1B,+CAA+C;IAC/C,OAAO,CAAC,WAAW;IAkBnB,0DAA0D;IAC1D,OAAO,CAAC,gBAAgB;IAKxB,mCAAmC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB7E,sDAAsD;IACtD,OAAO,CAAC,eAAe;IASvB,oEAAoE;IACpE,kBAAkB,IAAI,cAAc,EAAE;IAkCtC,qCAAqC;IACrC,iBAAiB,IAAI,MAAM,EAAE;IAI7B,sCAAsC;IACtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAU1G,gCAAgC;IAC1B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,sCAAsC;IACtC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQhD,+BAA+B;IACzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
|