@skillsmith/core 0.2.0 → 2.0.1

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 (241) hide show
  1. package/README.md +235 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/analysis/__tests__/incremental.test.d.ts +13 -0
  4. package/dist/src/analysis/__tests__/incremental.test.d.ts.map +1 -0
  5. package/dist/src/analysis/__tests__/incremental.test.js +515 -0
  6. package/dist/src/analysis/__tests__/incremental.test.js.map +1 -0
  7. package/dist/src/analysis/__tests__/integration.test.d.ts +14 -0
  8. package/dist/src/analysis/__tests__/integration.test.d.ts.map +1 -0
  9. package/dist/src/analysis/__tests__/integration.test.js +1059 -0
  10. package/dist/src/analysis/__tests__/integration.test.js.map +1 -0
  11. package/dist/src/analysis/__tests__/metrics.test.d.ts +9 -0
  12. package/dist/src/analysis/__tests__/metrics.test.d.ts.map +1 -0
  13. package/dist/src/analysis/__tests__/metrics.test.js +369 -0
  14. package/dist/src/analysis/__tests__/metrics.test.js.map +1 -0
  15. package/dist/src/analysis/__tests__/performance.test.d.ts +15 -0
  16. package/dist/src/analysis/__tests__/performance.test.d.ts.map +1 -0
  17. package/dist/src/analysis/__tests__/performance.test.js +402 -0
  18. package/dist/src/analysis/__tests__/performance.test.js.map +1 -0
  19. package/dist/src/analysis/adapters/__tests__/go.test.d.ts +12 -0
  20. package/dist/src/analysis/adapters/__tests__/go.test.d.ts.map +1 -0
  21. package/dist/src/analysis/adapters/__tests__/go.test.js +561 -0
  22. package/dist/src/analysis/adapters/__tests__/go.test.js.map +1 -0
  23. package/dist/src/analysis/adapters/__tests__/python.test.d.ts +11 -0
  24. package/dist/src/analysis/adapters/__tests__/python.test.d.ts.map +1 -0
  25. package/dist/src/analysis/adapters/__tests__/python.test.js +669 -0
  26. package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -0
  27. package/dist/src/analysis/adapters/__tests__/rust.test.d.ts +12 -0
  28. package/dist/src/analysis/adapters/__tests__/rust.test.d.ts.map +1 -0
  29. package/dist/src/analysis/adapters/__tests__/rust.test.js +676 -0
  30. package/dist/src/analysis/adapters/__tests__/rust.test.js.map +1 -0
  31. package/dist/src/analysis/adapters/__tests__/typescript.test.d.ts +14 -0
  32. package/dist/src/analysis/adapters/__tests__/typescript.test.d.ts.map +1 -0
  33. package/dist/src/analysis/adapters/__tests__/typescript.test.js +381 -0
  34. package/dist/src/analysis/adapters/__tests__/typescript.test.js.map +1 -0
  35. package/dist/src/analysis/adapters/base.d.ts +83 -0
  36. package/dist/src/analysis/adapters/base.d.ts.map +1 -0
  37. package/dist/src/analysis/adapters/base.js +40 -0
  38. package/dist/src/analysis/adapters/base.js.map +1 -0
  39. package/dist/src/analysis/adapters/factory.d.ts +150 -0
  40. package/dist/src/analysis/adapters/factory.d.ts.map +1 -0
  41. package/dist/src/analysis/adapters/factory.js +244 -0
  42. package/dist/src/analysis/adapters/factory.js.map +1 -0
  43. package/dist/src/analysis/adapters/go.d.ts +131 -0
  44. package/dist/src/analysis/adapters/go.d.ts.map +1 -0
  45. package/dist/src/analysis/adapters/go.js +414 -0
  46. package/dist/src/analysis/adapters/go.js.map +1 -0
  47. package/dist/src/analysis/adapters/index.d.ts +20 -0
  48. package/dist/src/analysis/adapters/index.d.ts.map +1 -0
  49. package/dist/src/analysis/adapters/index.js +23 -0
  50. package/dist/src/analysis/adapters/index.js.map +1 -0
  51. package/dist/src/analysis/adapters/java.d.ts +154 -0
  52. package/dist/src/analysis/adapters/java.d.ts.map +1 -0
  53. package/dist/src/analysis/adapters/java.js +407 -0
  54. package/dist/src/analysis/adapters/java.js.map +1 -0
  55. package/dist/src/analysis/adapters/python.d.ts +165 -0
  56. package/dist/src/analysis/adapters/python.d.ts.map +1 -0
  57. package/dist/src/analysis/adapters/python.js +475 -0
  58. package/dist/src/analysis/adapters/python.js.map +1 -0
  59. package/dist/src/analysis/adapters/rust.d.ts +116 -0
  60. package/dist/src/analysis/adapters/rust.d.ts.map +1 -0
  61. package/dist/src/analysis/adapters/rust.js +476 -0
  62. package/dist/src/analysis/adapters/rust.js.map +1 -0
  63. package/dist/src/analysis/adapters/typescript.d.ts +68 -0
  64. package/dist/src/analysis/adapters/typescript.d.ts.map +1 -0
  65. package/dist/src/analysis/adapters/typescript.js +79 -0
  66. package/dist/src/analysis/adapters/typescript.js.map +1 -0
  67. package/dist/src/analysis/aggregator.d.ts +193 -0
  68. package/dist/src/analysis/aggregator.d.ts.map +1 -0
  69. package/dist/src/analysis/aggregator.js +283 -0
  70. package/dist/src/analysis/aggregator.js.map +1 -0
  71. package/dist/src/analysis/cache.d.ts +180 -0
  72. package/dist/src/analysis/cache.d.ts.map +1 -0
  73. package/dist/src/analysis/cache.js +279 -0
  74. package/dist/src/analysis/cache.js.map +1 -0
  75. package/dist/src/analysis/file-streamer.d.ts +136 -0
  76. package/dist/src/analysis/file-streamer.d.ts.map +1 -0
  77. package/dist/src/analysis/file-streamer.js +291 -0
  78. package/dist/src/analysis/file-streamer.js.map +1 -0
  79. package/dist/src/analysis/incremental-parser.d.ts +186 -0
  80. package/dist/src/analysis/incremental-parser.d.ts.map +1 -0
  81. package/dist/src/analysis/incremental-parser.js +291 -0
  82. package/dist/src/analysis/incremental-parser.js.map +1 -0
  83. package/dist/src/analysis/incremental.d.ts +186 -0
  84. package/dist/src/analysis/incremental.d.ts.map +1 -0
  85. package/dist/src/analysis/incremental.js +247 -0
  86. package/dist/src/analysis/incremental.js.map +1 -0
  87. package/dist/src/analysis/index.d.ts +25 -3
  88. package/dist/src/analysis/index.d.ts.map +1 -1
  89. package/dist/src/analysis/index.js +45 -3
  90. package/dist/src/analysis/index.js.map +1 -1
  91. package/dist/src/analysis/language-detector.d.ts +92 -0
  92. package/dist/src/analysis/language-detector.d.ts.map +1 -0
  93. package/dist/src/analysis/language-detector.js +602 -0
  94. package/dist/src/analysis/language-detector.js.map +1 -0
  95. package/dist/src/analysis/memory-monitor.d.ts +199 -0
  96. package/dist/src/analysis/memory-monitor.d.ts.map +1 -0
  97. package/dist/src/analysis/memory-monitor.js +271 -0
  98. package/dist/src/analysis/memory-monitor.js.map +1 -0
  99. package/dist/src/analysis/metrics.d.ts +300 -0
  100. package/dist/src/analysis/metrics.d.ts.map +1 -0
  101. package/dist/src/analysis/metrics.js +537 -0
  102. package/dist/src/analysis/metrics.js.map +1 -0
  103. package/dist/src/analysis/router.d.ts +264 -0
  104. package/dist/src/analysis/router.d.ts.map +1 -0
  105. package/dist/src/analysis/router.js +398 -0
  106. package/dist/src/analysis/router.js.map +1 -0
  107. package/dist/src/analysis/tree-cache.d.ts +208 -0
  108. package/dist/src/analysis/tree-cache.d.ts.map +1 -0
  109. package/dist/src/analysis/tree-cache.js +288 -0
  110. package/dist/src/analysis/tree-cache.js.map +1 -0
  111. package/dist/src/analysis/tree-sitter/manager.d.ts +141 -0
  112. package/dist/src/analysis/tree-sitter/manager.d.ts.map +1 -0
  113. package/dist/src/analysis/tree-sitter/manager.js +239 -0
  114. package/dist/src/analysis/tree-sitter/manager.js.map +1 -0
  115. package/dist/src/analysis/types.d.ts +69 -6
  116. package/dist/src/analysis/types.d.ts.map +1 -1
  117. package/dist/src/analysis/types.js +23 -2
  118. package/dist/src/analysis/types.js.map +1 -1
  119. package/dist/src/analysis/worker-pool.d.ts +141 -0
  120. package/dist/src/analysis/worker-pool.d.ts.map +1 -0
  121. package/dist/src/analysis/worker-pool.js +418 -0
  122. package/dist/src/analysis/worker-pool.js.map +1 -0
  123. package/dist/src/analytics/schema.d.ts +1 -1
  124. package/dist/src/analytics/schema.d.ts.map +1 -1
  125. package/dist/src/analytics/schema.js +72 -0
  126. package/dist/src/analytics/schema.js.map +1 -1
  127. package/dist/src/api/cache.d.ts +24 -1
  128. package/dist/src/api/cache.d.ts.map +1 -1
  129. package/dist/src/api/cache.js +50 -2
  130. package/dist/src/api/cache.js.map +1 -1
  131. package/dist/src/api/client.d.ts +132 -2
  132. package/dist/src/api/client.d.ts.map +1 -1
  133. package/dist/src/api/client.js +214 -18
  134. package/dist/src/api/client.js.map +1 -1
  135. package/dist/src/api/index.d.ts +2 -0
  136. package/dist/src/api/index.d.ts.map +1 -1
  137. package/dist/src/api/index.js +7 -0
  138. package/dist/src/api/index.js.map +1 -1
  139. package/dist/src/api/types.d.ts +251 -0
  140. package/dist/src/api/types.d.ts.map +1 -0
  141. package/dist/src/api/types.js +9 -0
  142. package/dist/src/api/types.js.map +1 -0
  143. package/dist/src/benchmarks/memory/MemoryProfiler.d.ts.map +1 -1
  144. package/dist/src/benchmarks/memory/MemoryProfiler.js.map +1 -1
  145. package/dist/src/embeddings/index.d.ts.map +1 -1
  146. package/dist/src/embeddings/index.js.map +1 -1
  147. package/dist/src/errors.d.ts +1 -0
  148. package/dist/src/errors.d.ts.map +1 -1
  149. package/dist/src/errors.js +1 -0
  150. package/dist/src/errors.js.map +1 -1
  151. package/dist/src/index.d.ts +3 -3
  152. package/dist/src/index.d.ts.map +1 -1
  153. package/dist/src/index.js +4 -4
  154. package/dist/src/index.js.map +1 -1
  155. package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
  156. package/dist/src/repositories/IndexerRepository.js +1 -0
  157. package/dist/src/repositories/IndexerRepository.js.map +1 -1
  158. package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
  159. package/dist/src/repositories/SkillRepository.js +1 -0
  160. package/dist/src/repositories/SkillRepository.js.map +1 -1
  161. package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -1
  162. package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -1
  163. package/dist/src/repositories/quarantine/query-builder.d.ts.map +1 -1
  164. package/dist/src/repositories/quarantine/query-builder.js +1 -1
  165. package/dist/src/repositories/quarantine/query-builder.js.map +1 -1
  166. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +3 -3
  167. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  168. package/dist/src/scripts/github-import/github-client.d.ts +6 -2
  169. package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
  170. package/dist/src/scripts/github-import/github-client.js +190 -4
  171. package/dist/src/scripts/github-import/github-client.js.map +1 -1
  172. package/dist/src/scripts/github-import/index.js.map +1 -1
  173. package/dist/src/scripts/github-import/types.d.ts +6 -0
  174. package/dist/src/scripts/github-import/types.d.ts.map +1 -1
  175. package/dist/src/scripts/github-import/types.js +3 -0
  176. package/dist/src/scripts/github-import/types.js.map +1 -1
  177. package/dist/src/scripts/import-github-skills.js +10 -5
  178. package/dist/src/scripts/import-github-skills.js.map +1 -1
  179. package/dist/src/scripts/skill-scanner/reporter.d.ts.map +1 -1
  180. package/dist/src/scripts/skill-scanner/reporter.js.map +1 -1
  181. package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -1
  182. package/dist/src/scripts/skill-scanner/scanner.js.map +1 -1
  183. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -1
  184. package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -1
  185. package/dist/src/scripts/validation/index.js +1 -2
  186. package/dist/src/scripts/validation/index.js.map +1 -1
  187. package/dist/src/scripts/validation/pipeline.d.ts.map +1 -1
  188. package/dist/src/scripts/validation/pipeline.js.map +1 -1
  189. package/dist/src/scripts/validation/types.d.ts +2 -2
  190. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  191. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  192. package/dist/src/services/SearchService.d.ts.map +1 -1
  193. package/dist/src/services/SearchService.js +1 -0
  194. package/dist/src/services/SearchService.js.map +1 -1
  195. package/dist/src/session/SessionHealthMonitor.d.ts +1 -1
  196. package/dist/src/session/SessionHealthMonitor.d.ts.map +1 -1
  197. package/dist/src/session/SessionHealthMonitor.js +1 -1
  198. package/dist/src/session/SessionHealthMonitor.js.map +1 -1
  199. package/dist/src/telemetry/index.d.ts +1 -1
  200. package/dist/src/telemetry/index.d.ts.map +1 -1
  201. package/dist/src/telemetry/index.js +2 -2
  202. package/dist/src/telemetry/index.js.map +1 -1
  203. package/dist/src/telemetry/posthog.d.ts +27 -5
  204. package/dist/src/telemetry/posthog.d.ts.map +1 -1
  205. package/dist/src/telemetry/posthog.js +20 -5
  206. package/dist/src/telemetry/posthog.js.map +1 -1
  207. package/dist/src/types/skill.d.ts +3 -0
  208. package/dist/src/types/skill.d.ts.map +1 -1
  209. package/dist/src/types.d.ts +2 -1
  210. package/dist/src/types.d.ts.map +1 -1
  211. package/dist/src/types.js +2 -2
  212. package/dist/src/types.js.map +1 -1
  213. package/dist/tests/adapters-factory.test.d.ts +13 -0
  214. package/dist/tests/adapters-factory.test.d.ts.map +1 -0
  215. package/dist/tests/adapters-factory.test.js +308 -0
  216. package/dist/tests/adapters-factory.test.js.map +1 -0
  217. package/dist/tests/adapters-java.test.d.ts +13 -0
  218. package/dist/tests/adapters-java.test.d.ts.map +1 -0
  219. package/dist/tests/adapters-java.test.js +925 -0
  220. package/dist/tests/adapters-java.test.js.map +1 -0
  221. package/dist/tests/api/client.validation.test.d.ts +7 -0
  222. package/dist/tests/api/client.validation.test.d.ts.map +1 -0
  223. package/dist/tests/api/client.validation.test.js +183 -0
  224. package/dist/tests/api/client.validation.test.js.map +1 -0
  225. package/dist/tests/language-detector.test.d.ts +13 -0
  226. package/dist/tests/language-detector.test.d.ts.map +1 -0
  227. package/dist/tests/language-detector.test.js +674 -0
  228. package/dist/tests/language-detector.test.js.map +1 -0
  229. package/dist/tests/telemetry/posthog.test.d.ts +13 -0
  230. package/dist/tests/telemetry/posthog.test.d.ts.map +1 -0
  231. package/dist/tests/telemetry/posthog.test.js +600 -0
  232. package/dist/tests/telemetry/posthog.test.js.map +1 -0
  233. package/package.json +6 -6
  234. package/dist/src/security/RateLimiter.d.ts +0 -337
  235. package/dist/src/security/RateLimiter.d.ts.map +0 -1
  236. package/dist/src/security/RateLimiter.js +0 -782
  237. package/dist/src/security/RateLimiter.js.map +0 -1
  238. package/dist/src/security/scanner.d.ts +0 -151
  239. package/dist/src/security/scanner.d.ts.map +0 -1
  240. package/dist/src/security/scanner.js +0 -599
  241. package/dist/src/security/scanner.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @skillsmith/core
