@sashabogi/foundation 0.1.6 → 0.1.8
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/cli/setup-wizard.d.ts +30 -0
- package/dist/cli/setup-wizard.d.ts.map +1 -0
- package/dist/cli/setup-wizard.js +1645 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/test-connection.d.ts +76 -0
- package/dist/cli/test-connection.d.ts.map +1 -0
- package/dist/cli/test-connection.js +697 -0
- package/dist/cli/test-connection.js.map +1 -0
- package/dist/cli.d.ts +3 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +50 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.d.ts +178 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +514 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +154 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +227 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/deepseek.d.ts +23 -0
- package/dist/providers/deepseek.d.ts.map +1 -0
- package/dist/providers/deepseek.js +31 -0
- package/dist/providers/deepseek.js.map +1 -0
- package/dist/providers/fireworks.d.ts +23 -0
- package/dist/providers/fireworks.d.ts.map +1 -0
- package/dist/providers/fireworks.js +31 -0
- package/dist/providers/fireworks.js.map +1 -0
- package/dist/providers/gemini.d.ts +85 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +414 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/groq.d.ts +23 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +31 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/index.d.ts +23 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +27 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kimi-code.d.ts +32 -0
- package/dist/providers/kimi-code.d.ts.map +1 -0
- package/dist/providers/kimi-code.js +46 -0
- package/dist/providers/kimi-code.js.map +1 -0
- package/dist/providers/kimi.d.ts +19 -0
- package/dist/providers/kimi.d.ts.map +1 -0
- package/dist/providers/kimi.js +27 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/manager.d.ts +144 -0
- package/dist/providers/manager.d.ts.map +1 -0
- package/dist/providers/manager.js +279 -0
- package/dist/providers/manager.js.map +1 -0
- package/dist/providers/ollama.d.ts +83 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +450 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +91 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +445 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +23 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +31 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/perplexity.d.ts +34 -0
- package/dist/providers/perplexity.d.ts.map +1 -0
- package/dist/providers/perplexity.js +58 -0
- package/dist/providers/perplexity.js.map +1 -0
- package/dist/providers/together.d.ts +23 -0
- package/dist/providers/together.d.ts.map +1 -0
- package/dist/providers/together.js +31 -0
- package/dist/providers/together.js.map +1 -0
- package/dist/providers/types.d.ts +229 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +73 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/zai.d.ts +19 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +27 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/services/provider.service.d.ts +28 -0
- package/dist/services/provider.service.d.ts.map +1 -1
- package/dist/services/provider.service.js +137 -13
- package/dist/services/provider.service.js.map +1 -1
- package/dist/tools/demerzel/engine.d.ts +67 -0
- package/dist/tools/demerzel/engine.d.ts.map +1 -0
- package/dist/tools/demerzel/engine.js +401 -0
- package/dist/tools/demerzel/engine.js.map +1 -0
- package/dist/tools/demerzel/enhanced-snapshot.d.ts +67 -0
- package/dist/tools/demerzel/enhanced-snapshot.d.ts.map +1 -0
- package/dist/tools/demerzel/enhanced-snapshot.js +481 -0
- package/dist/tools/demerzel/enhanced-snapshot.js.map +1 -0
- package/dist/tools/demerzel/index.d.ts +11 -0
- package/dist/tools/demerzel/index.d.ts.map +1 -1
- package/dist/tools/demerzel/index.js +656 -85
- package/dist/tools/demerzel/index.js.map +1 -1
- package/dist/tools/demerzel/prompts.d.ts +26 -0
- package/dist/tools/demerzel/prompts.d.ts.map +1 -0
- package/dist/tools/demerzel/prompts.js +181 -0
- package/dist/tools/demerzel/prompts.js.map +1 -0
- package/dist/tools/demerzel/semantic-search.d.ts +54 -0
- package/dist/tools/demerzel/semantic-search.d.ts.map +1 -0
- package/dist/tools/demerzel/semantic-search.js +205 -0
- package/dist/tools/demerzel/semantic-search.js.map +1 -0
- package/dist/tools/demerzel/snapshot.d.ts +30 -0
- package/dist/tools/demerzel/snapshot.d.ts.map +1 -0
- package/dist/tools/demerzel/snapshot.js +169 -0
- package/dist/tools/demerzel/snapshot.js.map +1 -0
- package/package.json +2 -1
|
@@ -23,13 +23,16 @@
|
|
|
23
23
|
* - Session delegation for Anthropic
|
|
24
24
|
*/
|
|
25
25
|
import { StorageService } from './storage.service.js';
|
|
26
|
+
import { createProviderManager, isSessionDelegation, } from '../providers/index.js';
|
|
26
27
|
export class ProviderService {
|
|
27
28
|
static instance;
|
|
28
29
|
config = null;
|
|
29
30
|
storage;
|
|
31
|
+
providerManager;
|
|
30
32
|
initialized = false;
|
|
31
33
|
constructor() {
|
|
32
34
|
this.storage = StorageService.getInstance();
|
|
35
|
+
this.providerManager = createProviderManager();
|
|
33
36
|
}
|
|
34
37
|
static getInstance() {
|
|
35
38
|
if (!ProviderService.instance) {
|
|
@@ -44,8 +47,30 @@ export class ProviderService {
|
|
|
44
47
|
if (this.initialized)
|
|
45
48
|
return;
|
|
46
49
|
this.config = config;
|
|
50
|
+
// Configure providers from Foundation config
|
|
51
|
+
this.configureProviders(config);
|
|
47
52
|
this.initialized = true;
|
|
48
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Configure providers from Foundation config
|
|
56
|
+
*/
|
|
57
|
+
configureProviders(config) {
|
|
58
|
+
const providerConfigs = {};
|
|
59
|
+
// Map Foundation provider configs to provider module configs
|
|
60
|
+
for (const [name, providerConfig] of Object.entries(config.providers)) {
|
|
61
|
+
if (providerConfig) {
|
|
62
|
+
providerConfigs[name] = {
|
|
63
|
+
api_key: providerConfig.api_key,
|
|
64
|
+
default_model: providerConfig.default_model,
|
|
65
|
+
base_url: providerConfig.base_url,
|
|
66
|
+
access_mode: providerConfig.access_mode,
|
|
67
|
+
organization: providerConfig.organization,
|
|
68
|
+
headers: providerConfig.headers,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
this.providerManager.updateConfig(providerConfigs);
|
|
73
|
+
}
|
|
49
74
|
/**
|
|
50
75
|
* Invoke an agent role with a task
|
|
51
76
|
*/
|
|
@@ -69,10 +94,11 @@ export class ProviderService {
|
|
|
69
94
|
});
|
|
70
95
|
return {
|
|
71
96
|
success: true,
|
|
72
|
-
output: result,
|
|
97
|
+
output: result.output,
|
|
73
98
|
provider: roleConfig.provider,
|
|
74
99
|
model: roleConfig.model || 'default',
|
|
75
100
|
latencyMs: Date.now() - startTime,
|
|
101
|
+
tokensUsed: result.tokensUsed,
|
|
76
102
|
};
|
|
77
103
|
}
|
|
78
104
|
catch (error) {
|
|
@@ -107,10 +133,11 @@ export class ProviderService {
|
|
|
107
133
|
const result = await this.invokeProvider({ ...roleConfig, provider: fallback.provider, model: fallback.model }, options);
|
|
108
134
|
return {
|
|
109
135
|
success: true,
|
|
110
|
-
output: result,
|
|
136
|
+
output: result.output,
|
|
111
137
|
provider: fallback.provider,
|
|
112
138
|
model: fallback.model || 'default',
|
|
113
139
|
latencyMs: Date.now() - startTime,
|
|
140
|
+
tokensUsed: result.tokensUsed,
|
|
114
141
|
failedOver: true,
|
|
115
142
|
failoverChain,
|
|
116
143
|
};
|
|
@@ -133,15 +160,72 @@ export class ProviderService {
|
|
|
133
160
|
* Invoke a specific provider
|
|
134
161
|
*/
|
|
135
162
|
async invokeProvider(roleConfig, options) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
//
|
|
144
|
-
|
|
163
|
+
const providerName = roleConfig.provider;
|
|
164
|
+
const model = roleConfig.model || this.config?.providers[providerName]?.default_model;
|
|
165
|
+
if (!model) {
|
|
166
|
+
throw new Error(`No model configured for provider ${providerName}`);
|
|
167
|
+
}
|
|
168
|
+
// Get the provider instance
|
|
169
|
+
const provider = this.providerManager.get(providerName);
|
|
170
|
+
// Update provider config with role-specific settings for session delegation
|
|
171
|
+
const providerConfig = this.providerManager.getConfig(providerName);
|
|
172
|
+
if (providerConfig) {
|
|
173
|
+
providerConfig.system_prompt = options.systemPrompt || roleConfig.system_prompt;
|
|
174
|
+
providerConfig.role_name = options.role;
|
|
175
|
+
}
|
|
176
|
+
// Build the completion request
|
|
177
|
+
const request = {
|
|
178
|
+
model,
|
|
179
|
+
messages: [
|
|
180
|
+
{
|
|
181
|
+
role: 'user',
|
|
182
|
+
content: this.buildPrompt(options),
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
temperature: options.temperature ?? roleConfig.temperature ?? this.config?.defaults.temperature,
|
|
186
|
+
max_tokens: options.maxTokens ?? roleConfig.max_tokens ?? this.config?.defaults.max_tokens,
|
|
187
|
+
timeout_ms: this.config?.defaults.timeout_ms,
|
|
188
|
+
};
|
|
189
|
+
// Execute the completion
|
|
190
|
+
const response = await provider.complete(request);
|
|
191
|
+
// Handle session delegation response
|
|
192
|
+
if (isSessionDelegation(response)) {
|
|
193
|
+
return this.handleSessionDelegation(response);
|
|
194
|
+
}
|
|
195
|
+
// Extract text content from response
|
|
196
|
+
const textContent = response.content
|
|
197
|
+
.filter(block => block.type === 'text')
|
|
198
|
+
.map(block => block.text || '')
|
|
199
|
+
.join('\n');
|
|
200
|
+
const tokensUsed = response.usage
|
|
201
|
+
? response.usage.input_tokens + response.usage.output_tokens
|
|
202
|
+
: undefined;
|
|
203
|
+
return {
|
|
204
|
+
output: textContent,
|
|
205
|
+
tokensUsed,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Build the prompt from invoke options
|
|
210
|
+
*/
|
|
211
|
+
buildPrompt(options) {
|
|
212
|
+
let prompt = options.task;
|
|
213
|
+
if (options.context) {
|
|
214
|
+
prompt = `Context:\n${options.context}\n\nTask:\n${options.task}`;
|
|
215
|
+
}
|
|
216
|
+
return prompt;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Handle session delegation response
|
|
220
|
+
* Returns formatted instructions for the current Claude session
|
|
221
|
+
*/
|
|
222
|
+
handleSessionDelegation(delegation) {
|
|
223
|
+
// For session delegation, we return the instructions as the output
|
|
224
|
+
// The calling Claude session will interpret these instructions
|
|
225
|
+
return {
|
|
226
|
+
output: delegation.instructions,
|
|
227
|
+
tokensUsed: 0, // No tokens used for session delegation
|
|
228
|
+
};
|
|
145
229
|
}
|
|
146
230
|
/**
|
|
147
231
|
* List available providers
|
|
@@ -163,14 +247,35 @@ export class ProviderService {
|
|
|
163
247
|
async testProvider(provider) {
|
|
164
248
|
const startTime = Date.now();
|
|
165
249
|
try {
|
|
166
|
-
//
|
|
167
|
-
|
|
250
|
+
// Check if provider is configured
|
|
251
|
+
if (!this.providerManager.isConfigured(provider)) {
|
|
252
|
+
return {
|
|
253
|
+
success: false,
|
|
254
|
+
latencyMs: Date.now() - startTime,
|
|
255
|
+
error: `Provider '${provider}' is not configured`,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
// Get provider and run health check
|
|
259
|
+
const providerInstance = this.providerManager.get(provider);
|
|
260
|
+
await providerInstance.healthCheck();
|
|
261
|
+
// Update health tracking
|
|
262
|
+
this.storage.updateProviderHealth(provider, {
|
|
263
|
+
healthy: true,
|
|
264
|
+
lastCheck: Date.now(),
|
|
265
|
+
lastSuccess: Date.now(),
|
|
266
|
+
});
|
|
168
267
|
return {
|
|
169
268
|
success: true,
|
|
170
269
|
latencyMs: Date.now() - startTime,
|
|
171
270
|
};
|
|
172
271
|
}
|
|
173
272
|
catch (error) {
|
|
273
|
+
// Update health tracking
|
|
274
|
+
this.storage.updateProviderHealth(provider, {
|
|
275
|
+
healthy: false,
|
|
276
|
+
lastCheck: Date.now(),
|
|
277
|
+
lastError: error.message,
|
|
278
|
+
});
|
|
174
279
|
return {
|
|
175
280
|
success: false,
|
|
176
281
|
latencyMs: Date.now() - startTime,
|
|
@@ -178,5 +283,24 @@ export class ProviderService {
|
|
|
178
283
|
};
|
|
179
284
|
}
|
|
180
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Test all configured providers
|
|
288
|
+
*/
|
|
289
|
+
async testAllProviders() {
|
|
290
|
+
const results = new Map();
|
|
291
|
+
const providers = this.listProviders();
|
|
292
|
+
await Promise.all(providers.map(async (provider) => {
|
|
293
|
+
const result = await this.testProvider(provider);
|
|
294
|
+
results.set(provider, result);
|
|
295
|
+
}));
|
|
296
|
+
return results;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Get the underlying provider manager
|
|
300
|
+
* Useful for advanced use cases
|
|
301
|
+
*/
|
|
302
|
+
getProviderManager() {
|
|
303
|
+
return this.providerManager;
|
|
304
|
+
}
|
|
181
305
|
}
|
|
182
306
|
//# sourceMappingURL=provider.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.service.js","sourceRoot":"","sources":["../../src/services/provider.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.service.js","sourceRoot":"","sources":["../../src/services/provider.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demerzel RLM Engine
|
|
3
|
+
*
|
|
4
|
+
* Recursive Language Model engine for document analysis.
|
|
5
|
+
* Based on the Matryoshka RLM approach by Dmitri Sotnikov.
|
|
6
|
+
*
|
|
7
|
+
* The engine uses an LLM to generate Nucleus DSL commands that are
|
|
8
|
+
* executed against documents, enabling analysis of content far
|
|
9
|
+
* exceeding typical context limits.
|
|
10
|
+
*
|
|
11
|
+
* Ported from Argus to Foundation.
|
|
12
|
+
*/
|
|
13
|
+
export interface AIProvider {
|
|
14
|
+
name: string;
|
|
15
|
+
complete(messages: Message[], options?: CompletionOptions): Promise<CompletionResult>;
|
|
16
|
+
}
|
|
17
|
+
export interface Message {
|
|
18
|
+
role: 'system' | 'user' | 'assistant';
|
|
19
|
+
content: string;
|
|
20
|
+
}
|
|
21
|
+
export interface CompletionOptions {
|
|
22
|
+
temperature?: number;
|
|
23
|
+
maxTokens?: number;
|
|
24
|
+
stopSequences?: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface CompletionResult {
|
|
27
|
+
content: string;
|
|
28
|
+
finishReason?: 'stop' | 'length' | 'error';
|
|
29
|
+
usage?: {
|
|
30
|
+
promptTokens: number;
|
|
31
|
+
completionTokens: number;
|
|
32
|
+
totalTokens: number;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface AnalysisOptions {
|
|
36
|
+
maxTurns?: number;
|
|
37
|
+
turnTimeoutMs?: number;
|
|
38
|
+
verbose?: boolean;
|
|
39
|
+
onProgress?: (turn: number, command: string, result: unknown) => void;
|
|
40
|
+
}
|
|
41
|
+
export interface AnalysisResult {
|
|
42
|
+
answer: string;
|
|
43
|
+
turns: number;
|
|
44
|
+
commands: string[];
|
|
45
|
+
success: boolean;
|
|
46
|
+
error?: string;
|
|
47
|
+
}
|
|
48
|
+
interface GrepMatch {
|
|
49
|
+
match: string;
|
|
50
|
+
line: string;
|
|
51
|
+
lineNum: number;
|
|
52
|
+
index: number;
|
|
53
|
+
groups: string[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Run RLM analysis on a document
|
|
57
|
+
*/
|
|
58
|
+
export declare function analyze(provider: AIProvider, documentPath: string, query: string, options?: AnalysisOptions): Promise<AnalysisResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Fast grep search without AI
|
|
61
|
+
*/
|
|
62
|
+
export declare function searchDocument(documentPath: string, pattern: string, options?: {
|
|
63
|
+
caseInsensitive?: boolean;
|
|
64
|
+
maxResults?: number;
|
|
65
|
+
}): GrepMatch[];
|
|
66
|
+
export type { GrepMatch };
|
|
67
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACvF;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAuQD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6JzB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,SAAS,EAAE,CA6Bb;AAGD,YAAY,EAAE,SAAS,EAAE,CAAC"}
|