@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
@@ -7,71 +7,9 @@
7
7
  * to enable context restoration across sessions.
8
8
  */
9
9
  import type { SessionData, Checkpoint } from './SessionContext.js';
10
- /**
11
- * Options for creating a new session
12
- */
13
- export interface SessionOptions {
14
- issueId?: string;
15
- worktree?: string;
16
- description?: string;
17
- }
18
- /**
19
- * Result from claude-flow memory operations
20
- */
21
- export interface MemoryResult {
22
- success: boolean;
23
- data?: string;
24
- error?: string;
25
- }
26
- /**
27
- * Command executor interface for dependency injection
28
- * Allows mocking claude-flow commands in tests
29
- *
30
- * Supports two modes:
31
- * - spawn(): Secure argument-array based execution (preferred)
32
- * - execute(): Legacy string-based execution (deprecated, for backwards compatibility)
33
- */
34
- export interface CommandExecutor {
35
- /**
36
- * @deprecated Use spawn() instead for security
37
- */
38
- execute(command: string): Promise<{
39
- stdout: string;
40
- stderr: string;
41
- }>;
42
- /**
43
- * Secure spawn-based execution with argument array
44
- * Prevents command injection by not using shell interpolation
45
- */
46
- spawn?(executable: string, args: string[]): Promise<{
47
- stdout: string;
48
- stderr: string;
49
- }>;
50
- }
51
- /**
52
- * Default command executor using child_process.spawn
53
- * Uses argument arrays to prevent command injection
54
- */
55
- export declare class DefaultCommandExecutor implements CommandExecutor {
56
- /**
57
- * @deprecated Legacy string-based execution - use spawn instead
58
- */
59
- execute(command: string): Promise<{
60
- stdout: string;
61
- stderr: string;
62
- }>;
63
- /**
64
- * Secure spawn-based execution with argument array
65
- */
66
- spawn(executable: string, args: string[]): Promise<{
67
- stdout: string;
68
- stderr: string;
69
- }>;
70
- /**
71
- * Parse legacy string command and execute via spawn
72
- */
73
- private executeWithSpawn;
74
- }
10
+ import type { CommandExecutor, SessionOptions } from './SessionManager.types.js';
11
+ export type { CommandExecutor, MemoryResult, SessionOptions } from './SessionManager.types.js';
12
+ export { DefaultCommandExecutor } from './SessionManager.helpers.js';
75
13
  /**
76
14
  * Session Manager for claude-flow memory integration
77
15
  *
@@ -152,8 +90,6 @@ export declare class SessionManager {
152
90
  *
153
91
  * SMI-674: Uses spawn() with argument array to prevent command injection
154
92
  * SMI-1518: V3 API Migration - Use direct storeEntry() when available
155
- *
156
- * Values are passed as separate arguments, never interpolated into shell commands
157
93
  */
158
94
  private storeMemory;
