flow-evm-agentkit 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/.cache/replit/env/latest +59 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/replit-rtld-loader.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/dotreplitenv.json +1 -0
- package/.cache/replit/toolchain.json +1 -0
- package/.env.example +25 -0
- package/LICENSE +22 -0
- package/README.md +421 -0
- package/dist/cli/scaffold.d.ts +8 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +369 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +42 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/agent.d.ts +38 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +255 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/examples/agent-server.d.ts +2 -0
- package/dist/examples/agent-server.d.ts.map +1 -0
- package/dist/examples/agent-server.js +212 -0
- package/dist/examples/agent-server.js.map +1 -0
- package/dist/examples/trading-agent.d.ts +2 -0
- package/dist/examples/trading-agent.d.ts.map +1 -0
- package/dist/examples/trading-agent.js +95 -0
- package/dist/examples/trading-agent.js.map +1 -0
- package/dist/examples/tx-echo-agent.d.ts +2 -0
- package/dist/examples/tx-echo-agent.d.ts.map +1 -0
- package/dist/examples/tx-echo-agent.js +67 -0
- package/dist/examples/tx-echo-agent.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/index.d.ts +8 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +49 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/modules/executor.d.ts +21 -0
- package/dist/modules/executor.d.ts.map +1 -0
- package/dist/modules/executor.js +205 -0
- package/dist/modules/executor.js.map +1 -0
- package/dist/modules/knowledge.d.ts +19 -0
- package/dist/modules/knowledge.d.ts.map +1 -0
- package/dist/modules/knowledge.js +208 -0
- package/dist/modules/knowledge.js.map +1 -0
- package/dist/modules/observer.d.ts +26 -0
- package/dist/modules/observer.d.ts.map +1 -0
- package/dist/modules/observer.js +184 -0
- package/dist/modules/observer.js.map +1 -0
- package/dist/modules/planner.d.ts +15 -0
- package/dist/modules/planner.d.ts.map +1 -0
- package/dist/modules/planner.js +179 -0
- package/dist/modules/planner.js.map +1 -0
- package/dist/types/index.d.ts +67 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +67 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const agent_1 = require("../core/agent");
|
4
|
+
const config_1 = require("../config");
|
5
|
+
const logger_1 = require("../logger");
|
6
|
+
async function main() {
|
7
|
+
console.log('🤖 Starting Flow EVM Transaction Echo Agent...');
|
8
|
+
try {
|
9
|
+
// Load configuration
|
10
|
+
const config = config_1.Config.load();
|
11
|
+
// Initialize logger
|
12
|
+
const logger = logger_1.Logger.initialize(config);
|
13
|
+
// Create agent
|
14
|
+
const agent = new agent_1.Agent(config);
|
15
|
+
// Add goal to echo all transactions
|
16
|
+
agent.addGoal('Monitor and log all transactions on Flow EVM');
|
17
|
+
// Set up event handlers
|
18
|
+
agent.on('event', (event) => {
|
19
|
+
if (event.type === 'transaction') {
|
20
|
+
const tx = event.data.transaction;
|
21
|
+
logger.info(`📡 Transaction detected:`, {
|
22
|
+
hash: tx.hash,
|
23
|
+
from: tx.from,
|
24
|
+
to: tx.to,
|
25
|
+
value: tx.value?.toString(),
|
26
|
+
gasPrice: tx.gasPrice?.toString(),
|
27
|
+
blockNumber: event.data.block.number?.toString()
|
28
|
+
});
|
29
|
+
console.log(`
|
30
|
+
🔄 NEW TRANSACTION
|
31
|
+
Hash: ${tx.hash}
|
32
|
+
From: ${tx.from}
|
33
|
+
To: ${tx.to || 'Contract Creation'}
|
34
|
+
Value: ${tx.value ? (Number(tx.value) / 1e18).toFixed(4) : '0'} FLOW
|
35
|
+
Gas Price: ${tx.gasPrice ? (Number(tx.gasPrice) / 1e9).toFixed(2) : '0'} Gwei
|
36
|
+
Block: ${event.data.block.number}
|
37
|
+
`);
|
38
|
+
}
|
39
|
+
});
|
40
|
+
agent.on('started', () => {
|
41
|
+
console.log('✅ Agent started successfully!');
|
42
|
+
console.log(`👤 Agent address: ${agent.getStatus().address}`);
|
43
|
+
console.log('🔍 Monitoring Flow EVM for transactions...');
|
44
|
+
console.log('Press Ctrl+C to stop');
|
45
|
+
});
|
46
|
+
// Graceful shutdown
|
47
|
+
process.on('SIGINT', async () => {
|
48
|
+
console.log('\n🛑 Shutting down agent...');
|
49
|
+
await agent.stop();
|
50
|
+
process.exit(0);
|
51
|
+
});
|
52
|
+
process.on('SIGTERM', async () => {
|
53
|
+
await agent.stop();
|
54
|
+
process.exit(0);
|
55
|
+
});
|
56
|
+
// Start the agent
|
57
|
+
await agent.start();
|
58
|
+
}
|
59
|
+
catch (error) {
|
60
|
+
console.error('❌ Failed to start agent:', error);
|
61
|
+
process.exit(1);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
if (require.main === module) {
|
65
|
+
main().catch(console.error);
|
66
|
+
}
|
67
|
+
//# sourceMappingURL=tx-echo-agent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tx-echo-agent.js","sourceRoot":"","sources":["../../src/examples/tx-echo-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Agent } from './core/agent';
|
2
|
+
export { Agent } from './core/agent';
|
3
|
+
export { Observer } from './modules/observer';
|
4
|
+
export { Executor } from './modules/executor';
|
5
|
+
export { Planner } from './modules/planner';
|
6
|
+
export { Knowledge } from './modules/knowledge';
|
7
|
+
export { Config } from './config';
|
8
|
+
export { Logger } from './logger';
|
9
|
+
export * from './types';
|
10
|
+
export type { Address, Hash, TransactionReceipt, Block, Log } from 'viem';
|
11
|
+
export declare const VERSION = "0.1.0";
|
12
|
+
export default Agent;
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAG1E,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,eAAe,KAAK,CAAC"}
|
package/dist/index.js
ADDED
@@ -0,0 +1,42 @@
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
exports.VERSION = exports.Logger = exports.Config = exports.Knowledge = exports.Planner = exports.Executor = exports.Observer = exports.Agent = void 0;
|
18
|
+
const agent_1 = require("./core/agent");
|
19
|
+
// Core exports
|
20
|
+
var agent_2 = require("./core/agent");
|
21
|
+
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_2.Agent; } });
|
22
|
+
// Module exports
|
23
|
+
var observer_1 = require("./modules/observer");
|
24
|
+
Object.defineProperty(exports, "Observer", { enumerable: true, get: function () { return observer_1.Observer; } });
|
25
|
+
var executor_1 = require("./modules/executor");
|
26
|
+
Object.defineProperty(exports, "Executor", { enumerable: true, get: function () { return executor_1.Executor; } });
|
27
|
+
var planner_1 = require("./modules/planner");
|
28
|
+
Object.defineProperty(exports, "Planner", { enumerable: true, get: function () { return planner_1.Planner; } });
|
29
|
+
var knowledge_1 = require("./modules/knowledge");
|
30
|
+
Object.defineProperty(exports, "Knowledge", { enumerable: true, get: function () { return knowledge_1.Knowledge; } });
|
31
|
+
// Utility exports
|
32
|
+
var config_1 = require("./config");
|
33
|
+
Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return config_1.Config; } });
|
34
|
+
var logger_1 = require("./logger");
|
35
|
+
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
|
36
|
+
// Type exports
|
37
|
+
__exportStar(require("./types"), exports);
|
38
|
+
// Version info
|
39
|
+
exports.VERSION = '0.1.0';
|
40
|
+
// Default export for convenience
|
41
|
+
exports.default = agent_1.Agent;
|
42
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,wCAAqC;AACrC,eAAe;AACf,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,iBAAiB;AACjB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,6CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,iDAAgD;AAAvC,sGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,eAAe;AACf,0CAAwB;AAKxB,eAAe;AACF,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B,iCAAiC;AACjC,kBAAe,aAAK,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IAExC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM;IA+CtD,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM;CAM7B"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.Logger = void 0;
|
7
|
+
const winston_1 = __importDefault(require("winston"));
|
8
|
+
class Logger {
|
9
|
+
static instance;
|
10
|
+
static initialize(config) {
|
11
|
+
if (Logger.instance) {
|
12
|
+
return Logger.instance;
|
13
|
+
}
|
14
|
+
const transports = [
|
15
|
+
new winston_1.default.transports.Console({
|
16
|
+
format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.timestamp(), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
|
17
|
+
return `${timestamp} [${level}]: ${message} ${Object.keys(meta).length ? JSON.stringify(meta, null, 2) : ''}`;
|
18
|
+
}))
|
19
|
+
})
|
20
|
+
];
|
21
|
+
if (config.logFile) {
|
22
|
+
transports.push(new winston_1.default.transports.File({
|
23
|
+
filename: config.logFile,
|
24
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json())
|
25
|
+
}));
|
26
|
+
}
|
27
|
+
Logger.instance = winston_1.default.createLogger({
|
28
|
+
level: config.logLevel || 'info',
|
29
|
+
transports,
|
30
|
+
exceptionHandlers: [
|
31
|
+
new winston_1.default.transports.Console(),
|
32
|
+
...(config.logFile ? [new winston_1.default.transports.File({ filename: config.logFile })] : [])
|
33
|
+
],
|
34
|
+
rejectionHandlers: [
|
35
|
+
new winston_1.default.transports.Console(),
|
36
|
+
...(config.logFile ? [new winston_1.default.transports.File({ filename: config.logFile })] : [])
|
37
|
+
]
|
38
|
+
});
|
39
|
+
return Logger.instance;
|
40
|
+
}
|
41
|
+
static get() {
|
42
|
+
if (!Logger.instance) {
|
43
|
+
throw new Error('Logger not initialized. Call Logger.initialize() first.');
|
44
|
+
}
|
45
|
+
return Logger.instance;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
exports.Logger = Logger;
|
49
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;;;;AACA,sDAA8B;AAG9B,MAAa,MAAM;IACT,MAAM,CAAC,QAAQ,CAAiB;IAExC,MAAM,CAAC,UAAU,CAAC,MAAmB;QACnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAwB;YACtC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;oBAC/D,OAAO,GAAG,SAAS,KAAK,KAAK,MAAM,OAAO,IACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7D,EAAE,CAAC;gBACL,CAAC,CAAC,CACH;aACF,CAAC;SACH,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CACb,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,iBAAO,CAAC,YAAY,CAAC;YACrC,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;YAChC,UAAU;YACV,iBAAiB,EAAE;gBACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;gBAChC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF;YACD,iBAAiB,EAAE;gBACjB,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,EAAE;gBAChC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,GAAG;QACR,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;CACF;AAxDD,wBAwDC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Address, Hash } from 'viem';
|
2
|
+
import { AgentConfig, ExecutorResult } from '../types';
|
3
|
+
export declare class Executor {
|
4
|
+
private walletClient;
|
5
|
+
private publicClient;
|
6
|
+
private account;
|
7
|
+
private config;
|
8
|
+
private logger;
|
9
|
+
constructor(config: AgentConfig);
|
10
|
+
getAddress(): Promise<Address>;
|
11
|
+
getBalance(address?: Address): Promise<bigint>;
|
12
|
+
estimateGas(to: Address, value?: bigint, data?: Hash): Promise<bigint>;
|
13
|
+
sendTransaction(to: Address, value?: bigint, data?: Hash, gasLimit?: bigint): Promise<ExecutorResult>;
|
14
|
+
transferFlow(to: Address, amount: string): Promise<ExecutorResult>;
|
15
|
+
deployContract(bytecode: Hash, constructorArgs?: any[]): Promise<ExecutorResult>;
|
16
|
+
callContract(contractAddress: Address, abi: any[], functionName: string, args?: any[], value?: bigint): Promise<ExecutorResult>;
|
17
|
+
readContract(contractAddress: Address, abi: any[], functionName: string, args?: any[]): Promise<any>;
|
18
|
+
transferToken(tokenAddress: Address, to: Address, amount: bigint): Promise<ExecutorResult>;
|
19
|
+
getTokenBalance(tokenAddress: Address, address?: Address): Promise<bigint>;
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=executor.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/modules/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAyE,OAAO,EAAE,IAAI,EAAgC,MAAM,MAAM,CAAC;AAG1I,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvD,qBAAa,QAAQ;IACnB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE,WAAW;IA2CzB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9C,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IActE,eAAe,CACnB,EAAE,EAAE,OAAO,EACX,KAAK,GAAE,MAAW,EAClB,IAAI,CAAC,EAAE,IAAI,EACX,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IA+CpB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKlE,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IA0ChF,YAAY,CAChB,eAAe,EAAE,OAAO,EACxB,GAAG,EAAE,GAAG,EAAE,EACV,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,GAAG,EAAO,EAChB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,cAAc,CAAC;IAoBpB,YAAY,CAChB,eAAe,EAAE,OAAO,EACxB,GAAG,EAAE,GAAG,EAAE,EACV,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,GAAG,EAAO,GACf,OAAO,CAAC,GAAG,CAAC;IAeT,aAAa,CACjB,YAAY,EAAE,OAAO,EACrB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC;IAQpB,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAQjF"}
|
@@ -0,0 +1,205 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Executor = void 0;
|
4
|
+
const viem_1 = require("viem");
|
5
|
+
const accounts_1 = require("viem/accounts");
|
6
|
+
const logger_1 = require("../logger");
|
7
|
+
class Executor {
|
8
|
+
walletClient;
|
9
|
+
publicClient;
|
10
|
+
account;
|
11
|
+
config;
|
12
|
+
logger;
|
13
|
+
constructor(config) {
|
14
|
+
this.config = config;
|
15
|
+
this.logger = logger_1.Logger.get();
|
16
|
+
// Create account from private key
|
17
|
+
const privateKey = config.privateKey.startsWith('0x')
|
18
|
+
? config.privateKey
|
19
|
+
: `0x${config.privateKey}`;
|
20
|
+
this.account = (0, accounts_1.privateKeyToAccount)(privateKey);
|
21
|
+
// Define Flow EVM chain
|
22
|
+
const flowEvm = {
|
23
|
+
id: 747,
|
24
|
+
name: 'Flow EVM',
|
25
|
+
network: 'flow-evm',
|
26
|
+
nativeCurrency: {
|
27
|
+
decimals: 18,
|
28
|
+
name: 'Flow',
|
29
|
+
symbol: 'FLOW',
|
30
|
+
},
|
31
|
+
rpcUrls: {
|
32
|
+
default: {
|
33
|
+
http: [config.flowRpcUrl],
|
34
|
+
},
|
35
|
+
public: {
|
36
|
+
http: [config.flowRpcUrl],
|
37
|
+
},
|
38
|
+
},
|
39
|
+
};
|
40
|
+
this.walletClient = (0, viem_1.createWalletClient)({
|
41
|
+
account: this.account,
|
42
|
+
chain: flowEvm,
|
43
|
+
transport: (0, viem_1.http)(config.flowRpcUrl)
|
44
|
+
});
|
45
|
+
this.publicClient = (0, viem_1.createPublicClient)({
|
46
|
+
chain: flowEvm,
|
47
|
+
transport: (0, viem_1.http)(config.flowRpcUrl)
|
48
|
+
});
|
49
|
+
}
|
50
|
+
async getAddress() {
|
51
|
+
return this.account.address;
|
52
|
+
}
|
53
|
+
async getBalance(address) {
|
54
|
+
const targetAddress = address || this.account.address;
|
55
|
+
return await this.publicClient.getBalance({ address: targetAddress });
|
56
|
+
}
|
57
|
+
async estimateGas(to, value, data) {
|
58
|
+
try {
|
59
|
+
return await this.walletClient.estimateGas({
|
60
|
+
account: this.account,
|
61
|
+
to,
|
62
|
+
value: value || 0n,
|
63
|
+
data
|
64
|
+
});
|
65
|
+
}
|
66
|
+
catch (error) {
|
67
|
+
this.logger.error('Gas estimation failed:', error);
|
68
|
+
throw error;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
async sendTransaction(to, value = 0n, data, gasLimit) {
|
72
|
+
try {
|
73
|
+
this.logger.info(`Preparing transaction to ${to}, value: ${(0, viem_1.formatEther)(value)} FLOW`);
|
74
|
+
// Estimate gas if not provided
|
75
|
+
const estimatedGas = gasLimit || await this.estimateGas(to, value, data);
|
76
|
+
// Send transaction
|
77
|
+
const hash = await this.walletClient.sendTransaction({
|
78
|
+
account: this.account,
|
79
|
+
to,
|
80
|
+
value,
|
81
|
+
data,
|
82
|
+
gas: estimatedGas
|
83
|
+
});
|
84
|
+
this.logger.info(`Transaction sent: ${hash}`);
|
85
|
+
// Wait for confirmation
|
86
|
+
const receipt = await this.walletClient.waitForTransactionReceipt({ hash });
|
87
|
+
if (receipt.status === 'success') {
|
88
|
+
this.logger.info(`Transaction confirmed: ${hash}, Gas used: ${receipt.gasUsed}`);
|
89
|
+
return {
|
90
|
+
success: true,
|
91
|
+
transactionHash: hash,
|
92
|
+
result: receipt,
|
93
|
+
gasUsed: receipt.gasUsed
|
94
|
+
};
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
this.logger.error(`Transaction failed: ${hash}`);
|
98
|
+
return {
|
99
|
+
success: false,
|
100
|
+
transactionHash: hash,
|
101
|
+
error: 'Transaction reverted',
|
102
|
+
gasUsed: receipt.gasUsed
|
103
|
+
};
|
104
|
+
}
|
105
|
+
}
|
106
|
+
catch (error) {
|
107
|
+
this.logger.error('Transaction execution failed:', error);
|
108
|
+
return {
|
109
|
+
success: false,
|
110
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
111
|
+
};
|
112
|
+
}
|
113
|
+
}
|
114
|
+
async transferFlow(to, amount) {
|
115
|
+
const value = (0, viem_1.parseEther)(amount);
|
116
|
+
return await this.sendTransaction(to, value);
|
117
|
+
}
|
118
|
+
async deployContract(bytecode, constructorArgs) {
|
119
|
+
try {
|
120
|
+
this.logger.info('Deploying contract...');
|
121
|
+
const hash = await this.walletClient.deployContract({
|
122
|
+
abi: [], // ABI would be provided by the calling code
|
123
|
+
bytecode,
|
124
|
+
args: constructorArgs || []
|
125
|
+
});
|
126
|
+
this.logger.info(`Contract deployment transaction: ${hash}`);
|
127
|
+
const receipt = await this.walletClient.waitForTransactionReceipt({ hash });
|
128
|
+
if (receipt.status === 'success') {
|
129
|
+
this.logger.info(`Contract deployed at: ${receipt.contractAddress}`);
|
130
|
+
return {
|
131
|
+
success: true,
|
132
|
+
transactionHash: hash,
|
133
|
+
result: {
|
134
|
+
contractAddress: receipt.contractAddress,
|
135
|
+
receipt
|
136
|
+
},
|
137
|
+
gasUsed: receipt.gasUsed
|
138
|
+
};
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
return {
|
142
|
+
success: false,
|
143
|
+
transactionHash: hash,
|
144
|
+
error: 'Contract deployment failed',
|
145
|
+
gasUsed: receipt.gasUsed
|
146
|
+
};
|
147
|
+
}
|
148
|
+
}
|
149
|
+
catch (error) {
|
150
|
+
this.logger.error('Contract deployment failed:', error);
|
151
|
+
return {
|
152
|
+
success: false,
|
153
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
154
|
+
};
|
155
|
+
}
|
156
|
+
}
|
157
|
+
async callContract(contractAddress, abi, functionName, args = [], value = 0n) {
|
158
|
+
try {
|
159
|
+
this.logger.info(`Calling contract function ${functionName} on ${contractAddress}`);
|
160
|
+
const data = (0, viem_1.encodeFunctionData)({
|
161
|
+
abi,
|
162
|
+
functionName,
|
163
|
+
args
|
164
|
+
});
|
165
|
+
return await this.sendTransaction(contractAddress, value, data);
|
166
|
+
}
|
167
|
+
catch (error) {
|
168
|
+
this.logger.error('Contract call failed:', error);
|
169
|
+
return {
|
170
|
+
success: false,
|
171
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
172
|
+
};
|
173
|
+
}
|
174
|
+
}
|
175
|
+
async readContract(contractAddress, abi, functionName, args = []) {
|
176
|
+
try {
|
177
|
+
return await this.publicClient.readContract({
|
178
|
+
address: contractAddress,
|
179
|
+
abi,
|
180
|
+
functionName,
|
181
|
+
args
|
182
|
+
});
|
183
|
+
}
|
184
|
+
catch (error) {
|
185
|
+
this.logger.error('Contract read failed:', error);
|
186
|
+
throw error;
|
187
|
+
}
|
188
|
+
}
|
189
|
+
// ERC-20 token utilities
|
190
|
+
async transferToken(tokenAddress, to, amount) {
|
191
|
+
const erc20Abi = (0, viem_1.parseAbi)([
|
192
|
+
'function transfer(address to, uint256 amount) returns (bool)'
|
193
|
+
]);
|
194
|
+
return await this.callContract(tokenAddress, erc20Abi, 'transfer', [to, amount]);
|
195
|
+
}
|
196
|
+
async getTokenBalance(tokenAddress, address) {
|
197
|
+
const erc20Abi = (0, viem_1.parseAbi)([
|
198
|
+
'function balanceOf(address owner) view returns (uint256)'
|
199
|
+
]);
|
200
|
+
const targetAddress = address || this.account.address;
|
201
|
+
return await this.readContract(tokenAddress, erc20Abi, 'balanceOf', [targetAddress]);
|
202
|
+
}
|
203
|
+
}
|
204
|
+
exports.Executor = Executor;
|
205
|
+
//# sourceMappingURL=executor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/modules/executor.ts"],"names":[],"mappings":";;;AACA,+BAA0I;AAC1I,4CAAoD;AACpD,sCAAmC;AAGnC,MAAa,QAAQ;IACX,YAAY,CAAM;IAClB,YAAY,CAAM;IAClB,OAAO,CAAM;IACb,MAAM,CAAc;IACpB,MAAM,CAAM;IAEpB,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,eAAM,CAAC,GAAG,EAAE,CAAC;QAE3B,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YACnD,CAAC,CAAC,MAAM,CAAC,UAAkB;YAC3B,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,EAAU,CAAC;QAErC,IAAI,CAAC,OAAO,GAAG,IAAA,8BAAmB,EAAC,UAAU,CAAC,CAAC;QAE/C,wBAAwB;QACxB,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,UAAU;YACnB,cAAc,EAAE;gBACd,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;aACf;YACD,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;iBAC1B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;iBAC1B;aACF;SACO,CAAC;QAEX,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC,UAAU,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAkB,EAAC;YACrC,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC,UAAU,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAiB;QAChC,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAW,EAAE,KAAc,EAAE,IAAW;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE;gBACF,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,EAAW,EACX,QAAgB,EAAE,EAClB,IAAW,EACX,QAAiB;QAEjB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,YAAY,IAAA,kBAAW,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtF,+BAA+B;YAC/B,MAAM,YAAY,GAAG,QAAQ,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAEzE,mBAAmB;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACnD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,EAAE;gBACF,KAAK;gBACL,IAAI;gBACJ,GAAG,EAAE,YAAY;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YAE9C,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,eAAe,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjF,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;gBACjD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,eAAe,EAAE,IAAI;oBACrB,KAAK,EAAE,sBAAsB;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAW,EAAE,MAAc;QAC5C,MAAM,KAAK,GAAG,IAAA,iBAAU,EAAC,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAc,EAAE,eAAuB;QAC1D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAE1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;gBAClD,GAAG,EAAE,EAAE,EAAE,4CAA4C;gBACrD,QAAQ;gBACR,IAAI,EAAE,eAAe,IAAI,EAAE;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrE,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,MAAM,EAAE;wBACN,eAAe,EAAE,OAAO,CAAC,eAAe;wBACxC,OAAO;qBACR;oBACD,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,eAAe,EAAE,IAAI;oBACrB,KAAK,EAAE,4BAA4B;oBACnC,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,eAAwB,EACxB,GAAU,EACV,YAAoB,EACpB,OAAc,EAAE,EAChB,QAAgB,EAAE;QAElB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,YAAY,OAAO,eAAe,EAAE,CAAC,CAAC;YAEpF,MAAM,IAAI,GAAG,IAAA,yBAAkB,EAAC;gBAC9B,GAAG;gBACH,YAAY;gBACZ,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,eAAwB,EACxB,GAAU,EACV,YAAoB,EACpB,OAAc,EAAE;QAEhB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBAC1C,OAAO,EAAE,eAAe;gBACxB,GAAG;gBACH,YAAY;gBACZ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,aAAa,CACjB,YAAqB,EACrB,EAAW,EACX,MAAc;QAEd,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC;YACxB,8DAA8D;SAC/D,CAAC,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAA4B,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAqB,EAAE,OAAiB;QAC5D,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC;YACxB,0DAA0D;SAC3D,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAA4B,EAAE,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3G,CAAC;CACF;AA9OD,4BA8OC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { AgentConfig, AgentMemory } from '../types';
|
2
|
+
export declare class Knowledge {
|
3
|
+
private chroma;
|
4
|
+
private chromaCollection;
|
5
|
+
private redis;
|
6
|
+
private config;
|
7
|
+
private logger;
|
8
|
+
private memoryCache;
|
9
|
+
constructor(config: AgentConfig);
|
10
|
+
initialize(): Promise<void>;
|
11
|
+
storeMemory(content: string, metadata?: Record<string, any>): Promise<string>;
|
12
|
+
retrieveMemory(id: string): Promise<AgentMemory | null>;
|
13
|
+
searchMemories(query: string, limit?: number): Promise<AgentMemory[]>;
|
14
|
+
getRecentMemories(limit?: number): Promise<AgentMemory[]>;
|
15
|
+
deleteMemory(id: string): Promise<boolean>;
|
16
|
+
clearAllMemories(): Promise<void>;
|
17
|
+
close(): Promise<void>;
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=knowledge.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/modules/knowledge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAuC;gBAE9C,MAAM,EAAE,WAAW;IAKzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CjF,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAuBvD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6CzE,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO7D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|