2
2
 
3
- Core library for Skillsmith - provides database operations, search services, caching, security, and analytics for Claude Code skill discovery.
3
+ Core library for Skillsmith - provides database operations, search services, caching, security, analytics, and **multi-language codebase analysis** for Claude Code skill discovery.
4
+
5
+ **v2.0.0** introduces multi-language support for analyzing TypeScript, JavaScript, Python, Go, Rust, and Java codebases.
4
6
 
5
7
  ## Installation
6
8
 
@@ -33,6 +35,34 @@ const results = await searchService.search({
33
35
  })
34
36
  ```
35
37
 
38
+ ## Live API
39
+
40
+ As of v0.2.0, Skillsmith uses a live API at `api.skillsmith.app` to serve skills.
41
+
42
+ ### Configuration
43
+
44
+ ```bash
45
+ # Use default API (recommended)
46
+ # No configuration needed
47
+
48
+ # Custom API URL
49
+ export SKILLSMITH_API_URL=https://your-api.example.com
50
+
51
+ # Offline mode (use local database)
52
+ export SKILLSMITH_OFFLINE_MODE=true
53
+ ```
54
+
55
+ ### Telemetry
56
+
57
+ Skillsmith collects anonymous usage data to improve the product.
58
+ To opt out:
59
+
60
+ ```bash
61
+ export SKILLSMITH_TELEMETRY=false
62
+ ```
63
+
64
+ See [PRIVACY.md](./PRIVACY.md) for details on what data is collected.
65
+
36
66
  ## Features
37
67
 
38
68
  ### Database Operations
@@ -198,6 +228,178 @@ class MyService {
198
228
  }
199
229
  ```
