@skillsmith/core 0.4.0 → 0.4.2

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 (612) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
  3. package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
  4. package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -1
  5. package/dist/src/analysis/adapters/java-parsers.d.ts +64 -0
  6. package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -0
  7. package/dist/src/analysis/adapters/java-parsers.js +114 -0
  8. package/dist/src/analysis/adapters/java-parsers.js.map +1 -0
  9. package/dist/src/analysis/adapters/java.d.ts +1 -51
  10. package/dist/src/analysis/adapters/java.d.ts.map +1 -1
  11. package/dist/src/analysis/adapters/java.js +94 -205
  12. package/dist/src/analysis/adapters/java.js.map +1 -1
  13. package/dist/src/analysis/adapters/python-frameworks.d.ts +21 -0
  14. package/dist/src/analysis/adapters/python-frameworks.d.ts.map +1 -0
  15. package/dist/src/analysis/adapters/python-frameworks.js +86 -0
  16. package/dist/src/analysis/adapters/python-frameworks.js.map +1 -0
  17. package/dist/src/analysis/adapters/python.d.ts +0 -50
  18. package/dist/src/analysis/adapters/python.d.ts.map +1 -1
  19. package/dist/src/analysis/adapters/python.js +5 -120
  20. package/dist/src/analysis/adapters/python.js.map +1 -1
  21. package/dist/src/analysis/adapters/rust-parsers.d.ts +33 -0
  22. package/dist/src/analysis/adapters/rust-parsers.d.ts.map +1 -0
  23. package/dist/src/analysis/adapters/rust-parsers.js +94 -0
  24. package/dist/src/analysis/adapters/rust-parsers.js.map +1 -0
  25. package/dist/src/analysis/adapters/rust.d.ts +1 -43
  26. package/dist/src/analysis/adapters/rust.d.ts.map +1 -1
  27. package/dist/src/analysis/adapters/rust.js +74 -173
  28. package/dist/src/analysis/adapters/rust.js.map +1 -1
  29. package/dist/src/analysis/language-detector.d.ts +4 -20
  30. package/dist/src/analysis/language-detector.d.ts.map +1 -1
  31. package/dist/src/analysis/language-detector.js +2 -399
  32. package/dist/src/analysis/language-detector.js.map +1 -1
  33. package/dist/src/analysis/language-detector.patterns.d.ts +17 -0
  34. package/dist/src/analysis/language-detector.patterns.d.ts.map +1 -0
  35. package/dist/src/analysis/language-detector.patterns.js +413 -0
  36. package/dist/src/analysis/language-detector.patterns.js.map +1 -0
  37. package/dist/src/analysis/language-detector.types.d.ts +48 -0
  38. package/dist/src/analysis/language-detector.types.d.ts.map +1 -0
  39. package/dist/src/analysis/language-detector.types.js +6 -0
  40. package/dist/src/analysis/language-detector.types.js.map +1 -0
  41. package/dist/src/analysis/metrics.d.ts +22 -219
  42. package/dist/src/analysis/metrics.d.ts.map +1 -1
  43. package/dist/src/analysis/metrics.implementations.d.ts +39 -0
  44. package/dist/src/analysis/metrics.implementations.d.ts.map +1 -0
  45. package/dist/src/analysis/metrics.implementations.js +114 -0
  46. package/dist/src/analysis/metrics.implementations.js.map +1 -0
  47. package/dist/src/analysis/metrics.js +21 -224
  48. package/dist/src/analysis/metrics.js.map +1 -1
  49. package/dist/src/analysis/metrics.types.d.ts +79 -0
  50. package/dist/src/analysis/metrics.types.d.ts.map +1 -0
  51. package/dist/src/analysis/metrics.types.js +6 -0
  52. package/dist/src/analysis/metrics.types.js.map +1 -0
  53. package/dist/src/analysis/worker-pool.d.ts +25 -52
  54. package/dist/src/analysis/worker-pool.d.ts.map +1 -1
  55. package/dist/src/analysis/worker-pool.js +29 -181
  56. package/dist/src/analysis/worker-pool.js.map +1 -1
  57. package/dist/src/analysis/worker-types.d.ts +64 -0
  58. package/dist/src/analysis/worker-types.d.ts.map +1 -0
  59. package/dist/src/analysis/worker-types.js +11 -0
  60. package/dist/src/analysis/worker-types.js.map +1 -0
  61. package/dist/src/analysis/worker-utils.d.ts +49 -0
  62. package/dist/src/analysis/worker-utils.d.ts.map +1 -0
  63. package/dist/src/analysis/worker-utils.js +206 -0
  64. package/dist/src/analysis/worker-utils.js.map +1 -0
  65. package/dist/src/analytics/AnalyticsRepository.d.ts +1 -5
  66. package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
  67. package/dist/src/analytics/AnalyticsRepository.helpers.d.ts +28 -0
  68. package/dist/src/analytics/AnalyticsRepository.helpers.d.ts.map +1 -0
  69. package/dist/src/analytics/AnalyticsRepository.helpers.js +90 -0
  70. package/dist/src/analytics/AnalyticsRepository.helpers.js.map +1 -0
  71. package/dist/src/analytics/AnalyticsRepository.js +16 -129
  72. package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
  73. package/dist/src/analytics/AnalyticsRepository.types.d.ts +82 -0
  74. package/dist/src/analytics/AnalyticsRepository.types.d.ts.map +1 -0
  75. package/dist/src/analytics/AnalyticsRepository.types.js +8 -0
  76. package/dist/src/analytics/AnalyticsRepository.types.js.map +1 -0
  77. package/dist/src/analytics/ROIDashboardService.js +4 -2
  78. package/dist/src/analytics/ROIDashboardService.js.map +1 -1
  79. package/dist/src/api/cache.d.ts.map +1 -1
  80. package/dist/src/api/cache.js.map +1 -1
  81. package/dist/src/api/client.d.ts +6 -121
  82. package/dist/src/api/client.d.ts.map +1 -1
  83. package/dist/src/api/client.js +29 -129
  84. package/dist/src/api/client.js.map +1 -1
  85. package/dist/src/api/schemas.d.ts +122 -0
  86. package/dist/src/api/schemas.d.ts.map +1 -0
  87. package/dist/src/api/schemas.js +71 -0
  88. package/dist/src/api/schemas.js.map +1 -0
  89. package/dist/src/api/types.d.ts +1 -1
  90. package/dist/src/api/types.d.ts.map +1 -1
  91. package/dist/src/api/utils.d.ts +35 -0
  92. package/dist/src/api/utils.d.ts.map +1 -0
  93. package/dist/src/api/utils.js +86 -0
  94. package/dist/src/api/utils.js.map +1 -0
  95. package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
  96. package/dist/src/benchmarks/BenchmarkRunner.js +1 -1
  97. package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
  98. package/dist/src/billing/BillingService.d.ts +15 -53
  99. package/dist/src/billing/BillingService.d.ts.map +1 -1
  100. package/dist/src/billing/BillingService.helpers.d.ts +15 -0
  101. package/dist/src/billing/BillingService.helpers.d.ts.map +1 -0
  102. package/dist/src/billing/BillingService.helpers.js +45 -0
  103. package/dist/src/billing/BillingService.helpers.js.map +1 -0
  104. package/dist/src/billing/BillingService.js +49 -179
  105. package/dist/src/billing/BillingService.js.map +1 -1
  106. package/dist/src/billing/BillingService.types.d.ts +52 -0
  107. package/dist/src/billing/BillingService.types.d.ts.map +1 -0
  108. package/dist/src/billing/BillingService.types.js +6 -0
  109. package/dist/src/billing/BillingService.types.js.map +1 -0
  110. package/dist/src/billing/GDPRComplianceService.d.ts +2 -97
  111. package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -1
  112. package/dist/src/billing/GDPRComplianceService.js.map +1 -1
  113. package/dist/src/billing/StripeClient.d.ts +6 -64
  114. package/dist/src/billing/StripeClient.d.ts.map +1 -1
  115. package/dist/src/billing/StripeClient.js +14 -71
  116. package/dist/src/billing/StripeClient.js.map +1 -1
  117. package/dist/src/billing/StripeReconciliationJob.d.ts +2 -47
  118. package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -1
  119. package/dist/src/billing/StripeReconciliationJob.js +1 -41
  120. package/dist/src/billing/StripeReconciliationJob.js.map +1 -1
  121. package/dist/src/billing/StripeWebhookHandler.d.ts +3 -46
  122. package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
  123. package/dist/src/billing/StripeWebhookHandler.js +14 -261
  124. package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
  125. package/dist/src/billing/gdpr-types.d.ts +103 -0
  126. package/dist/src/billing/gdpr-types.d.ts.map +1 -0
  127. package/dist/src/billing/gdpr-types.js +7 -0
  128. package/dist/src/billing/gdpr-types.js.map +1 -0
  129. package/dist/src/billing/reconciliation-helpers.d.ts +16 -0
  130. package/dist/src/billing/reconciliation-helpers.d.ts.map +1 -0
  131. package/dist/src/billing/reconciliation-helpers.js +53 -0
  132. package/dist/src/billing/reconciliation-helpers.js.map +1 -0
  133. package/dist/src/billing/reconciliation-types.d.ts +71 -0
  134. package/dist/src/billing/reconciliation-types.d.ts.map +1 -0
  135. package/dist/src/billing/reconciliation-types.js +7 -0
  136. package/dist/src/billing/reconciliation-types.js.map +1 -0
  137. package/dist/src/billing/stripe-client-types.d.ts +45 -0
  138. package/dist/src/billing/stripe-client-types.d.ts.map +1 -0
  139. package/dist/src/billing/stripe-client-types.js +7 -0
  140. package/dist/src/billing/stripe-client-types.js.map +1 -0
  141. package/dist/src/billing/stripe-helpers.d.ts +17 -0
  142. package/dist/src/billing/stripe-helpers.d.ts.map +1 -0
  143. package/dist/src/billing/stripe-helpers.js +50 -0
  144. package/dist/src/billing/stripe-helpers.js.map +1 -0
  145. package/dist/src/billing/webhook-handlers.d.ts +56 -0
  146. package/dist/src/billing/webhook-handlers.d.ts.map +1 -0
  147. package/dist/src/billing/webhook-handlers.js +303 -0
  148. package/dist/src/billing/webhook-handlers.js.map +1 -0
  149. package/dist/src/billing/webhook-types.d.ts +42 -0
  150. package/dist/src/billing/webhook-types.d.ts.map +1 -0
  151. package/dist/src/billing/webhook-types.js +7 -0
  152. package/dist/src/billing/webhook-types.js.map +1 -0
  153. package/dist/src/config/index.d.ts +118 -0
  154. package/dist/src/config/index.d.ts.map +1 -0
  155. package/dist/src/config/index.js +172 -0
  156. package/dist/src/config/index.js.map +1 -0
  157. package/dist/src/db/migration-types.d.ts +101 -0
  158. package/dist/src/db/migration-types.d.ts.map +1 -0
  159. package/dist/src/db/migration-types.js +6 -0
  160. package/dist/src/db/migration-types.js.map +1 -0
  161. package/dist/src/db/migration.d.ts +32 -0
  162. package/dist/src/db/migration.d.ts.map +1 -0
  163. package/dist/src/db/migration.js +239 -0
  164. package/dist/src/db/migration.js.map +1 -0
  165. package/dist/src/db/schema.d.ts +2 -2
  166. package/dist/src/db/schema.d.ts.map +1 -1
  167. package/dist/src/db/schema.js +23 -1
  168. package/dist/src/db/schema.js.map +1 -1
  169. package/dist/src/embeddings/embedding-types.d.ts +44 -0
  170. package/dist/src/embeddings/embedding-types.d.ts.map +1 -0
  171. package/dist/src/embeddings/embedding-types.js +6 -0
  172. package/dist/src/embeddings/embedding-types.js.map +1 -0
  173. package/dist/src/embeddings/embedding-utils.d.ts +42 -0
  174. package/dist/src/embeddings/embedding-utils.d.ts.map +1 -0
  175. package/dist/src/embeddings/embedding-utils.js +121 -0
  176. package/dist/src/embeddings/embedding-utils.js.map +1 -0
  177. package/dist/src/embeddings/hnsw-store.d.ts +8 -518
  178. package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
  179. package/dist/src/embeddings/hnsw-store.helpers.d.ts +83 -0
  180. package/dist/src/embeddings/hnsw-store.helpers.d.ts.map +1 -0
  181. package/dist/src/embeddings/hnsw-store.helpers.js +147 -0
  182. package/dist/src/embeddings/hnsw-store.helpers.js.map +1 -0
  183. package/dist/src/embeddings/hnsw-store.js +66 -517
  184. package/dist/src/embeddings/hnsw-store.js.map +1 -1
  185. package/dist/src/embeddings/hnsw-store.types.d.ts +154 -0
  186. package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -0
  187. package/dist/src/embeddings/hnsw-store.types.js +26 -0
  188. package/dist/src/embeddings/hnsw-store.types.js.map +1 -0
  189. package/dist/src/embeddings/index.d.ts +36 -112
  190. package/dist/src/embeddings/index.d.ts.map +1 -1
  191. package/dist/src/embeddings/index.js +37 -210
  192. package/dist/src/embeddings/index.js.map +1 -1
  193. package/dist/src/errors.d.ts.map +1 -1
  194. package/dist/src/errors.js +1 -1
  195. package/dist/src/errors.js.map +1 -1
  196. package/dist/src/exports/repositories.d.ts +18 -0
  197. package/dist/src/exports/repositories.d.ts.map +1 -0
  198. package/dist/src/exports/repositories.js +30 -0
  199. package/dist/src/exports/repositories.js.map +1 -0
  200. package/dist/src/exports/services.d.ts +30 -0
  201. package/dist/src/exports/services.d.ts.map +1 -0
  202. package/dist/src/exports/services.js +70 -0
  203. package/dist/src/exports/services.js.map +1 -0
  204. package/dist/src/exports/types.d.ts +21 -0
  205. package/dist/src/exports/types.d.ts.map +1 -0
  206. package/dist/src/exports/types.js +12 -0
  207. package/dist/src/exports/types.js.map +1 -0
  208. package/dist/src/index.d.ts +10 -47
  209. package/dist/src/index.d.ts.map +1 -1
  210. package/dist/src/index.js +31 -48
  211. package/dist/src/index.js.map +1 -1
  212. package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
  213. package/dist/src/indexer/GitHubIndexer.js +17 -4
  214. package/dist/src/indexer/GitHubIndexer.js.map +1 -1
  215. package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -1
  216. package/dist/src/indexer/SwarmIndexer.js +1 -1
  217. package/dist/src/indexer/SwarmIndexer.js.map +1 -1
  218. package/dist/src/learning/PatternStore.d.ts +6 -426
  219. package/dist/src/learning/PatternStore.d.ts.map +1 -1
  220. package/dist/src/learning/PatternStore.helpers.d.ts +88 -0
  221. package/dist/src/learning/PatternStore.helpers.d.ts.map +1 -0
  222. package/dist/src/learning/PatternStore.helpers.js +286 -0
  223. package/dist/src/learning/PatternStore.helpers.js.map +1 -0
  224. package/dist/src/learning/PatternStore.js +52 -598
  225. package/dist/src/learning/PatternStore.js.map +1 -1
  226. package/dist/src/learning/PatternStore.queries.d.ts +83 -0
  227. package/dist/src/learning/PatternStore.queries.d.ts.map +1 -0
  228. package/dist/src/learning/PatternStore.queries.js +189 -0
  229. package/dist/src/learning/PatternStore.queries.js.map +1 -0
  230. package/dist/src/learning/PatternStore.types.d.ts +308 -0
  231. package/dist/src/learning/PatternStore.types.d.ts.map +1 -0
  232. package/dist/src/learning/PatternStore.types.js +44 -0
  233. package/dist/src/learning/PatternStore.types.js.map +1 -0
  234. package/dist/src/learning/ReasoningBankIntegration.d.ts +5 -345
  235. package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -1
  236. package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
  237. package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
  238. package/dist/src/learning/ReasoningBankIntegration.helpers.js +180 -0
  239. package/dist/src/learning/ReasoningBankIntegration.helpers.js.map +1 -0
  240. package/dist/src/learning/ReasoningBankIntegration.js +21 -390
  241. package/dist/src/learning/ReasoningBankIntegration.js.map +1 -1
  242. package/dist/src/learning/ReasoningBankIntegration.types.d.ts +167 -0
  243. package/dist/src/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
  244. package/dist/src/learning/ReasoningBankIntegration.types.js +51 -0
  245. package/dist/src/learning/ReasoningBankIntegration.types.js.map +1 -0
  246. package/dist/src/learning/interfaces.d.ts.map +1 -1
  247. package/dist/src/pipeline/DailyIndexPipeline.d.ts +4 -176
  248. package/dist/src/pipeline/DailyIndexPipeline.d.ts.map +1 -1
  249. package/dist/src/pipeline/DailyIndexPipeline.js +9 -83
  250. package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
  251. package/dist/src/pipeline/pipeline-types.d.ts +132 -0
  252. package/dist/src/pipeline/pipeline-types.d.ts.map +1 -0
  253. package/dist/src/pipeline/pipeline-types.js +6 -0
  254. package/dist/src/pipeline/pipeline-types.js.map +1 -0
  255. package/dist/src/repositories/IndexerRepository.d.ts +1 -0
  256. package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
  257. package/dist/src/repositories/IndexerRepository.js +6 -0
  258. package/dist/src/repositories/IndexerRepository.js.map +1 -1
  259. package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
  260. package/dist/src/repositories/SkillRepository.js +20 -5
  261. package/dist/src/repositories/SkillRepository.js.map +1 -1
  262. package/dist/src/routing/SONARouter.d.ts +3 -101
  263. package/dist/src/routing/SONARouter.d.ts.map +1 -1
  264. package/dist/src/routing/SONARouter.helpers.d.ts +112 -0
  265. package/dist/src/routing/SONARouter.helpers.d.ts.map +1 -0
  266. package/dist/src/routing/SONARouter.helpers.js +184 -0
  267. package/dist/src/routing/SONARouter.helpers.js.map +1 -0
  268. package/dist/src/routing/SONARouter.js +16 -318
  269. package/dist/src/routing/SONARouter.js.map +1 -1
  270. package/dist/src/routing/expert-types.d.ts +109 -0
  271. package/dist/src/routing/expert-types.d.ts.map +1 -0
  272. package/dist/src/routing/expert-types.js +162 -0
  273. package/dist/src/routing/expert-types.js.map +1 -0
  274. package/dist/src/routing/request-types.d.ts +113 -0
  275. package/dist/src/routing/request-types.d.ts.map +1 -0
  276. package/dist/src/routing/request-types.js +9 -0
  277. package/dist/src/routing/request-types.js.map +1 -0
  278. package/dist/src/routing/types.d.ts +5 -207
  279. package/dist/src/routing/types.d.ts.map +1 -1
  280. package/dist/src/routing/types.js +3 -153
  281. package/dist/src/routing/types.js.map +1 -1
  282. package/dist/src/scripts/github-import/github-auth.d.ts +17 -0
  283. package/dist/src/scripts/github-import/github-auth.d.ts.map +1 -0
  284. package/dist/src/scripts/github-import/github-auth.js +201 -0
  285. package/dist/src/scripts/github-import/github-auth.js.map +1 -0
  286. package/dist/src/scripts/github-import/github-client.d.ts +5 -5
  287. package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
  288. package/dist/src/scripts/github-import/github-client.js +5 -204
  289. package/dist/src/scripts/github-import/github-client.js.map +1 -1
  290. package/dist/src/scripts/ingest-lenny-skills.d.ts +40 -0
  291. package/dist/src/scripts/ingest-lenny-skills.d.ts.map +1 -0
  292. package/dist/src/scripts/ingest-lenny-skills.js +346 -0
  293. package/dist/src/scripts/ingest-lenny-skills.js.map +1 -0
  294. package/dist/src/scripts/merge-skills.d.ts +5 -27
  295. package/dist/src/scripts/merge-skills.d.ts.map +1 -1
  296. package/dist/src/scripts/merge-skills.js +4 -144
  297. package/dist/src/scripts/merge-skills.js.map +1 -1
  298. package/dist/src/scripts/merge-types.d.ts +72 -0
  299. package/dist/src/scripts/merge-types.d.ts.map +1 -0
  300. package/dist/src/scripts/merge-types.js +7 -0
  301. package/dist/src/scripts/merge-types.js.map +1 -0
  302. package/dist/src/scripts/merge-utils.d.ts +23 -0
  303. package/dist/src/scripts/merge-utils.d.ts.map +1 -0
  304. package/dist/src/scripts/merge-utils.js +150 -0
  305. package/dist/src/scripts/merge-utils.js.map +1 -0
  306. package/dist/src/scripts/review-categories.d.ts +41 -0
  307. package/dist/src/scripts/review-categories.d.ts.map +1 -0
  308. package/dist/src/scripts/review-categories.js +316 -0
  309. package/dist/src/scripts/review-categories.js.map +1 -0
  310. package/dist/src/scripts/review-lenny-skills.d.ts +26 -0
  311. package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -0
  312. package/dist/src/scripts/review-lenny-skills.js +215 -0
  313. package/dist/src/scripts/review-lenny-skills.js.map +1 -0
  314. package/dist/src/scripts/sync-to-supabase.d.ts +10 -0
  315. package/dist/src/scripts/sync-to-supabase.d.ts.map +1 -0
  316. package/dist/src/scripts/sync-to-supabase.js +93 -0
  317. package/dist/src/scripts/sync-to-supabase.js.map +1 -0
  318. package/dist/src/security/AuditLogger.d.ts +4 -75
  319. package/dist/src/security/AuditLogger.d.ts.map +1 -1
  320. package/dist/src/security/AuditLogger.js +3 -12
  321. package/dist/src/security/AuditLogger.js.map +1 -1
  322. package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
  323. package/dist/src/security/audit-types.d.ts +96 -0
  324. package/dist/src/security/audit-types.d.ts.map +1 -0
  325. package/dist/src/security/audit-types.js +15 -0
  326. package/dist/src/security/audit-types.js.map +1 -0
  327. package/dist/src/security/sanitization.d.ts +1 -85
  328. package/dist/src/security/sanitization.d.ts.map +1 -1
  329. package/dist/src/security/sanitization.js +2 -133
  330. package/dist/src/security/sanitization.js.map +1 -1
  331. package/dist/src/security/scanner/SecurityScanner.d.ts +12 -88
  332. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  333. package/dist/src/security/scanner/SecurityScanner.formatters.d.ts +49 -0
  334. package/dist/src/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
  335. package/dist/src/security/scanner/SecurityScanner.formatters.js +139 -0
  336. package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -0
  337. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -0
  338. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
  339. package/dist/src/security/scanner/SecurityScanner.helpers.js +142 -0
  340. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -0
  341. package/dist/src/security/scanner/SecurityScanner.js +26 -255
  342. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  343. package/dist/src/security/stripe-validators.d.ts +92 -0
  344. package/dist/src/security/stripe-validators.d.ts.map +1 -0
  345. package/dist/src/security/stripe-validators.js +139 -0
  346. package/dist/src/security/stripe-validators.js.map +1 -0
  347. package/dist/src/services/SearchService.d.ts +5 -29
  348. package/dist/src/services/SearchService.d.ts.map +1 -1
  349. package/dist/src/services/SearchService.helpers.d.ts +42 -0
  350. package/dist/src/services/SearchService.helpers.d.ts.map +1 -0
  351. package/dist/src/services/SearchService.helpers.js +128 -0
  352. package/dist/src/services/SearchService.helpers.js.map +1 -0
  353. package/dist/src/services/SearchService.js +142 -128
  354. package/dist/src/services/SearchService.js.map +1 -1
  355. package/dist/src/services/SearchService.types.d.ts +53 -0
  356. package/dist/src/services/SearchService.types.d.ts.map +1 -0
  357. package/dist/src/services/SearchService.types.js +7 -0
  358. package/dist/src/services/SearchService.types.js.map +1 -0
  359. package/dist/src/services/SkillAnalyzer.d.ts +37 -0
  360. package/dist/src/services/SkillAnalyzer.d.ts.map +1 -0
  361. package/dist/src/services/SkillAnalyzer.helpers.d.ts +103 -0
  362. package/dist/src/services/SkillAnalyzer.helpers.d.ts.map +1 -0
  363. package/dist/src/services/SkillAnalyzer.helpers.js +237 -0
  364. package/dist/src/services/SkillAnalyzer.helpers.js.map +1 -0
  365. package/dist/src/services/SkillAnalyzer.js +270 -0
  366. package/dist/src/services/SkillAnalyzer.js.map +1 -0
  367. package/dist/src/services/SkillAnalyzer.types.d.ts +110 -0
  368. package/dist/src/services/SkillAnalyzer.types.d.ts.map +1 -0
  369. package/dist/src/services/SkillAnalyzer.types.js +9 -0
  370. package/dist/src/services/SkillAnalyzer.types.js.map +1 -0
  371. package/dist/src/services/SkillDecomposer.d.ts +37 -0
  372. package/dist/src/services/SkillDecomposer.d.ts.map +1 -0
  373. package/dist/src/services/SkillDecomposer.helpers.d.ts +75 -0
  374. package/dist/src/services/SkillDecomposer.helpers.d.ts.map +1 -0
  375. package/dist/src/services/SkillDecomposer.helpers.js +277 -0
  376. package/dist/src/services/SkillDecomposer.helpers.js.map +1 -0
  377. package/dist/src/services/SkillDecomposer.js +116 -0
  378. package/dist/src/services/SkillDecomposer.js.map +1 -0
  379. package/dist/src/services/SkillDecomposer.types.d.ts +104 -0
  380. package/dist/src/services/SkillDecomposer.types.d.ts.map +1 -0
  381. package/dist/src/services/SkillDecomposer.types.js +9 -0
  382. package/dist/src/services/SkillDecomposer.types.js.map +1 -0
  383. package/dist/src/services/SubagentGenerator.d.ts +77 -0
  384. package/dist/src/services/SubagentGenerator.d.ts.map +1 -0
  385. package/dist/src/services/SubagentGenerator.js +352 -0
  386. package/dist/src/services/SubagentGenerator.js.map +1 -0
  387. package/dist/src/services/TaskRunner.d.ts +227 -0
  388. package/dist/src/services/TaskRunner.d.ts.map +1 -0
  389. package/dist/src/services/TaskRunner.js +423 -0
  390. package/dist/src/services/TaskRunner.js.map +1 -0
  391. package/dist/src/services/TransformationService.d.ts +167 -0
  392. package/dist/src/services/TransformationService.d.ts.map +1 -0
  393. package/dist/src/services/TransformationService.js +315 -0
  394. package/dist/src/services/TransformationService.js.map +1 -0
  395. package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
  396. package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
  397. package/dist/src/services/__tests__/SkillAnalyzer.test.js +177 -0
  398. package/dist/src/services/__tests__/SkillAnalyzer.test.js.map +1 -0
  399. package/dist/src/services/__tests__/SkillDecomposer.test.d.ts +6 -0
  400. package/dist/src/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
  401. package/dist/src/services/__tests__/SkillDecomposer.test.js +235 -0
  402. package/dist/src/services/__tests__/SkillDecomposer.test.js.map +1 -0
  403. package/dist/src/services/__tests__/SubagentGenerator.test.d.ts +6 -0
  404. package/dist/src/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
  405. package/dist/src/services/__tests__/SubagentGenerator.test.js +174 -0
  406. package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -0
  407. package/dist/src/services/__tests__/TaskRunner.test.d.ts +7 -0
  408. package/dist/src/services/__tests__/TaskRunner.test.d.ts.map +1 -0
  409. package/dist/src/services/__tests__/TaskRunner.test.js +316 -0
  410. package/dist/src/services/__tests__/TaskRunner.test.js.map +1 -0
  411. package/dist/src/services/__tests__/TransformationService.test.d.ts +6 -0
  412. package/dist/src/services/__tests__/TransformationService.test.d.ts.map +1 -0
  413. package/dist/src/services/__tests__/TransformationService.test.js +244 -0
  414. package/dist/src/services/__tests__/TransformationService.test.js.map +1 -0
  415. package/dist/src/session/SessionContext.js +1 -1
  416. package/dist/src/session/SessionContext.js.map +1 -1
  417. package/dist/src/session/SessionManager.d.ts +3 -67
  418. package/dist/src/session/SessionManager.d.ts.map +1 -1
  419. package/dist/src/session/SessionManager.helpers.d.ts +68 -0
  420. package/dist/src/session/SessionManager.helpers.d.ts.map +1 -0
  421. package/dist/src/session/SessionManager.helpers.js +152 -0
  422. package/dist/src/session/SessionManager.helpers.js.map +1 -0
  423. package/dist/src/session/SessionManager.js +58 -163
  424. package/dist/src/session/SessionManager.js.map +1 -1
  425. package/dist/src/session/SessionManager.types.d.ts +88 -0
  426. package/dist/src/session/SessionManager.types.d.ts.map +1 -0
  427. package/dist/src/session/SessionManager.types.js +27 -0
  428. package/dist/src/session/SessionManager.types.js.map +1 -0
  429. package/dist/src/session/SessionRecovery.d.ts.map +1 -1
  430. package/dist/src/session/SessionRecovery.js +3 -2
  431. package/dist/src/session/SessionRecovery.js.map +1 -1
  432. package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -1
  433. package/dist/src/sources/SourceAdapterRegistry.js +1 -1
  434. package/dist/src/sources/SourceAdapterRegistry.js.map +1 -1
  435. package/dist/src/telemetry/metric-helpers.d.ts +47 -0
  436. package/dist/src/telemetry/metric-helpers.d.ts.map +1 -0
  437. package/dist/src/telemetry/metric-helpers.js +96 -0
  438. package/dist/src/telemetry/metric-helpers.js.map +1 -0
  439. package/dist/src/telemetry/metric-types.d.ts +73 -0
  440. package/dist/src/telemetry/metric-types.d.ts.map +1 -0
  441. package/dist/src/telemetry/metric-types.js +9 -0
  442. package/dist/src/telemetry/metric-types.js.map +1 -0
  443. package/dist/src/telemetry/metrics.d.ts +8 -119
  444. package/dist/src/telemetry/metrics.d.ts.map +1 -1
  445. package/dist/src/telemetry/metrics.js +20 -193
  446. package/dist/src/telemetry/metrics.js.map +1 -1
  447. package/dist/src/telemetry/span-utils.d.ts +30 -0
  448. package/dist/src/telemetry/span-utils.d.ts.map +1 -0
  449. package/dist/src/telemetry/span-utils.js +62 -0
  450. package/dist/src/telemetry/span-utils.js.map +1 -0
  451. package/dist/src/telemetry/tracer-types.d.ts +91 -0
  452. package/dist/src/telemetry/tracer-types.d.ts.map +1 -0
  453. package/dist/src/telemetry/tracer-types.js +6 -0
  454. package/dist/src/telemetry/tracer-types.js.map +1 -0
  455. package/dist/src/telemetry/tracer.d.ts +5 -122
  456. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  457. package/dist/src/telemetry/tracer.js +24 -170
  458. package/dist/src/telemetry/tracer.js.map +1 -1
  459. package/dist/src/testing/MultiLLMProvider.d.ts +17 -293
  460. package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
  461. package/dist/src/testing/MultiLLMProvider.helpers.d.ts +54 -0
  462. package/dist/src/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
  463. package/dist/src/testing/MultiLLMProvider.helpers.js +126 -0
  464. package/dist/src/testing/MultiLLMProvider.helpers.js.map +1 -0
  465. package/dist/src/testing/MultiLLMProvider.js +50 -323
  466. package/dist/src/testing/MultiLLMProvider.js.map +1 -1
  467. package/dist/src/testing/MultiLLMProvider.types.d.ts +253 -0
  468. package/dist/src/testing/MultiLLMProvider.types.d.ts.map +1 -0
  469. package/dist/src/testing/MultiLLMProvider.types.js +111 -0
  470. package/dist/src/testing/MultiLLMProvider.types.js.map +1 -0
  471. package/dist/src/triggers/TriggerDetector.d.ts +6 -142
  472. package/dist/src/triggers/TriggerDetector.d.ts.map +1 -1
  473. package/dist/src/triggers/TriggerDetector.js +15 -247
  474. package/dist/src/triggers/TriggerDetector.js.map +1 -1
  475. package/dist/src/triggers/__tests__/TriggerDetector.test.js +1 -1
  476. package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -1
  477. package/dist/src/triggers/trigger-constants.d.ts +22 -0
  478. package/dist/src/triggers/trigger-constants.d.ts.map +1 -0
  479. package/dist/src/triggers/trigger-constants.js +185 -0
  480. package/dist/src/triggers/trigger-constants.js.map +1 -0
  481. package/dist/src/triggers/trigger-types.d.ts +90 -0
  482. package/dist/src/triggers/trigger-types.d.ts.map +1 -0
  483. package/dist/src/triggers/trigger-types.js +6 -0
  484. package/dist/src/triggers/trigger-types.js.map +1 -0
  485. package/dist/src/types/skill.d.ts +33 -1
  486. package/dist/src/types/skill.d.ts.map +1 -1
  487. package/dist/src/types/skill.js +11 -1
  488. package/dist/src/types/skill.js.map +1 -1
  489. package/dist/src/types.d.ts +28 -2
  490. package/dist/src/types.d.ts.map +1 -1
  491. package/dist/src/types.js +1 -0
  492. package/dist/src/types.js.map +1 -1
  493. package/dist/src/utils/retry.js +2 -2
  494. package/dist/src/utils/retry.js.map +1 -1
  495. package/dist/src/validation/index.d.ts +5 -105
  496. package/dist/src/validation/index.d.ts.map +1 -1
  497. package/dist/src/validation/index.js +9 -421
  498. package/dist/src/validation/index.js.map +1 -1
  499. package/dist/src/validation/input-validators.d.ts +68 -0
  500. package/dist/src/validation/input-validators.d.ts.map +1 -0
  501. package/dist/src/validation/input-validators.js +126 -0
  502. package/dist/src/validation/input-validators.js.map +1 -0
  503. package/dist/src/validation/path-validators.d.ts +23 -0
  504. package/dist/src/validation/path-validators.d.ts.map +1 -0
  505. package/dist/src/validation/path-validators.js +47 -0
  506. package/dist/src/validation/path-validators.js.map +1 -0
  507. package/dist/src/validation/url-validators.d.ts +55 -0
  508. package/dist/src/validation/url-validators.d.ts.map +1 -0
  509. package/dist/src/validation/url-validators.js +267 -0
  510. package/dist/src/validation/url-validators.js.map +1 -0
  511. package/dist/src/validation/validation-error.d.ts +14 -0
  512. package/dist/src/validation/validation-error.d.ts.map +1 -0
  513. package/dist/src/validation/validation-error.js +19 -0
  514. package/dist/src/validation/validation-error.js.map +1 -0
  515. package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -1
  516. package/dist/src/webhooks/WebhookHandler.js.map +1 -1
  517. package/dist/src/webhooks/WebhookPayload.d.ts +4 -215
  518. package/dist/src/webhooks/WebhookPayload.d.ts.map +1 -1
  519. package/dist/src/webhooks/WebhookPayload.js +1 -122
  520. package/dist/src/webhooks/WebhookPayload.js.map +1 -1
  521. package/dist/src/webhooks/WebhookQueue.d.ts +2 -140
  522. package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -1
  523. package/dist/src/webhooks/WebhookQueue.js +4 -11
  524. package/dist/src/webhooks/WebhookQueue.js.map +1 -1
  525. package/dist/src/webhooks/WebhookQueue.types.d.ts +149 -0
  526. package/dist/src/webhooks/WebhookQueue.types.d.ts.map +1 -0
  527. package/dist/src/webhooks/WebhookQueue.types.js +10 -0
  528. package/dist/src/webhooks/WebhookQueue.types.js.map +1 -0
  529. package/dist/src/webhooks/WebhookQueue.utils.d.ts +44 -0
  530. package/dist/src/webhooks/WebhookQueue.utils.d.ts.map +1 -0
  531. package/dist/src/webhooks/WebhookQueue.utils.js +58 -0
  532. package/dist/src/webhooks/WebhookQueue.utils.js.map +1 -0
  533. package/dist/src/webhooks/webhook-schemas.d.ts +213 -0
  534. package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -0
  535. package/dist/src/webhooks/webhook-schemas.js +132 -0
  536. package/dist/src/webhooks/webhook-schemas.js.map +1 -0
  537. package/dist/src/webhooks/webhook-types.d.ts +222 -0
  538. package/dist/src/webhooks/webhook-types.d.ts.map +1 -0
  539. package/dist/src/webhooks/webhook-types.js +10 -0
  540. package/dist/src/webhooks/webhook-types.js.map +1 -0
  541. package/dist/tests/Analytics.integration.test.js +2 -2
  542. package/dist/tests/Analytics.integration.test.js.map +1 -1
  543. package/dist/tests/AnalyticsRepository.test.js +3 -5
  544. package/dist/tests/AnalyticsRepository.test.js.map +1 -1
  545. package/dist/tests/AnalyticsStorage.test.js.map +1 -1
  546. package/dist/tests/ApiPartialResponses.test.d.ts +12 -0
  547. package/dist/tests/ApiPartialResponses.test.d.ts.map +1 -0
  548. package/dist/tests/ApiPartialResponses.test.js +202 -0
  549. package/dist/tests/ApiPartialResponses.test.js.map +1 -0
  550. package/dist/tests/AuditLogger.test.js.map +1 -1
  551. package/dist/tests/BenchmarkRunner.test.js +6 -6
  552. package/dist/tests/BenchmarkRunner.test.js.map +1 -1
  553. package/dist/tests/CacheSecurity.test.js.map +1 -1
  554. package/dist/tests/CodebaseAnalyzer.test.js.map +1 -1
  555. package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
  556. package/dist/tests/EmbeddingService.test.js.map +1 -1
  557. package/dist/tests/GitHubIndexer.test.js +4 -3
  558. package/dist/tests/GitHubIndexer.test.js.map +1 -1
  559. package/dist/tests/MemoryProfiler.test.js +3 -3
  560. package/dist/tests/MemoryProfiler.test.js.map +1 -1
  561. package/dist/tests/QualityScorer.test.js.map +1 -1
  562. package/dist/tests/RateLimiter.test.js.map +1 -1
  563. package/dist/tests/ScraperAdapters.test.js.map +1 -1
  564. package/dist/tests/SecurityScanner.test.js +4 -4
  565. package/dist/tests/SecurityScanner.test.js.map +1 -1
  566. package/dist/tests/SessionManager.security.test.js +1 -1
  567. package/dist/tests/SessionManager.security.test.js.map +1 -1
  568. package/dist/tests/SessionManager.test.js +4 -4
  569. package/dist/tests/SessionManager.test.js.map +1 -1
  570. package/dist/tests/SwarmIndexer.test.js +1 -1
  571. package/dist/tests/SwarmIndexer.test.js.map +1 -1
  572. package/dist/tests/TieredCache.test.js +2 -11
  573. package/dist/tests/TieredCache.test.js.map +1 -1
  574. package/dist/tests/WebhookHandler.test.js.map +1 -1
  575. package/dist/tests/fixtures/api-responses/index.d.ts +119 -0
  576. package/dist/tests/fixtures/api-responses/index.d.ts.map +1 -0
  577. package/dist/tests/fixtures/api-responses/index.js +419 -0
  578. package/dist/tests/fixtures/api-responses/index.js.map +1 -0
  579. package/dist/tests/integration/neural/neural-fixtures.d.ts +19 -0
  580. package/dist/tests/integration/neural/neural-fixtures.d.ts.map +1 -0
  581. package/dist/tests/integration/neural/neural-fixtures.js +49 -0
  582. package/dist/tests/integration/neural/neural-fixtures.js.map +1 -0
  583. package/dist/tests/integration/neural/neural-mocks-privacy.d.ts +78 -0
  584. package/dist/tests/integration/neural/neural-mocks-privacy.d.ts.map +1 -0
  585. package/dist/tests/integration/neural/neural-mocks-privacy.js +146 -0
  586. package/dist/tests/integration/neural/neural-mocks-privacy.js.map +1 -0
  587. package/dist/tests/integration/neural/neural-mocks.d.ts +90 -0
  588. package/dist/tests/integration/neural/neural-mocks.d.ts.map +1 -0
  589. package/dist/tests/integration/neural/neural-mocks.js +288 -0
  590. package/dist/tests/integration/neural/neural-mocks.js.map +1 -0
  591. package/dist/tests/integration/neural/neural-test-utils.d.ts +27 -0
  592. package/dist/tests/integration/neural/neural-test-utils.d.ts.map +1 -0
  593. package/dist/tests/integration/neural/neural-test-utils.js +35 -0
  594. package/dist/tests/integration/neural/neural-test-utils.js.map +1 -0
  595. package/dist/tests/integration/neural/setup.d.ts +6 -165
  596. package/dist/tests/integration/neural/setup.d.ts.map +1 -1
  597. package/dist/tests/integration/neural/setup.js +9 -477
  598. package/dist/tests/integration/neural/setup.js.map +1 -1
  599. package/dist/tests/logger.test.js +1 -1
  600. package/dist/tests/logger.test.js.map +1 -1
  601. package/dist/tests/performance/LargeScalePerformance.test.js +1 -1
  602. package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -1
  603. package/dist/tests/sanitization.test.js.map +1 -1
  604. package/dist/tests/session/SessionManager.helpers.test.d.ts +8 -0
  605. package/dist/tests/session/SessionManager.helpers.test.d.ts.map +1 -0
  606. package/dist/tests/session/SessionManager.helpers.test.js +105 -0
  607. package/dist/tests/session/SessionManager.helpers.test.js.map +1 -0
  608. package/dist/tests/sources.test.js.map +1 -1
  609. package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +1 -1
  610. package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -1
  611. package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -1
  612. package/package.json +11 -11
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Type definitions for Skillsmith Tracer
3
+ * @module @skillsmith/core/telemetry/tracer-types
4
+ */
5
+ /**
6
+ * Local type definitions matching OpenTelemetry interfaces
7
+ * SMI-755: Allows compilation without @opentelemetry/api installed
8
+ */
9
+ export interface OTelSpan {
10
+ setAttributes(attributes: Record<string, unknown>): void;
11
+ setStatus(status: {
12
+ code: number;
13
+ message?: string;
14
+ }): void;
15
+ recordException(error: Error): void;
16
+ addEvent(name: string, attributes?: Record<string, unknown>): void;
17
+ end(): void;
18
+ }
19
+ export interface OTelTracer {
20
+ startSpan(name: string, options?: unknown): OTelSpan;
21
+ }
22
+ export interface OTelSpanOptions {
23
+ attributes?: Record<string, unknown>;
24
+ links?: unknown[];
25
+ startTime?: number;
26
+ root?: boolean;
27
+ kind?: number;
28
+ }
29
+ export type Span = OTelSpan;
30
+ export type Tracer = OTelTracer;
31
+ export type SpanOptions = OTelSpanOptions;
32
+ export type SpanStatusCode = number;
33
+ /**
34
+ * Tracer configuration
35
+ */
36
+ export interface TracerConfig {
37
+ /** Service name for spans (default: skillsmith) */
38
+ serviceName?: string;
39
+ /** OTLP endpoint URL */
40
+ endpoint?: string;
41
+ /** Enable auto-instrumentation (default: true) */
42
+ autoInstrument?: boolean;
43
+ /** Enable console exporter for debugging (default: false) */
44
+ consoleExport?: boolean;
45
+ /** Sample rate 0-1 (default: 1.0 = 100%) */
46
+ sampleRate?: number;
47
+ }
48
+ /**
49
+ * Span attribute types
50
+ */
51
+ export interface SpanAttributes {
52
+ [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined;
53
+ }
54
+ /**
55
+ * Span wrapper for easier usage
56
+ */
57
+ export interface SpanWrapper {
58
+ /** Add attributes to span */
59
+ setAttributes(attributes: SpanAttributes): void;
60
+ /** Set span status */
61
+ setStatus(code: 'ok' | 'error', message?: string): void;
62
+ /** Record an exception */
63
+ recordException(error: Error): void;
64
+ /** Add an event to the span */
65
+ addEvent(name: string, attributes?: SpanAttributes): void;
66
+ /** End the span */
67
+ end(): void;
68
+ /** Get the underlying OTEL span (if available) */
69
+ getSpan(): Span | null;
70
+ }
71
+ /**
72
+ * Type-safe accessors for OTEL modules (SMI-755)
73
+ * These provide typed access while avoiding compile-time dependency
74
+ */
75
+ export interface OTelApi {
76
+ trace: {
77
+ getTracer(name: string, version?: string): OTelTracer;
78
+ getActiveSpan(): OTelSpan | undefined;
79
+ };
80
+ }
81
+ export interface OTelNodeSDK {
82
+ new (config: unknown): {
83
+ start(): Promise<void>;
84
+ shutdown(): Promise<void>;
85
+ };
86
+ }
87
+ /**
88
+ * Resource factory function type (v2.x uses resourceFromAttributes instead of class)
89
+ */
90
+ export type OTelResourceFromAttributes = (attributes: Record<string, string>) => unknown;
91
+ //# sourceMappingURL=tracer-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer-types.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for Skillsmith Tracer
3
+ * @module @skillsmith/core/telemetry/tracer-types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=tracer-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer-types.js","sourceRoot":"","sources":["../../../src/telemetry/tracer-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -2,84 +2,13 @@
2
2
  * SMI-739: OpenTelemetry Tracer Setup
3
3
  * SMI-755: Graceful fallback when OpenTelemetry unavailable
4
4
  *
5
- * Provides distributed tracing for Skillsmith operations:
6
- * - MCP tool calls
7
- * - Database queries
8
- * - Cache operations
9
- * - External API calls
5
+ * Provides distributed tracing for Skillsmith operations.
10
6
  *
11
- * Configuration:
12
- * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint for trace export
13
- * - OTEL_SERVICE_NAME: Service name (default: skillsmith)
14
- * - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
15
- * - SKILLSMITH_TRACING_ENABLED: Enable/disable tracing (default: true if endpoint set)
16
- *
17
- * Graceful Fallback:
18
- * - If OpenTelemetry packages are not installed, uses NoOp implementations
19
- * - Logs warning on fallback (unless SKILLSMITH_TELEMETRY_ENABLED=false)
20
- * - All tracing APIs remain functional (just don't record)
21
- */
22
- /**
23
- * Local type definitions matching OpenTelemetry interfaces
24
- * SMI-755: Allows compilation without @opentelemetry/api installed
25
- */
26
- interface OTelSpan {
27
- setAttributes(attributes: Record<string, unknown>): void;
28
- setStatus(status: {
29
- code: number;
30
- message?: string;
31
- }): void;
32
- recordException(error: Error): void;
33
- addEvent(name: string, attributes?: Record<string, unknown>): void;
34
- end(): void;
35
- }
36
- interface OTelSpanOptions {
37
- attributes?: Record<string, unknown>;
38
- links?: unknown[];
39
- startTime?: number;
40
- root?: boolean;
41
- kind?: number;
42
- }
43
- type Span = OTelSpan;
44
- type SpanOptions = OTelSpanOptions;
45
- /**
46
- * Tracer configuration
47
- */
48
- export interface TracerConfig {
49
- /** Service name for spans (default: skillsmith) */
50
- serviceName?: string;
51
- /** OTLP endpoint URL */
52
- endpoint?: string;
53
- /** Enable auto-instrumentation (default: true) */
54
- autoInstrument?: boolean;
55
- /** Enable console exporter for debugging (default: false) */
56
- consoleExport?: boolean;
57
- /** Sample rate 0-1 (default: 1.0 = 100%) */
58
- sampleRate?: number;
59
- }
60
- /**
61
- * Span attribute types
62
- */
63
- export interface SpanAttributes {
64
- [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined;
65
- }
66
- /**
67
- * Span wrapper for easier usage
7
+ * @see tracer-types.ts for type definitions
8
+ * @see span-utils.ts for span wrapper classes
68
9
  */
69
- export interface SpanWrapper {
70
- /** Add attributes to span */
71
- setAttributes(attributes: SpanAttributes): void;
72
- /** Set span status */
73
- setStatus(code: 'ok' | 'error', message?: string): void;
74
- /** Record an exception */
75
- recordException(error: Error): void;
76
- /** Add an event to the span */
77
- addEvent(name: string, attributes?: SpanAttributes): void;
78
- /** End the span */
79
- end(): void;
80
- /** Get the underlying OTEL span (if available) */
81
- getSpan(): Span | null;
82
- }
10
+ export type { TracerConfig, SpanAttributes, SpanWrapper, Span, Tracer, SpanOptions, OTelApi, OTelNodeSDK, OTelResourceFromAttributes, } from './tracer-types.js';
11
+ import type { TracerConfig, SpanOptions, SpanWrapper } from './tracer-types.js';
83
12
  /**
84
13
  * Skillsmith Tracer - Wrapper for OpenTelemetry tracing
85
14
  */
@@ -90,62 +19,16 @@ export declare class SkillsmithTracer {
90
19
  private config;
91
20
  private sdkInstance;
92
21
  constructor(config?: TracerConfig);
93
- /**
94
- * Initialize the tracer
95
- * Must be called before creating spans
96
- */
97
22
  initialize(): Promise<void>;
98
- /**
99
- * Check if tracing is enabled
100
- */
101
23
  isEnabled(): boolean;
102
- /**
103
- * Start a new span
104
- *
105
- * @param name - Span name (e.g., 'mcp.tool.search', 'db.query')
106
- * @param options - Span options
107
- * @returns SpanWrapper for manipulating the span
108
- */
109
24
  startSpan(name: string, options?: SpanOptions): SpanWrapper;
110
- /**
111
- * Execute a function within a span context
112
- *
113
- * @param name - Span name
114
- * @param fn - Function to execute
115
- * @param options - Span options
116
- * @returns Result of the function
117
- */
118
25
  withSpan<T>(name: string, fn: (span: SpanWrapper) => Promise<T>, options?: SpanOptions): Promise<T>;
119
- /**
120
- * Execute a synchronous function within a span context
121
- */
122
26
  withSpanSync<T>(name: string, fn: (span: SpanWrapper) => T, options?: SpanOptions): T;
123
- /**
124
- * Get the current active span (if any)
125
- */
126
27
  getCurrentSpan(): SpanWrapper;
127
- /**
128
- * Shutdown the tracer and flush pending spans
129
- */
130
28
  shutdown(): Promise<void>;
131
29
  }
132
- /**
133
- * Get the default tracer instance
134
- */
135
30
  export declare function getTracer(): SkillsmithTracer;
136
- /**
137
- * Initialize the default tracer
138
- * Should be called at application startup
139
- */
140
31
  export declare function initializeTracing(config?: TracerConfig): Promise<SkillsmithTracer>;
141
- /**
142
- * Shutdown the default tracer
143
- * Should be called at application shutdown
144
- */
145
32
  export declare function shutdownTracing(): Promise<void>;
146
- /**
147
- * Decorator for tracing async methods
148
- */
149
33
  export declare function traced(spanName?: string): <T extends (...args: unknown[]) => Promise<unknown>>(target: unknown, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
150
- export {};
151
34
  //# sourceMappingURL=tracer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,IAAI,EACJ,MAAM,EACN,WAAW,EACX,OAAO,EACP,WAAW,EACX,0BAA0B,GAC3B,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EAKZ,MAAM,mBAAmB,CAAA;AAwC1B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,WAAW,CAAqE;gBAE5E,MAAM,GAAE,YAAiB;IAwB/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8EjC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW;IAMrD,QAAQ,CAAC,CAAC,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,CAAC,CAAC;IAeb,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC;IAerF,cAAc,IAAI,WAAW;IAQvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC;AAKD,wBAAgB,SAAS,IAAI,gBAAgB,CAG5C;AAED,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAKxF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD;AAED,wBAAgB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IACrB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,QAAQ,OAAO,EACf,aAAa,MAAM,EACnB,YAAY,uBAAuB,CAAC,CAAC,CAAC,KACrC,uBAAuB,CAAC,CAAC,CAAC,CAkB9B"}
@@ -2,50 +2,20 @@
2
2
  * SMI-739: OpenTelemetry Tracer Setup
3
3
  * SMI-755: Graceful fallback when OpenTelemetry unavailable
4
4
  *
5
- * Provides distributed tracing for Skillsmith operations:
6
- * - MCP tool calls
7
- * - Database queries
8
- * - Cache operations
9
- * - External API calls
5
+ * Provides distributed tracing for Skillsmith operations.
10
6
  *
11
- * Configuration:
12
- * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint for trace export
13
- * - OTEL_SERVICE_NAME: Service name (default: skillsmith)
14
- * - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
15
- * - SKILLSMITH_TRACING_ENABLED: Enable/disable tracing (default: true if endpoint set)
16
- *
17
- * Graceful Fallback:
18
- * - If OpenTelemetry packages are not installed, uses NoOp implementations
19
- * - Logs warning on fallback (unless SKILLSMITH_TELEMETRY_ENABLED=false)
20
- * - All tracing APIs remain functional (just don't record)
7
+ * @see tracer-types.ts for type definitions
8
+ * @see span-utils.ts for span wrapper classes
21
9
  */
10
+ import { NoOpSpanWrapper, ActiveSpanWrapper } from './span-utils.js';
22
11
  // Lazy import to avoid loading OTEL if not needed
23
- // SMI-755: Use 'unknown' types to avoid compile-time dependency on OTEL packages
24
12
  let api = null;
25
13
  let sdk = null;
26
14
  let resources = null;
27
15
  let semanticConventions = null;
28
- function getApi() {
29
- return api;
30
- }
31
- function getSdk() {
32
- return sdk;
33
- }
34
- function getResources() {
35
- return resources;
36
- }
37
- function getSemanticConventions() {
38
- return semanticConventions;
39
- }
40
- /** Whether OpenTelemetry packages are available */
41
16
  let otelAvailable = null;
42
- /**
43
- * Dynamic import helper that bypasses TypeScript type checking (SMI-755)
44
- * This allows the code to compile even when @opentelemetry packages aren't installed
45
- */
46
17
  async function dynamicImport(moduleName) {
47
18
  try {
48
- // Use Function constructor to bypass TypeScript's static analysis
49
19
  const importFn = new Function('m', 'return import(m)');
50
20
  return await importFn(moduleName);
51
21
  }
@@ -53,9 +23,6 @@ async function dynamicImport(moduleName) {
53
23
  return null;
54
24
  }
55
25
  }
56
- /**
57
- * Check if OpenTelemetry is available (SMI-755)
58
- */
59
26
  async function checkOTelAvailability() {
60
27
  if (otelAvailable !== null)
61
28
  return otelAvailable;
@@ -63,62 +30,17 @@ async function checkOTelAvailability() {
63
30
  otelAvailable = result !== null;
64
31
  return otelAvailable;
65
32
  }
66
- /**
67
- * No-op span wrapper for when tracing is disabled
68
- */
69
- class NoOpSpanWrapper {
70
- setAttributes(_attributes) { }
71
- setStatus(_code, _message) { }
72
- recordException(_error) { }
73
- addEvent(_name, _attributes) { }
74
- end() { }
75
- getSpan() {
76
- return null;
77
- }
33
+ function getApi() {
34
+ return api;
78
35
  }
79
- /**
80
- * Active span wrapper with real OTEL span
81
- */
82
- class ActiveSpanWrapper {
83
- span;
84
- constructor(span) {
85
- this.span = span;
86
- }
87
- setAttributes(attributes) {
88
- // Filter out undefined values
89
- const filtered = {};
90
- for (const [key, value] of Object.entries(attributes)) {
91
- if (value !== undefined) {
92
- filtered[key] = value;
93
- }
94
- }
95
- this.span.setAttributes(filtered);
96
- }
97
- setStatus(code, message) {
98
- const statusCode = code === 'ok' ? 1 : 2; // SpanStatusCode.OK = 1, ERROR = 2
99
- this.span.setStatus({ code: statusCode, message });
100
- }
101
- recordException(error) {
102
- this.span.recordException(error);
103
- }
104
- addEvent(name, attributes) {
105
- // Filter out undefined values
106
- const filtered = {};
107
- if (attributes) {
108
- for (const [key, value] of Object.entries(attributes)) {
109
- if (value !== undefined) {
110
- filtered[key] = value;
111
- }
112
- }
113
- }
114
- this.span.addEvent(name, filtered);
115
- }
116
- end() {
117
- this.span.end();
118
- }
119
- getSpan() {
120
- return this.span;
121
- }
36
+ function getSdk() {
37
+ return sdk;
38
+ }
39
+ function getResources() {
40
+ return resources;
41
+ }
42
+ function getSemanticConventions() {
43
+ return semanticConventions;
122
44
  }
123
45
  /**
124
46
  * Skillsmith Tracer - Wrapper for OpenTelemetry tracing
@@ -137,13 +59,11 @@ export class SkillsmithTracer {
137
59
  consoleExport: config.consoleExport ?? false,
138
60
  sampleRate: config.sampleRate ?? 1.0,
139
61
  };
140
- // SMI-755: Check master telemetry switch first
141
62
  const telemetryDisabled = process.env.SKILLSMITH_TELEMETRY_ENABLED === 'false';
142
63
  if (telemetryDisabled) {
143
64
  this.enabled = false;
144
65
  return;
145
66
  }
146
- // Check if tracing should be enabled
147
67
  const explicitlyEnabled = process.env.SKILLSMITH_TRACING_ENABLED === 'true';
148
68
  const explicitlyDisabled = process.env.SKILLSMITH_TRACING_ENABLED === 'false';
149
69
  if (explicitlyDisabled) {
@@ -153,10 +73,6 @@ export class SkillsmithTracer {
153
73
  this.enabled = true;
154
74
  }
155
75
  }
156
- /**
157
- * Initialize the tracer
158
- * Must be called before creating spans
159
- */
160
76
  async initialize() {
161
77
  if (this.initialized)
162
78
  return;
@@ -164,30 +80,24 @@ export class SkillsmithTracer {
164
80
  this.initialized = true;
165
81
  return;
166
82
  }
167
- // SMI-755: Check if OpenTelemetry is available before attempting to load
168
83
  const isAvailable = await checkOTelAvailability();
169
84
  if (!isAvailable) {
170
- console.warn('[Skillsmith Telemetry] OpenTelemetry packages not installed. ' +
171
- 'Tracing disabled. Install @opentelemetry/api and related packages to enable.');
85
+ console.warn('[Skillsmith Telemetry] OpenTelemetry packages not installed. Tracing disabled.');
172
86
  this.enabled = false;
173
87
  this.initialized = true;
174
88
  return;
175
89
  }
176
90
  try {
177
- // SMI-755: Lazy load OTEL modules with error handling
178
- // Use dynamicImport to bypass TypeScript type checking
179
91
  api = await dynamicImport('@opentelemetry/api');
180
92
  sdk = await dynamicImport('@opentelemetry/sdk-node');
181
93
  resources = await dynamicImport('@opentelemetry/resources');
182
94
  semanticConventions = await dynamicImport('@opentelemetry/semantic-conventions');
183
- // If any core module failed to load, disable tracing
184
95
  if (!api || !sdk || !resources || !semanticConventions) {
185
96
  console.warn('[Skillsmith Telemetry] Some OpenTelemetry packages missing. Tracing disabled.');
186
97
  this.enabled = false;
187
98
  this.initialized = true;
188
99
  return;
189
100
  }
190
- // Get typed accessors
191
101
  const otelApi = getApi();
192
102
  const otelSdk = getSdk();
193
103
  const otelResources = getResources();
@@ -197,22 +107,17 @@ export class SkillsmithTracer {
197
107
  this.initialized = true;
198
108
  return;
199
109
  }
200
- // Build SDK configuration
201
110
  const sdkConfig = {};
202
- // Create resource with service info
203
- const Resource = otelResources.Resource;
204
- sdkConfig.resource = new Resource({
111
+ sdkConfig.resource = otelResources.resourceFromAttributes({
205
112
  [otelSemConv['ATTR_SERVICE_NAME'] ?? 'service.name']: this.config.serviceName,
206
113
  [otelSemConv['ATTR_SERVICE_VERSION'] ?? 'service.version']: '0.1.0',
207
114
  });
208
- // Add auto-instrumentation if enabled
209
115
  if (this.config.autoInstrument) {
210
116
  try {
211
117
  const autoInst = (await dynamicImport('@opentelemetry/auto-instrumentations-node'));
212
118
  if (autoInst?.getNodeAutoInstrumentations) {
213
119
  sdkConfig.instrumentations = [
214
120
  autoInst.getNodeAutoInstrumentations({
215
- // Customize instrumentations
216
121
  '@opentelemetry/instrumentation-fs': { enabled: false },
217
122
  '@opentelemetry/instrumentation-dns': { enabled: false },
218
123
  '@opentelemetry/instrumentation-net': { enabled: false },
@@ -221,52 +126,30 @@ export class SkillsmithTracer {
221
126
  }
222
127
  }
223
128
  catch {
224
- // Auto-instrumentation optional, continue without it
129
+ // Auto-instrumentation optional
225
130
  }
226
131
  }
227
- // Initialize SDK
228
132
  const NodeSDK = otelSdk.NodeSDK;
229
133
  this.sdkInstance = new NodeSDK(sdkConfig);
230
134
  await this.sdkInstance.start();
231
- // Get tracer
232
135
  this.tracer = otelApi.trace.getTracer(this.config.serviceName, '0.1.0');
233
136
  this.initialized = true;
234
137
  }
235
138
  catch (error) {
236
- // SMI-755: Graceful fallback - disable tracing on error
237
139
  console.warn('[Skillsmith Telemetry] Failed to initialize OpenTelemetry tracing:', error);
238
140
  this.enabled = false;
239
141
  this.initialized = true;
240
142
  }
241
143
  }
242
- /**
243
- * Check if tracing is enabled
244
- */
245
144
  isEnabled() {
246
145
  return this.enabled && this.initialized;
247
146
  }
248
- /**
249
- * Start a new span
250
- *
251
- * @param name - Span name (e.g., 'mcp.tool.search', 'db.query')
252
- * @param options - Span options
253
- * @returns SpanWrapper for manipulating the span
254
- */
255
147
  startSpan(name, options) {
256
- if (!this.isEnabled() || !this.tracer) {
148
+ if (!this.isEnabled() || !this.tracer)
257
149
  return new NoOpSpanWrapper();
258
- }
259
150
  const span = this.tracer.startSpan(name, options);
260
151
  return new ActiveSpanWrapper(span);
261
152
  }
262
- /**
263
- * Execute a function within a span context
264
- *
265
- * @param name - Span name
266
- * @param fn - Function to execute
267
- * @param options - Span options
268
- * @returns Result of the function
269
- */
270
153
  async withSpan(name, fn, options) {
271
154
  const spanWrapper = this.startSpan(name, options);
272
155
  try {
@@ -275,9 +158,8 @@ export class SkillsmithTracer {
275
158
  return result;
276
159
  }
277
160
  catch (error) {
278
- if (error instanceof Error) {
161
+ if (error instanceof Error)
279
162
  spanWrapper.recordException(error);
280
- }
281
163
  spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
282
164
  throw error;
283
165
  }
@@ -285,9 +167,6 @@ export class SkillsmithTracer {
285
167
  spanWrapper.end();
286
168
  }
287
169
  }
288
- /**
289
- * Execute a synchronous function within a span context
290
- */
291
170
  withSpanSync(name, fn, options) {
292
171
  const spanWrapper = this.startSpan(name, options);
293
172
  try {
@@ -296,9 +175,8 @@ export class SkillsmithTracer {
296
175
  return result;
297
176
  }
298
177
  catch (error) {
299
- if (error instanceof Error) {
178
+ if (error instanceof Error)
300
179
  spanWrapper.recordException(error);
301
- }
302
180
  spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
303
181
  throw error;
304
182
  }
@@ -306,23 +184,15 @@ export class SkillsmithTracer {
306
184
  spanWrapper.end();
307
185
  }
308
186
  }
309
- /**
310
- * Get the current active span (if any)
311
- */
312
187
  getCurrentSpan() {
313
188
  const otelApi = getApi();
314
- if (!otelApi) {
189
+ if (!otelApi)
315
190
  return new NoOpSpanWrapper();
316
- }
317
191
  const span = otelApi.trace.getActiveSpan();
318
- if (!span) {
192
+ if (!span)
319
193
  return new NoOpSpanWrapper();
320
- }
321
194
  return new ActiveSpanWrapper(span);
322
195
  }
323
- /**
324
- * Shutdown the tracer and flush pending spans
325
- */
326
196
  async shutdown() {
327
197
  if (this.sdkInstance) {
328
198
  await this.sdkInstance.shutdown();
@@ -334,40 +204,24 @@ export class SkillsmithTracer {
334
204
  }
335
205
  // Default tracer instance
336
206
  let defaultTracer = null;
337
- /**
338
- * Get the default tracer instance
339
- */
340
207
  export function getTracer() {
341
- if (!defaultTracer) {
208
+ if (!defaultTracer)
342
209
  defaultTracer = new SkillsmithTracer();
343
- }
344
210
  return defaultTracer;
345
211
  }
346
- /**
347
- * Initialize the default tracer
348
- * Should be called at application startup
349
- */
350
212
  export async function initializeTracing(config) {
351
- if (defaultTracer) {
213
+ if (defaultTracer)
352
214
  await defaultTracer.shutdown();
353
- }
354
215
  defaultTracer = new SkillsmithTracer(config);
355
216
  await defaultTracer.initialize();
356
217
  return defaultTracer;
357
218
  }
358
- /**
359
- * Shutdown the default tracer
360
- * Should be called at application shutdown
361
- */
362
219
  export async function shutdownTracing() {
363
220
  if (defaultTracer) {
364
221
  await defaultTracer.shutdown();
365
222
  defaultTracer = null;
366
223
  }
367
224
  }
368
- /**
369
- * Decorator for tracing async methods
370
- */
371
225
  export function traced(spanName) {
372
226
  return function (target, propertyKey, descriptor) {
373
227
  const originalMethod = descriptor.value;