159
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AA6DlE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAErE;;;OAGG;IACH,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACxF;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAK3E;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC5F;;OAEG;YACW,gBAAgB;CAO/B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAA2B;IAEjD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAmC;gBAE1C,QAAQ,CAAC,EAAE,eAAe;IAItC;;;OAGG;YACW,QAAQ;IAiBtB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BtE;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoDhE;;;OAGG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAehE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAenD;;OAEG;YACW,YAAY;IAM1B;;OAEG;YACW,iBAAiB;IAI/B;;OAEG;YACW,mBAAmB;IAIjC;;;;;;;OAOG;YACW,WAAW;IA+CzB;;;;;OAKG;YACW,cAAc;IAiD5B;;;;;OAKG;YACW,YAAY;IA2C1B;;;;OAIG;YACW,cAAc;IAsC5B;;;;OAIG;YACW,eAAe;CA2B9B"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAgB,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAe9F,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAA2B;IAEjD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAmC;gBAE1C,QAAQ,CAAC,EAAE,eAAe;IAItC;;;OAGG;YACW,QAAQ;IAiBtB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BtE;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoDhE;;;OAGG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAehE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAenD;;OAEG;YACW,YAAY;IAM1B;;OAEG;YACW,iBAAiB;IAI/B;;OAEG;YACW,mBAAmB;IAIjC;;;;;OAKG;YACW,WAAW;IA4CzB;;;;;OAKG;YACW,cAAc;IAgD5B;;;;;OAKG;YACW,YAAY;IA4C1B;;;;OAIG;YACW,cAAc;IAwC5B;;;;OAIG;YACW,eAAe;CA6B9B"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Session Manager Helper Functions and Classes
3
+ * @module @skillsmith/core/session/SessionManager.helpers
4
+ */
5
+ import type { ClaudeFlowMemoryModule, ClaudeFlowMcpModule, CommandExecutor } from './SessionManager.types.js';
6
+ /**
7
+ * Lazily load claude-flow memory module
8
+ * Returns undefined if claude-flow is not installed
9
+ *
10
+ * Uses string concatenation for the import path to prevent Node.js
11
+ * ESM static analysis from resolving the module at parse time.
12
+ */
13
+ export declare function getClaudeFlowMemory(): Promise<ClaudeFlowMemoryModule | undefined>;
14
+ /**
15
+ * Lazily load claude-flow MCP module
16
+ * Returns undefined if claude-flow is not installed
17
+ *
18
+ * Uses string concatenation for the import path to prevent Node.js
19
+ * ESM static analysis from resolving the module at parse time.
20
+ */
21
+ export declare function getClaudeFlowMcp(): Promise<ClaudeFlowMcpModule | undefined>;
22
+ /**
23
+ * Memory key patterns for session storage
24
+ */
25
+ export declare const MEMORY_KEYS: {
26
+ readonly CURRENT: "session/current";
27
+ readonly SESSION_PREFIX: "session/";
28
+ readonly CHECKPOINT_PREFIX: "checkpoint/";
29
+ };
30
+ /**
31
+ * SMI-1518: Feature flag to enable V3 direct API
32
+ * Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
33
+ * Falls back to spawn-based CLI if not set or if V3 API fails
34
+ */
35
+ export declare const USE_V3_API: boolean;
36
+ /**
37
+ * Default namespace for session memory entries
38
+ */
39
+ export declare const MEMORY_NAMESPACE = "skillsmith-sessions";
40
+ /**
41
+ * Validates a memory key to prevent injection attacks
42
+ */
43
+ export declare function validateMemoryKey(key: string): boolean;
44
+ /**
45
+ * Default command executor using child_process.spawn
46
+ * Uses argument arrays to prevent command injection
47
+ */
48
+ export declare class DefaultCommandExecutor implements CommandExecutor {
49
+ /**
50
+ * @deprecated Legacy string-based execution - use spawn instead
51
+ */
52
+ execute(command: string): Promise<{
53
+ stdout: string;
54
+ stderr: string;
55
+ }>;
56
+ /**
57
+ * Secure spawn-based execution with argument array
58
+ */
59
+ spawn(executable: string, args: string[]): Promise<{
60
+ stdout: string;
61
+ stderr: string;
62
+ }>;
63
+ /**
64
+ * Parse legacy string command and execute via spawn
65
+ */
66
+ private executeWithSpawn;
67
+ }
68
+ //# sourceMappingURL=SessionManager.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionManager.helpers.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAoBlC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAWvF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAWjF;AAMD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAgD,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AAYrD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAMD;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAK3E;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC5F;;OAEG;YACW,gBAAgB;CAO/B"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Session Manager Helper Functions and Classes
3
+ * @module @skillsmith/core/session/SessionManager.helpers
4
+ */
5
+ import { spawn } from 'node:child_process';
6
+ // ============================================================================
7
+ // Module Loading State
8
+ // ============================================================================
9
+ // Use symbol to distinguish "not yet attempted" from "attempted but failed (undefined)"
10
+ const NOT_LOADED = Symbol('not-loaded');
11
+ let claudeFlowMemory = NOT_LOADED;
12
+ let claudeFlowMcp = NOT_LOADED;
13
+ // Module paths are constructed dynamically to prevent ESM static analysis
14
+ const CLAUDE_FLOW_BASE = 'claude-flow';
15
+ const MEMORY_MODULE_PATH = '/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js';
16
+ const MCP_MODULE_PATH = '/v3/@claude-flow/cli/dist/src/mcp-client.js';
17
+ // ============================================================================
18
+ // Dynamic Module Loaders
19
+ // ============================================================================
20
+ /**
21
+ * Lazily load claude-flow memory module
22
+ * Returns undefined if claude-flow is not installed
23
+ *
24
+ * Uses string concatenation for the import path to prevent Node.js
25
+ * ESM static analysis from resolving the module at parse time.
26
+ */
27
+ export async function getClaudeFlowMemory() {
28
+ if (claudeFlowMemory === NOT_LOADED) {
29
+ try {
30
+ // String concatenation prevents static analysis
31
+ const modulePath = CLAUDE_FLOW_BASE + MEMORY_MODULE_PATH;
32
+ claudeFlowMemory = await import(/* webpackIgnore: true */ modulePath);
33
+ }
34
+ catch {
35
+ claudeFlowMemory = undefined; // Mark as attempted but failed
36
+ }
37
+ }
38
+ return claudeFlowMemory === NOT_LOADED ? undefined : claudeFlowMemory;
39
+ }
40
+ /**
41
+ * Lazily load claude-flow MCP module
42
+ * Returns undefined if claude-flow is not installed
43
+ *
44
+ * Uses string concatenation for the import path to prevent Node.js
45
+ * ESM static analysis from resolving the module at parse time.
46
+ */
47
+ export async function getClaudeFlowMcp() {
48
+ if (claudeFlowMcp === NOT_LOADED) {
49
+ try {
50
+ // String concatenation prevents static analysis
51
+ const modulePath = CLAUDE_FLOW_BASE + MCP_MODULE_PATH;
52
+ claudeFlowMcp = await import(/* webpackIgnore: true */ modulePath);
53
+ }
54
+ catch {
55
+ claudeFlowMcp = undefined; // Mark as attempted but failed
56
+ }
57
+ }
58
+ return claudeFlowMcp === NOT_LOADED ? undefined : claudeFlowMcp;
59
+ }
60
+ // ============================================================================
61
+ // Constants
62
+ // ============================================================================
63
+ /**
64
+ * Memory key patterns for session storage
65
+ */
66
+ export const MEMORY_KEYS = {
67
+ CURRENT: 'session/current',
68
+ SESSION_PREFIX: 'session/',
69
+ CHECKPOINT_PREFIX: 'checkpoint/',
70
+ };
71
+ /**
72
+ * SMI-1518: Feature flag to enable V3 direct API
73
+ * Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
74
+ * Falls back to spawn-based CLI if not set or if V3 API fails
75
+ */
76
+ export const USE_V3_API = process.env.CLAUDE_FLOW_USE_V3_API === 'true';
77
+ /**
78
+ * Default namespace for session memory entries
79
+ */
80
+ export const MEMORY_NAMESPACE = 'skillsmith-sessions';
81
+ // ============================================================================
82
+ // Validation
83
+ // ============================================================================
84
+ /**
85
+ * Pattern for safe memory keys
86
+ * Only allows alphanumeric characters, hyphens, underscores, and forward slashes
87
+ */
88
+ const SAFE_KEY_PATTERN = /^[a-zA-Z0-9/_-]+$/;
89
+ /**
90
+ * Validates a memory key to prevent injection attacks
91
+ */
92
+ export function validateMemoryKey(key) {
93
+ return SAFE_KEY_PATTERN.test(key) && key.length <= 256;
94
+ }
95
+ // ============================================================================
96
+ // Default Command Executor
97
+ // ============================================================================
98
+ /**
99
+ * Default command executor using child_process.spawn
100
+ * Uses argument arrays to prevent command injection
101
+ */
102
+ export class DefaultCommandExecutor {
103
+ /**
104
+ * @deprecated Legacy string-based execution - use spawn instead
105
+ */
106
+ async execute(command) {
107
+ // For backwards compatibility only - prefer spawn()
108
+ return this.executeWithSpawn(command);
109
+ }
110
+ /**
111
+ * Secure spawn-based execution with argument array
112
+ */
113
+ async spawn(executable, args) {
114
+ return new Promise((resolve, reject) => {
115
+ const proc = spawn(executable, args, {
116
+ shell: false,
117
+ env: { ...process.env },
118
+ timeout: 30000,
119
+ });
120
+ let stdout = '';
121
+ let stderr = '';
122
+ proc.stdout?.on('data', (data) => {
123
+ stdout += data.toString();
124
+ });
125
+ proc.stderr?.on('data', (data) => {
126
+ stderr += data.toString();
127
+ });
128
+ proc.on('close', (code) => {
129
+ if (code === 0) {
130
+ resolve({ stdout: stdout.trim(), stderr: stderr.trim() });
131
+ }
132
+ else {
133
+ reject(new Error(stderr || `Command failed with code ${code}`));
134
+ }
135
+ });
136
+ proc.on('error', (err) => {
137
+ reject(err);
138
+ });
139
+ });
140
+ }
141
+ /**
142
+ * Parse legacy string command and execute via spawn
143
+ */
144
+ async executeWithSpawn(command) {
145
+ // Parse the command safely
146
+ const parts = command.split(' ');
147
+ const executable = parts[0];
148
+ const args = parts.slice(1);
149
+ return this.spawn(executable, args);
150
+ }
151
+ }
152
+ //# sourceMappingURL=SessionManager.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionManager.helpers.js","sourceRoot":"","sources":["../../../src/session/SessionManager.helpers.ts"],"names":[],"mappings":"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"}
@@ -7,111 +7,10 @@
7
7
  * to enable context restoration across sessions.