200
230
 
231
+ ### Multi-Language Codebase Analysis (v2.0.0)
232
+
233
+ Analyze codebases in TypeScript, JavaScript, Python, Go, Rust, and Java.
234
+
235
+ ```typescript
236
+ import { CodebaseAnalyzer } from '@skillsmith/core'
237
+
238
+ const analyzer = new CodebaseAnalyzer()
239
+ const context = await analyzer.analyze('/path/to/project')
240
+
241
+ // Languages detected
242
+ console.log(context.metadata.languages)
243
+ // ['typescript', 'python', 'go']
244
+
245
+ // Files by language
246
+ console.log(context.stats.filesByLanguage)
247
+ // { typescript: 45, python: 23, go: 12 }
248
+
249
+ // Detected frameworks across all languages
250
+ console.log(context.frameworks)
251
+ // [{ name: 'React', confidence: 0.95 }, { name: 'Django', confidence: 0.9 }]
252
+
253
+ analyzer.dispose()
254
+ ```
255
+
256
+ #### Language Router
257
+
258
+ Route files to appropriate language adapters:
259
+
260
+ ```typescript
261
+ import {
262
+ LanguageRouter,
263
+ TypeScriptAdapter,
264
+ PythonAdapter,
265
+ GoAdapter,
266
+ RustAdapter,
267
+ JavaAdapter,
268
+ } from '@skillsmith/core'
269
+
270
+ const router = new LanguageRouter()
271
+ router.registerAdapter(new TypeScriptAdapter())
272
+ router.registerAdapter(new PythonAdapter())
273
+ router.registerAdapter(new GoAdapter())
274
+ router.registerAdapter(new RustAdapter())
275
+ router.registerAdapter(new JavaAdapter())
276
+
277
+ // Check if file is supported
278
+ router.canHandle('main.py') // true
279
+ router.getLanguage('main.go') // 'go'
280
+
281
+ // Parse a file
282
+ const result = router.parseFile(content, 'main.py')
283
+ console.log(result.imports, result.exports, result.functions)
284
+
285
+ router.dispose()
286
+ ```
287
+
288
+ #### Parse Caching
289
+
290
+ Cache parse results for improved performance:
291
+
292
+ ```typescript
293
+ import { ParseCache } from '@skillsmith/core'
294
+
295
+ const cache = new ParseCache({ maxMemoryMB: 100 })
296
+
297
+ // Check cache before parsing
298
+ const cached = cache.get('src/main.ts', content)
299
+ if (cached) {
300
+ return cached
301
+ }
302
+
303
+ // Parse and cache
304
+ const result = adapter.parseFile(content, 'src/main.ts')
305
+ cache.set('src/main.ts', content, result)
306
+
307
+ // View cache statistics
308
+ console.log(cache.getStats())
309
+ // { size: 1048576, entries: 50, maxSize: 104857600, hitRate: 0.85 }
310
+ ```
311
+
312
+ #### Incremental Parsing
313
+
314
+ Efficiently parse changes:
315
+
316
+ ```typescript
317
+ import { IncrementalParser, TypeScriptAdapter } from '@skillsmith/core'
318
+
319
+ const parser = new IncrementalParser({ maxTrees: 50 })
320
+ const adapter = new TypeScriptAdapter()
321
+
322
+ // First parse (full)
323
+ const result1 = parser.parse('src/main.ts', content1, adapter)
324
+ console.log(result1.wasIncremental) // false
325
+
326
+ // Second parse with small change (incremental, <100ms)
327
+ const result2 = parser.parse('src/main.ts', content2, adapter)
328
+ console.log(result2.wasIncremental) // true
329
+
330
+ parser.dispose()
331
+ ```
332
+
333
+ #### Parallel Parsing
334
+
335
+ Parse large codebases in parallel:
336
+
337
+ ```typescript
338
+ import { ParserWorkerPool } from '@skillsmith/core'
339
+
340
+ const pool = new ParserWorkerPool({ poolSize: 4 })
341
+
342
+ const tasks = files.map(f => ({
343
+ filePath: f.path,
344
+ content: f.content,
345
+ language: 'typescript'
346
+ }))
347
+
348
+ const results = await pool.parseFiles(tasks)
349
+ console.log(`Parsed ${results.length} files`)
350
+
351
+ pool.dispose()
352
+ ```
353
+
354
+ #### Dependency Parsers
355
+
356
+ Parse language-specific dependency files:
357
+
358
+ ```typescript
359
+ import {
360
+ parseGoMod,
361
+ parseCargoToml,
362
+ parsePomXml,
363
+ parseBuildGradle,
364
+ } from '@skillsmith/core'
365
+
366
+ // Go dependencies
367
+ const goMod = parseGoMod(goModContent)
368
+ console.log(goMod.module) // "github.com/user/project"
369
+ console.log(goMod.require) // [{ path: "...", version: "..." }]
370
+
371
+ // Rust dependencies
372
+ const cargo = parseCargoToml(cargoTomlContent)
373
+ // [{ name: "serde", version: "1.0", isDev: false }]
374
+
375
+ // Java Maven dependencies
376
+ const maven = parsePomXml(pomXmlContent)
377
+ // [{ name: "org.springframework:spring-core", version: "5.3.0", isDev: false }]
378
+
379
+ // Java Gradle dependencies
380
+ const gradle = parseBuildGradle(buildGradleContent)
381
+ // [{ name: "org.springframework:spring-core", version: "5.3.0", isDev: false }]
382
+ ```
383
+
384
+ #### Supported Languages & Frameworks
385
+
386
+ | Language | Extensions | Frameworks Detected |
387
+ |----------|------------|---------------------|
388
+ | TypeScript/JS | `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.cjs` | React, Vue, Angular, Next.js, Express, Nest.js, Jest, Vitest |
389
+ | Python | `.py`, `.pyi`, `.pyw` | Django, FastAPI, Flask, pytest, pandas, numpy |
390
+ | Go | `.go` | Gin, Echo, Fiber, GORM, Cobra, gRPC, testify |
391
+ | Rust | `.rs` | Actix, Rocket, Axum, Tokio, Serde, Diesel, SQLx |
392
+ | Java | `.java` | Spring Boot, Quarkus, Micronaut, JUnit, Hibernate, Lombok |
393
+
394
+ #### Performance
395
+
396
+ | Metric | Target |
397
+ |--------|--------|
398
+ | 10k file analysis | <5 seconds |
399
+ | Incremental parse | <100ms |
400
+ | Cache hit rate | >80% |
401
+ | Memory efficiency | LRU eviction |
402
+
201
403
  ## Exports
