erosolar-cli 1.3.6 → 1.3.7

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 (45) hide show
  1. package/dist/StringUtils.d.ts +8 -0
  2. package/dist/StringUtils.d.ts.map +1 -0
  3. package/dist/StringUtils.js +11 -0
  4. package/dist/StringUtils.js.map +1 -0
  5. package/dist/capabilities/index.d.ts +1 -1
  6. package/dist/capabilities/index.d.ts.map +1 -1
  7. package/dist/capabilities/index.js +1 -1
  8. package/dist/capabilities/index.js.map +1 -1
  9. package/dist/capabilities/skillCapability.d.ts +2 -6
  10. package/dist/capabilities/skillCapability.d.ts.map +1 -1
  11. package/dist/capabilities/skillCapability.js +70 -20
  12. package/dist/capabilities/skillCapability.js.map +1 -1
  13. package/dist/core/agent.d.ts +16 -0
  14. package/dist/core/agent.d.ts.map +1 -1
  15. package/dist/core/agent.js +171 -54
  16. package/dist/core/agent.js.map +1 -1
  17. package/dist/core/contextWindow.d.ts +6 -0
  18. package/dist/core/contextWindow.d.ts.map +1 -1
  19. package/dist/core/contextWindow.js +12 -4
  20. package/dist/core/contextWindow.js.map +1 -1
  21. package/dist/plugins/tools/skills/skillPlugin.js +2 -2
  22. package/dist/plugins/tools/skills/skillPlugin.js.map +1 -1
  23. package/dist/shell/interactiveShell.d.ts +19 -0
  24. package/dist/shell/interactiveShell.d.ts.map +1 -1
  25. package/dist/shell/interactiveShell.js +177 -0
  26. package/dist/shell/interactiveShell.js.map +1 -1
  27. package/dist/skills/skillRepository.d.ts +99 -23
  28. package/dist/skills/skillRepository.d.ts.map +1 -1
  29. package/dist/skills/skillRepository.js +213 -329
  30. package/dist/skills/skillRepository.js.map +1 -1
  31. package/dist/tools/skillTools.d.ts.map +1 -1
  32. package/dist/tools/skillTools.js +24 -62
  33. package/dist/tools/skillTools.js.map +1 -1
  34. package/package.json +21 -5
  35. package/scripts/ai-code-reviewer.mjs +343 -0
  36. package/scripts/code-intelligence-enhancer.mjs +415 -0
  37. package/scripts/dev-productivity-booster.mjs +342 -0
  38. package/dist/ui/advancedPrompt.d.ts +0 -58
  39. package/dist/ui/advancedPrompt.d.ts.map +0 -1
  40. package/dist/ui/advancedPrompt.js +0 -219
  41. package/dist/ui/advancedPrompt.js.map +0 -1
  42. package/dist/ui/overlay/OverlayManager.d.ts +0 -105
  43. package/dist/ui/overlay/OverlayManager.d.ts.map +0 -1
  44. package/dist/ui/overlay/OverlayManager.js +0 -291
  45. package/dist/ui/overlay/OverlayManager.js.map +0 -1