8
8
  */
9
9
  import { randomUUID } from 'node:crypto';
10
- import { spawn } from 'node:child_process';
11
- // V3 API imports - SMI-1518
12
- // These provide direct TypeScript API access instead of spawning CLI commands
13
- // Note: claude-flow V3 alpha doesn't export all functions from root, use direct paths
14
- import { storeEntry, getEntry, } from 'claude-flow/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js';
15
- import { callMCPTool, MCPClientError } from 'claude-flow/v3/@claude-flow/cli/dist/src/mcp-client.js';
16
- /**
17
- * Memory key patterns for session storage
18
- */
19
- const MEMORY_KEYS = {
20
- CURRENT: 'session/current',
21
- SESSION_PREFIX: 'session/',
22
- CHECKPOINT_PREFIX: 'checkpoint/',
23
- };
24
- /**
25
- * SMI-1518: Feature flag to enable V3 direct API
26
- * Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
27
- * Falls back to spawn-based CLI if not set or if V3 API fails
28
- */
29
- const USE_V3_API = process.env.CLAUDE_FLOW_USE_V3_API === 'true';
30
- /**
31
- * Default namespace for session memory entries
32
- */
33
- const MEMORY_NAMESPACE = 'skillsmith-sessions';
34
- /**
35
- * Validates a memory key to prevent injection attacks
36
- * Only allows alphanumeric characters, hyphens, underscores, and forward slashes
37
- */
38
- function validateMemoryKey(key) {
39
- const SAFE_KEY_PATTERN = /^[a-zA-Z0-9/_-]+$/;
40
- return SAFE_KEY_PATTERN.test(key) && key.length <= 256;
41
- }
42
- /**
43
- * Sanitizes session data before storage
44
- */
45
- function sanitizeSessionData(data) {
46
- return {
47
- sessionId: data.sessionId,
48
- startedAt: data.startedAt,
49
- issueId: data.issueId?.replace(/[<>]/g, ''),
50
- worktree: data.worktree?.replace(/[<>]/g, ''),
51
- checkpoints: data.checkpoints.map((cp) => ({
52
- id: cp.id,
53
- timestamp: cp.timestamp,
54
- description: cp.description.substring(0, 500),
55
- memoryKey: cp.memoryKey,
56
- })),
57
- filesModified: data.filesModified.map((f) => f.substring(0, 500)),
58
- lastActivity: data.lastActivity,
59
- };
60
- }
61
- /**
62
- * Default command executor using child_process.spawn
63
- * Uses argument arrays to prevent command injection
64
- */
65
- export class DefaultCommandExecutor {
66
- /**
67
- * @deprecated Legacy string-based execution - use spawn instead
68
- */
69
- async execute(command) {
70
- // For backwards compatibility only - prefer spawn()
71
- return this.executeWithSpawn(command);
72
- }
73
- /**
74
- * Secure spawn-based execution with argument array
75
- */
76
- async spawn(executable, args) {
77
- return new Promise((resolve, reject) => {
78
- const proc = spawn(executable, args, {
79
- shell: false,
80
- env: { ...process.env },
81
- timeout: 30000,
82
- });
83
- let stdout = '';
84
- let stderr = '';
85
- proc.stdout?.on('data', (data) => {
86
- stdout += data.toString();
87
- });
88
- proc.stderr?.on('data', (data) => {
89
- stderr += data.toString();
90
- });
91
- proc.on('close', (code) => {
92
- if (code === 0) {
93
- resolve({ stdout: stdout.trim(), stderr: stderr.trim() });
94
- }
95
- else {
96
- reject(new Error(stderr || `Command failed with code ${code}`));
97
- }
98
- });
99
- proc.on('error', (err) => {
100
- reject(err);
101
- });
102
- });
103
- }
104
- /**
105
- * Parse legacy string command and execute via spawn
106
- */
107
- async executeWithSpawn(command) {
108
- // Parse the command safely
109
- const parts = command.split(' ');
110
- const executable = parts[0];
111
- const args = parts.slice(1);
112
- return this.spawn(executable, args);
113
- }
114
- }
10
+ import { sanitizeSessionData } from './SessionManager.types.js';
11
+ // Import helpers
12
+ import { getClaudeFlowMemory, getClaudeFlowMcp, MEMORY_KEYS, USE_V3_API, MEMORY_NAMESPACE, validateMemoryKey, DefaultCommandExecutor, } from './SessionManager.helpers.js';
13
+ export { DefaultCommandExecutor } from './SessionManager.helpers.js';
115
14
  /**
116
15
  * Session Manager for claude-flow memory integration
117
16
  *
@@ -327,42 +226,37 @@ export class SessionManager {
327
226
  *
328
227
  * SMI-674: Uses spawn() with argument array to prevent command injection
329
228
  * SMI-1518: V3 API Migration - Use direct storeEntry() when available
330
- *
331
- * Values are passed as separate arguments, never interpolated into shell commands
332
229
  */
