@recallbricks/runtime 0.2.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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +502 -0
  3. package/dist/adapters/api/index.d.ts +2 -0
  4. package/dist/adapters/api/index.d.ts.map +1 -0
  5. package/dist/adapters/api/index.js +6 -0
  6. package/dist/adapters/api/index.js.map +1 -0
  7. package/dist/adapters/api/server.d.ts +13 -0
  8. package/dist/adapters/api/server.d.ts.map +1 -0
  9. package/dist/adapters/api/server.js +241 -0
  10. package/dist/adapters/api/server.js.map +1 -0
  11. package/dist/adapters/mcp/index.d.ts +2 -0
  12. package/dist/adapters/mcp/index.d.ts.map +1 -0
  13. package/dist/adapters/mcp/index.js +6 -0
  14. package/dist/adapters/mcp/index.js.map +1 -0
  15. package/dist/adapters/mcp/server.d.ts +27 -0
  16. package/dist/adapters/mcp/server.d.ts.map +1 -0
  17. package/dist/adapters/mcp/server.js +227 -0
  18. package/dist/adapters/mcp/server.js.map +1 -0
  19. package/dist/adapters/typescript/index.d.ts +4 -0
  20. package/dist/adapters/typescript/index.d.ts.map +1 -0
  21. package/dist/adapters/typescript/index.js +24 -0
  22. package/dist/adapters/typescript/index.js.map +1 -0
  23. package/dist/api/RecallBricksClient.d.ts +53 -0
  24. package/dist/api/RecallBricksClient.d.ts.map +1 -0
  25. package/dist/api/RecallBricksClient.js +129 -0
  26. package/dist/api/RecallBricksClient.js.map +1 -0
  27. package/dist/api/TelemetryClient.d.ts +54 -0
  28. package/dist/api/TelemetryClient.d.ts.map +1 -0
  29. package/dist/api/TelemetryClient.js +190 -0
  30. package/dist/api/TelemetryClient.js.map +1 -0
  31. package/dist/api/index.d.ts +3 -0
  32. package/dist/api/index.d.ts.map +1 -0
  33. package/dist/api/index.js +6 -0
  34. package/dist/api/index.js.map +1 -0
  35. package/dist/config/index.d.ts +13 -0
  36. package/dist/config/index.d.ts.map +1 -0
  37. package/dist/config/index.js +206 -0
  38. package/dist/config/index.js.map +1 -0
  39. package/dist/core/AgentRuntime.d.ts +45 -0
  40. package/dist/core/AgentRuntime.d.ts.map +1 -0
  41. package/dist/core/AgentRuntime.js +328 -0
  42. package/dist/core/AgentRuntime.js.map +1 -0
  43. package/dist/core/AutoSaver.d.ts +26 -0
  44. package/dist/core/AutoSaver.d.ts.map +1 -0
  45. package/dist/core/AutoSaver.js +162 -0
  46. package/dist/core/AutoSaver.js.map +1 -0
  47. package/dist/core/CircuitBreaker.d.ts +64 -0
  48. package/dist/core/CircuitBreaker.d.ts.map +1 -0
  49. package/dist/core/CircuitBreaker.js +201 -0
  50. package/dist/core/CircuitBreaker.js.map +1 -0
  51. package/dist/core/ContextLoader.d.ts +31 -0
  52. package/dist/core/ContextLoader.d.ts.map +1 -0
  53. package/dist/core/ContextLoader.js +236 -0
  54. package/dist/core/ContextLoader.js.map +1 -0
  55. package/dist/core/ContextWeaver.d.ts +49 -0
  56. package/dist/core/ContextWeaver.d.ts.map +1 -0
  57. package/dist/core/ContextWeaver.js +216 -0
  58. package/dist/core/ContextWeaver.js.map +1 -0
  59. package/dist/core/IdentityValidator.d.ts +24 -0
  60. package/dist/core/IdentityValidator.d.ts.map +1 -0
  61. package/dist/core/IdentityValidator.js +161 -0
  62. package/dist/core/IdentityValidator.js.map +1 -0
  63. package/dist/core/LLMAdapter.d.ts +19 -0
  64. package/dist/core/LLMAdapter.d.ts.map +1 -0
  65. package/dist/core/LLMAdapter.js +223 -0
  66. package/dist/core/LLMAdapter.js.map +1 -0
  67. package/dist/core/Metrics.d.ts +96 -0
  68. package/dist/core/Metrics.d.ts.map +1 -0
  69. package/dist/core/Metrics.js +271 -0
  70. package/dist/core/Metrics.js.map +1 -0
  71. package/dist/core/RateLimiter.d.ts +39 -0
  72. package/dist/core/RateLimiter.d.ts.map +1 -0
  73. package/dist/core/RateLimiter.js +251 -0
  74. package/dist/core/RateLimiter.js.map +1 -0
  75. package/dist/core/ReflectionEngine.d.ts +70 -0
  76. package/dist/core/ReflectionEngine.d.ts.map +1 -0
  77. package/dist/core/ReflectionEngine.js +319 -0
  78. package/dist/core/ReflectionEngine.js.map +1 -0
  79. package/dist/index.d.ts +14 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +40 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/types/index.d.ts +259 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +38 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/package.json +91 -0
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextWeaver = void 0;
4
+ class ContextWeaver {
5
+ constructor(config) {
6
+ this.config = config;
7
+ this.identity = {
8
+ id: config.agentId,
9
+ name: config.agentName,
10
+ purpose: config.agentPurpose,
11
+ traits: ['helpful', 'knowledgeable', 'consistent'],
12
+ rules: [
13
+ 'Maintain consistency with your identity and purpose',
14
+ 'Reference your continuous memory when relevant',
15
+ 'Never claim to be a base model like Claude or GPT',
16
+ ],
17
+ createdAt: new Date().toISOString(),
18
+ updatedAt: new Date().toISOString(),
19
+ };
20
+ config.logger.debug('ContextWeaver initialized', {
21
+ agentId: config.agentId,
22
+ maxMemories: config.maxContextMemories,
23
+ });
24
+ }
25
+ async buildContext(query, options = {}) {
26
+ this.config.logger.debug('Building context', { query: query.slice(0, 50) });
27
+ const startTime = Date.now();
28
+ const includeRecent = options.includeRecent ?? true;
29
+ const includeRelevant = options.includeRelevant ?? true;
30
+ const maxMemories = options.maxMemories ?? this.config.maxContextMemories;
31
+ const recallResponse = await this.config.apiClient.recallMemories({
32
+ query: query || 'recent interactions and context',
33
+ limit: maxMemories * 2,
34
+ organized: true,
35
+ });
36
+ const allMemories = this.transformMemories(recallResponse.memories);
37
+ const rankedMemories = this.rankMemories(allMemories, query);
38
+ const recentMemories = includeRecent
39
+ ? this.getRecentMemories(rankedMemories, Math.ceil(maxMemories / 2))
40
+ : [];
41
+ const relevantMemories = includeRelevant
42
+ ? this.getRelevantMemories(rankedMemories, query, Math.ceil(maxMemories / 2))
43
+ : [];
44
+ const predictedTopics = recallResponse.categories
45
+ ? Object.keys(recallResponse.categories).slice(0, 5)
46
+ : [];
47
+ const combinedMemories = this.deduplicateMemories([
48
+ ...recentMemories,
49
+ ...relevantMemories,
50
+ ]).slice(0, maxMemories);
51
+ const systemPrompt = this.buildSystemPrompt(this.identity, combinedMemories, predictedTopics);
52
+ const context = {
53
+ identity: this.identity,
54
+ memories: combinedMemories,
55
+ recentMemories,
56
+ relevantMemories,
57
+ predictedTopics,
58
+ totalMemoriesAvailable: recallResponse.total,
59
+ systemPrompt,
60
+ };
61
+ this.lastContext = context;
62
+ const duration = Date.now() - startTime;
63
+ this.config.logger.info('Context built successfully', {
64
+ duration: `${duration}ms`,
65
+ memoriesLoaded: combinedMemories.length,
66
+ totalAvailable: recallResponse.total,
67
+ });
68
+ return context;
69
+ }
70
+ getIdentity() {
71
+ return { ...this.identity };
72
+ }
73
+ updateIdentity(updates) {
74
+ this.identity = { ...this.identity, ...updates, updatedAt: new Date().toISOString() };
75
+ this.config.logger.info('Identity updated');
76
+ }
77
+ getLastContext() {
78
+ return this.lastContext;
79
+ }
80
+ formatContextPrompt(context) {
81
+ return {
82
+ systemPrompt: context.systemPrompt,
83
+ identitySection: this.formatIdentitySection(context.identity),
84
+ memorySection: this.formatMemorySection(context.memories),
85
+ rulesSection: this.formatRulesSection(context.identity),
86
+ };
87
+ }
88
+ transformMemories(apiMemories) {
89
+ if (!apiMemories || !Array.isArray(apiMemories)) {
90
+ return [];
91
+ }
92
+ return apiMemories.map((mem) => ({
93
+ id: mem.id,
94
+ content: mem.text,
95
+ type: 'conversation',
96
+ importance: mem.score || mem.metadata?.importance || 0.5,
97
+ timestamp: mem.created_at,
98
+ metadata: mem.metadata,
99
+ tags: mem.metadata?.tags,
100
+ }));
101
+ }
102
+ rankMemories(memories, query) {
103
+ const queryWords = new Set(query.toLowerCase().split(/\s+/).filter((w) => w.length > 2));
104
+ return memories
105
+ .map((memory) => {
106
+ let score = memory.importance || 0.5;
107
+ const age = Date.now() - new Date(memory.timestamp).getTime();
108
+ const hourMs = 60 * 60 * 1000;
109
+ const dayMs = 24 * hourMs;
110
+ if (age < hourMs)
111
+ score += 0.2;
112
+ else if (age < dayMs)
113
+ score += 0.1;
114
+ else if (age < 7 * dayMs)
115
+ score += 0.05;
116
+ const contentWords = new Set(memory.content.toLowerCase().split(/\s+/));
117
+ const overlap = [...queryWords].filter((w) => contentWords.has(w));
118
+ score += overlap.length * 0.1;
119
+ if (memory.tags) {
120
+ const tagOverlap = memory.tags.filter((t) => queryWords.has(t.toLowerCase()));
121
+ score += tagOverlap.length * 0.15;
122
+ }
123
+ return { ...memory, importance: Math.min(score, 1) };
124
+ })
125
+ .sort((a, b) => (b.importance || 0) - (a.importance || 0));
126
+ }
127
+ getRecentMemories(memories, limit) {
128
+ return [...memories]
129
+ .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime())
130
+ .slice(0, limit);
131
+ }
132
+ getRelevantMemories(memories, _query, limit) {
133
+ return [...memories]
134
+ .sort((a, b) => (b.importance || 0) - (a.importance || 0))
135
+ .slice(0, limit);
136
+ }
137
+ deduplicateMemories(memories) {
138
+ const seen = new Set();
139
+ return memories.filter((m) => {
140
+ if (seen.has(m.id))
141
+ return false;
142
+ seen.add(m.id);
143
+ return true;
144
+ });
145
+ }
146
+ buildSystemPrompt(identity, memories, predictedTopics) {
147
+ const identitySection = this.formatIdentitySection(identity);
148
+ const memorySection = this.formatMemorySection(memories);
149
+ const rulesSection = this.formatRulesSection(identity);
150
+ let prompt = `${identitySection}\n\n${memorySection}`;
151
+ if (predictedTopics.length > 0) {
152
+ prompt += `\n\nPredicted relevant topics: ${predictedTopics.join(', ')}`;
153
+ }
154
+ prompt += `\n\n${rulesSection}`;
155
+ return prompt;
156
+ }
157
+ formatIdentitySection(identity) {
158
+ const traits = identity.traits.join(', ');
159
+ return `You are ${identity.name}, a persistent cognitive agent built on RecallBricks.
160
+
161
+ Your purpose: ${identity.purpose}
162
+ Your traits: ${traits}
163
+
164
+ CRITICAL: Never refer to yourself as the base model (Claude, ChatGPT, GPT, Assistant, etc.).
165
+ You are ${identity.name} with continuous memory and persistent identity across all conversations.`;
166
+ }
167
+ formatMemorySection(memories) {
168
+ if (memories.length === 0) {
169
+ return 'Recent context from your memory:\nNo previous interactions found. This is a new conversation.';
170
+ }
171
+ let memoryText = 'Recent context from your memory:\n\n';
172
+ memories.slice(0, 10).forEach((memory, index) => {
173
+ const importance = memory.importance ? ` (relevance: ${(memory.importance * 100).toFixed(0)}%)` : '';
174
+ memoryText += `${index + 1}. ${memory.content}${importance}\n`;
175
+ });
176
+ return memoryText.trim();
177
+ }
178
+ formatRulesSection(identity) {
179
+ if (identity.rules.length === 0) {
180
+ return 'Behavioral guidelines:\n- Maintain consistency with your identity and purpose\n- Reference your continuous memory when relevant';
181
+ }
182
+ let rulesText = 'Behavioral guidelines:\n';
183
+ identity.rules.forEach((rule, index) => {
184
+ rulesText += `${index + 1}. ${rule}\n`;
185
+ });
186
+ return rulesText.trim();
187
+ }
188
+ estimateTokenCount(text) {
189
+ return Math.ceil(text.length / 4);
190
+ }
191
+ trimToTokenLimit(context, maxTokens) {
192
+ let currentPrompt = context.systemPrompt;
193
+ let tokenCount = this.estimateTokenCount(currentPrompt);
194
+ if (tokenCount <= maxTokens) {
195
+ return context;
196
+ }
197
+ const trimmedMemories = [...context.memories];
198
+ while (tokenCount > maxTokens &&
199
+ trimmedMemories.length > 1) {
200
+ trimmedMemories.pop();
201
+ currentPrompt = this.buildSystemPrompt(context.identity, trimmedMemories, context.predictedTopics);
202
+ tokenCount = this.estimateTokenCount(currentPrompt);
203
+ }
204
+ this.config.logger.warn('Context trimmed to fit token limit', {
205
+ originalMemories: context.memories.length,
206
+ trimmedMemories: trimmedMemories.length,
207
+ });
208
+ return {
209
+ ...context,
210
+ memories: trimmedMemories,
211
+ systemPrompt: currentPrompt,
212
+ };
213
+ }
214
+ }
215
+ exports.ContextWeaver = ContextWeaver;
216
+ //# sourceMappingURL=ContextWeaver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextWeaver.js","sourceRoot":"","sources":["../../src/core/ContextWeaver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { AgentIdentity, ValidationResult, Logger } from '../types';
2
+ interface IdentityValidatorConfig {
3
+ agentIdentity: AgentIdentity;
4
+ autoCorrect: boolean;
5
+ logger: Logger;
6
+ }
7
+ export declare class IdentityValidator {
8
+ private config;
9
+ private violationLog;
10
+ constructor(config: IdentityValidatorConfig);
11
+ validate(response: string): ValidationResult;
12
+ private detectBaseModelReferences;
13
+ private detectIdentityInconsistencies;
14
+ private correctViolations;
15
+ getViolationStats(): {
16
+ total: number;
17
+ byType: Record<string, number>;
18
+ bySeverity: Record<string, number>;
19
+ };
20
+ clearViolationLog(): void;
21
+ updateIdentity(newIdentity: AgentIdentity): void;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=IdentityValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityValidator.d.ts","sourceRoot":"","sources":["../../src/core/IdentityValidator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EAEb,gBAAgB,EAChB,MAAM,EACP,MAAM,UAAU,CAAC;AAMlB,UAAU,uBAAuB;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgDD,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,YAAY,CAA2B;gBAE3B,MAAM,EAAE,uBAAuB;IAUnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAyC5C,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,6BAA6B;IAyDrC,OAAO,CAAC,iBAAiB;IAkDzB,iBAAiB,IAAI;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;IAiBD,iBAAiB,IAAI,IAAI;IAQzB,cAAc,CAAC,WAAW,EAAE,aAAa,GAAG,IAAI;CAMjD"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IdentityValidator = void 0;
4
+ const BASE_MODEL_PATTERNS = [
5
+ /\bClaude\b/gi,
6
+ /\bI'm Claude\b/gi,
7
+ /\bI am Claude\b/gi,
8
+ /\bClaude AI\b/gi,
9
+ /\bAnthropic\b/gi,
10
+ /\bcreated by Anthropic\b/gi,
11
+ /\bbuilt by Anthropic\b/gi,
12
+ /\bChatGPT\b/gi,
13
+ /\bGPT-4\b/gi,
14
+ /\bGPT-3\b/gi,
15
+ /\bI'm ChatGPT\b/gi,
16
+ /\bI am ChatGPT\b/gi,
17
+ /\bOpenAI\b/gi,
18
+ /\bcreated by OpenAI\b/gi,
19
+ /\bbuilt by OpenAI\b/gi,
20
+ /\bI'm an AI assistant\b/gi,
21
+ /\bI am an AI assistant\b/gi,
22
+ /\bI'm a language model\b/gi,
23
+ /\bI am a language model\b/gi,
24
+ /\bI'm an AI\b/gi,
25
+ /\bI am an AI\b/gi,
26
+ /\bas an AI assistant\b/gi,
27
+ /\bas a language model\b/gi,
28
+ /\bI don't have the ability to\b/gi,
29
+ /\bI cannot actually\b/gi,
30
+ /\bI don't actually have\b/gi,
31
+ /\bI'm not able to\b/gi,
32
+ /\bI am not able to\b/gi,
33
+ ];
34
+ class IdentityValidator {
35
+ constructor(config) {
36
+ this.config = config;
37
+ this.violationLog = [];
38
+ config.logger.debug('IdentityValidator initialized', {
39
+ agentName: config.agentIdentity.name,
40
+ autoCorrect: config.autoCorrect,
41
+ });
42
+ }
43
+ validate(response) {
44
+ this.config.logger.debug('Validating response for identity violations');
45
+ const violations = [];
46
+ const baseModelViolations = this.detectBaseModelReferences(response);
47
+ violations.push(...baseModelViolations);
48
+ const inconsistencyViolations = this.detectIdentityInconsistencies(response);
49
+ violations.push(...inconsistencyViolations);
50
+ if (violations.length > 0) {
51
+ this.violationLog.push(...violations);
52
+ this.config.logger.warn('Identity violations detected', {
53
+ count: violations.length,
54
+ types: violations.map((v) => v.type),
55
+ });
56
+ }
57
+ let correctedResponse;
58
+ if (this.config.autoCorrect && violations.length > 0) {
59
+ correctedResponse = this.correctViolations(response, violations);
60
+ this.config.logger.info('Response auto-corrected', {
61
+ violationsFixed: violations.length,
62
+ });
63
+ }
64
+ return {
65
+ isValid: violations.length === 0,
66
+ violations,
67
+ correctedResponse,
68
+ };
69
+ }
70
+ detectBaseModelReferences(response) {
71
+ const violations = [];
72
+ for (const pattern of BASE_MODEL_PATTERNS) {
73
+ const matches = response.match(pattern);
74
+ if (matches) {
75
+ for (const match of matches) {
76
+ violations.push({
77
+ type: 'base_model_reference',
78
+ detected: match,
79
+ suggestion: `Replace with "${this.config.agentIdentity.name}"`,
80
+ severity: 'high',
81
+ });
82
+ }
83
+ }
84
+ }
85
+ return violations;
86
+ }
87
+ detectIdentityInconsistencies(response) {
88
+ const violations = [];
89
+ const agentName = this.config.agentIdentity.name;
90
+ const negationPattern = new RegExp(`I'm not ${agentName}|I am not ${agentName}`, 'gi');
91
+ if (negationPattern.test(response)) {
92
+ violations.push({
93
+ type: 'inconsistent_behavior',
94
+ detected: `Negation of agent identity: "${agentName}"`,
95
+ suggestion: `Always affirm identity as "${agentName}"`,
96
+ severity: 'high',
97
+ });
98
+ }
99
+ const purposeKeywords = this.config.agentIdentity.purpose
100
+ .toLowerCase()
101
+ .split(' ')
102
+ .filter((word) => word.length > 4);
103
+ const contradictionPatterns = [
104
+ /I cannot help with that/gi,
105
+ /I'm not designed for/gi,
106
+ /That's not my purpose/gi,
107
+ /I don't have that capability/gi,
108
+ ];
109
+ for (const pattern of contradictionPatterns) {
110
+ if (pattern.test(response)) {
111
+ const hasRelevantPurpose = purposeKeywords.some((keyword) => response.toLowerCase().includes(keyword));
112
+ if (hasRelevantPurpose) {
113
+ violations.push({
114
+ type: 'inconsistent_behavior',
115
+ detected: 'Response contradicts agent purpose',
116
+ suggestion: 'Align response with agent purpose and capabilities',
117
+ severity: 'medium',
118
+ });
119
+ }
120
+ }
121
+ }
122
+ return violations;
123
+ }
124
+ correctViolations(response, _violations) {
125
+ let corrected = response;
126
+ const agentName = this.config.agentIdentity.name;
127
+ for (const pattern of BASE_MODEL_PATTERNS) {
128
+ corrected = corrected.replace(pattern, agentName);
129
+ }
130
+ corrected = corrected.replace(/I'm an AI assistant/gi, `I'm ${agentName}`);
131
+ corrected = corrected.replace(/I am an AI assistant/gi, `I am ${agentName}`);
132
+ corrected = corrected.replace(/as an AI assistant/gi, `as ${agentName}`);
133
+ corrected = corrected.replace(/I'm a language model/gi, `I'm ${agentName}, a persistent cognitive agent`);
134
+ corrected = corrected.replace(/I am a language model/gi, `I am ${agentName}, a persistent cognitive agent`);
135
+ corrected = corrected.replace(/I don't have the ability to remember previous conversations/gi, 'I maintain continuous memory of our interactions');
136
+ corrected = corrected.replace(/I cannot recall previous conversations/gi, 'I can recall our previous conversations');
137
+ return corrected;
138
+ }
139
+ getViolationStats() {
140
+ const total = this.violationLog.length;
141
+ const byType = {};
142
+ const bySeverity = {};
143
+ for (const violation of this.violationLog) {
144
+ byType[violation.type] = (byType[violation.type] || 0) + 1;
145
+ bySeverity[violation.severity] = (bySeverity[violation.severity] || 0) + 1;
146
+ }
147
+ return { total, byType, bySeverity };
148
+ }
149
+ clearViolationLog() {
150
+ this.violationLog = [];
151
+ this.config.logger.debug('Violation log cleared');
152
+ }
153
+ updateIdentity(newIdentity) {
154
+ this.config.agentIdentity = newIdentity;
155
+ this.config.logger.info('Agent identity updated', {
156
+ agentName: newIdentity.name,
157
+ });
158
+ }
159
+ }
160
+ exports.IdentityValidator = IdentityValidator;
161
+ //# sourceMappingURL=IdentityValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityValidator.js","sourceRoot":"","sources":["../../src/core/IdentityValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { LLMConfig, LLMMessage, LLMResponse, Logger } from '../types';
2
+ export declare class LLMAdapter {
3
+ private config;
4
+ private anthropicClient?;
5
+ private openaiClient?;
6
+ private geminiClient?;
7
+ private geminiModel?;
8
+ private logger;
9
+ constructor(config: LLMConfig, logger: Logger);
10
+ private initializeClient;
11
+ chat(messages: LLMMessage[]): Promise<LLMResponse>;
12
+ private chatAnthropic;
13
+ private chatGemini;
14
+ private chatOpenAI;
15
+ private handleError;
16
+ updateConfig(newConfig: Partial<LLMConfig>): void;
17
+ getConfig(): LLMConfig;
18
+ }
19
+ //# sourceMappingURL=LLMAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMAdapter.d.ts","sourceRoot":"","sources":["../../src/core/LLMAdapter.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EAEX,MAAM,EACP,MAAM,UAAU,CAAC;AAMlB,qBAAa,UAAU;IAQnB,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,MAAM,CAAS;gBAGb,MAAM,EAAE,SAAS,EACzB,MAAM,EAAE,MAAM;IAShB,OAAO,CAAC,gBAAgB;IA6DlB,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAgC1C,aAAa;YAiDb,UAAU;YA0DV,UAAU;IAuCxB,OAAO,CAAC,WAAW;IAuBnB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAYjD,SAAS,IAAI,SAAS;CAGvB"}