@smythos/sre 1.5.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 +135 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types/Components/APICall/APICall.class.d.ts +34 -0
- package/dist/types/Components/APICall/AccessTokenManager.d.ts +17 -0
- package/dist/types/Components/APICall/ArrayBufferResponse.helper.d.ts +3 -0
- package/dist/types/Components/APICall/OAuth.helper.d.ts +10 -0
- package/dist/types/Components/APICall/mimeTypeCategories.d.ts +6 -0
- package/dist/types/Components/APICall/parseData.d.ts +5 -0
- package/dist/types/Components/APICall/parseHeaders.d.ts +3 -0
- package/dist/types/Components/APICall/parseProxy.d.ts +4 -0
- package/dist/types/Components/APICall/parseUrl.d.ts +7 -0
- package/dist/types/Components/APIEndpoint.class.d.ts +16 -0
- package/dist/types/Components/APIOutput.class.d.ts +15 -0
- package/dist/types/Components/AgentPlugin.class.d.ts +16 -0
- package/dist/types/Components/Async.class.d.ts +17 -0
- package/dist/types/Components/Await.class.d.ts +22 -0
- package/dist/types/Components/Classifier.class.d.ts +33 -0
- package/dist/types/Components/Component.class.d.ts +35 -0
- package/dist/types/Components/ComponentHost.class.d.ts +12 -0
- package/dist/types/Components/DataSourceCleaner.class.d.ts +19 -0
- package/dist/types/Components/DataSourceIndexer.class.d.ts +25 -0
- package/dist/types/Components/DataSourceLookup.class.d.ts +17 -0
- package/dist/types/Components/FEncDec.class.d.ts +17 -0
- package/dist/types/Components/FHash.class.d.ts +17 -0
- package/dist/types/Components/FSign.class.d.ts +18 -0
- package/dist/types/Components/FSleep.class.d.ts +19 -0
- package/dist/types/Components/FTimestamp.class.d.ts +19 -0
- package/dist/types/Components/FileStore.class.d.ts +11 -0
- package/dist/types/Components/ForEach.class.d.ts +16 -0
- package/dist/types/Components/GPTPlugin.class.d.ts +17 -0
- package/dist/types/Components/GenAILLM.class.d.ts +130 -0
- package/dist/types/Components/HuggingFace.class.d.ts +17 -0
- package/dist/types/Components/Image/imageSettings.config.d.ts +21 -0
- package/dist/types/Components/ImageGenerator.class.d.ts +17 -0
- package/dist/types/Components/JSONFilter.class.d.ts +13 -0
- package/dist/types/Components/LLMAssistant.class.d.ts +19 -0
- package/dist/types/Components/LogicAND.class.d.ts +7 -0
- package/dist/types/Components/LogicAtLeast.class.d.ts +9 -0
- package/dist/types/Components/LogicAtMost.class.d.ts +9 -0
- package/dist/types/Components/LogicOR.class.d.ts +7 -0
- package/dist/types/Components/LogicXOR.class.d.ts +7 -0
- package/dist/types/Components/MCPClient.class.d.ts +17 -0
- package/dist/types/Components/PromptGenerator.class.d.ts +19 -0
- package/dist/types/Components/ScrapflyWebScrape.class.d.ts +30 -0
- package/dist/types/Components/TavilyWebSearch.class.d.ts +31 -0
- package/dist/types/Components/index.d.ts +74 -0
- package/dist/types/Core/AgentProcess.helper.d.ts +36 -0
- package/dist/types/Core/Connector.class.d.ts +34 -0
- package/dist/types/Core/ConnectorsService.d.ts +64 -0
- package/dist/types/Core/DummyConnector.d.ts +4 -0
- package/dist/types/Core/HookService.d.ts +27 -0
- package/dist/types/Core/SmythRuntime.class.d.ts +28 -0
- package/dist/types/Core/SystemEvents.d.ts +12 -0
- package/dist/types/Core/boot.d.ts +1 -0
- package/dist/types/config.d.ts +11 -0
- package/dist/types/constants.d.ts +79 -0
- package/dist/types/helpers/BinaryInput.helper.d.ts +33 -0
- package/dist/types/helpers/Conversation.helper.d.ts +85 -0
- package/dist/types/helpers/JsonContent.helper.d.ts +16 -0
- package/dist/types/helpers/LocalCache.helper.d.ts +14 -0
- package/dist/types/helpers/Log.helper.d.ts +22 -0
- package/dist/types/helpers/OpenApiParser.helper.d.ts +10 -0
- package/dist/types/helpers/S3Cache.helper.d.ts +9 -0
- package/dist/types/helpers/SmythURI.helper.d.ts +3 -0
- package/dist/types/helpers/TemplateString.helper.d.ts +71 -0
- package/dist/types/helpers/TypeChecker.helper.d.ts +10 -0
- package/dist/types/index.d.ts +173 -0
- package/dist/types/subsystems/AgentManager/Agent.class.d.ts +78 -0
- package/dist/types/subsystems/AgentManager/Agent.helper.d.ts +1 -0
- package/dist/types/subsystems/AgentManager/AgentData.service/AgentDataConnector.d.ts +33 -0
- package/dist/types/subsystems/AgentManager/AgentData.service/connectors/CLIAgentDataConnector.class.d.ts +20 -0
- package/dist/types/subsystems/AgentManager/AgentData.service/connectors/LocalAgentDataConnector.class.d.ts +48 -0
- package/dist/types/subsystems/AgentManager/AgentData.service/connectors/NullAgentData.class.d.ts +19 -0
- package/dist/types/subsystems/AgentManager/AgentData.service/index.d.ts +4 -0
- package/dist/types/subsystems/AgentManager/AgentLogger.class.d.ts +11 -0
- package/dist/types/subsystems/AgentManager/AgentRequest.class.d.ts +15 -0
- package/dist/types/subsystems/AgentManager/AgentRuntime.class.d.ts +91 -0
- package/dist/types/subsystems/AgentManager/AgentSSE.class.d.ts +40 -0
- package/dist/types/subsystems/AgentManager/AgentSettings.class.d.ts +12 -0
- package/dist/types/subsystems/AgentManager/Component.service/ComponentConnector.d.ts +17 -0
- package/dist/types/subsystems/AgentManager/Component.service/connectors/LocalComponentConnector.class.d.ts +14 -0
- package/dist/types/subsystems/AgentManager/Component.service/index.d.ts +4 -0
- package/dist/types/subsystems/AgentManager/EmbodimentSettings.class.d.ts +8 -0
- package/dist/types/subsystems/AgentManager/ForkedAgent.class.d.ts +15 -0
- package/dist/types/subsystems/AgentManager/OSResourceMonitor.d.ts +2 -0
- package/dist/types/subsystems/ComputeManager/Code.service/CodeConnector.d.ts +58 -0
- package/dist/types/subsystems/ComputeManager/Code.service/connectors/AWSLambdaCode.class.d.ts +15 -0
- package/dist/types/subsystems/ComputeManager/Code.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/CLI.service/CLIConnector.d.ts +21 -0
- package/dist/types/subsystems/IO/CLI.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/Log.service/LogConnector.d.ts +17 -0
- package/dist/types/subsystems/IO/Log.service/connectors/ConsoleLog.class.d.ts +12 -0
- package/dist/types/subsystems/IO/Log.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/NKV.service/NKVConnector.d.ts +33 -0
- package/dist/types/subsystems/IO/NKV.service/connectors/NKVRAM.class.d.ts +43 -0
- package/dist/types/subsystems/IO/NKV.service/connectors/NKVRedis.class.d.ts +27 -0
- package/dist/types/subsystems/IO/NKV.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/Router.service/RouterConnector.d.ts +11 -0
- package/dist/types/subsystems/IO/Router.service/connectors/ExpressRouter.class.d.ts +21 -0
- package/dist/types/subsystems/IO/Router.service/connectors/NullRouter.class.d.ts +12 -0
- package/dist/types/subsystems/IO/Router.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/Storage.service/SmythFS.class.d.ts +49 -0
- package/dist/types/subsystems/IO/Storage.service/StorageConnector.d.ts +30 -0
- package/dist/types/subsystems/IO/Storage.service/connectors/LocalStorage.class.d.ts +58 -0
- package/dist/types/subsystems/IO/Storage.service/connectors/S3Storage.class.d.ts +53 -0
- package/dist/types/subsystems/IO/Storage.service/index.d.ts +4 -0
- package/dist/types/subsystems/IO/VectorDB.service/VectorDBConnector.d.ts +41 -0
- package/dist/types/subsystems/IO/VectorDB.service/connectors/MilvusVectorDB.class.d.ts +49 -0
- package/dist/types/subsystems/IO/VectorDB.service/connectors/PineconeVectorDB.class.d.ts +50 -0
- package/dist/types/subsystems/IO/VectorDB.service/connectors/RAMVecrtorDB.class.d.ts +52 -0
- package/dist/types/subsystems/IO/VectorDB.service/embed/BaseEmbedding.d.ts +53 -0
- package/dist/types/subsystems/IO/VectorDB.service/embed/OpenAIEmbedding.d.ts +16 -0
- package/dist/types/subsystems/IO/VectorDB.service/embed/index.d.ts +16 -0
- package/dist/types/subsystems/IO/VectorDB.service/index.d.ts +4 -0
- package/dist/types/subsystems/LLMManager/LLM.helper.d.ts +125 -0
- package/dist/types/subsystems/LLMManager/LLM.inference.d.ts +36 -0
- package/dist/types/subsystems/LLMManager/LLM.service/LLMConnector.d.ts +62 -0
- package/dist/types/subsystems/LLMManager/LLM.service/LLMCredentials.helper.d.ts +3 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/Anthropic.class.d.ts +68 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/Bedrock.class.d.ts +46 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/Echo.class.d.ts +18 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/GoogleAI.class.d.ts +57 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/Groq.class.d.ts +55 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/OpenAI.class.d.ts +92 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/Perplexity.class.d.ts +86 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/VertexAI.class.d.ts +38 -0
- package/dist/types/subsystems/LLMManager/LLM.service/index.d.ts +5 -0
- package/dist/types/subsystems/LLMManager/ModelsProvider.service/ModelsProviderConnector.d.ts +36 -0
- package/dist/types/subsystems/LLMManager/ModelsProvider.service/connectors/SmythModelsProvider.class.d.ts +39 -0
- package/dist/types/subsystems/LLMManager/ModelsProvider.service/index.d.ts +4 -0
- package/dist/types/subsystems/LLMManager/custom-models.d.ts +785 -0
- package/dist/types/subsystems/LLMManager/models.d.ts +2629 -0
- package/dist/types/subsystems/LLMManager/paramMappings.d.ts +69 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/CacheConnector.d.ts +41 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/connectors/LocalStorageCache.class.d.ts +33 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/connectors/RAMCache.class.d.ts +31 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/connectors/RedisCache.class.d.ts +33 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/connectors/S3Cache.class.d.ts +38 -0
- package/dist/types/subsystems/MemoryManager/Cache.service/index.d.ts +4 -0
- package/dist/types/subsystems/MemoryManager/LLMCache.d.ts +27 -0
- package/dist/types/subsystems/MemoryManager/LLMContext.d.ts +25 -0
- package/dist/types/subsystems/MemoryManager/RuntimeContext.d.ts +50 -0
- package/dist/types/subsystems/Security/AccessControl/ACL.class.d.ts +29 -0
- package/dist/types/subsystems/Security/AccessControl/AccessCandidate.class.d.ts +21 -0
- package/dist/types/subsystems/Security/AccessControl/AccessRequest.class.d.ts +13 -0
- package/dist/types/subsystems/Security/Account.service/AccountConnector.d.ts +27 -0
- package/dist/types/subsystems/Security/Account.service/connectors/AWSAccount.class.d.ts +19 -0
- package/dist/types/subsystems/Security/Account.service/connectors/DummyAccount.class.d.ts +19 -0
- package/dist/types/subsystems/Security/Account.service/connectors/JSONFileAccount.class.d.ts +25 -0
- package/dist/types/subsystems/Security/Account.service/index.d.ts +4 -0
- package/dist/types/subsystems/Security/Credentials.helper.d.ts +16 -0
- package/dist/types/subsystems/Security/ManagedVault.service/ManagedVaultConnector.d.ts +23 -0
- package/dist/types/subsystems/Security/ManagedVault.service/connectors/NullManagedVault.class.d.ts +14 -0
- package/dist/types/subsystems/Security/ManagedVault.service/connectors/SecretManagerManagedVault.d.ts +22 -0
- package/dist/types/subsystems/Security/ManagedVault.service/index.d.ts +4 -0
- package/dist/types/subsystems/Security/SecureConnector.class.d.ts +13 -0
- package/dist/types/subsystems/Security/Vault.service/Vault.helper.d.ts +5 -0
- package/dist/types/subsystems/Security/Vault.service/VaultConnector.d.ts +17 -0
- package/dist/types/subsystems/Security/Vault.service/connectors/HashicorpVault.class.d.ts +13 -0
- package/dist/types/subsystems/Security/Vault.service/connectors/JSONFileVault.class.d.ts +23 -0
- package/dist/types/subsystems/Security/Vault.service/connectors/NullVault.class.d.ts +16 -0
- package/dist/types/subsystems/Security/Vault.service/connectors/SecretsManager.class.d.ts +20 -0
- package/dist/types/subsystems/Security/Vault.service/index.d.ts +4 -0
- package/dist/types/types/ACL.types.d.ts +83 -0
- package/dist/types/types/AWS.types.d.ts +7 -0
- package/dist/types/types/Agent.types.d.ts +52 -0
- package/dist/types/types/AgentLogger.types.d.ts +16 -0
- package/dist/types/types/Cache.types.d.ts +1 -0
- package/dist/types/types/Common.types.d.ts +3 -0
- package/dist/types/types/LLM.types.d.ts +365 -0
- package/dist/types/types/Redis.types.d.ts +6 -0
- package/dist/types/types/SRE.types.d.ts +60 -0
- package/dist/types/types/Security.types.d.ts +16 -0
- package/dist/types/types/Storage.types.d.ts +3 -0
- package/dist/types/types/VectorDB.types.d.ts +66 -0
- package/dist/types/utils/base64.utils.d.ts +86 -0
- package/dist/types/utils/cli.utils.d.ts +20 -0
- package/dist/types/utils/data.utils.d.ts +17 -0
- package/dist/types/utils/date-time.utils.d.ts +3 -0
- package/dist/types/utils/general.utils.d.ts +75 -0
- package/dist/types/utils/index.d.ts +9 -0
- package/dist/types/utils/numbers.utils.d.ts +2 -0
- package/dist/types/utils/oauth.utils.d.ts +7 -0
- package/dist/types/utils/string.utils.d.ts +28 -0
- package/dist/types/utils/url.utils.d.ts +1 -0
- package/dist/types/utils/validation.utils.d.ts +25 -0
- package/package.json +117 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
Echo: {
|
|
3
|
+
maxTokens: string;
|
|
4
|
+
temperature: string;
|
|
5
|
+
stopSequences: string;
|
|
6
|
+
topP: string;
|
|
7
|
+
frequencyPenalty: string;
|
|
8
|
+
presencePenalty: string;
|
|
9
|
+
};
|
|
10
|
+
OpenAI: {
|
|
11
|
+
maxTokens: string;
|
|
12
|
+
temperature: string;
|
|
13
|
+
stopSequences: string;
|
|
14
|
+
topP: string;
|
|
15
|
+
frequencyPenalty: string;
|
|
16
|
+
presencePenalty: string;
|
|
17
|
+
};
|
|
18
|
+
cohere: {
|
|
19
|
+
maxTokens: string;
|
|
20
|
+
temperature: string;
|
|
21
|
+
stopSequences: string;
|
|
22
|
+
topP: string;
|
|
23
|
+
topK: string;
|
|
24
|
+
frequencyPenalty: string;
|
|
25
|
+
presencePenalty: string;
|
|
26
|
+
};
|
|
27
|
+
TogetherAI: {
|
|
28
|
+
maxTokens: string;
|
|
29
|
+
temperature: string;
|
|
30
|
+
stopSequences: string;
|
|
31
|
+
topP: string;
|
|
32
|
+
topK: string;
|
|
33
|
+
frequencyPenalty: string;
|
|
34
|
+
};
|
|
35
|
+
Anthropic: {
|
|
36
|
+
maxTokens: string;
|
|
37
|
+
temperature: string;
|
|
38
|
+
stopSequences: string;
|
|
39
|
+
topP: string;
|
|
40
|
+
topK: string;
|
|
41
|
+
};
|
|
42
|
+
GoogleAI: {
|
|
43
|
+
maxTokens: string;
|
|
44
|
+
temperature: string;
|
|
45
|
+
stopSequences: string;
|
|
46
|
+
topP: string;
|
|
47
|
+
topK: string;
|
|
48
|
+
};
|
|
49
|
+
Groq: {
|
|
50
|
+
maxTokens: string;
|
|
51
|
+
temperature: string;
|
|
52
|
+
stopSequences: string;
|
|
53
|
+
topP: string;
|
|
54
|
+
};
|
|
55
|
+
Bedrock: {
|
|
56
|
+
maxTokens: string;
|
|
57
|
+
temperature: string;
|
|
58
|
+
stopSequences: string;
|
|
59
|
+
topP: string;
|
|
60
|
+
};
|
|
61
|
+
VertexAI: {
|
|
62
|
+
maxTokens: string;
|
|
63
|
+
temperature: string;
|
|
64
|
+
stopSequences: string;
|
|
65
|
+
topP: string;
|
|
66
|
+
topK: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export default _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
|
|
2
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
3
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
4
|
+
import { SecureConnector } from '@sre/Security/SecureConnector.class';
|
|
5
|
+
import { IACL, IAccessCandidate } from '@sre/types/ACL.types';
|
|
6
|
+
import { CacheMetadata } from '@sre/types/Cache.types';
|
|
7
|
+
export interface ICacheRequest {
|
|
8
|
+
get: (key: string) => Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* Set a value in the cache
|
|
11
|
+
* @param key
|
|
12
|
+
* @param data
|
|
13
|
+
* @param acl
|
|
14
|
+
* @param metadata
|
|
15
|
+
* @param ttl Cache time to live in seconds
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
set: (key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number) => Promise<boolean>;
|
|
19
|
+
delete: (key: string) => Promise<void>;
|
|
20
|
+
exists: (key: string) => Promise<boolean>;
|
|
21
|
+
getMetadata: (key: string) => Promise<CacheMetadata | undefined>;
|
|
22
|
+
setMetadata: (key: string, metadata: CacheMetadata) => Promise<void>;
|
|
23
|
+
updateTTL: (key: string, ttl?: number) => Promise<void>;
|
|
24
|
+
getTTL: (key: string) => Promise<number>;
|
|
25
|
+
getACL: (key: string) => Promise<IACL | undefined>;
|
|
26
|
+
setACL: (key: string, acl: IACL) => Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export declare abstract class CacheConnector extends SecureConnector {
|
|
29
|
+
abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
30
|
+
requester(candidate: AccessCandidate): ICacheRequest;
|
|
31
|
+
abstract get(acRequest: AccessRequest, key: string): Promise<any>;
|
|
32
|
+
abstract set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
|
|
33
|
+
abstract delete(acRequest: AccessRequest, key: string): Promise<void>;
|
|
34
|
+
abstract exists(acRequest: AccessRequest, key: string): Promise<boolean>;
|
|
35
|
+
abstract getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata | undefined>;
|
|
36
|
+
abstract setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
|
|
37
|
+
abstract updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
|
|
38
|
+
abstract getTTL(acRequest: AccessRequest, key: string): Promise<number>;
|
|
39
|
+
abstract getACL(acRequest: AccessRequest, key: string): Promise<IACL | undefined>;
|
|
40
|
+
abstract setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
|
|
41
|
+
}
|
package/dist/types/subsystems/MemoryManager/Cache.service/connectors/LocalStorageCache.class.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IAccessCandidate, IACL } from '@sre/types/ACL.types';
|
|
2
|
+
import { CacheMetadata } from '@sre/types/Cache.types';
|
|
3
|
+
import { CacheConnector } from '../CacheConnector';
|
|
4
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
5
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
6
|
+
import { LocalStorageConfig } from '@sre/IO/Storage.service/connectors/LocalStorage.class';
|
|
7
|
+
export declare class LocalStorageCache extends CacheConnector {
|
|
8
|
+
name: string;
|
|
9
|
+
private folder;
|
|
10
|
+
private _prefix;
|
|
11
|
+
private _mdPrefix;
|
|
12
|
+
private isInitialized;
|
|
13
|
+
constructor(_settings: LocalStorageConfig);
|
|
14
|
+
private initialize;
|
|
15
|
+
get prefix(): string;
|
|
16
|
+
get mdPrefix(): string;
|
|
17
|
+
get(acRequest: AccessRequest, key: string): Promise<string | null>;
|
|
18
|
+
set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
|
|
19
|
+
delete(acRequest: AccessRequest, key: string): Promise<void>;
|
|
20
|
+
exists(acRequest: AccessRequest, key: string): Promise<boolean>;
|
|
21
|
+
getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata>;
|
|
22
|
+
setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
|
|
23
|
+
updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
|
|
24
|
+
getTTL(acRequest: AccessRequest, key: string): Promise<number>;
|
|
25
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
26
|
+
getACL(acRequest: AccessRequest, key: string): Promise<IACL>;
|
|
27
|
+
setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
|
|
28
|
+
private serializeMetadata;
|
|
29
|
+
private deserializeMetadata;
|
|
30
|
+
private getStorageFilePath;
|
|
31
|
+
private getMetadataFilePath;
|
|
32
|
+
private createDirectories;
|
|
33
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IAccessCandidate, IACL } from '@sre/types/ACL.types';
|
|
2
|
+
import { CacheMetadata } from '@sre/types/Cache.types';
|
|
3
|
+
import { CacheConnector } from '../CacheConnector';
|
|
4
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
5
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
6
|
+
export declare class RAMCache extends CacheConnector {
|
|
7
|
+
protected _settings: any;
|
|
8
|
+
name: string;
|
|
9
|
+
private _prefix;
|
|
10
|
+
private _mdPrefix;
|
|
11
|
+
private cache;
|
|
12
|
+
private cleanupInterval;
|
|
13
|
+
constructor(_settings: any);
|
|
14
|
+
get prefix(): string;
|
|
15
|
+
get mdPrefix(): string;
|
|
16
|
+
private getFullKey;
|
|
17
|
+
private getFullMetadataKey;
|
|
18
|
+
private cleanupExpiredEntries;
|
|
19
|
+
get(acRequest: AccessRequest, key: string): Promise<string | null>;
|
|
20
|
+
set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
|
|
21
|
+
delete(acRequest: AccessRequest, key: string): Promise<void>;
|
|
22
|
+
exists(acRequest: AccessRequest, key: string): Promise<boolean>;
|
|
23
|
+
getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata>;
|
|
24
|
+
setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
|
|
25
|
+
updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
|
|
26
|
+
getTTL(acRequest: AccessRequest, key: string): Promise<number>;
|
|
27
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
28
|
+
getACL(acRequest: AccessRequest, key: string): Promise<IACL>;
|
|
29
|
+
setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
|
|
30
|
+
stop(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IAccessCandidate, IACL } from '@sre/types/ACL.types';
|
|
2
|
+
import { CacheMetadata } from '@sre/types/Cache.types';
|
|
3
|
+
import IORedis from 'ioredis';
|
|
4
|
+
import { CacheConnector } from '../CacheConnector';
|
|
5
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
6
|
+
import { RedisConfig } from '@sre/types/Redis.types';
|
|
7
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
8
|
+
export declare class RedisCache extends CacheConnector {
|
|
9
|
+
protected _settings: RedisConfig;
|
|
10
|
+
name: string;
|
|
11
|
+
private redis;
|
|
12
|
+
private _prefix;
|
|
13
|
+
private _mdPrefix;
|
|
14
|
+
constructor(_settings: RedisConfig);
|
|
15
|
+
get client(): IORedis;
|
|
16
|
+
get prefix(): string;
|
|
17
|
+
get mdPrefix(): string;
|
|
18
|
+
get(acRequest: AccessRequest, key: string): Promise<string | null>;
|
|
19
|
+
set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
|
|
20
|
+
delete(acRequest: AccessRequest, key: string): Promise<void>;
|
|
21
|
+
exists(acRequest: AccessRequest, key: string): Promise<boolean>;
|
|
22
|
+
getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata>;
|
|
23
|
+
setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
|
|
24
|
+
private setMetadataWithTTL;
|
|
25
|
+
updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
|
|
26
|
+
getTTL(acRequest: AccessRequest, key: string): Promise<number>;
|
|
27
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
28
|
+
getACL(acRequest: AccessRequest, key: string): Promise<IACL>;
|
|
29
|
+
setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
|
|
30
|
+
private serializeRedisMetadata;
|
|
31
|
+
private deserializeRedisMetadata;
|
|
32
|
+
stop(): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IAccessCandidate, IACL } from '@sre/types/ACL.types';
|
|
2
|
+
import { CacheMetadata } from '@sre/types/Cache.types';
|
|
3
|
+
import { CacheConnector } from '../CacheConnector';
|
|
4
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
5
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
6
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
7
|
+
export type S3CacheConfig = {
|
|
8
|
+
bucketName: string;
|
|
9
|
+
region: string;
|
|
10
|
+
accessKeyId: string;
|
|
11
|
+
secretAccessKey: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class S3Cache extends CacheConnector {
|
|
14
|
+
protected _settings: S3CacheConfig;
|
|
15
|
+
name: string;
|
|
16
|
+
private s3Client;
|
|
17
|
+
private bucketName;
|
|
18
|
+
private isInitialized;
|
|
19
|
+
private cachePrefix;
|
|
20
|
+
constructor(_settings: S3CacheConfig);
|
|
21
|
+
get client(): S3Client;
|
|
22
|
+
get(acRequest: AccessRequest, key: string): Promise<string | null>;
|
|
23
|
+
set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
|
|
24
|
+
delete(acRequest: AccessRequest, key: string): Promise<void>;
|
|
25
|
+
exists(acRequest: AccessRequest, key: string): Promise<boolean>;
|
|
26
|
+
getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata>;
|
|
27
|
+
setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
|
|
28
|
+
updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
|
|
29
|
+
getTTL(acRequest: AccessRequest, key: string): Promise<number>;
|
|
30
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
31
|
+
getACL(acRequest: AccessRequest, key: string): Promise<IACL>;
|
|
32
|
+
setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
|
|
33
|
+
private getS3Metadata;
|
|
34
|
+
private setS3Metadata;
|
|
35
|
+
private initialize;
|
|
36
|
+
private serializeS3Metadata;
|
|
37
|
+
private deserializeS3Metadata;
|
|
38
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
|
|
2
|
+
export type LLMCacheObject = {
|
|
3
|
+
ttl: number;
|
|
4
|
+
data: any;
|
|
5
|
+
};
|
|
6
|
+
export declare class LLMCache {
|
|
7
|
+
private _cacheConnector;
|
|
8
|
+
private _cacheId;
|
|
9
|
+
private _ttl;
|
|
10
|
+
private _candidate;
|
|
11
|
+
get id(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new LLMCache instace for a smythOS actor, the actor can be an agent, a user or a team
|
|
14
|
+
* This is mainly use with agent to maintain a cache of the current LLM context
|
|
15
|
+
*
|
|
16
|
+
* This class can be used to share llm contexts data accross multiple instances of an agent, or between a ConversationHelper and a remote agent
|
|
17
|
+
*
|
|
18
|
+
* @param candidate
|
|
19
|
+
* @param cacheId
|
|
20
|
+
* @param ttl
|
|
21
|
+
*/
|
|
22
|
+
constructor(candidate: AccessCandidate, cacheId?: string, ttl?: number);
|
|
23
|
+
set(key: string, data: any): Promise<void>;
|
|
24
|
+
get(key: string, format?: 'json' | 'text'): Promise<any>;
|
|
25
|
+
delete(key: string): Promise<void>;
|
|
26
|
+
clear(): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ILLMContextStore } from '@sre/types/LLM.types';
|
|
2
|
+
import { LLMCache } from './LLMCache';
|
|
3
|
+
export declare class LLMContext {
|
|
4
|
+
private llmInference;
|
|
5
|
+
private _systemPrompt;
|
|
6
|
+
private _llmContextStore;
|
|
7
|
+
private _llmCache;
|
|
8
|
+
get systemPrompt(): string;
|
|
9
|
+
set systemPrompt(systemPrompt: string);
|
|
10
|
+
get llmCache(): LLMCache;
|
|
11
|
+
contextLength: number;
|
|
12
|
+
private _messages;
|
|
13
|
+
get messages(): any[];
|
|
14
|
+
get model(): any;
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param source a messages[] object, or smyth file system uri (smythfs://...)
|
|
18
|
+
*/
|
|
19
|
+
constructor(llmInference: any, _systemPrompt?: string, llmContextStore?: ILLMContextStore);
|
|
20
|
+
private push;
|
|
21
|
+
addUserMessage(content: string, message_id: string, metadata?: any): void;
|
|
22
|
+
addAssistantMessage(content: string, message_id: string, metadata?: any): void;
|
|
23
|
+
addToolMessage(messageBlock: any, toolsData: any, message_id: string, metadata?: any): void;
|
|
24
|
+
getContextWindow(maxTokens: number, maxOutputTokens?: number): Promise<any[]>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import EventEmitter from 'events';
|
|
2
|
+
import { AgentRuntime } from '@sre/AgentManager/AgentRuntime.class';
|
|
3
|
+
type TRuntimeData = {
|
|
4
|
+
input?: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
_LoopData?: any;
|
|
8
|
+
_ChildLoopData?: any;
|
|
9
|
+
};
|
|
10
|
+
type TComponentContext = {
|
|
11
|
+
active: boolean;
|
|
12
|
+
name: string;
|
|
13
|
+
runtimeData?: TRuntimeData;
|
|
14
|
+
step: number;
|
|
15
|
+
input?: {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
output?: {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare class RuntimeContext extends EventEmitter {
|
|
23
|
+
private runtime;
|
|
24
|
+
circularLimitReached: string | boolean;
|
|
25
|
+
step: number;
|
|
26
|
+
sessionResult: boolean;
|
|
27
|
+
sessionResults: any;
|
|
28
|
+
components: {
|
|
29
|
+
[id: string]: {
|
|
30
|
+
ctx: TComponentContext;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
checkRuntimeContext: any;
|
|
34
|
+
private ctxFile;
|
|
35
|
+
private _runtimeFileReady;
|
|
36
|
+
private _cacheConnector;
|
|
37
|
+
private _readyPromise;
|
|
38
|
+
constructor(runtime: AgentRuntime);
|
|
39
|
+
private serialize;
|
|
40
|
+
private deserialize;
|
|
41
|
+
private reset;
|
|
42
|
+
private initRuntimeContext;
|
|
43
|
+
ready(): Promise<boolean>;
|
|
44
|
+
sync(): Promise<void>;
|
|
45
|
+
incStep(): void;
|
|
46
|
+
updateComponent(componentId: string, data: any): void;
|
|
47
|
+
resetComponent(componentId: string): void;
|
|
48
|
+
getComponentData(componentId: string): TComponentContext;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IACL, IAccessRequest, TACLEntry, TAccessLevel, TAccessRole } from '@sre/types/ACL.types';
|
|
2
|
+
export declare class ACL implements IACL {
|
|
3
|
+
hashAlgorithm?: string | undefined;
|
|
4
|
+
entries?: {
|
|
5
|
+
[key in TAccessRole]?: TACLEntry | undefined;
|
|
6
|
+
};
|
|
7
|
+
migrated?: boolean | undefined;
|
|
8
|
+
get ACL(): IACL;
|
|
9
|
+
get serializedACL(): string;
|
|
10
|
+
constructor(acl?: IACL | string);
|
|
11
|
+
static from(acl?: IACL | string): ACL;
|
|
12
|
+
/**
|
|
13
|
+
* This function checks if the candidate has access to the requested level
|
|
14
|
+
* it only checks the exact access level, not the higher levels
|
|
15
|
+
* Examples :
|
|
16
|
+
* - if the candidate has read access, it will return true only if the requested level is read
|
|
17
|
+
* - if the current ACL has team access but the candidate is an agent, it will not match the team access
|
|
18
|
+
* @param acRequest
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
checkExactAccess(acRequest: IAccessRequest): boolean;
|
|
22
|
+
addPublicAccess(level: TAccessLevel | TAccessLevel[]): ACL;
|
|
23
|
+
removePublicAccess(level: TAccessLevel | TAccessLevel[]): ACL;
|
|
24
|
+
addAccess(role: TAccessRole, ownerId: string, level: TAccessLevel | TAccessLevel[]): ACL;
|
|
25
|
+
static addAccess(role: TAccessRole, ownerId: string, level: TAccessLevel | TAccessLevel[]): ACL;
|
|
26
|
+
removeAccess(role: TAccessRole, ownerId: string, level: TAccessLevel | TAccessLevel[]): ACL;
|
|
27
|
+
private serializeACL;
|
|
28
|
+
private deserializeACL;
|
|
29
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IAccessCandidate, TAccessRole } from '@sre/types/ACL.types';
|
|
2
|
+
import { AccessRequest } from './AccessRequest.class';
|
|
3
|
+
export declare class AccessCandidate implements IAccessCandidate {
|
|
4
|
+
role: TAccessRole;
|
|
5
|
+
id: string;
|
|
6
|
+
constructor(candidate?: IAccessCandidate);
|
|
7
|
+
toString(): string;
|
|
8
|
+
get request(): AccessRequest;
|
|
9
|
+
get readRequest(): AccessRequest;
|
|
10
|
+
get writeRequest(): AccessRequest;
|
|
11
|
+
get ownerRequest(): AccessRequest;
|
|
12
|
+
static clone(candidate: IAccessCandidate): AccessCandidate;
|
|
13
|
+
team(teamId: string): AccessCandidate;
|
|
14
|
+
static team(teamId: string): AccessCandidate;
|
|
15
|
+
agent(agentId: string): AccessCandidate;
|
|
16
|
+
static agent(agentId: string): AccessCandidate;
|
|
17
|
+
user(userId: string): AccessCandidate;
|
|
18
|
+
static user(userId: string): AccessCandidate;
|
|
19
|
+
public(): AccessCandidate;
|
|
20
|
+
static public(): AccessCandidate;
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IAccessCandidate, IAccessRequest, TAccessLevel } from '@sre/types/ACL.types';
|
|
2
|
+
export declare class AccessRequest implements IAccessRequest {
|
|
3
|
+
id: string;
|
|
4
|
+
resourceId: string;
|
|
5
|
+
level: TAccessLevel[];
|
|
6
|
+
candidate: IAccessCandidate;
|
|
7
|
+
constructor(object?: IAccessRequest | IAccessCandidate);
|
|
8
|
+
static clone(request: IAccessRequest): AccessRequest;
|
|
9
|
+
setLevel(level: TAccessLevel | TAccessLevel[]): AccessRequest;
|
|
10
|
+
addLevel(level: TAccessLevel | TAccessLevel[]): AccessRequest;
|
|
11
|
+
resource(resourceId: string): AccessRequest;
|
|
12
|
+
setCandidate(candidate: IAccessCandidate): AccessRequest;
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Connector } from '@sre/Core/Connector.class';
|
|
2
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { AccessCandidate } from '../AccessControl/AccessCandidate.class';
|
|
5
|
+
import { KeyValueObject } from '@sre/types/Common.types';
|
|
6
|
+
import { ACL } from '../AccessControl/ACL.class';
|
|
7
|
+
export interface ISmythAccountRequest {
|
|
8
|
+
isTeamMember(teamId: string): Promise<boolean>;
|
|
9
|
+
getCandidateTeam(): Promise<string | undefined>;
|
|
10
|
+
getAllTeamSettings(): Promise<KeyValueObject>;
|
|
11
|
+
getAllUserSettings(): Promise<KeyValueObject>;
|
|
12
|
+
getTeamSetting(settingKey: string): Promise<string>;
|
|
13
|
+
getUserSetting(settingKey: string): Promise<string>;
|
|
14
|
+
getAgentSetting(settingKey: string): Promise<string>;
|
|
15
|
+
getTeam(): Promise<string>;
|
|
16
|
+
}
|
|
17
|
+
export declare abstract class AccountConnector extends Connector {
|
|
18
|
+
requester(candidate: AccessCandidate): ISmythAccountRequest;
|
|
19
|
+
abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
20
|
+
abstract isTeamMember(teamId: string, candidate: IAccessCandidate): Promise<boolean>;
|
|
21
|
+
abstract getCandidateTeam(candidate: IAccessCandidate): Promise<string | undefined>;
|
|
22
|
+
abstract getAllTeamSettings(acRequest: AccessRequest, teamId: string): Promise<KeyValueObject>;
|
|
23
|
+
abstract getAllUserSettings(acRequest: AccessRequest, accountId: string): Promise<KeyValueObject>;
|
|
24
|
+
abstract getTeamSetting(acRequest: AccessRequest, teamId: string, settingKey: string): Promise<string>;
|
|
25
|
+
abstract getUserSetting(acRequest: AccessRequest, accountId: string, settingKey: string): Promise<string>;
|
|
26
|
+
abstract getAgentSetting(acRequest: AccessRequest, agentId: string, settingKey: string): Promise<string>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
2
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { AccountConnector } from '../AccountConnector';
|
|
5
|
+
import { KeyValueObject } from '@sre/types/Common.types';
|
|
6
|
+
export declare class AWSAccount extends AccountConnector {
|
|
7
|
+
protected _settings: any;
|
|
8
|
+
name: string;
|
|
9
|
+
private pool;
|
|
10
|
+
constructor(_settings: any);
|
|
11
|
+
isTeamMember(team: string, candidate: IAccessCandidate): Promise<boolean>;
|
|
12
|
+
getCandidateTeam(candidate: IAccessCandidate): Promise<string | undefined>;
|
|
13
|
+
getAllTeamSettings(acRequest: AccessRequest, teamId: string): Promise<KeyValueObject[]>;
|
|
14
|
+
getTeamSetting(acRequest: AccessRequest, teamId: string, settingKey: string): Promise<string>;
|
|
15
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
16
|
+
getAllUserSettings(acRequest: AccessRequest, accountId: string): Promise<KeyValueObject[]>;
|
|
17
|
+
getUserSetting(acRequest: AccessRequest, accountId: string, settingKey: string): Promise<string>;
|
|
18
|
+
getAgentSetting(acRequest: AccessRequest, agentId: string, settingKey: string): Promise<string>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
2
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { AccountConnector } from '../AccountConnector';
|
|
5
|
+
import { KeyValueObject } from '@sre/types/Common.types';
|
|
6
|
+
export declare class DummyAccount extends AccountConnector {
|
|
7
|
+
protected _settings?: any;
|
|
8
|
+
name: string;
|
|
9
|
+
data: any;
|
|
10
|
+
constructor(_settings?: any);
|
|
11
|
+
isTeamMember(team: string, candidate: IAccessCandidate): Promise<boolean>;
|
|
12
|
+
getCandidateTeam(candidate: IAccessCandidate): Promise<string | undefined>;
|
|
13
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
14
|
+
getAllTeamSettings(acRequest: AccessRequest, teamId: string): Promise<KeyValueObject[]>;
|
|
15
|
+
getAllUserSettings(acRequest: AccessRequest, accountId: string): Promise<KeyValueObject[]>;
|
|
16
|
+
getTeamSetting(acRequest: AccessRequest, teamId: string, settingKey: string): Promise<string>;
|
|
17
|
+
getUserSetting(acRequest: AccessRequest, accountId: string, settingKey: string): Promise<string>;
|
|
18
|
+
getAgentSetting(acRequest: AccessRequest, agentId: string, settingKey: string): Promise<string>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
2
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { AccountConnector } from '../AccountConnector';
|
|
5
|
+
import { KeyValueObject } from '@sre/types/Common.types';
|
|
6
|
+
export type TJSONFileAccountSettings = {
|
|
7
|
+
file: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class JSONFileAccount extends AccountConnector {
|
|
10
|
+
protected _settings: TJSONFileAccountSettings;
|
|
11
|
+
name: string;
|
|
12
|
+
private data;
|
|
13
|
+
private file;
|
|
14
|
+
constructor(_settings: TJSONFileAccountSettings);
|
|
15
|
+
private loadData;
|
|
16
|
+
private saveData;
|
|
17
|
+
isTeamMember(team: string, candidate: IAccessCandidate): Promise<boolean>;
|
|
18
|
+
getCandidateTeam(candidate: IAccessCandidate): Promise<string | undefined>;
|
|
19
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
20
|
+
getAllTeamSettings(acRequest: AccessRequest, teamId: string): Promise<KeyValueObject[]>;
|
|
21
|
+
getAllUserSettings(acRequest: AccessRequest, accountId: string): Promise<KeyValueObject[]>;
|
|
22
|
+
getTeamSetting(acRequest: AccessRequest, teamId: string, settingKey: string): Promise<string>;
|
|
23
|
+
getUserSetting(acRequest: AccessRequest, accountId: string, settingKey: string): Promise<string>;
|
|
24
|
+
getAgentSetting(acRequest: AccessRequest, agentId: string, settingKey: string): Promise<string>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AccessCandidate } from '../..';
|
|
2
|
+
export type TCredentialsRequest = {
|
|
3
|
+
vaultProvider?: string;
|
|
4
|
+
keyName: string;
|
|
5
|
+
mapping?: {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Get credentials from a vault
|
|
11
|
+
*
|
|
12
|
+
* @param candidate - The candidate requesting the credentials
|
|
13
|
+
* @param credentialsRequest - The credentials request
|
|
14
|
+
* @returns The credentials
|
|
15
|
+
*/
|
|
16
|
+
export declare function getCredentials(candidate: AccessCandidate, credentialsRequest: TCredentialsRequest | string): Promise<string | Record<string, any>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
2
|
+
import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
|
|
3
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
4
|
+
import { SecureConnector } from '@sre/Security/SecureConnector.class';
|
|
5
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
6
|
+
/**
|
|
7
|
+
* The managed vault is a vault that is managed by the SRE, its keys are not visible to the user.
|
|
8
|
+
* it's used to store generated tokens at runtime, like OAuth tokens
|
|
9
|
+
*/
|
|
10
|
+
export interface IManagedVaultRequest {
|
|
11
|
+
get(keyId: string): Promise<string>;
|
|
12
|
+
set(keyId: string, value: string): Promise<void>;
|
|
13
|
+
delete(keyId: string): Promise<void>;
|
|
14
|
+
exists(keyId: string): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
export declare abstract class ManagedVaultConnector extends SecureConnector {
|
|
17
|
+
requester(candidate: AccessCandidate): IManagedVaultRequest;
|
|
18
|
+
abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
19
|
+
protected abstract get(acRequest: AccessRequest, keyId: string): Promise<string>;
|
|
20
|
+
protected abstract set(acRequest: AccessRequest, keyId: string, value: string): Promise<void>;
|
|
21
|
+
protected abstract delete(acRequest: AccessRequest, keyId: string): Promise<void>;
|
|
22
|
+
protected abstract exists(acRequest: AccessRequest, keyId: string): Promise<boolean>;
|
|
23
|
+
}
|
package/dist/types/subsystems/Security/ManagedVault.service/connectors/NullManagedVault.class.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
2
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { ManagedVaultConnector } from '../ManagedVaultConnector';
|
|
5
|
+
export declare class NullManagedVault extends ManagedVaultConnector {
|
|
6
|
+
protected _settings: any;
|
|
7
|
+
name: string;
|
|
8
|
+
constructor(_settings: any);
|
|
9
|
+
protected get(acRequest: AccessRequest, keyId: string): Promise<any>;
|
|
10
|
+
protected set(acRequest: AccessRequest, keyId: string, value: string): Promise<void>;
|
|
11
|
+
protected delete(acRequest: AccessRequest, keyId: string): Promise<void>;
|
|
12
|
+
protected exists(acRequest: AccessRequest, keyId: string): Promise<boolean>;
|
|
13
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
|
|
2
|
+
import { ACL } from '@sre/Security/AccessControl/ACL.class';
|
|
3
|
+
import { IAccessCandidate } from '@sre/types/ACL.types';
|
|
4
|
+
import { ManagedVaultConnector } from '../ManagedVaultConnector';
|
|
5
|
+
import { SecretsManagerConfig } from '../../Vault.service/connectors/SecretsManager.class';
|
|
6
|
+
export declare class SecretManagerManagedVault extends ManagedVaultConnector {
|
|
7
|
+
protected _settings: SecretsManagerConfig & {
|
|
8
|
+
vaultName: string;
|
|
9
|
+
};
|
|
10
|
+
name: string;
|
|
11
|
+
scope: string;
|
|
12
|
+
private secretsManager;
|
|
13
|
+
constructor(_settings: SecretsManagerConfig & {
|
|
14
|
+
vaultName: string;
|
|
15
|
+
});
|
|
16
|
+
protected get(acRequest: AccessRequest, secretName: string): Promise<any>;
|
|
17
|
+
protected set(acRequest: AccessRequest, secretName: string, value: string): Promise<void>;
|
|
18
|
+
protected delete(acRequest: AccessRequest, secretName: string): Promise<void>;
|
|
19
|
+
protected exists(acRequest: AccessRequest, secretName: string): Promise<boolean>;
|
|
20
|
+
getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
21
|
+
private getSecretByName;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Connector } from '@sre/Core/Connector.class';
|
|
2
|
+
import { IAccessCandidate, TAccessTicket } from '@sre/types/ACL.types';
|
|
3
|
+
import { ACL } from './AccessControl/ACL.class';
|
|
4
|
+
import { AccessRequest } from './AccessControl/AccessRequest.class';
|
|
5
|
+
export declare abstract class SecureConnector<TRequest = any> extends Connector<TRequest> {
|
|
6
|
+
abstract name: string;
|
|
7
|
+
abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
|
|
8
|
+
start(): Promise<void>;
|
|
9
|
+
stop(): Promise<void>;
|
|
10
|
+
protected hasAccess(acRequest: AccessRequest): Promise<boolean>;
|
|
11
|
+
getAccessTicket(resourceId: string, request: AccessRequest): Promise<TAccessTicket>;
|
|
12
|
+
static AccessControl(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
13
|
+
}
|