333
230
  async storeMemory(key, value) {
334
231
  if (!validateMemoryKey(key)) {
335
232
  return { success: false, error: 'Invalid memory key' };
336
233
  }
337
- // SMI-1518: Try V3 direct API first if enabled
234
+ // SMI-1518, SMI-1609: Try V3 direct API first if enabled
338
235
  if (USE_V3_API) {
339
236
  try {
340
- const result = await storeEntry({
341
- key,
342
- value,
343
- namespace: MEMORY_NAMESPACE,
344
- });
345
- if (result.success) {
346
- return { success: true };
237
+ const memoryModule = await getClaudeFlowMemory();
238
+ if (memoryModule?.storeEntry) {
239
+ const result = await memoryModule.storeEntry({
240
+ key,
241
+ value,
242
+ namespace: MEMORY_NAMESPACE,
243
+ });
244
+ if (result.success) {
245
+ return { success: true };
246
+ }
247
+ console.warn(`V3 storeEntry failed: ${result.error}, falling back to spawn`);
347
248
  }
348
- // Fall through to spawn if V3 API reports failure
349
- console.warn(`V3 storeEntry failed: ${result.error}, falling back to spawn`);
350
249
  }
351
250
  catch (error) {
352
- // V3 API threw an exception, fall back to spawn
353
251
  console.warn(`V3 storeEntry exception: ${error}, falling back to spawn`);
354
252
  }
355
253
  }
356
254
  try {
357
- // SMI-674 FIX: Use spawn with argument array instead of string interpolation
358
- // This prevents command injection attacks like $(whoami) or `id`
359
255
  const args = ['claude-flow', 'memory', 'store', '--key', key, '--value', value];
360
256
  if (this.executor.spawn) {
361
257
  await this.executor.spawn('npx', args);
362
258
  }
363
259
  else {
364
- // Fallback to execute for backwards compatibility (legacy executors)
365
- // Note: This path should not be used in production
366
260
  const escapedValue = value.replace(/'/g, "'\\''");
367
261
  const command = `npx claude-flow memory store --key "${key}" --value '${escapedValue}'`;
368
262
  await this.executor.execute(command);
@@ -386,29 +280,29 @@ export class SessionManager {
386
280
  if (!validateMemoryKey(key)) {
387
281
  return { success: false, error: 'Invalid memory key' };
388
282
  }
389
- // SMI-1518: Try V3 direct API first if enabled
283
+ // SMI-1518, SMI-1609: Try V3 direct API first if enabled
390
284
  if (USE_V3_API) {
391
285
  try {
392
- const result = await getEntry({
393
- key,
394
- namespace: MEMORY_NAMESPACE,
395
- });
396
- if (result.success && result.found && result.entry) {
397
- return { success: true, data: result.entry.content };
286
+ const memoryModule = await getClaudeFlowMemory();
287
+ if (memoryModule?.getEntry) {
288
+ const result = await memoryModule.getEntry({
289
+ key,
290
+ namespace: MEMORY_NAMESPACE,
291
+ });
292
+ if (result.success && result.found && result.entry) {
293
+ return { success: true, data: result.entry.content };
294
+ }
295
+ if (result.success && !result.found) {
296
+ return { success: false, error: 'Key not found' };
297
+ }
298
+ console.warn(`V3 getEntry failed: ${result.error}, falling back to spawn`);
398
299
  }
399
- if (result.success && !result.found) {
400
- return { success: false, error: 'Key not found' };
401
- }
402
- // Fall through to spawn if V3 API reports failure
403
- console.warn(`V3 getEntry failed: ${result.error}, falling back to spawn`);
404
300
  }
405
301
  catch (error) {
406
- // V3 API threw an exception, fall back to spawn
407
302
  console.warn(`V3 getEntry exception: ${error}, falling back to spawn`);
408
303
  }
409
304
  }
410
305
  try {
411
- // SMI-674 FIX: Use spawn with argument array
412
306
  const args = ['claude-flow', 'memory', 'get', '--key', key];
413
307
  let stdout;
414
308
  if (this.executor.spawn) {
@@ -416,7 +310,6 @@ export class SessionManager {
416
310
  stdout = result.stdout;
417
311
  }
418
312
  else {
419
- // Fallback for backwards compatibility
420
313
  const command = `npx claude-flow memory get --key "${key}"`;
421
314
  const result = await this.executor.execute(command);
422
315
  stdout = result.stdout;
@@ -440,34 +333,32 @@ export class SessionManager {
440
333
  if (!validateMemoryKey(key)) {
441
334
  return { success: false, error: 'Invalid memory key' };
442
335
  }
443
- // SMI-1518: Try V3 MCP API first if enabled
336
+ // SMI-1518, SMI-1609: Try V3 MCP API first if enabled
444
337
  if (USE_V3_API) {
445
338
  try {
446
- const result = await callMCPTool('memory/delete', {
447
- key,
448
- });
449
- if (result.success) {
450
- return { success: true };
339
+ const mcpModule = await getClaudeFlowMcp();
340
+ if (mcpModule?.callMCPTool) {
341
+ const result = (await mcpModule.callMCPTool('memory/delete', { key }));
342
+ if (result.success) {
343
+ return { success: true };
344
+ }
345
+ console.warn(`V3 memory/delete failed, falling back to spawn`);
451
346
  }
452
- // Fall through to spawn if V3 API reports failure
453
- console.warn(`V3 memory/delete failed, falling back to spawn`);
454
347
  }
455
348
  catch (error) {
456
- // V3 API threw an exception, fall back to spawn
457
- // MCPClientError indicates the tool wasn't available
458
- if (!(error instanceof MCPClientError)) {
349
+ const mcpModule = await getClaudeFlowMcp();
350
+ const MCPClientError = mcpModule?.MCPClientError;
351
+ if (!MCPClientError || !(error instanceof MCPClientError)) {
459
352
  console.warn(`V3 memory/delete exception: ${error}, falling back to spawn`);
460
353
  }
461
354
  }
462
355
  }
463
356
  try {
464
- // SMI-674 FIX: Use spawn with argument array
465
357
  const args = ['claude-flow', 'memory', 'delete', '--key', key];
466
358
  if (this.executor.spawn) {
467
359
  await this.executor.spawn('npx', args);
468
360
  }
469
361
  else {
470
- // Fallback for backwards compatibility
471
362
  const command = `npx claude-flow memory delete --key "${key}"`;
472
363
  await this.executor.execute(command);
473
364
  }
@@ -484,14 +375,17 @@ export class SessionManager {
484
375
  * SMI-1518: V3 API Migration - Use callMCPTool('hooks/pre-task') when available
485
376
  */
486
377
  async runPreTaskHook(description) {
487
- // SMI-1518: Try V3 MCP API first if enabled
378
+ // SMI-1518, SMI-1609: Try V3 MCP API first if enabled
488
379
  if (USE_V3_API) {
489
380
  try {
490
- await callMCPTool('hooks/pre-task', {
491
- description,
492
- memoryKey: 'session/current',
493
- });
494
- return; // Success, no need to fall back
381
+ const mcpModule = await getClaudeFlowMcp();
382
+ if (mcpModule?.callMCPTool) {
383
+ await mcpModule.callMCPTool('hooks/pre-task', {
384
+ description,
385
+ memoryKey: 'session/current',
386
+ });
387
+ return;
388
+ }
495
389
  }
496
390
  catch {
497
391
  // V3 API not available or failed, fall back to spawn
@@ -511,7 +405,6 @@ export class SessionManager {
511
405
  await this.executor.spawn('npx', args);
512
406
  }
513
407
  else {
514
- // Fallback for backwards compatibility
515
408
  const escapedDesc = description.replace(/'/g, "'\\''");
516
409
  const command = `npx claude-flow hooks pre-task --description '${escapedDesc}' --memory-key "session/current"`;
517
410
  await this.executor.execute(command);
@@ -527,13 +420,16 @@ export class SessionManager {
527
420
  * SMI-1518: V3 API Migration - Use callMCPTool('hooks/post-task') when available
528
421
  */
529
422
  async runPostTaskHook(taskId) {
530
- // SMI-1518: Try V3 MCP API first if enabled
423
+ // SMI-1518, SMI-1609: Try V3 MCP API first if enabled
531
424
  if (USE_V3_API) {
532
425
  try {
533
- await callMCPTool('hooks/post-task', {
534
- taskId,
535
- });
536
- return; // Success, no need to fall back
426
+ const mcpModule = await getClaudeFlowMcp();
427
+ if (mcpModule?.callMCPTool) {
428
+ await mcpModule.callMCPTool('hooks/post-task', {
429
+ taskId,
430
+ });
431
+ return;
432
+ }
537
433
  }
538
434
  catch {
539
435
  // V3 API not available or failed, fall back to spawn
@@ -545,7 +441,6 @@ export class SessionManager {
545
441
  await this.executor.spawn('npx', args);
546
442
  }
547
443
  else {
548
- // Fallback for backwards compatibility
549
444
  const command = `npx claude-flow hooks post-task --task-id "${taskId}"`;
550
445
  await this.executor.execute(command);
551
446
  }