@olane/o-tools-common 0.6.12 → 0.6.13
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/dist/agent/agents.tool.d.ts +10 -0
- package/dist/agent/agents.tool.d.ts.map +1 -0
- package/dist/agent/agents.tool.js +20 -0
- package/dist/agent/ai-agent.tool.d.ts +6 -0
- package/dist/agent/ai-agent.tool.d.ts.map +1 -0
- package/dist/agent/ai-agent.tool.js +10 -0
- package/dist/agent/base-agent.tool.d.ts +11 -0
- package/dist/agent/base-agent.tool.d.ts.map +1 -0
- package/dist/agent/base-agent.tool.js +30 -0
- package/dist/agent/human-agent.tool.d.ts +6 -0
- package/dist/agent/human-agent.tool.d.ts.map +1 -0
- package/dist/agent/human-agent.tool.js +10 -0
- package/dist/agent/index.d.ts +5 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +4 -0
- package/dist/agent/interfaces/agent.config.d.ts +6 -0
- package/dist/agent/interfaces/agent.config.d.ts.map +1 -0
- package/dist/agent/interfaces/agent.config.js +1 -0
- package/dist/agent/methods/agent.methods.d.ts +5 -0
- package/dist/agent/methods/agent.methods.d.ts.map +1 -0
- package/dist/agent/methods/agent.methods.js +30 -0
- package/dist/leader/index.d.ts +2 -0
- package/dist/leader/index.d.ts.map +1 -0
- package/dist/leader/index.js +1 -0
- package/dist/leader/leader.node.d.ts +10 -0
- package/dist/leader/leader.node.d.ts.map +1 -0
- package/dist/leader/leader.node.js +63 -0
- package/dist/leader/methods/start.method.d.ts +3 -0
- package/dist/leader/methods/start.method.d.ts.map +1 -0
- package/dist/leader/methods/start.method.js +21 -0
- package/dist/plan/methods/plan.methods.d.ts +5 -0
- package/dist/plan/methods/plan.methods.d.ts.map +1 -0
- package/dist/plan/methods/plan.methods.js +8 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +2 -0
- package/dist/registry/interfaces/search.interface.d.ts +6 -0
- package/dist/registry/interfaces/search.interface.d.ts.map +1 -0
- package/dist/registry/interfaces/search.interface.js +1 -0
- package/dist/registry/methods/registry.methods.d.ts +5 -0
- package/dist/registry/methods/registry.methods.d.ts.map +1 -0
- package/dist/registry/methods/registry.methods.js +74 -0
- package/dist/registry/registry-memory.tool.d.ts +9 -0
- package/dist/registry/registry-memory.tool.d.ts.map +1 -0
- package/dist/registry/registry-memory.tool.js +51 -0
- package/dist/registry/registry.tool.d.ts +13 -0
- package/dist/registry/registry.tool.d.ts.map +1 -0
- package/dist/registry/registry.tool.js +15 -0
- package/dist/setup/index.d.ts +3 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +2 -0
- package/dist/setup/methods/setup.method.d.ts +5 -0
- package/dist/setup/methods/setup.method.d.ts.map +1 -0
- package/dist/setup/methods/setup.method.js +16 -0
- package/dist/setup/setup.tool.d.ts +11 -0
- package/dist/setup/setup.tool.d.ts.map +1 -0
- package/dist/setup/setup.tool.js +52 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/interfaces/get-data.response.d.ts +4 -0
- package/dist/storage/interfaces/get-data.response.d.ts.map +1 -0
- package/dist/storage/interfaces/get-data.response.js +1 -0
- package/dist/storage/interfaces/index.d.ts +2 -0
- package/dist/storage/interfaces/index.d.ts.map +1 -0
- package/dist/storage/interfaces/index.js +1 -0
- package/dist/storage/methods/storage.methods.d.ts +5 -0
- package/dist/storage/methods/storage.methods.d.ts.map +1 -0
- package/dist/storage/methods/storage.methods.js +65 -0
- package/dist/storage/placeholder.tool.d.ts +6 -0
- package/dist/storage/placeholder.tool.d.ts.map +1 -0
- package/dist/storage/placeholder.tool.js +10 -0
- package/dist/storage/providers/dht-storage-provider.tool.d.ts +12 -0
- package/dist/storage/providers/dht-storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/dht-storage-provider.tool.js +25 -0
- package/dist/storage/providers/disk-storage-provider.tool.d.ts +45 -0
- package/dist/storage/providers/disk-storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/disk-storage-provider.tool.js +134 -0
- package/dist/storage/providers/encrypted-storage-provider.tool.d.ts +1 -0
- package/dist/storage/providers/encrypted-storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/encrypted-storage-provider.tool.js +63 -0
- package/dist/storage/providers/memory-storage-provider.tool.d.ts +32 -0
- package/dist/storage/providers/memory-storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/memory-storage-provider.tool.js +65 -0
- package/dist/storage/providers/secure-storage-provider.tool.d.ts +25 -0
- package/dist/storage/providers/secure-storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/secure-storage-provider.tool.js +72 -0
- package/dist/storage/providers/storage-provider.tool.d.ts +11 -0
- package/dist/storage/providers/storage-provider.tool.d.ts.map +1 -0
- package/dist/storage/providers/storage-provider.tool.js +24 -0
- package/dist/storage/storage.tool.d.ts +12 -0
- package/dist/storage/storage.tool.d.ts.map +1 -0
- package/dist/storage/storage.tool.js +46 -0
- package/package.json +5 -5
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { oVirtualTool } from '@olane/o-tool';
|
|
2
|
+
import { oAddress } from '@olane/o-core';
|
|
3
|
+
import { SETUP_METHODS } from './methods/setup.method.js';
|
|
4
|
+
export class SetupTool extends oVirtualTool {
|
|
5
|
+
constructor(config) {
|
|
6
|
+
super({
|
|
7
|
+
...config,
|
|
8
|
+
address: new oAddress('o://setup'),
|
|
9
|
+
methods: SETUP_METHODS,
|
|
10
|
+
description: 'Tool to help configure default tools on the network',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async validateTool(address, method) {
|
|
14
|
+
// we want to validate a specific tool
|
|
15
|
+
const tool = await this.use(address, {
|
|
16
|
+
method: method,
|
|
17
|
+
params: {},
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
result: tool.result.error,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async validateAllTools() {
|
|
24
|
+
// we want to validate all common tools on the network
|
|
25
|
+
return {
|
|
26
|
+
result: null,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async _tool_validate(request) {
|
|
30
|
+
const params = request.params;
|
|
31
|
+
const { address } = params;
|
|
32
|
+
if (!address) {
|
|
33
|
+
// we want to validate all common tools on the network
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// let's validate a specific tool
|
|
37
|
+
const tool = await this.validateTool(new oAddress('o://intelligence'), 'completion');
|
|
38
|
+
console.log('Validation result: ', tool?.result?.details?.parameters);
|
|
39
|
+
return tool?.result?.details?.parameters;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
result: null,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async _tool_store_parameters(request) {
|
|
46
|
+
const params = request.params;
|
|
47
|
+
const { parameters, address } = params;
|
|
48
|
+
return {
|
|
49
|
+
result: null,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './storage.tool.js';
|
|
2
|
+
export * from './providers/memory-storage-provider.tool.js';
|
|
3
|
+
export * from './providers/disk-storage-provider.tool.js';
|
|
4
|
+
export * from './providers/secure-storage-provider.tool.js';
|
|
5
|
+
export * from './providers/storage-provider.tool.js';
|
|
6
|
+
export * from './interfaces/index.js';
|
|
7
|
+
export * from './placeholder.tool.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './storage.tool.js';
|
|
2
|
+
export * from './providers/memory-storage-provider.tool.js';
|
|
3
|
+
export * from './providers/disk-storage-provider.tool.js';
|
|
4
|
+
export * from './providers/secure-storage-provider.tool.js';
|
|
5
|
+
export * from './providers/storage-provider.tool.js';
|
|
6
|
+
export * from './interfaces/index.js';
|
|
7
|
+
export * from './placeholder.tool.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-data.response.d.ts","sourceRoot":"","sources":["../../../src/storage/interfaces/get-data.response.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './get-data.response.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.methods.d.ts","sourceRoot":"","sources":["../../../src/storage/methods/storage.methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAgEpD,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const STORAGE_PARAMS = {
|
|
2
|
+
put: {
|
|
3
|
+
name: 'put',
|
|
4
|
+
description: 'Store data on disk',
|
|
5
|
+
dependencies: [],
|
|
6
|
+
parameters: [
|
|
7
|
+
{
|
|
8
|
+
name: 'key',
|
|
9
|
+
type: 'string',
|
|
10
|
+
value: 'string',
|
|
11
|
+
description: 'Store data on disk',
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'value',
|
|
16
|
+
type: 'string',
|
|
17
|
+
value: 'string',
|
|
18
|
+
description: 'The data to store',
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
get: {
|
|
24
|
+
name: 'get',
|
|
25
|
+
description: 'Retrieve data from disk',
|
|
26
|
+
dependencies: [],
|
|
27
|
+
parameters: [
|
|
28
|
+
{
|
|
29
|
+
name: 'key',
|
|
30
|
+
type: 'string',
|
|
31
|
+
value: 'string',
|
|
32
|
+
description: 'The key to retrieve',
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
delete: {
|
|
38
|
+
name: 'delete',
|
|
39
|
+
description: 'Delete data from disk',
|
|
40
|
+
dependencies: [],
|
|
41
|
+
parameters: [
|
|
42
|
+
{
|
|
43
|
+
name: 'key',
|
|
44
|
+
type: 'string',
|
|
45
|
+
value: 'string',
|
|
46
|
+
description: 'The key to delete',
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
has: {
|
|
52
|
+
name: 'has',
|
|
53
|
+
description: 'Check if data exists on disk',
|
|
54
|
+
dependencies: [],
|
|
55
|
+
parameters: [
|
|
56
|
+
{
|
|
57
|
+
name: 'key',
|
|
58
|
+
type: 'string',
|
|
59
|
+
value: 'string',
|
|
60
|
+
description: 'The key to check',
|
|
61
|
+
required: true,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { oToolConfig } from '@olane/o-tool';
|
|
2
|
+
import { MemoryStorageProvider } from './providers/memory-storage-provider.tool.js';
|
|
3
|
+
export declare class PlaceholderTool extends MemoryStorageProvider {
|
|
4
|
+
constructor(config: oToolConfig);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=placeholder.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholder.tool.d.ts","sourceRoot":"","sources":["../../src/storage/placeholder.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,qBAAa,eAAgB,SAAQ,qBAAqB;gBAC5C,MAAM,EAAE,WAAW;CAMhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MemoryStorageProvider } from './providers/memory-storage-provider.tool.js';
|
|
2
|
+
import { oAddress } from '../../../../dist/src/core/o-address.js';
|
|
3
|
+
export class PlaceholderTool extends MemoryStorageProvider {
|
|
4
|
+
constructor(config) {
|
|
5
|
+
super({
|
|
6
|
+
...config,
|
|
7
|
+
address: new oAddress('o://placeholder'),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { oToolConfig, ToolResult } from '@olane/o-tool';
|
|
2
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
3
|
+
import { oRequest } from '@olane/o-core';
|
|
4
|
+
import { GetDataResponse } from '../interfaces/get-data.response.js';
|
|
5
|
+
export declare class DhtStorageProvider extends StorageProviderTool {
|
|
6
|
+
constructor(config: oToolConfig);
|
|
7
|
+
_tool_put(request: oRequest): Promise<ToolResult>;
|
|
8
|
+
_tool_get(request: oRequest): Promise<GetDataResponse>;
|
|
9
|
+
_tool_delete(request: oRequest): Promise<ToolResult>;
|
|
10
|
+
_tool_has(request: oRequest): Promise<ToolResult>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=dht-storage-provider.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dht-storage-provider.tool.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/dht-storage-provider.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,qBAAa,kBAAmB,SAAQ,mBAAmB;gBAC7C,MAAM,EAAE,WAAW;IASzB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjD,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAItD,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAGxD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
2
|
+
import { oAddress } from '@olane/o-core';
|
|
3
|
+
import { STORAGE_PARAMS } from '../methods/storage.methods.js';
|
|
4
|
+
export class DhtStorageProvider extends StorageProviderTool {
|
|
5
|
+
constructor(config) {
|
|
6
|
+
super({
|
|
7
|
+
...config,
|
|
8
|
+
address: new oAddress('o://dht'),
|
|
9
|
+
methods: STORAGE_PARAMS,
|
|
10
|
+
description: 'Distributed hash table storage provider',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
async _tool_put(request) {
|
|
14
|
+
throw new Error('Not implemented');
|
|
15
|
+
}
|
|
16
|
+
async _tool_get(request) {
|
|
17
|
+
throw new Error('Not implemented');
|
|
18
|
+
}
|
|
19
|
+
async _tool_delete(request) {
|
|
20
|
+
throw new Error('Not implemented');
|
|
21
|
+
}
|
|
22
|
+
async _tool_has(request) {
|
|
23
|
+
throw new Error('Not implemented');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { oToolConfig, ToolResult } from '@olane/o-tool';
|
|
2
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
3
|
+
import { oAddress, oRequest } from '@olane/o-core';
|
|
4
|
+
import { GetDataResponse } from '../interfaces/get-data.response.js';
|
|
5
|
+
interface DiskStorageConfig extends oToolConfig {
|
|
6
|
+
storageDir?: string;
|
|
7
|
+
address?: oAddress;
|
|
8
|
+
}
|
|
9
|
+
export declare class DiskStorageProvider extends StorageProviderTool {
|
|
10
|
+
private storageDir;
|
|
11
|
+
constructor(config: DiskStorageConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Ensure the storage directory exists
|
|
14
|
+
*/
|
|
15
|
+
protected ensureStorageDir(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Get the file path for a given key
|
|
18
|
+
*/
|
|
19
|
+
protected getFilePath(key: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Store data on disk
|
|
22
|
+
* @param key The key to store the data under
|
|
23
|
+
* @param value The data to store
|
|
24
|
+
*/
|
|
25
|
+
_tool_put(request: oRequest): Promise<ToolResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Retrieve data from disk
|
|
28
|
+
* @param key The key to retrieve
|
|
29
|
+
* @returns The stored data or null if not found
|
|
30
|
+
*/
|
|
31
|
+
_tool_get(request: oRequest): Promise<GetDataResponse>;
|
|
32
|
+
/**
|
|
33
|
+
* Delete data from disk
|
|
34
|
+
* @param key The key to delete
|
|
35
|
+
*/
|
|
36
|
+
_tool_delete(request: oRequest): Promise<ToolResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a key exists on disk
|
|
39
|
+
* @param key The key to check
|
|
40
|
+
* @returns Whether the key exists
|
|
41
|
+
*/
|
|
42
|
+
_tool_has(request: oRequest): Promise<ToolResult>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=disk-storage-provider.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-storage-provider.tool.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/disk-storage-provider.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAuB,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIxE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAGrE,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAOD,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,iBAAiB;IAarC;;OAEG;cACa,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjD;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAM1C;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BvD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAW5D;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB1D;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAyBxD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
2
|
+
import { DEFAULT_CONFIG_PATH, oAddress } from '@olane/o-core';
|
|
3
|
+
import fs from 'fs/promises';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { STORAGE_PARAMS } from '../methods/storage.methods.js';
|
|
6
|
+
export class DiskStorageProvider extends StorageProviderTool {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
super({
|
|
9
|
+
...config,
|
|
10
|
+
address: config.address || new oAddress('o://disk'),
|
|
11
|
+
methods: STORAGE_PARAMS,
|
|
12
|
+
description: 'Disk storage provider',
|
|
13
|
+
});
|
|
14
|
+
// Use a default storage directory, can be overridden via config
|
|
15
|
+
this.storageDir =
|
|
16
|
+
config.storageDir || path.join(DEFAULT_CONFIG_PATH, 'storage');
|
|
17
|
+
this.ensureStorageDir();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Ensure the storage directory exists
|
|
21
|
+
*/
|
|
22
|
+
async ensureStorageDir() {
|
|
23
|
+
try {
|
|
24
|
+
await fs.access(this.storageDir);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
await fs.mkdir(this.storageDir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the file path for a given key
|
|
32
|
+
*/
|
|
33
|
+
getFilePath(key) {
|
|
34
|
+
// Sanitize the key to be filesystem safe
|
|
35
|
+
const sanitizedKey = key.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
36
|
+
return path.join(this.storageDir, `${sanitizedKey}.json`);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Store data on disk
|
|
40
|
+
* @param key The key to store the data under
|
|
41
|
+
* @param value The data to store
|
|
42
|
+
*/
|
|
43
|
+
async _tool_put(request) {
|
|
44
|
+
try {
|
|
45
|
+
await this.ensureStorageDir();
|
|
46
|
+
const { key, value } = request.params;
|
|
47
|
+
const filePath = this.getFilePath(key);
|
|
48
|
+
// Store the data as JSON with metadata
|
|
49
|
+
const data = {
|
|
50
|
+
value: value,
|
|
51
|
+
timestamp: new Date().toISOString(),
|
|
52
|
+
key: key,
|
|
53
|
+
};
|
|
54
|
+
await fs.writeFile(filePath, JSON.stringify(data, null, 2), 'utf8');
|
|
55
|
+
return {
|
|
56
|
+
success: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return {
|
|
61
|
+
success: false,
|
|
62
|
+
error: `Failed to store data: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Retrieve data from disk
|
|
68
|
+
* @param key The key to retrieve
|
|
69
|
+
* @returns The stored data or null if not found
|
|
70
|
+
*/
|
|
71
|
+
async _tool_get(request) {
|
|
72
|
+
const { key } = request.params;
|
|
73
|
+
const filePath = this.getFilePath(key);
|
|
74
|
+
const fileContent = await fs.readFile(filePath, 'utf8');
|
|
75
|
+
const data = JSON.parse(fileContent);
|
|
76
|
+
return data.value;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Delete data from disk
|
|
80
|
+
* @param key The key to delete
|
|
81
|
+
*/
|
|
82
|
+
async _tool_delete(request) {
|
|
83
|
+
const { key } = request.params;
|
|
84
|
+
try {
|
|
85
|
+
const filePath = this.getFilePath(key);
|
|
86
|
+
await fs.unlink(filePath);
|
|
87
|
+
return {
|
|
88
|
+
success: true,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const nodeError = error;
|
|
93
|
+
if (nodeError.code === 'ENOENT') {
|
|
94
|
+
// File doesn't exist, consider it already deleted
|
|
95
|
+
return {
|
|
96
|
+
success: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
success: false,
|
|
101
|
+
error: `Failed to delete data: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if a key exists on disk
|
|
107
|
+
* @param key The key to check
|
|
108
|
+
* @returns Whether the key exists
|
|
109
|
+
*/
|
|
110
|
+
async _tool_has(request) {
|
|
111
|
+
const { key } = request.params;
|
|
112
|
+
try {
|
|
113
|
+
const filePath = this.getFilePath(key);
|
|
114
|
+
await fs.access(filePath);
|
|
115
|
+
return {
|
|
116
|
+
success: true,
|
|
117
|
+
data: true,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
const nodeError = error;
|
|
122
|
+
if (nodeError.code === 'ENOENT') {
|
|
123
|
+
return {
|
|
124
|
+
success: true,
|
|
125
|
+
data: false,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
success: false,
|
|
130
|
+
error: `Failed to check if key exists: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=encrypted-storage-provider.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypted-storage-provider.tool.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/encrypted-storage-provider.tool.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { ToolResult } from '@olane/o-tool';
|
|
3
|
+
// import { StorageProviderTool } from './storage-provider.tool';
|
|
4
|
+
// import { CoreConfig, oAddress, oRequest } from '@olane/o-core';
|
|
5
|
+
// import { STORAGE_PARAMS } from '../methods/storage.methods';
|
|
6
|
+
// export class EncryptedStorageProvider extends StorageProviderTool {
|
|
7
|
+
// private storage: Map<string, string>;
|
|
8
|
+
// constructor(config: CoreConfig) {
|
|
9
|
+
// super({
|
|
10
|
+
// ...config,
|
|
11
|
+
// address: config.address || new oAddress('o://encrypted'),
|
|
12
|
+
// methods: STORAGE_PARAMS,
|
|
13
|
+
// });
|
|
14
|
+
// this.storage = new Map();
|
|
15
|
+
// }
|
|
16
|
+
// /**
|
|
17
|
+
// * Store data in memory
|
|
18
|
+
// * @param key The key to store the data under
|
|
19
|
+
// * @param value The data to store
|
|
20
|
+
// */
|
|
21
|
+
// async _tool_put(request: oRequest): Promise<ToolResult> {
|
|
22
|
+
// const { key, value } = request.params;
|
|
23
|
+
// this.storage.set(key as string, value as string);
|
|
24
|
+
// return {
|
|
25
|
+
// success: true,
|
|
26
|
+
// };
|
|
27
|
+
// }
|
|
28
|
+
// /**
|
|
29
|
+
// * Retrieve data from memory
|
|
30
|
+
// * @param key The key to retrieve
|
|
31
|
+
// * @returns The stored data or null if not found
|
|
32
|
+
// */
|
|
33
|
+
// async _tool_get(request: oRequest): Promise<ToolResult> {
|
|
34
|
+
// const { key } = request.params;
|
|
35
|
+
// const value = this.storage.get(key as string);
|
|
36
|
+
// return {
|
|
37
|
+
// success: true,
|
|
38
|
+
// data: value,
|
|
39
|
+
// };
|
|
40
|
+
// }
|
|
41
|
+
// /**
|
|
42
|
+
// * Delete data from memory
|
|
43
|
+
// * @param key The key to delete``
|
|
44
|
+
// */
|
|
45
|
+
// async _tool_delete(request: oRequest): Promise<ToolResult> {
|
|
46
|
+
// const { key } = request.params;
|
|
47
|
+
// this.storage.delete(key as string);
|
|
48
|
+
// return {
|
|
49
|
+
// success: true,
|
|
50
|
+
// };
|
|
51
|
+
// }
|
|
52
|
+
// /**
|
|
53
|
+
// * Check if a key exists in memory
|
|
54
|
+
// * @param key The key to check
|
|
55
|
+
// * @returns Whether the key exists
|
|
56
|
+
// */
|
|
57
|
+
// async _tool_has(request: oRequest): Promise<ToolResult> {
|
|
58
|
+
// const { key } = request.params;
|
|
59
|
+
// return {
|
|
60
|
+
// success: this.storage.has(key as string),
|
|
61
|
+
// };
|
|
62
|
+
// }
|
|
63
|
+
// }
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ToolResult } from '@olane/o-tool';
|
|
2
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
3
|
+
import { CoreConfig, oRequest } from '@olane/o-core';
|
|
4
|
+
import { GetDataResponse } from '../interfaces/get-data.response.js';
|
|
5
|
+
export declare class MemoryStorageProvider extends StorageProviderTool {
|
|
6
|
+
private storage;
|
|
7
|
+
constructor(config: CoreConfig);
|
|
8
|
+
/**
|
|
9
|
+
* Store data in memory
|
|
10
|
+
* @param key The key to store the data under
|
|
11
|
+
* @param value The data to store
|
|
12
|
+
*/
|
|
13
|
+
_tool_put(request: oRequest): Promise<ToolResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieve data from memory
|
|
16
|
+
* @param key The key to retrieve
|
|
17
|
+
* @returns The stored data or null if not found
|
|
18
|
+
*/
|
|
19
|
+
_tool_get(request: oRequest): Promise<GetDataResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Delete data from memory
|
|
22
|
+
* @param key The key to delete``
|
|
23
|
+
*/
|
|
24
|
+
_tool_delete(request: oRequest): Promise<ToolResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a key exists in memory
|
|
27
|
+
* @param key The key to check
|
|
28
|
+
* @returns Whether the key exists
|
|
29
|
+
*/
|
|
30
|
+
_tool_has(request: oRequest): Promise<ToolResult>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=memory-storage-provider.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-storage-provider.tool.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/memory-storage-provider.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC5D,OAAO,CAAC,OAAO,CAAsB;gBACzB,MAAM,EAAE,UAAU;IAU9B;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAQvD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;IAa5D;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ1D;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAMxD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { StorageProviderTool } from './storage-provider.tool.js';
|
|
2
|
+
import { oAddress } from '@olane/o-core';
|
|
3
|
+
import { STORAGE_PARAMS } from '../methods/storage.methods.js';
|
|
4
|
+
export class MemoryStorageProvider extends StorageProviderTool {
|
|
5
|
+
constructor(config) {
|
|
6
|
+
super({
|
|
7
|
+
...config,
|
|
8
|
+
address: config.address || new oAddress('o://memory'),
|
|
9
|
+
methods: STORAGE_PARAMS,
|
|
10
|
+
description: 'In-memory storage provider',
|
|
11
|
+
});
|
|
12
|
+
this.storage = new Map();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Store data in memory
|
|
16
|
+
* @param key The key to store the data under
|
|
17
|
+
* @param value The data to store
|
|
18
|
+
*/
|
|
19
|
+
async _tool_put(request) {
|
|
20
|
+
const { key, value } = request.params;
|
|
21
|
+
this.storage.set(key, value);
|
|
22
|
+
return {
|
|
23
|
+
success: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Retrieve data from memory
|
|
28
|
+
* @param key The key to retrieve
|
|
29
|
+
* @returns The stored data or null if not found
|
|
30
|
+
*/
|
|
31
|
+
async _tool_get(request) {
|
|
32
|
+
const { key } = request.params;
|
|
33
|
+
const value = this.storage.get(key);
|
|
34
|
+
if (!value) {
|
|
35
|
+
return {
|
|
36
|
+
value: null,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
value: value,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Delete data from memory
|
|
45
|
+
* @param key The key to delete``
|
|
46
|
+
*/
|
|
47
|
+
async _tool_delete(request) {
|
|
48
|
+
const { key } = request.params;
|
|
49
|
+
this.storage.delete(key);
|
|
50
|
+
return {
|
|
51
|
+
success: true,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if a key exists in memory
|
|
56
|
+
* @param key The key to check
|
|
57
|
+
* @returns Whether the key exists
|
|
58
|
+
*/
|
|
59
|
+
async _tool_has(request) {
|
|
60
|
+
const { key } = request.params;
|
|
61
|
+
return {
|
|
62
|
+
success: this.storage.has(key),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { oToolConfig, ToolResult } from '@olane/o-tool';
|
|
2
|
+
import { oAddress, oRequest } from '@olane/o-core';
|
|
3
|
+
import { GetDataResponse } from '../interfaces/get-data.response.js';
|
|
4
|
+
import { DiskStorageProvider } from './disk-storage-provider.tool.js';
|
|
5
|
+
interface DiskStorageConfig extends oToolConfig {
|
|
6
|
+
storageDir?: string;
|
|
7
|
+
address?: oAddress;
|
|
8
|
+
}
|
|
9
|
+
export declare class SecureStorageProvider extends DiskStorageProvider {
|
|
10
|
+
constructor(config: DiskStorageConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Store data on disk
|
|
13
|
+
* @param key The key to store the data under
|
|
14
|
+
* @param value The data to store
|
|
15
|
+
*/
|
|
16
|
+
_tool_put(request: oRequest): Promise<ToolResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Retrieve data from disk
|
|
19
|
+
* @param key The key to retrieve
|
|
20
|
+
* @returns The stored data or null if not found
|
|
21
|
+
*/
|
|
22
|
+
_tool_get(request: oRequest): Promise<GetDataResponse>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=secure-storage-provider.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-storage-provider.tool.d.ts","sourceRoot":"","sources":["../../../src/storage/providers/secure-storage-provider.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,UAAU,iBAAkB,SAAQ,WAAW;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAOD,qBAAa,qBAAsB,SAAQ,mBAAmB;gBAChD,MAAM,EAAE,iBAAiB;IASrC;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAoCvD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;CAsB7D"}
|