202
404
 
203
405
  The package provides multiple entry points:
@@ -211,6 +413,35 @@ import { SkillsmithError, ValidationError } from '@skillsmith/core/errors'
211
413
 
212
414
  // Embeddings (lazy-loaded to avoid startup overhead)
213
415
  import { EmbeddingService } from '@skillsmith/core/embeddings'
416
+
417
+ // Analysis module (v2.0.0)
418
+ import {
419
+ CodebaseAnalyzer,
420
+ LanguageRouter,
421
+ ParseCache,
422
+ TreeCache,
423
+ IncrementalParser,
424
+ ParserWorkerPool,
425
+ MemoryMonitor,
426
+ // Adapters
427
+ TypeScriptAdapter,
428
+ PythonAdapter,
429
+ GoAdapter,
430
+ RustAdapter,
431
+ JavaAdapter,
432
+ // Dependency parsers
433
+ parseGoMod,
434
+ parseCargoToml,
435
+ parsePomXml,
436
+ parseBuildGradle,
437
+ // Types
438
+ type SupportedLanguage,
439
+ type ParseResult,
440
+ type ImportInfo,
441
+ type ExportInfo,
442
+ type FunctionInfo,
443
+ type CodebaseContext,
444
+ } from '@skillsmith/core'
214
445
  ```
215
446
 
216
447
  ## Requirements
@@ -220,9 +451,9 @@ import { EmbeddingService } from '@skillsmith/core/embeddings'
220
451
 
221
452
  ## License
222
453
 
223
- Apache-2.0
454
+ [Elastic License 2.0](https://www.elastic.co/licensing/elastic-license)
224
455
 
225
456
  ## Links
226
457
 
227
- - [GitHub](https://github.com/smith-horn-group/skillsmith)
228
- - [Issues](https://github.com/smith-horn-group/skillsmith/issues)
458
+ - [GitHub](https://github.com/smith-horn/skillsmith)
459
+ - [Issues](https://github.com/smith-horn/skillsmith/issues)