@@ -1,353 +1,237 @@
1
- import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
2
- import { dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
3
- import { homedir } from 'node:os';
4
- import { globSync } from 'glob';
5
- const SKILL_FILE_NAME = 'SKILL.md';
6
- const DEFAULT_IGNORES = [
7
- '**/node_modules/**',
8
- '**/.git/**',
9
- '**/dist/**',
10
- '**/.next/**',
11
- '**/build/**',
12
- '**/coverage/**',
13
- '**/.cache/**',
14
- ];
15
- const DEFAULT_SKILL_DIRS = ['skills', '.claude/skills', '.erosolar/skills'];
16
- export class SkillRepository {
17
- workingDir;
18
- env;
19
- homeDir;
20
- extraPaths;
21
- loaded = false;
22
- records = new Map();
23
- aliasMap = new Map();
24
- constructor(options) {
25
- this.workingDir = resolve(options.workingDir);
26
- this.env = { ...(options.env ?? process.env) };
27
- this.homeDir = resolve(options.homeDir ?? homedir());
28
- this.extraPaths = options.extraPaths?.map((dir) => resolve(dir)).filter(Boolean) ?? [];
29
- }
30
- listSkills() {
31
- this.ensureLoaded();
32
- return Array.from(this.records.values()).map((record) => this.toSummary(record));
33
- }
34
- getSkill(identifier) {
35
- this.ensureLoaded();
36
- const key = identifier.trim().toLowerCase();
37
- if (!key) {
38
- return null;
39
- }
40
- if (this.records.has(key)) {
41
- return this.records.get(key);
42
- }
43
- const alias = this.aliasMap.get(key);
44
- if (alias && this.records.has(alias)) {
45
- return this.records.get(alias);
46
- }
47
- // Allow path-based lookups
48
- const resolved = isAbsolute(identifier) ? resolve(identifier) : resolve(this.workingDir, identifier);
49
- for (const record of this.records.values()) {
50
- if (record.filePath === resolved || record.location === resolved || record.relativeLocation === identifier) {
51
- return record;
1
+ /**
2
+ * Skill Repository
3
+ *
4
+ * Manages skill discovery, loading, and execution.
5
+ * Skills are reusable code patterns that can be applied
6
+ * across different contexts.
7
+ */
8
+ import { readFileSync, existsSync, readdirSync, statSync } from 'fs';
9
+ import { join, dirname } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ // Simple globSync implementation for ESM compatibility
12
+ function globSync(_pattern, options) {
13
+ const results = [];
14
+ function scanDir(dir, relativePath = '') {
15
+ try {
16
+ const entries = readdirSync(dir);
17
+ for (const entry of entries) {
18
+ const fullPath = join(dir, entry);
19
+ const relPath = relativePath ? `${relativePath}/${entry}` : entry;
20
+ try {
21
+ const stat = statSync(fullPath);
22
+ if (stat.isDirectory()) {
23
+ scanDir(fullPath, relPath);
24
+ }
25
+ else if (entry.endsWith('.skill.json')) {
26
+ results.push(relPath);
27
+ }
28
+ }
29
+ catch {
30
+ // Skip entries we can't stat
31
+ }
52
32
  }
53
33
  }
54
- return null;
55
- }
56
- refresh() {
57
- this.loaded = false;
58
- this.records.clear();
59
- this.aliasMap.clear();
60
- this.ensureLoaded();
34
+ catch {
35
+ // Directory doesn't exist or can't be read
36
+ }
61
37
  }
62
- ensureLoaded() {
63
- if (this.loaded) {
38
+ scanDir(options.cwd);
39
+ return results;
40
+ }
41
+ const __filename = fileURLToPath(import.meta.url);
42
+ const __dirname = dirname(__filename);
43
+ export class SkillRepository {
44
+ skills = new Map();
45
+ skillPatterns = new Map();
46
+ constructor(_options = {}) {
47
+ // Options reserved for future extension (workspace paths, etc.)
48
+ this.loadBuiltInSkills();
49
+ }
50
+ /**
51
+ * Load built-in skills from the skills directory
52
+ */
53
+ loadBuiltInSkills() {
54
+ const skillsDir = join(__dirname, '..', '..', 'skills');
55
+ if (!existsSync(skillsDir)) {
56
+ console.warn('Skills directory not found:', skillsDir);
64
57
  return;
65
58
  }
66
- const roots = this.collectSearchRoots();
67
- const seenPaths = new Set();
68
- for (const root of roots) {
69
- if (!existsSync(root.path)) {
70
- continue;
71
- }
72
- const stat = statSync(root.path);
73
- if (!stat.isDirectory()) {
74
- continue;
75
- }
76
- const matches = globSync(`**/${SKILL_FILE_NAME}`, {
77
- cwd: root.path,
78
- absolute: true,
79
- nocase: true,
80
- ignore: DEFAULT_IGNORES,
81
- });
82
- for (const file of matches) {
83
- const normalized = resolve(file);
84
- if (seenPaths.has(normalized)) {
85
- continue;
59
+ try {
60
+ const skillFiles = globSync('**/*.skill.json', { cwd: skillsDir });
61
+ for (const skillFile of skillFiles) {
62
+ try {
63
+ const skillPath = join(skillsDir, skillFile);
64
+ const skillData = JSON.parse(readFileSync(skillPath, 'utf8'));
65
+ if (this.validateSkill(skillData)) {
66
+ this.skills.set(skillData.id, skillData);
67
+ // Compile pattern for matching
68
+ if (skillData.implementation.pattern) {
69
+ this.skillPatterns.set(skillData.id, new RegExp(skillData.implementation.pattern, 'i'));
70
+ }
71
+ }
72
+ }
73
+ catch (error) {
74
+ console.warn(`Failed to load skill from ${skillFile}:`, error);
86
75
  }
87
- seenPaths.add(normalized);
88
- this.ingestSkillFile(normalized, root);
89
76
  }
90
77
  }
91
- this.loaded = true;
92
- }
93
- collectSearchRoots() {
94
- const roots = [];
95
- let priority = 1000;
96
- // Workspace-relative defaults
97
- for (const dir of DEFAULT_SKILL_DIRS) {
98
- roots.push({
99
- path: resolve(this.workingDir, dir),
100
- source: 'workspace',
101
- label: `workspace:${dir}`,
102
- priority: priority--,
103
- });
104
- }
105
- // Scan entire workspace for SKILL.md so we pick up nested plugin directories
106
- roots.push({
107
- path: this.workingDir,
108
- source: 'workspace',
109
- label: 'workspace',
110
- priority: priority--,
111
- });
112
- // Home directories (~/.claude/skills, ~/.erosolar/skills)
113
- for (const dir of DEFAULT_SKILL_DIRS) {
114
- roots.push({
115
- path: resolve(this.homeDir, dir),
116
- source: 'home',
117
- label: `home:${dir}`,
118
- priority: priority--,
119
- });
120
- }
121
- // Custom directories from env
122
- const envDirs = (this.env['EROSOLAR_SKILLS_DIRS'] ?? '')
123
- .split(process.platform === 'win32' ? ';' : ':')
124
- .map((value) => value.trim())
125
- .filter(Boolean);
126
- for (const entry of [...this.extraPaths, ...envDirs]) {
127
- roots.push({
128
- path: resolve(entry),
129
- source: 'custom',
130
- label: entry,
131
- priority: priority--,
132
- });
78
+ catch (error) {
79
+ console.warn('Failed to scan skills directory:', error);
80
+ }
81
+ }
82
+ /**
83
+ * Validate skill structure
84
+ */
85
+ validateSkill(skill) {
86
+ return (typeof skill.id === 'string' &&
87
+ typeof skill.name === 'string' &&
88
+ typeof skill.description === 'string' &&
89
+ typeof skill.category === 'string' &&
90
+ Array.isArray(skill.tags) &&
91
+ Array.isArray(skill.examples) &&
92
+ skill.implementation &&
93
+ typeof skill.implementation.pattern === 'string');
94
+ }
95
+ /**
96
+ * Get all available skills
97
+ */
98
+ getAllSkills() {
99
+ return Array.from(this.skills.values());
100
+ }
101
+ /**
102
+ * Get skill by ID
103
+ */
104
+ getSkill(id) {
105
+ return this.skills.get(id);
106
+ }
107
+ /**
108
+ * Find skills by category
109
+ */
110
+ getSkillsByCategory(category) {
111
+ return this.getAllSkills().filter(skill => skill.category.toLowerCase() === category.toLowerCase());
112
+ }
113
+ /**
114
+ * Find skills by tag
115
+ */
116
+ getSkillsByTag(tag) {
117
+ return this.getAllSkills().filter(skill => skill.tags.some(t => t.toLowerCase() === tag.toLowerCase()));
118
+ }
119
+ /**
120
+ * Search skills by name or description
121
+ */
122
+ searchSkills(query) {
123
+ const lowerQuery = query.toLowerCase();
124
+ return this.getAllSkills().filter(skill => skill.name.toLowerCase().includes(lowerQuery) ||
125
+ skill.description.toLowerCase().includes(lowerQuery) ||
126
+ skill.tags.some(tag => tag.toLowerCase().includes(lowerQuery)));
127
+ }
128
+ /**
129
+ * Match input against skill patterns
130
+ */
131
+ matchSkills(input) {
132
+ const matches = [];
133
+ for (const [skillId, pattern] of this.skillPatterns) {
134
+ const skill = this.skills.get(skillId);
135
+ if (!skill)
136
+ continue;
137
+ const match = pattern.exec(input);
138
+ if (match) {
139
+ // Calculate confidence based on match length and input length
140
+ const confidence = Math.min(match[0].length / input.length, 1);
141
+ matches.push({ skill, confidence });
142
+ }
133
143
  }
134
- // Sort by precedence so earlier directories win on collisions
135
- roots.sort((a, b) => b.priority - a.priority);
136
- return roots;
144
+ // Sort by confidence (descending)
145
+ return matches.sort((a, b) => b.confidence - a.confidence);
137
146
  }
138
- ingestSkillFile(filePath, root) {
147
+ /**
148
+ * Execute a skill
149
+ */
150
+ async executeSkill(skillId, input) {
151
+ const startTime = Date.now();
139
152
  try {
140
- const parsed = this.parseSkillFile(filePath, root);
141
- if (!parsed) {
142
- return;
153
+ const skill = this.getSkill(skillId);
154
+ if (!skill) {
155
+ return {
156
+ success: false,
157
+ error: `Skill not found: ${skillId}`,
158
+ duration: Date.now() - startTime
159
+ };
143
160
  }
144
- if (this.records.has(parsed.id)) {
145
- return;
161
+ let output = input;
162
+ // Apply transformation if defined
163
+ if (skill.implementation.transform) {
164
+ // In a real implementation, this would execute the transformation
165
+ // For now, we'll return a placeholder
166
+ output = `[Transformed by ${skill.name}] ${JSON.stringify(input)}`;
146
167
  }
147
- this.records.set(parsed.id, parsed);
148
- for (const alias of parsed.aliases) {
149
- if (!this.aliasMap.has(alias)) {
150
- this.aliasMap.set(alias, parsed.id);
151
- }
168
+ // Apply template if defined
169
+ if (skill.implementation.template) {
170
+ output = skill.implementation.template.replace('{{input}}', JSON.stringify(input));
152
171
  }
153
- }
154
- catch {
155
- // Ignore malformed skills
156
- }
157
- }
158
- parseSkillFile(filePath, root) {
159
- if (!existsSync(filePath)) {
160
- return null;
161
- }
162
- const directory = dirname(filePath);
163
- const content = readFileSync(filePath, 'utf8');
164
- const parsed = this.extractSkillContent(content);
165
- if (!parsed) {
166
- return null;
167
- }
168
- const relativePathFromWorkspace = this.safeRelative(this.workingDir, directory);
169
- const skillDirName = directory.split(sep).pop() || 'skill';
170
- const directorySlug = toSlug(skillDirName);
171
- const nameSlug = parsed.name ? toSlug(parsed.name) : '';
172
- const slug = directorySlug || nameSlug || 'skill';
173
- const namespace = this.buildNamespace(root.path, directory);
174
- const id = namespace ? `${namespace}:${slug}` : slug;
175
- const resources = this.collectResourceDirectory(directory);
176
- const record = {
177
- id,
178
- slug,
179
- name: parsed.name,
180
- description: parsed.description,
181
- version: parsed.version,
182
- namespace: namespace || undefined,
183
- source: root.source,
184
- sourceLabel: root.label,
185
- location: directory,
186
- relativeLocation: relativePathFromWorkspace ?? undefined,
187
- hasBody: Boolean(parsed.body.trim()),
188
- hasReferences: resources.references.length > 0,
189
- hasScripts: resources.scripts.length > 0,
190
- hasAssets: resources.assets.length > 0,
191
- body: parsed.body.trim(),
192
- frontMatter: parsed.frontMatter,
193
- references: resources.references,
194
- scripts: resources.scripts,
195
- assets: resources.assets,
196
- filePath,
197
- aliases: this.buildAliases({
198
- id,
199
- slug,
200
- name: parsed.name,
201
- namespace,
202
- relativeLocation: relativePathFromWorkspace ?? '',
203
- location: directory,
204
- sourceLabel: root.label,
205
- }),
206
- };
207
- return record;
208
- }
209
- collectResourceDirectory(skillDir) {
172
+ return {
173
+ success: true,
174
+ output,
175
+ duration: Date.now() - startTime
176
+ };
177
+ }
178
+ catch (error) {
179
+ return {
180
+ success: false,
181
+ error: error instanceof Error ? error.message : String(error),
182
+ duration: Date.now() - startTime
183
+ };
184
+ }
185
+ }
186
+ /**
187
+ * Get skill statistics
188
+ */
189
+ getStatistics() {
190
+ const skills = this.getAllSkills();
191
+ const categories = new Set(skills.map(s => s.category));
192
+ const tags = new Set(skills.flatMap(s => s.tags));
210
193
  return {
211
- references: this.listFiles(join(skillDir, 'references')),
212
- scripts: this.listFiles(join(skillDir, 'scripts')),
213
- assets: this.listFiles(join(skillDir, 'assets')),
194
+ totalSkills: skills.length,
195
+ totalCategories: categories.size,
196
+ totalTags: tags.size,
197
+ categories: Array.from(categories),
198
+ mostCommonTags: this.getMostCommonTags()
214
199
  };
215
200
  }
216
- listFiles(dir) {
217
- if (!existsSync(dir)) {
218
- return [];
219
- }
220
- const stat = statSync(dir);
221
- if (!stat.isDirectory()) {
222
- return [];
223
- }
224
- const entries = [];
225
- const visit = (current, prefix) => {
226
- for (const child of readdirSync(current, { withFileTypes: true })) {
227
- const childPath = join(current, child.name);
228
- const relativePath = prefix ? `${prefix}/${child.name}` : child.name;
229
- if (child.isDirectory()) {
230
- visit(childPath, relativePath);
231
- }
232
- else if (child.isFile()) {
233
- const size = statSync(childPath).size;
234
- entries.push({ path: relativePath, bytes: size });
235
- }
201
+ /**
202
+ * Get most common tags
203
+ */
204
+ getMostCommonTags() {
205
+ const tagCounts = new Map();
206
+ for (const skill of this.getAllSkills()) {
207
+ for (const tag of skill.tags) {
208
+ tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1);
236
209
  }
237
- };
238
- visit(dir, '');
239
- return entries.sort((a, b) => a.path.localeCompare(b.path));
240
- }
241
- buildNamespace(rootPath, directory) {
242
- const relativePath = this.safeRelative(rootPath, directory);
243
- if (!relativePath) {
244
- return null;
245
- }
246
- const segments = relativePath.split(/[\\/]+/).filter(Boolean);
247
- if (segments.length <= 1) {
248
- return null;
249
- }
250
- const namespaceSegments = segments.slice(0, segments.length - 1);
251
- if (namespaceSegments.length && namespaceSegments[namespaceSegments.length - 1]?.toLowerCase() === 'skills') {
252
- namespaceSegments.pop();
253
- }
254
- if (!namespaceSegments.length) {
255
- return null;
256
- }
257
- return namespaceSegments
258
- .map((segment) => toSlug(segment))
259
- .filter(Boolean)
260
- .join(':');
261
- }
262
- safeRelative(base, target) {
263
- const rel = relative(base, target);
264
- if (!rel || rel.startsWith('..') || isAbsolute(rel)) {
265
- return null;
266
- }
267
- return rel.replace(/\\/g, '/');
268
- }
269
- buildAliases(metadata) {
270
- const aliases = new Set();
271
- aliases.add(metadata.id.toLowerCase());
272
- aliases.add(metadata.slug.toLowerCase());
273
- aliases.add(metadata.name.trim().toLowerCase());
274
- if (metadata.namespace) {
275
- aliases.add(metadata.namespace.toLowerCase());
276
- aliases.add(`${metadata.namespace.toLowerCase()}:${metadata.slug.toLowerCase()}`);
277
- }
278
- if (metadata.relativeLocation) {
279
- aliases.add(metadata.relativeLocation.toLowerCase());
280
210
  }
281
- aliases.add(metadata.location.toLowerCase());
282
- aliases.add(metadata.sourceLabel.toLowerCase());
283
- return Array.from(aliases).filter(Boolean);
211
+ return Array.from(tagCounts.entries())
212
+ .map(([tag, count]) => ({ tag, count }))
213
+ .sort((a, b) => b.count - a.count)
214
+ .slice(0, 10);
284
215
  }
285
- extractSkillContent(raw) {
286
- const trimmed = raw.trim();
287
- if (!trimmed) {
288
- return null;
289
- }
290
- let frontMatter = {};
291
- let body = trimmed;
292
- const fmMatch = /^---\s*\r?\n([\s\S]*?)\r?\n---\s*/.exec(trimmed);
293
- if (fmMatch) {
294
- frontMatter = this.parseFrontMatterBlock(fmMatch[1] ?? '');
295
- body = trimmed.slice(fmMatch[0].length).trim();
296
- }
297
- const name = frontMatter['name'] ?? 'Skill';
298
- const description = frontMatter['description'] ??
299
- 'Skill documentation lacked a description. Update SKILL.md front matter to include one.';
300
- return {
301
- name,
302
- description,
303
- version: frontMatter['version'],
304
- frontMatter,
305
- body,
306
- };
307
- }
308
- parseFrontMatterBlock(block) {
309
- const metadata = {};
310
- for (const rawLine of block.split('\n')) {
311
- const line = rawLine.trim();
312
- if (!line || line.startsWith('#')) {
313
- continue;
314
- }
315
- const separatorIndex = line.indexOf(':');
316
- if (separatorIndex === -1) {
317
- continue;
318
- }
319
- const key = line.slice(0, separatorIndex).trim();
320
- const value = line.slice(separatorIndex + 1).trim().replace(/^['"]|['"]$/g, '');
321
- if (key) {
322
- metadata[key] = value;
323
- }
324
- }
325
- return metadata;
216
+ // Compatibility methods for existing tools
217
+ listSkills() {
218
+ return this.getAllSkills().map(skill => ({
219
+ id: skill.id,
220
+ name: skill.name,
221
+ description: skill.description,
222
+ category: skill.category,
223
+ tags: skill.tags
224
+ }));
326
225
  }
327
- toSummary(record) {
328
- return {
329
- id: record.id,
330
- slug: record.slug,
331
- name: record.name,
332
- description: record.description,
333
- version: record.version,
334
- namespace: record.namespace,
335
- source: record.source,
336
- sourceLabel: record.sourceLabel,
337
- location: record.location,
338
- relativeLocation: record.relativeLocation,
339
- hasBody: record.hasBody,
340
- hasReferences: record.hasReferences,
341
- hasScripts: record.hasScripts,
342
- hasAssets: record.hasAssets,
343
- };
226
+ refresh() {
227
+ // Clear and reload skills
228
+ this.skills.clear();
229
+ this.skillPatterns.clear();
230
+ this.loadBuiltInSkills();
344
231
  }
345
232
  }
346
- function toSlug(value) {
347
- return value
348
- .trim()
349
- .toLowerCase()
350
- .replace(/[^a-z0-9]+/g, '-')
351
- .replace(/^-+|-+$/g, '') || 'skill';
352
- }
233
+ // ============================================================================
234
+ // Default Instance
235
+ // ============================================================================
236
+ export const skillRepository = new SkillRepository();
353
237
  //# sourceMappingURL=skillRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skillRepository.js","sourceRoot":"","sources":["../../src/skills/skillRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skillRepository.js","sourceRoot":"","sources":["../../src/skills/skillRepository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skillTools.d.ts","sourceRoot":"","sources":["../../src/tools/skillTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,UAAU,gBAAgB;IACxB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,EAAE,CA4F5E"}
1
+ {"version":3,"file":"skillTools.d.ts","sourceRoot":"","sources":["../../src/tools/skillTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAG3E,UAAU,gBAAgB;IACxB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,EAAE,CA6F5E"}