@timmeck/brain-core 2.36.24 → 2.36.26
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/active-learning/__tests__/active-learning.test.d.ts +1 -0
- package/dist/active-learning/__tests__/active-learning.test.js +132 -0
- package/dist/active-learning/__tests__/active-learning.test.js.map +1 -0
- package/dist/active-learning/active-learner.d.ts +79 -0
- package/dist/active-learning/active-learner.js +224 -0
- package/dist/active-learning/active-learner.js.map +1 -0
- package/dist/active-learning/index.d.ts +2 -0
- package/dist/active-learning/index.js +2 -0
- package/dist/active-learning/index.js.map +1 -0
- package/dist/code-health/__tests__/code-health.test.d.ts +1 -0
- package/dist/code-health/__tests__/code-health.test.js +123 -0
- package/dist/code-health/__tests__/code-health.test.js.map +1 -0
- package/dist/code-health/health-monitor.d.ts +55 -0
- package/dist/code-health/health-monitor.js +180 -0
- package/dist/code-health/health-monitor.js.map +1 -0
- package/dist/code-health/index.d.ts +2 -0
- package/dist/code-health/index.js +2 -0
- package/dist/code-health/index.js.map +1 -0
- package/dist/consensus/__tests__/consensus.test.d.ts +1 -0
- package/dist/consensus/__tests__/consensus.test.js +159 -0
- package/dist/consensus/__tests__/consensus.test.js.map +1 -0
- package/dist/consensus/consensus-engine.d.ts +81 -0
- package/dist/consensus/consensus-engine.js +237 -0
- package/dist/consensus/consensus-engine.js.map +1 -0
- package/dist/consensus/index.d.ts +2 -0
- package/dist/consensus/index.js +2 -0
- package/dist/consensus/index.js.map +1 -0
- package/dist/feedback/__tests__/feedback-engine.test.d.ts +1 -0
- package/dist/feedback/__tests__/feedback-engine.test.js +156 -0
- package/dist/feedback/__tests__/feedback-engine.test.js.map +1 -0
- package/dist/feedback/feedback-engine.d.ts +61 -0
- package/dist/feedback/feedback-engine.js +203 -0
- package/dist/feedback/feedback-engine.js.map +1 -0
- package/dist/feedback/index.d.ts +2 -0
- package/dist/feedback/index.js +2 -0
- package/dist/feedback/index.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge-graph/__tests__/knowledge-graph.test.d.ts +1 -0
- package/dist/knowledge-graph/__tests__/knowledge-graph.test.js +215 -0
- package/dist/knowledge-graph/__tests__/knowledge-graph.test.js.map +1 -0
- package/dist/knowledge-graph/fact-extractor.d.ts +23 -0
- package/dist/knowledge-graph/fact-extractor.js +70 -0
- package/dist/knowledge-graph/fact-extractor.js.map +1 -0
- package/dist/knowledge-graph/graph-engine.d.ts +78 -0
- package/dist/knowledge-graph/graph-engine.js +276 -0
- package/dist/knowledge-graph/graph-engine.js.map +1 -0
- package/dist/knowledge-graph/index.d.ts +4 -0
- package/dist/knowledge-graph/index.js +3 -0
- package/dist/knowledge-graph/index.js.map +1 -0
- package/dist/proactive/__tests__/proactive-engine.test.d.ts +1 -0
- package/dist/proactive/__tests__/proactive-engine.test.js +183 -0
- package/dist/proactive/__tests__/proactive-engine.test.js.map +1 -0
- package/dist/proactive/index.d.ts +2 -0
- package/dist/proactive/index.js +2 -0
- package/dist/proactive/index.js.map +1 -0
- package/dist/proactive/proactive-engine.d.ts +86 -0
- package/dist/proactive/proactive-engine.js +252 -0
- package/dist/proactive/proactive-engine.js.map +1 -0
- package/dist/rag/__tests__/rag-engine.test.d.ts +1 -0
- package/dist/rag/__tests__/rag-engine.test.js +235 -0
- package/dist/rag/__tests__/rag-engine.test.js.map +1 -0
- package/dist/rag/index.d.ts +4 -0
- package/dist/rag/index.js +3 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/rag-engine.d.ts +98 -0
- package/dist/rag/rag-engine.js +310 -0
- package/dist/rag/rag-engine.js.map +1 -0
- package/dist/rag/rag-indexer.d.ts +52 -0
- package/dist/rag/rag-indexer.js +144 -0
- package/dist/rag/rag-indexer.js.map +1 -0
- package/dist/research/__tests__/semantic-compressor.test.d.ts +1 -0
- package/dist/research/__tests__/semantic-compressor.test.js +153 -0
- package/dist/research/__tests__/semantic-compressor.test.js.map +1 -0
- package/dist/research/semantic-compressor.d.ts +55 -0
- package/dist/research/semantic-compressor.js +227 -0
- package/dist/research/semantic-compressor.js.map +1 -0
- package/dist/teaching/__tests__/teaching.test.d.ts +1 -0
- package/dist/teaching/__tests__/teaching.test.js +151 -0
- package/dist/teaching/__tests__/teaching.test.js.map +1 -0
- package/dist/teaching/curriculum.d.ts +32 -0
- package/dist/teaching/curriculum.js +89 -0
- package/dist/teaching/curriculum.js.map +1 -0
- package/dist/teaching/index.d.ts +4 -0
- package/dist/teaching/index.js +3 -0
- package/dist/teaching/index.js.map +1 -0
- package/dist/teaching/teaching-protocol.d.ts +74 -0
- package/dist/teaching/teaching-protocol.js +164 -0
- package/dist/teaching/teaching-protocol.js.map +1 -0
- package/dist/tool-learning/__tests__/tool-learning.test.d.ts +1 -0
- package/dist/tool-learning/__tests__/tool-learning.test.js +187 -0
- package/dist/tool-learning/__tests__/tool-learning.test.js.map +1 -0
- package/dist/tool-learning/index.d.ts +4 -0
- package/dist/tool-learning/index.js +3 -0
- package/dist/tool-learning/index.js.map +1 -0
- package/dist/tool-learning/tool-patterns.d.ts +47 -0
- package/dist/tool-learning/tool-patterns.js +125 -0
- package/dist/tool-learning/tool-patterns.js.map +1 -0
- package/dist/tool-learning/tool-tracker.d.ts +58 -0
- package/dist/tool-learning/tool-tracker.js +135 -0
- package/dist/tool-learning/tool-tracker.js.map +1 -0
- package/dist/user-model/__tests__/user-model.test.d.ts +1 -0
- package/dist/user-model/__tests__/user-model.test.js +142 -0
- package/dist/user-model/__tests__/user-model.test.js.map +1 -0
- package/dist/user-model/adaptive-context.d.ts +18 -0
- package/dist/user-model/adaptive-context.js +46 -0
- package/dist/user-model/adaptive-context.js.map +1 -0
- package/dist/user-model/index.d.ts +4 -0
- package/dist/user-model/index.js +3 -0
- package/dist/user-model/index.js.map +1 -0
- package/dist/user-model/user-model.d.ts +53 -0
- package/dist/user-model/user-model.js +204 -0
- package/dist/user-model/user-model.js.map +1 -0
- package/dist/utils/logger.js +4 -3
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { ThoughtStream } from '../consciousness/thought-stream.js';
|
|
3
|
+
export type SkillLevel = 'beginner' | 'intermediate' | 'expert';
|
|
4
|
+
export interface UserProfile {
|
|
5
|
+
skillDomains: Map<string, SkillLevel>;
|
|
6
|
+
topTools: string[];
|
|
7
|
+
activeHours: number[];
|
|
8
|
+
errorPatterns: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface UserModelConfig {
|
|
11
|
+
brainName: string;
|
|
12
|
+
}
|
|
13
|
+
export interface UserModelStatus {
|
|
14
|
+
totalKeys: number;
|
|
15
|
+
domains: number;
|
|
16
|
+
lastUpdated: string | null;
|
|
17
|
+
}
|
|
18
|
+
export declare function runUserModelMigration(db: Database.Database): void;
|
|
19
|
+
export declare class UserModel {
|
|
20
|
+
private db;
|
|
21
|
+
private config;
|
|
22
|
+
private ts;
|
|
23
|
+
private log;
|
|
24
|
+
private stmtUpsert;
|
|
25
|
+
private stmtGet;
|
|
26
|
+
private stmtCountKeys;
|
|
27
|
+
private stmtCountDomains;
|
|
28
|
+
private stmtLastUpdated;
|
|
29
|
+
private stmtAllDomains;
|
|
30
|
+
private stmtAllKeys;
|
|
31
|
+
constructor(db: Database.Database, config: UserModelConfig);
|
|
32
|
+
/** Set the ThoughtStream for consciousness integration. */
|
|
33
|
+
setThoughtStream(stream: ThoughtStream): void;
|
|
34
|
+
/**
|
|
35
|
+
* Update profile from a tool interaction.
|
|
36
|
+
* Tracks tool frequency per domain, infers skill levels.
|
|
37
|
+
*/
|
|
38
|
+
updateFromInteraction(toolName: string, context: string | null, outcome: string): void;
|
|
39
|
+
/** Build and return the full user profile. */
|
|
40
|
+
getProfile(): UserProfile;
|
|
41
|
+
/** Set an explicit user preference. */
|
|
42
|
+
setPreference(key: string, value: string): void;
|
|
43
|
+
/** Get a stored user preference, or null if not set. */
|
|
44
|
+
getPreference(key: string): string | null;
|
|
45
|
+
/** Get model status summary. */
|
|
46
|
+
getStatus(): UserModelStatus;
|
|
47
|
+
/** Store a key-value pair with confidence. */
|
|
48
|
+
_setKey(key: string, value: string, confidence: number): void;
|
|
49
|
+
/** Retrieve a value by key, or null if not found. */
|
|
50
|
+
_getKey(key: string): string | null;
|
|
51
|
+
/** Infer skill level from successful interaction count. */
|
|
52
|
+
private inferSkillLevel;
|
|
53
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// ── User Model — Skill Tracking & Preference Storage ─────────
|
|
2
|
+
//
|
|
3
|
+
// Tracks user interactions to infer skill levels per domain,
|
|
4
|
+
// stores explicit preferences, and builds a user profile.
|
|
5
|
+
import { getLogger } from '../utils/logger.js';
|
|
6
|
+
// ── Migration ───────────────────────────────────────────
|
|
7
|
+
export function runUserModelMigration(db) {
|
|
8
|
+
db.exec(`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS user_profile (
|
|
10
|
+
id INTEGER PRIMARY KEY,
|
|
11
|
+
key TEXT UNIQUE NOT NULL,
|
|
12
|
+
value TEXT NOT NULL,
|
|
13
|
+
confidence REAL DEFAULT 0.5,
|
|
14
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
15
|
+
);
|
|
16
|
+
`);
|
|
17
|
+
}
|
|
18
|
+
// ── Engine ──────────────────────────────────────────────
|
|
19
|
+
export class UserModel {
|
|
20
|
+
db;
|
|
21
|
+
config;
|
|
22
|
+
ts = null;
|
|
23
|
+
log = getLogger();
|
|
24
|
+
// Prepared statements
|
|
25
|
+
stmtUpsert;
|
|
26
|
+
stmtGet;
|
|
27
|
+
stmtCountKeys;
|
|
28
|
+
stmtCountDomains;
|
|
29
|
+
stmtLastUpdated;
|
|
30
|
+
stmtAllDomains;
|
|
31
|
+
stmtAllKeys;
|
|
32
|
+
constructor(db, config) {
|
|
33
|
+
this.db = db;
|
|
34
|
+
this.config = config;
|
|
35
|
+
runUserModelMigration(db);
|
|
36
|
+
// Prepare all statements
|
|
37
|
+
this.stmtUpsert = db.prepare(`
|
|
38
|
+
INSERT INTO user_profile (key, value, confidence, updated_at)
|
|
39
|
+
VALUES (?, ?, ?, datetime('now'))
|
|
40
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
41
|
+
value = excluded.value,
|
|
42
|
+
confidence = excluded.confidence,
|
|
43
|
+
updated_at = datetime('now')
|
|
44
|
+
`);
|
|
45
|
+
this.stmtGet = db.prepare(`
|
|
46
|
+
SELECT * FROM user_profile WHERE key = ?
|
|
47
|
+
`);
|
|
48
|
+
this.stmtCountKeys = db.prepare(`
|
|
49
|
+
SELECT COUNT(*) AS total FROM user_profile
|
|
50
|
+
`);
|
|
51
|
+
this.stmtCountDomains = db.prepare(`
|
|
52
|
+
SELECT COUNT(*) AS cnt FROM user_profile WHERE key LIKE 'domain:%'
|
|
53
|
+
`);
|
|
54
|
+
this.stmtLastUpdated = db.prepare(`
|
|
55
|
+
SELECT MAX(updated_at) AS last FROM user_profile
|
|
56
|
+
`);
|
|
57
|
+
this.stmtAllDomains = db.prepare(`
|
|
58
|
+
SELECT key, value, confidence FROM user_profile WHERE key LIKE 'domain:%' ORDER BY confidence DESC
|
|
59
|
+
`);
|
|
60
|
+
this.stmtAllKeys = db.prepare(`
|
|
61
|
+
SELECT key, value FROM user_profile ORDER BY updated_at DESC
|
|
62
|
+
`);
|
|
63
|
+
this.log.info(`[user-model] Initialized for ${config.brainName}`);
|
|
64
|
+
}
|
|
65
|
+
/** Set the ThoughtStream for consciousness integration. */
|
|
66
|
+
setThoughtStream(stream) {
|
|
67
|
+
this.ts = stream;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Update profile from a tool interaction.
|
|
71
|
+
* Tracks tool frequency per domain, infers skill levels.
|
|
72
|
+
*/
|
|
73
|
+
updateFromInteraction(toolName, context, outcome) {
|
|
74
|
+
// Extract domain from tool name (e.g., "mcp.search" → "mcp", "trading.analyze" → "trading")
|
|
75
|
+
const domain = toolName.includes('.') ? toolName.split('.')[0] : 'general';
|
|
76
|
+
// Update tool frequency
|
|
77
|
+
const toolKey = `tool_freq:${toolName}`;
|
|
78
|
+
const existing = this._getKey(toolKey);
|
|
79
|
+
const currentCount = existing ? parseInt(existing, 10) : 0;
|
|
80
|
+
const newCount = currentCount + 1;
|
|
81
|
+
this._setKey(toolKey, String(newCount), Math.min(newCount / 20, 1.0));
|
|
82
|
+
// Update domain usage count
|
|
83
|
+
const domainKey = `domain_uses:${domain}`;
|
|
84
|
+
const domainExisting = this._getKey(domainKey);
|
|
85
|
+
const domainCount = domainExisting ? parseInt(domainExisting, 10) : 0;
|
|
86
|
+
const newDomainCount = domainCount + 1;
|
|
87
|
+
// Only count successful outcomes toward skill level
|
|
88
|
+
const successKey = `domain_success:${domain}`;
|
|
89
|
+
const successExisting = this._getKey(successKey);
|
|
90
|
+
const successCount = successExisting ? parseInt(successExisting, 10) : 0;
|
|
91
|
+
const newSuccessCount = outcome === 'success' ? successCount + 1 : successCount;
|
|
92
|
+
this._setKey(domainKey, String(newDomainCount), Math.min(newDomainCount / 20, 1.0));
|
|
93
|
+
this._setKey(successKey, String(newSuccessCount), Math.min(newSuccessCount / 20, 1.0));
|
|
94
|
+
// Infer skill level based on successful uses
|
|
95
|
+
const skillLevel = this.inferSkillLevel(newSuccessCount);
|
|
96
|
+
this._setKey(`domain:${domain}`, skillLevel, Math.min(newSuccessCount / 15, 1.0));
|
|
97
|
+
// Track active hour
|
|
98
|
+
const hour = new Date().getHours();
|
|
99
|
+
const hourKey = `active_hour:${hour}`;
|
|
100
|
+
const hourExisting = this._getKey(hourKey);
|
|
101
|
+
const hourCount = hourExisting ? parseInt(hourExisting, 10) : 0;
|
|
102
|
+
this._setKey(hourKey, String(hourCount + 1), 0.5);
|
|
103
|
+
// Track error patterns
|
|
104
|
+
if (outcome === 'failure' && context) {
|
|
105
|
+
const errorKey = `error_pattern:${domain}`;
|
|
106
|
+
const patterns = this._getKey(errorKey);
|
|
107
|
+
const patternList = patterns ? JSON.parse(patterns) : [];
|
|
108
|
+
const snippet = context.substring(0, 100);
|
|
109
|
+
if (!patternList.includes(snippet)) {
|
|
110
|
+
patternList.push(snippet);
|
|
111
|
+
if (patternList.length > 10)
|
|
112
|
+
patternList.shift();
|
|
113
|
+
this._setKey(errorKey, JSON.stringify(patternList), 0.5);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.ts?.emit('user-model', 'analyzing', `Updated profile: ${domain} (${skillLevel}), tool ${toolName}`, 'routine');
|
|
117
|
+
}
|
|
118
|
+
/** Build and return the full user profile. */
|
|
119
|
+
getProfile() {
|
|
120
|
+
// Skill domains
|
|
121
|
+
const domainRows = this.stmtAllDomains.all();
|
|
122
|
+
const skillDomains = new Map();
|
|
123
|
+
for (const row of domainRows) {
|
|
124
|
+
const domainName = row.key.replace('domain:', '');
|
|
125
|
+
skillDomains.set(domainName, row.value);
|
|
126
|
+
}
|
|
127
|
+
// Top tools (by frequency)
|
|
128
|
+
const allKeys = this.stmtAllKeys.all();
|
|
129
|
+
const toolFreqs = [];
|
|
130
|
+
for (const row of allKeys) {
|
|
131
|
+
if (row.key.startsWith('tool_freq:')) {
|
|
132
|
+
toolFreqs.push({
|
|
133
|
+
tool: row.key.replace('tool_freq:', ''),
|
|
134
|
+
count: parseInt(row.value, 10),
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
toolFreqs.sort((a, b) => b.count - a.count);
|
|
139
|
+
const topTools = toolFreqs.slice(0, 10).map(t => t.tool);
|
|
140
|
+
// Active hours
|
|
141
|
+
const activeHours = [];
|
|
142
|
+
for (const row of allKeys) {
|
|
143
|
+
if (row.key.startsWith('active_hour:')) {
|
|
144
|
+
const hour = parseInt(row.key.replace('active_hour:', ''), 10);
|
|
145
|
+
const count = parseInt(row.value, 10);
|
|
146
|
+
if (count > 0)
|
|
147
|
+
activeHours.push(hour);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
activeHours.sort((a, b) => a - b);
|
|
151
|
+
// Error patterns
|
|
152
|
+
const errorPatterns = [];
|
|
153
|
+
for (const row of allKeys) {
|
|
154
|
+
if (row.key.startsWith('error_pattern:')) {
|
|
155
|
+
try {
|
|
156
|
+
const patterns = JSON.parse(row.value);
|
|
157
|
+
errorPatterns.push(...patterns);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// Ignore malformed entries
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return { skillDomains, topTools, activeHours, errorPatterns };
|
|
165
|
+
}
|
|
166
|
+
/** Set an explicit user preference. */
|
|
167
|
+
setPreference(key, value) {
|
|
168
|
+
this._setKey(`pref:${key}`, value, 1.0);
|
|
169
|
+
}
|
|
170
|
+
/** Get a stored user preference, or null if not set. */
|
|
171
|
+
getPreference(key) {
|
|
172
|
+
return this._getKey(`pref:${key}`);
|
|
173
|
+
}
|
|
174
|
+
/** Get model status summary. */
|
|
175
|
+
getStatus() {
|
|
176
|
+
const totalKeys = this.stmtCountKeys.get().total;
|
|
177
|
+
const domains = this.stmtCountDomains.get().cnt;
|
|
178
|
+
const lastUpdated = this.stmtLastUpdated.get().last;
|
|
179
|
+
return {
|
|
180
|
+
totalKeys,
|
|
181
|
+
domains,
|
|
182
|
+
lastUpdated,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// ── Internal ──────────────────────────────────────────
|
|
186
|
+
/** Store a key-value pair with confidence. */
|
|
187
|
+
_setKey(key, value, confidence) {
|
|
188
|
+
this.stmtUpsert.run(key, value, confidence);
|
|
189
|
+
}
|
|
190
|
+
/** Retrieve a value by key, or null if not found. */
|
|
191
|
+
_getKey(key) {
|
|
192
|
+
const row = this.stmtGet.get(key);
|
|
193
|
+
return row ? row.value : null;
|
|
194
|
+
}
|
|
195
|
+
/** Infer skill level from successful interaction count. */
|
|
196
|
+
inferSkillLevel(successfulUses) {
|
|
197
|
+
if (successfulUses > 10)
|
|
198
|
+
return 'expert';
|
|
199
|
+
if (successfulUses >= 3)
|
|
200
|
+
return 'intermediate';
|
|
201
|
+
return 'beginner';
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=user-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-model.js","sourceRoot":"","sources":["../../src/user-model/user-model.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -28,10 +28,11 @@ export function createLogger(opts) {
|
|
|
28
28
|
const consoleTransport = new winston.transports.Console({
|
|
29
29
|
format: combine(colorize(), timestamp(), logFormat),
|
|
30
30
|
});
|
|
31
|
-
//
|
|
31
|
+
// On EPIPE (closed pipe in daemon mode), remove the console transport entirely
|
|
32
32
|
consoleTransport.on('error', (err) => {
|
|
33
|
-
if (err.code === 'EPIPE')
|
|
34
|
-
|
|
33
|
+
if (err.code === 'EPIPE' && loggerInstance) {
|
|
34
|
+
loggerInstance.remove(consoleTransport);
|
|
35
|
+
}
|
|
35
36
|
});
|
|
36
37
|
transports.push(consoleTransport);
|
|
37
38
|
}
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;AAEhE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,GAAG,SAAS,KAAK,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,cAAc,GAA0B,IAAI,CAAC;AAejD,MAAM,UAAU,YAAY,CAAC,IAAoB;IAC/C,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,iBAAiB,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,WAAW,CAAC;IAE7D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;IAC1D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC;IAErC,MAAM,UAAU,GAAwB;QACtC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,OAAO;YAChB,QAAQ;YACR,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC;SACxC,CAAC;KACH,CAAC;IAEF,sFAAsF;IACtF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QACzE,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YACtD,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC;SACpD,CAAC,CAAC;QACH
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED