lean-claudient-core 0.1.0

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 (507) hide show
  1. package/.reports/detailed-analysis_2026-06-20_01ed326b.html +200 -0
  2. package/.reports/detailed-analysis_2026-06-20_08d39381.html +200 -0
  3. package/.reports/detailed-analysis_2026-06-20_0a331144.html +200 -0
  4. package/.reports/detailed-analysis_2026-06-20_0d54ffef.html +200 -0
  5. package/.reports/detailed-analysis_2026-06-20_14bfa31c.html +200 -0
  6. package/.reports/detailed-analysis_2026-06-20_211feac4.html +200 -0
  7. package/.reports/detailed-analysis_2026-06-20_22381bc2.html +200 -0
  8. package/.reports/detailed-analysis_2026-06-20_29b4ea0a.html +200 -0
  9. package/.reports/detailed-analysis_2026-06-20_2df0ad14.html +200 -0
  10. package/.reports/detailed-analysis_2026-06-20_343ec84c.html +200 -0
  11. package/.reports/detailed-analysis_2026-06-20_3a01030d.html +200 -0
  12. package/.reports/detailed-analysis_2026-06-20_3b4c99ec.html +200 -0
  13. package/.reports/detailed-analysis_2026-06-20_3d368827.html +200 -0
  14. package/.reports/detailed-analysis_2026-06-20_53544d3d.html +200 -0
  15. package/.reports/detailed-analysis_2026-06-20_5721164a.html +200 -0
  16. package/.reports/detailed-analysis_2026-06-20_57caf5e7.html +200 -0
  17. package/.reports/detailed-analysis_2026-06-20_624302f5.html +200 -0
  18. package/.reports/detailed-analysis_2026-06-20_62456384.html +200 -0
  19. package/.reports/detailed-analysis_2026-06-20_636a52f1.html +200 -0
  20. package/.reports/detailed-analysis_2026-06-20_63d1ad41.html +200 -0
  21. package/.reports/detailed-analysis_2026-06-20_7451ccd7.html +200 -0
  22. package/.reports/detailed-analysis_2026-06-20_74da4e9a.html +200 -0
  23. package/.reports/detailed-analysis_2026-06-20_83a90083.html +200 -0
  24. package/.reports/detailed-analysis_2026-06-20_867fbdd9.html +200 -0
  25. package/.reports/detailed-analysis_2026-06-20_974c3299.html +200 -0
  26. package/.reports/detailed-analysis_2026-06-20_a04639a2.html +200 -0
  27. package/.reports/detailed-analysis_2026-06-20_a8e23d6d.html +200 -0
  28. package/.reports/detailed-analysis_2026-06-20_aa9150f0.html +200 -0
  29. package/.reports/detailed-analysis_2026-06-20_acbeee08.html +200 -0
  30. package/.reports/detailed-analysis_2026-06-20_c4ffa0e2.html +200 -0
  31. package/.reports/detailed-analysis_2026-06-20_c5f7684b.html +200 -0
  32. package/.reports/detailed-analysis_2026-06-20_c963b1fa.html +200 -0
  33. package/.reports/detailed-analysis_2026-06-20_d4bde41f.html +200 -0
  34. package/.reports/detailed-analysis_2026-06-20_d6eb2497.html +200 -0
  35. package/.reports/detailed-analysis_2026-06-20_ea6f7f58.html +200 -0
  36. package/.reports/detailed-analysis_2026-06-20_ebf4e060.html +200 -0
  37. package/.reports/detailed-analysis_2026-06-20_ec4313a9.html +200 -0
  38. package/.reports/detailed-analysis_2026-06-20_fc65d18e.html +200 -0
  39. package/.reports/executive-summary_2026-06-20_00406d50.html +109 -0
  40. package/.reports/executive-summary_2026-06-20_0bb202d3.html +109 -0
  41. package/.reports/executive-summary_2026-06-20_0bcd7481.html +109 -0
  42. package/.reports/executive-summary_2026-06-20_11506445.html +109 -0
  43. package/.reports/executive-summary_2026-06-20_13616cda.html +109 -0
  44. package/.reports/executive-summary_2026-06-20_19d41c2f.html +109 -0
  45. package/.reports/executive-summary_2026-06-20_1b0d6e96.html +109 -0
  46. package/.reports/executive-summary_2026-06-20_1e38670b.html +109 -0
  47. package/.reports/executive-summary_2026-06-20_1f32f793.html +109 -0
  48. package/.reports/executive-summary_2026-06-20_1f40f7d3.html +109 -0
  49. package/.reports/executive-summary_2026-06-20_25a40a7e.html +109 -0
  50. package/.reports/executive-summary_2026-06-20_26d11818.html +109 -0
  51. package/.reports/executive-summary_2026-06-20_26ed4593.html +109 -0
  52. package/.reports/executive-summary_2026-06-20_291b90a8.html +109 -0
  53. package/.reports/executive-summary_2026-06-20_2957a848.html +109 -0
  54. package/.reports/executive-summary_2026-06-20_2a04eb77.html +109 -0
  55. package/.reports/executive-summary_2026-06-20_2fa701f9.html +109 -0
  56. package/.reports/executive-summary_2026-06-20_327af8f5.html +109 -0
  57. package/.reports/executive-summary_2026-06-20_3418c729.html +109 -0
  58. package/.reports/executive-summary_2026-06-20_3571763d.html +109 -0
  59. package/.reports/executive-summary_2026-06-20_36225353.html +109 -0
  60. package/.reports/executive-summary_2026-06-20_3b2de891.html +109 -0
  61. package/.reports/executive-summary_2026-06-20_45b980c2.html +109 -0
  62. package/.reports/executive-summary_2026-06-20_46fcbf17.html +109 -0
  63. package/.reports/executive-summary_2026-06-20_48c8fa5e.html +109 -0
  64. package/.reports/executive-summary_2026-06-20_4ba55c43.html +109 -0
  65. package/.reports/executive-summary_2026-06-20_4f4498e6.html +109 -0
  66. package/.reports/executive-summary_2026-06-20_54c33bf0.html +109 -0
  67. package/.reports/executive-summary_2026-06-20_54cc7077.html +109 -0
  68. package/.reports/executive-summary_2026-06-20_5a12912e.html +109 -0
  69. package/.reports/executive-summary_2026-06-20_636fac87.html +109 -0
  70. package/.reports/executive-summary_2026-06-20_6587faaf.html +109 -0
  71. package/.reports/executive-summary_2026-06-20_6adbdd03.html +109 -0
  72. package/.reports/executive-summary_2026-06-20_6bf344ec.html +109 -0
  73. package/.reports/executive-summary_2026-06-20_7142aeed.html +109 -0
  74. package/.reports/executive-summary_2026-06-20_72bc0ceb.html +109 -0
  75. package/.reports/executive-summary_2026-06-20_775752ac.html +109 -0
  76. package/.reports/executive-summary_2026-06-20_7a9c3223.html +109 -0
  77. package/.reports/executive-summary_2026-06-20_808e6376.html +109 -0
  78. package/.reports/executive-summary_2026-06-20_8de9142d.html +109 -0
  79. package/.reports/executive-summary_2026-06-20_91981fbe.html +109 -0
  80. package/.reports/executive-summary_2026-06-20_93191c8c.html +109 -0
  81. package/.reports/executive-summary_2026-06-20_9be48a87.html +109 -0
  82. package/.reports/executive-summary_2026-06-20_9c127198.html +109 -0
  83. package/.reports/executive-summary_2026-06-20_9ee303ac.html +109 -0
  84. package/.reports/executive-summary_2026-06-20_9ee52709.html +109 -0
  85. package/.reports/executive-summary_2026-06-20_a0fa27de.html +109 -0
  86. package/.reports/executive-summary_2026-06-20_a1813e47.html +109 -0
  87. package/.reports/executive-summary_2026-06-20_a974edc1.html +109 -0
  88. package/.reports/executive-summary_2026-06-20_aa711737.html +109 -0
  89. package/.reports/executive-summary_2026-06-20_aa752246.html +109 -0
  90. package/.reports/executive-summary_2026-06-20_ac6f0927.html +109 -0
  91. package/.reports/executive-summary_2026-06-20_b231b143.html +109 -0
  92. package/.reports/executive-summary_2026-06-20_b570a2bd.html +109 -0
  93. package/.reports/executive-summary_2026-06-20_b6fbf650.html +109 -0
  94. package/.reports/executive-summary_2026-06-20_b9f8ddf3.html +109 -0
  95. package/.reports/executive-summary_2026-06-20_bf95cc63.html +109 -0
  96. package/.reports/executive-summary_2026-06-20_c0d0aefe.html +109 -0
  97. package/.reports/executive-summary_2026-06-20_c1933c36.html +109 -0
  98. package/.reports/executive-summary_2026-06-20_c99bba8a.html +109 -0
  99. package/.reports/executive-summary_2026-06-20_cc3846ac.html +109 -0
  100. package/.reports/executive-summary_2026-06-20_d485993c.html +109 -0
  101. package/.reports/executive-summary_2026-06-20_d56f75f7.html +109 -0
  102. package/.reports/executive-summary_2026-06-20_d57660cc.html +109 -0
  103. package/.reports/executive-summary_2026-06-20_dc036f62.html +109 -0
  104. package/.reports/executive-summary_2026-06-20_df783f47.html +109 -0
  105. package/.reports/executive-summary_2026-06-20_e2191adb.html +109 -0
  106. package/.reports/executive-summary_2026-06-20_e9f1d504.html +109 -0
  107. package/.reports/executive-summary_2026-06-20_ea82f5e1.html +109 -0
  108. package/.reports/executive-summary_2026-06-20_ec3e70cb.html +109 -0
  109. package/.reports/executive-summary_2026-06-20_ee6cf902.html +109 -0
  110. package/.reports/executive-summary_2026-06-20_f6cb657c.html +109 -0
  111. package/.reports/executive-summary_2026-06-20_f8c60046.html +109 -0
  112. package/.reports/executive-summary_2026-06-20_fa184840.html +109 -0
  113. package/.reports/executive-summary_2026-06-20_fc88bcb4.html +109 -0
  114. package/.reports/executive-summary_2026-06-20_ffa79c4e.html +109 -0
  115. package/README.md +53 -0
  116. package/dist/automation/actionApprover.d.ts +89 -0
  117. package/dist/automation/actionApprover.d.ts.map +1 -0
  118. package/dist/automation/actionApprover.js +264 -0
  119. package/dist/automation/actionApprover.js.map +1 -0
  120. package/dist/automation/actionExecutor.d.ts +125 -0
  121. package/dist/automation/actionExecutor.d.ts.map +1 -0
  122. package/dist/automation/actionExecutor.js +304 -0
  123. package/dist/automation/actionExecutor.js.map +1 -0
  124. package/dist/automation/alertRules.d.ts +55 -0
  125. package/dist/automation/alertRules.d.ts.map +1 -0
  126. package/dist/automation/alertRules.js +70 -0
  127. package/dist/automation/alertRules.js.map +1 -0
  128. package/dist/automation/alertSystem.d.ts +109 -0
  129. package/dist/automation/alertSystem.d.ts.map +1 -0
  130. package/dist/automation/alertSystem.js +303 -0
  131. package/dist/automation/alertSystem.js.map +1 -0
  132. package/dist/automation/competitorResponse.d.ts +119 -0
  133. package/dist/automation/competitorResponse.d.ts.map +1 -0
  134. package/dist/automation/competitorResponse.js +343 -0
  135. package/dist/automation/competitorResponse.js.map +1 -0
  136. package/dist/automation/composioClient.d.ts +107 -0
  137. package/dist/automation/composioClient.d.ts.map +1 -0
  138. package/dist/automation/composioClient.js +286 -0
  139. package/dist/automation/composioClient.js.map +1 -0
  140. package/dist/automation/crmExport.d.ts +116 -0
  141. package/dist/automation/crmExport.d.ts.map +1 -0
  142. package/dist/automation/crmExport.js +282 -0
  143. package/dist/automation/crmExport.js.map +1 -0
  144. package/dist/automation/crmIntegration.d.ts +83 -0
  145. package/dist/automation/crmIntegration.d.ts.map +1 -0
  146. package/dist/automation/crmIntegration.js +207 -0
  147. package/dist/automation/crmIntegration.js.map +1 -0
  148. package/dist/automation/gmailIntegration.d.ts +73 -0
  149. package/dist/automation/gmailIntegration.d.ts.map +1 -0
  150. package/dist/automation/gmailIntegration.js +184 -0
  151. package/dist/automation/gmailIntegration.js.map +1 -0
  152. package/dist/automation/index.d.ts +17 -0
  153. package/dist/automation/index.d.ts.map +1 -0
  154. package/dist/automation/index.js +17 -0
  155. package/dist/automation/index.js.map +1 -0
  156. package/dist/automation/jiraIntegration.d.ts +103 -0
  157. package/dist/automation/jiraIntegration.d.ts.map +1 -0
  158. package/dist/automation/jiraIntegration.js +222 -0
  159. package/dist/automation/jiraIntegration.js.map +1 -0
  160. package/dist/automation/jobQueue.d.ts +98 -0
  161. package/dist/automation/jobQueue.d.ts.map +1 -0
  162. package/dist/automation/jobQueue.js +207 -0
  163. package/dist/automation/jobQueue.js.map +1 -0
  164. package/dist/automation/leadQualification.d.ts +60 -0
  165. package/dist/automation/leadQualification.d.ts.map +1 -0
  166. package/dist/automation/leadQualification.js +204 -0
  167. package/dist/automation/leadQualification.js.map +1 -0
  168. package/dist/automation/qualificationRules.d.ts +100 -0
  169. package/dist/automation/qualificationRules.d.ts.map +1 -0
  170. package/dist/automation/qualificationRules.js +202 -0
  171. package/dist/automation/qualificationRules.js.map +1 -0
  172. package/dist/automation/responseTemplates.d.ts +64 -0
  173. package/dist/automation/responseTemplates.d.ts.map +1 -0
  174. package/dist/automation/responseTemplates.js +374 -0
  175. package/dist/automation/responseTemplates.js.map +1 -0
  176. package/dist/automation/scheduler.d.ts +85 -0
  177. package/dist/automation/scheduler.d.ts.map +1 -0
  178. package/dist/automation/scheduler.js +194 -0
  179. package/dist/automation/scheduler.js.map +1 -0
  180. package/dist/automation/types.d.ts +223 -0
  181. package/dist/automation/types.d.ts.map +1 -0
  182. package/dist/automation/types.js +32 -0
  183. package/dist/automation/types.js.map +1 -0
  184. package/dist/cli/index.d.ts +3 -0
  185. package/dist/cli/index.d.ts.map +1 -0
  186. package/dist/cli/index.js +575 -0
  187. package/dist/cli/index.js.map +1 -0
  188. package/dist/compression/caveman.d.ts +14 -0
  189. package/dist/compression/caveman.d.ts.map +1 -0
  190. package/dist/compression/caveman.js +188 -0
  191. package/dist/compression/caveman.js.map +1 -0
  192. package/dist/compression/caveman.test.d.ts +2 -0
  193. package/dist/compression/caveman.test.d.ts.map +1 -0
  194. package/dist/compression/caveman.test.js.map +1 -0
  195. package/dist/config/configManager.d.ts +6 -0
  196. package/dist/config/configManager.d.ts.map +1 -0
  197. package/dist/config/configManager.js +62 -0
  198. package/dist/config/configManager.js.map +1 -0
  199. package/dist/config/schema.d.ts +95 -0
  200. package/dist/config/schema.d.ts.map +1 -0
  201. package/dist/config/schema.js +19 -0
  202. package/dist/config/schema.js.map +1 -0
  203. package/dist/context/autoCompact.d.ts +19 -0
  204. package/dist/context/autoCompact.d.ts.map +1 -0
  205. package/dist/context/autoCompact.js +101 -0
  206. package/dist/context/autoCompact.js.map +1 -0
  207. package/dist/context/readDedup.d.ts +21 -0
  208. package/dist/context/readDedup.d.ts.map +1 -0
  209. package/dist/context/readDedup.js +55 -0
  210. package/dist/context/readDedup.js.map +1 -0
  211. package/dist/context/toolBudgets.d.ts +15 -0
  212. package/dist/context/toolBudgets.d.ts.map +1 -0
  213. package/dist/context/toolBudgets.js +35 -0
  214. package/dist/context/toolBudgets.js.map +1 -0
  215. package/dist/core/auditLogger.d.ts +30 -0
  216. package/dist/core/auditLogger.d.ts.map +1 -0
  217. package/dist/core/auditLogger.js +51 -0
  218. package/dist/core/auditLogger.js.map +1 -0
  219. package/dist/core/stateManager.d.ts +10 -0
  220. package/dist/core/stateManager.d.ts.map +1 -0
  221. package/dist/core/stateManager.js +59 -0
  222. package/dist/core/stateManager.js.map +1 -0
  223. package/dist/database/feedbackSchema.d.ts +80 -0
  224. package/dist/database/feedbackSchema.d.ts.map +1 -0
  225. package/dist/database/feedbackSchema.js +94 -0
  226. package/dist/database/feedbackSchema.js.map +1 -0
  227. package/dist/database/leadsSchema.d.ts +99 -0
  228. package/dist/database/leadsSchema.d.ts.map +1 -0
  229. package/dist/database/leadsSchema.js +136 -0
  230. package/dist/database/leadsSchema.js.map +1 -0
  231. package/dist/intelligence/competitorScoring.d.ts +25 -0
  232. package/dist/intelligence/competitorScoring.d.ts.map +1 -0
  233. package/dist/intelligence/competitorScoring.js +181 -0
  234. package/dist/intelligence/competitorScoring.js.map +1 -0
  235. package/dist/intelligence/competitorTracker.d.ts +36 -0
  236. package/dist/intelligence/competitorTracker.d.ts.map +1 -0
  237. package/dist/intelligence/competitorTracker.js +286 -0
  238. package/dist/intelligence/competitorTracker.js.map +1 -0
  239. package/dist/intelligence/competitorTypes.d.ts +93 -0
  240. package/dist/intelligence/competitorTypes.d.ts.map +1 -0
  241. package/dist/intelligence/competitorTypes.js +6 -0
  242. package/dist/intelligence/competitorTypes.js.map +1 -0
  243. package/dist/intelligence/competitors.json +76 -0
  244. package/dist/intelligence/feedbackLoop.d.ts +118 -0
  245. package/dist/intelligence/feedbackLoop.d.ts.map +1 -0
  246. package/dist/intelligence/feedbackLoop.js +368 -0
  247. package/dist/intelligence/feedbackLoop.js.map +1 -0
  248. package/dist/intelligence/gitHubTracker.d.ts +14 -0
  249. package/dist/intelligence/gitHubTracker.d.ts.map +1 -0
  250. package/dist/intelligence/gitHubTracker.js +153 -0
  251. package/dist/intelligence/gitHubTracker.js.map +1 -0
  252. package/dist/intelligence/hackerNewsScanner.d.ts +21 -0
  253. package/dist/intelligence/hackerNewsScanner.d.ts.map +1 -0
  254. package/dist/intelligence/hackerNewsScanner.js +88 -0
  255. package/dist/intelligence/hackerNewsScanner.js.map +1 -0
  256. package/dist/intelligence/hiringSignals.d.ts +16 -0
  257. package/dist/intelligence/hiringSignals.d.ts.map +1 -0
  258. package/dist/intelligence/hiringSignals.js +132 -0
  259. package/dist/intelligence/hiringSignals.js.map +1 -0
  260. package/dist/intelligence/index.d.ts +9 -0
  261. package/dist/intelligence/index.d.ts.map +1 -0
  262. package/dist/intelligence/index.js +9 -0
  263. package/dist/intelligence/index.js.map +1 -0
  264. package/dist/intelligence/leadEnrichment.d.ts +59 -0
  265. package/dist/intelligence/leadEnrichment.d.ts.map +1 -0
  266. package/dist/intelligence/leadEnrichment.js +209 -0
  267. package/dist/intelligence/leadEnrichment.js.map +1 -0
  268. package/dist/intelligence/leadEnrichmentTypes.d.ts +49 -0
  269. package/dist/intelligence/leadEnrichmentTypes.d.ts.map +1 -0
  270. package/dist/intelligence/leadEnrichmentTypes.js +7 -0
  271. package/dist/intelligence/leadEnrichmentTypes.js.map +1 -0
  272. package/dist/intelligence/marketScanner.d.ts +18 -0
  273. package/dist/intelligence/marketScanner.d.ts.map +1 -0
  274. package/dist/intelligence/marketScanner.js +225 -0
  275. package/dist/intelligence/marketScanner.js.map +1 -0
  276. package/dist/intelligence/polymarketScanner.d.ts +20 -0
  277. package/dist/intelligence/polymarketScanner.d.ts.map +1 -0
  278. package/dist/intelligence/polymarketScanner.js +88 -0
  279. package/dist/intelligence/polymarketScanner.js.map +1 -0
  280. package/dist/intelligence/redditScanner.d.ts +22 -0
  281. package/dist/intelligence/redditScanner.d.ts.map +1 -0
  282. package/dist/intelligence/redditScanner.js +89 -0
  283. package/dist/intelligence/redditScanner.js.map +1 -0
  284. package/dist/intelligence/signalAggregator.d.ts +10 -0
  285. package/dist/intelligence/signalAggregator.d.ts.map +1 -0
  286. package/dist/intelligence/signalAggregator.js +64 -0
  287. package/dist/intelligence/signalAggregator.js.map +1 -0
  288. package/dist/intelligence/trendAnalysis.d.ts +13 -0
  289. package/dist/intelligence/trendAnalysis.d.ts.map +1 -0
  290. package/dist/intelligence/trendAnalysis.js +106 -0
  291. package/dist/intelligence/trendAnalysis.js.map +1 -0
  292. package/dist/intelligence/twitterScanner.d.ts +22 -0
  293. package/dist/intelligence/twitterScanner.d.ts.map +1 -0
  294. package/dist/intelligence/twitterScanner.js +63 -0
  295. package/dist/intelligence/twitterScanner.js.map +1 -0
  296. package/dist/intelligence/types.d.ts +566 -0
  297. package/dist/intelligence/types.d.ts.map +1 -0
  298. package/dist/intelligence/types.js +87 -0
  299. package/dist/intelligence/types.js.map +1 -0
  300. package/dist/intelligence/userComplaints.d.ts +15 -0
  301. package/dist/intelligence/userComplaints.d.ts.map +1 -0
  302. package/dist/intelligence/userComplaints.js +193 -0
  303. package/dist/intelligence/userComplaints.js.map +1 -0
  304. package/dist/metrics/businessMetrics.d.ts +41 -0
  305. package/dist/metrics/businessMetrics.d.ts.map +1 -0
  306. package/dist/metrics/businessMetrics.js +120 -0
  307. package/dist/metrics/businessMetrics.js.map +1 -0
  308. package/dist/metrics/businessMetrics.test.d.ts +2 -0
  309. package/dist/metrics/businessMetrics.test.d.ts.map +1 -0
  310. package/dist/metrics/businessMetrics.test.js.map +1 -0
  311. package/dist/metrics/businessMetricsAgg.d.ts +85 -0
  312. package/dist/metrics/businessMetricsAgg.d.ts.map +1 -0
  313. package/dist/metrics/businessMetricsAgg.js +406 -0
  314. package/dist/metrics/businessMetricsAgg.js.map +1 -0
  315. package/dist/metrics/competitorMetrics.d.ts +57 -0
  316. package/dist/metrics/competitorMetrics.d.ts.map +1 -0
  317. package/dist/metrics/competitorMetrics.js +94 -0
  318. package/dist/metrics/competitorMetrics.js.map +1 -0
  319. package/dist/metrics/dashboardGenerator.d.ts +16 -0
  320. package/dist/metrics/dashboardGenerator.d.ts.map +1 -0
  321. package/dist/metrics/dashboardGenerator.js +313 -0
  322. package/dist/metrics/dashboardGenerator.js.map +1 -0
  323. package/dist/metrics/dashboardHTML.d.ts +18 -0
  324. package/dist/metrics/dashboardHTML.d.ts.map +1 -0
  325. package/dist/metrics/dashboardHTML.js +613 -0
  326. package/dist/metrics/dashboardHTML.js.map +1 -0
  327. package/dist/metrics/grafanaExport.d.ts +53 -0
  328. package/dist/metrics/grafanaExport.d.ts.map +1 -0
  329. package/dist/metrics/grafanaExport.js +277 -0
  330. package/dist/metrics/grafanaExport.js.map +1 -0
  331. package/dist/metrics/index.d.ts +17 -0
  332. package/dist/metrics/index.d.ts.map +1 -0
  333. package/dist/metrics/index.js +17 -0
  334. package/dist/metrics/index.js.map +1 -0
  335. package/dist/metrics/leadsMetrics.d.ts +48 -0
  336. package/dist/metrics/leadsMetrics.d.ts.map +1 -0
  337. package/dist/metrics/leadsMetrics.js +82 -0
  338. package/dist/metrics/leadsMetrics.js.map +1 -0
  339. package/dist/metrics/leadsMetrics.test.d.ts +2 -0
  340. package/dist/metrics/leadsMetrics.test.d.ts.map +1 -0
  341. package/dist/metrics/leadsMetrics.test.js.map +1 -0
  342. package/dist/metrics/metricsTypes.d.ts +114 -0
  343. package/dist/metrics/metricsTypes.d.ts.map +1 -0
  344. package/dist/metrics/metricsTypes.js +7 -0
  345. package/dist/metrics/metricsTypes.js.map +1 -0
  346. package/dist/metrics/revenueProjection.d.ts +44 -0
  347. package/dist/metrics/revenueProjection.d.ts.map +1 -0
  348. package/dist/metrics/revenueProjection.js +239 -0
  349. package/dist/metrics/revenueProjection.js.map +1 -0
  350. package/dist/metrics/revenueTypes.d.ts +62 -0
  351. package/dist/metrics/revenueTypes.d.ts.map +1 -0
  352. package/dist/metrics/revenueTypes.js +7 -0
  353. package/dist/metrics/revenueTypes.js.map +1 -0
  354. package/dist/metrics/roiCalculator.d.ts +39 -0
  355. package/dist/metrics/roiCalculator.d.ts.map +1 -0
  356. package/dist/metrics/roiCalculator.js +128 -0
  357. package/dist/metrics/roiCalculator.js.map +1 -0
  358. package/dist/metrics/roiCalculator.test.d.ts +2 -0
  359. package/dist/metrics/roiCalculator.test.d.ts.map +1 -0
  360. package/dist/metrics/roiCalculator.test.js.map +1 -0
  361. package/dist/metrics/trendMetrics.d.ts +51 -0
  362. package/dist/metrics/trendMetrics.d.ts.map +1 -0
  363. package/dist/metrics/trendMetrics.js +116 -0
  364. package/dist/metrics/trendMetrics.js.map +1 -0
  365. package/dist/modes/conservativeCTOMode.d.ts +32 -0
  366. package/dist/modes/conservativeCTOMode.d.ts.map +1 -0
  367. package/dist/modes/conservativeCTOMode.js +98 -0
  368. package/dist/modes/conservativeCTOMode.js.map +1 -0
  369. package/dist/modes/index.d.ts +3 -0
  370. package/dist/modes/index.d.ts.map +1 -0
  371. package/dist/modes/index.js +3 -0
  372. package/dist/modes/index.js.map +1 -0
  373. package/dist/modes/seniorDeveloperMode.d.ts +17 -0
  374. package/dist/modes/seniorDeveloperMode.d.ts.map +1 -0
  375. package/dist/modes/seniorDeveloperMode.js +77 -0
  376. package/dist/modes/seniorDeveloperMode.js.map +1 -0
  377. package/dist/recovery/contextRecovery.d.ts +28 -0
  378. package/dist/recovery/contextRecovery.d.ts.map +1 -0
  379. package/dist/recovery/contextRecovery.js +113 -0
  380. package/dist/recovery/contextRecovery.js.map +1 -0
  381. package/dist/repair/errorDiagnostics.d.ts +28 -0
  382. package/dist/repair/errorDiagnostics.d.ts.map +1 -0
  383. package/dist/repair/errorDiagnostics.js +158 -0
  384. package/dist/repair/errorDiagnostics.js.map +1 -0
  385. package/dist/repair/skillCapture.d.ts +22 -0
  386. package/dist/repair/skillCapture.d.ts.map +1 -0
  387. package/dist/repair/skillCapture.js +119 -0
  388. package/dist/repair/skillCapture.js.map +1 -0
  389. package/dist/reporting/reportGenerator.d.ts +117 -0
  390. package/dist/reporting/reportGenerator.d.ts.map +1 -0
  391. package/dist/reporting/reportGenerator.js +613 -0
  392. package/dist/reporting/reportGenerator.js.map +1 -0
  393. package/dist/reporting/templates.d.ts +68 -0
  394. package/dist/reporting/templates.d.ts.map +1 -0
  395. package/dist/reporting/templates.js +629 -0
  396. package/dist/reporting/templates.js.map +1 -0
  397. package/dist/security/owaspScanner.d.ts +74 -0
  398. package/dist/security/owaspScanner.d.ts.map +1 -0
  399. package/dist/security/owaspScanner.js +309 -0
  400. package/dist/security/owaspScanner.js.map +1 -0
  401. package/dist/security/piiRedaction.d.ts +67 -0
  402. package/dist/security/piiRedaction.d.ts.map +1 -0
  403. package/dist/security/piiRedaction.js +189 -0
  404. package/dist/security/piiRedaction.js.map +1 -0
  405. package/dist/security/secretsDetection.d.ts +47 -0
  406. package/dist/security/secretsDetection.d.ts.map +1 -0
  407. package/dist/security/secretsDetection.js +272 -0
  408. package/dist/security/secretsDetection.js.map +1 -0
  409. package/dist/subagents/builder.d.ts +33 -0
  410. package/dist/subagents/builder.d.ts.map +1 -0
  411. package/dist/subagents/builder.js +158 -0
  412. package/dist/subagents/builder.js.map +1 -0
  413. package/dist/subagents/investigator.d.ts +31 -0
  414. package/dist/subagents/investigator.d.ts.map +1 -0
  415. package/dist/subagents/investigator.js +166 -0
  416. package/dist/subagents/investigator.js.map +1 -0
  417. package/dist/subagents/orchestrator.d.ts +48 -0
  418. package/dist/subagents/orchestrator.d.ts.map +1 -0
  419. package/dist/subagents/orchestrator.js +151 -0
  420. package/dist/subagents/orchestrator.js.map +1 -0
  421. package/dist/subagents/reviewer.d.ts +31 -0
  422. package/dist/subagents/reviewer.d.ts.map +1 -0
  423. package/dist/subagents/reviewer.js +154 -0
  424. package/dist/subagents/reviewer.js.map +1 -0
  425. package/dist/telemetry/tokenCounter.d.ts +21 -0
  426. package/dist/telemetry/tokenCounter.d.ts.map +1 -0
  427. package/dist/telemetry/tokenCounter.js +49 -0
  428. package/dist/telemetry/tokenCounter.js.map +1 -0
  429. package/package.json +61 -0
  430. package/src/automation/actionApprover.ts +342 -0
  431. package/src/automation/actionExecutor.ts +399 -0
  432. package/src/automation/alertRules.ts +113 -0
  433. package/src/automation/alertSystem.ts +402 -0
  434. package/src/automation/competitorResponse.ts +511 -0
  435. package/src/automation/composioClient.ts +360 -0
  436. package/src/automation/crmExport.ts +407 -0
  437. package/src/automation/crmIntegration.ts +268 -0
  438. package/src/automation/gmailIntegration.ts +244 -0
  439. package/src/automation/index.ts +17 -0
  440. package/src/automation/jiraIntegration.ts +310 -0
  441. package/src/automation/jobQueue.ts +278 -0
  442. package/src/automation/leadQualification.ts +270 -0
  443. package/src/automation/qualificationRules.ts +304 -0
  444. package/src/automation/responseTemplates.ts +419 -0
  445. package/src/automation/scheduler.ts +254 -0
  446. package/src/automation/types.ts +270 -0
  447. package/src/cli/index.ts +646 -0
  448. package/src/compression/caveman.ts +257 -0
  449. package/src/config/configManager.ts +63 -0
  450. package/src/config/schema.ts +27 -0
  451. package/src/context/autoCompact.ts +123 -0
  452. package/src/context/readDedup.ts +84 -0
  453. package/src/context/toolBudgets.ts +43 -0
  454. package/src/core/auditLogger.ts +69 -0
  455. package/src/core/stateManager.ts +73 -0
  456. package/src/database/feedbackSchema.ts +168 -0
  457. package/src/database/leadsSchema.ts +205 -0
  458. package/src/intelligence/competitorScoring.ts +292 -0
  459. package/src/intelligence/competitorTracker.ts +362 -0
  460. package/src/intelligence/competitorTypes.ts +100 -0
  461. package/src/intelligence/competitors.json +76 -0
  462. package/src/intelligence/feedbackLoop.ts +538 -0
  463. package/src/intelligence/gitHubTracker.ts +204 -0
  464. package/src/intelligence/hackerNewsScanner.ts +121 -0
  465. package/src/intelligence/hiringSignals.ts +162 -0
  466. package/src/intelligence/index.ts +9 -0
  467. package/src/intelligence/leadEnrichment.ts +275 -0
  468. package/src/intelligence/leadEnrichmentTypes.ts +54 -0
  469. package/src/intelligence/marketScanner.ts +285 -0
  470. package/src/intelligence/polymarketScanner.ts +120 -0
  471. package/src/intelligence/redditScanner.ts +122 -0
  472. package/src/intelligence/signalAggregator.ts +94 -0
  473. package/src/intelligence/trendAnalysis.ts +140 -0
  474. package/src/intelligence/twitterScanner.ts +94 -0
  475. package/src/intelligence/types.ts +130 -0
  476. package/src/intelligence/userComplaints.ts +236 -0
  477. package/src/metrics/businessMetrics.ts +186 -0
  478. package/src/metrics/businessMetricsAgg.ts +554 -0
  479. package/src/metrics/competitorMetrics.ts +175 -0
  480. package/src/metrics/dashboardGenerator.ts +335 -0
  481. package/src/metrics/dashboardHTML.ts +637 -0
  482. package/src/metrics/grafanaExport.ts +347 -0
  483. package/src/metrics/index.ts +17 -0
  484. package/src/metrics/leadsMetrics.ts +145 -0
  485. package/src/metrics/metricsTypes.ts +129 -0
  486. package/src/metrics/revenueProjection.ts +319 -0
  487. package/src/metrics/revenueTypes.ts +67 -0
  488. package/src/metrics/roiCalculator.ts +199 -0
  489. package/src/metrics/trendMetrics.ts +190 -0
  490. package/src/modes/conservativeCTOMode.ts +124 -0
  491. package/src/modes/index.ts +6 -0
  492. package/src/modes/seniorDeveloperMode.ts +94 -0
  493. package/src/recovery/contextRecovery.ts +141 -0
  494. package/src/repair/errorDiagnostics.ts +198 -0
  495. package/src/repair/skillCapture.ts +157 -0
  496. package/src/reporting/reportGenerator.ts +802 -0
  497. package/src/reporting/templates.ts +677 -0
  498. package/src/security/owaspScanner.ts +390 -0
  499. package/src/security/phase8Hardening.ts +536 -0
  500. package/src/security/piiRedaction.ts +215 -0
  501. package/src/security/secretsDetection.js +271 -0
  502. package/src/security/secretsDetection.ts +318 -0
  503. package/src/subagents/builder.ts +277 -0
  504. package/src/subagents/investigator.ts +224 -0
  505. package/src/subagents/orchestrator.ts +212 -0
  506. package/src/subagents/reviewer.ts +215 -0
  507. package/src/telemetry/tokenCounter.ts +81 -0
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Response Templates
3
+ * Email and Jira templates for competitive responses
4
+ * Phase 8C Task 11
5
+ */
6
+ /**
7
+ * Email templates for different threat levels and scenarios
8
+ */
9
+ export const emailTemplates = {
10
+ critical_threat: {
11
+ name: 'Critical Competitor Threat',
12
+ subject: 'URGENT: Critical Competitor Threat - {{competitorName}} Response Required',
13
+ bodyTemplate: `
14
+ Dear Sales Leadership,
15
+
16
+ We have identified a CRITICAL threat from {{competitorName}} that requires immediate action.
17
+
18
+ THREAT OVERVIEW:
19
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
20
+ • Competitor: {{competitorName}}
21
+ • Threat Level: CRITICAL (Score: {{threatScore}}/100)
22
+ • Affected Accounts: {{affectedLeadCount}}
23
+ • Key Account IDs: {{topLeadIds}}
24
+ • Detection Date: {{detectionDate}}
25
+
26
+ COMPETITIVE THREAT ANALYSIS:
27
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
28
+ 1. Market Position: {{competitorStrengths}}
29
+ 2. Key Vulnerabilities: {{competitorWeaknesses}}
30
+ 3. Our Advantage: {{ourDifferentiation}}
31
+
32
+ IMMEDIATE ACTION ITEMS (Next 24 Hours):
33
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
+ □ Executive briefing on threat
35
+ □ Review customer risk assessment
36
+ □ Prepare customer retention calls
37
+ □ Activate crisis communication plan
38
+ □ Review pricing/packaging response
39
+
40
+ ESCALATION: {{escalationPath}}
41
+
42
+ This requires immediate leadership attention and coordinated customer engagement.
43
+ Expected response time: 4-6 hours.
44
+
45
+ Best regards,
46
+ Competitive Intelligence Team
47
+ `,
48
+ cta: 'Schedule immediate response call',
49
+ priority: 'urgent',
50
+ },
51
+ high_threat: {
52
+ name: 'High Competitor Threat',
53
+ subject: 'Competitor Update: {{competitorName}} Gaining Traction',
54
+ bodyTemplate: `
55
+ Dear Sales Team,
56
+
57
+ We've detected a HIGH priority competitive threat from {{competitorName}} in your pipeline.
58
+
59
+ THREAT SUMMARY:
60
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
+ Competitor: {{competitorName}}
62
+ Threat Level: HIGH
63
+ Affected Accounts: {{affectedLeadCount}}
64
+ Key Accounts: {{topLeadIds}}
65
+
66
+ WHAT CHANGED:
67
+ • {{competitorStrengths}}
68
+ • Market momentum indicators show increased activity
69
+
70
+ OUR RESPONSE STRATEGY:
71
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
72
+ 1. Differentiation: {{ourDifferentiation}}
73
+ 2. Unique Value Props:
74
+ • {{uniqueValue1}}
75
+ • {{uniqueValue2}}
76
+ • {{uniqueValue3}}
77
+
78
+ RECOMMENDED SALES ACTIONS:
79
+ □ Prepare competitive comparison deck
80
+ □ Schedule account review meetings
81
+ □ Document customer pain points we solve better
82
+ □ Create response talking points
83
+
84
+ Timeline: Handle within 48-72 hours
85
+ `,
86
+ cta: 'Review competitive positioning',
87
+ priority: 'high',
88
+ },
89
+ medium_threat: {
90
+ name: 'Medium Competitor Threat',
91
+ subject: 'Market Update: {{competitorName}} Activity Detected',
92
+ bodyTemplate: `
93
+ Dear Team,
94
+
95
+ We have identified MEDIUM priority competitive activity from {{competitorName}}.
96
+
97
+ OVERVIEW:
98
+ • Competitor: {{competitorName}}
99
+ • Affected Accounts: {{affectedLeadCount}}
100
+ • Threat Level: MEDIUM
101
+
102
+ KEY INSIGHTS:
103
+ {{competitorInsights}}
104
+
105
+ OUR POSITIONING:
106
+ {{ourPositioning}}
107
+
108
+ RECOMMENDED FOLLOW-UP:
109
+ • Monitor {{competitorName}} announcements
110
+ • Document customer feedback
111
+ • Prepare messaging for relevant accounts
112
+
113
+ No immediate action required, but stay alert.
114
+ `,
115
+ cta: 'Review market intelligence',
116
+ priority: 'normal',
117
+ },
118
+ lost_deal: {
119
+ name: 'Lost Deal to Competitor',
120
+ subject: 'Deal Loss Analysis: {{competitorName}} - {{accountName}}',
121
+ bodyTemplate: `
122
+ Dear Sales Leadership,
123
+
124
+ We have recorded a lost deal to {{competitorName}} at {{accountName}}.
125
+
126
+ DEAL ANALYSIS:
127
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
128
+ Account: {{accountName}}
129
+ Expected Revenue: {{projectedRevenue}}
130
+ Competitor: {{competitorName}}
131
+ Loss Reason: {{lossReason}}
132
+ Customer Feedback: {{customerFeedback}}
133
+
134
+ ROOT CAUSE ANALYSIS:
135
+ • {{rootCause1}}
136
+ • {{rootCause2}}
137
+ • {{rootCause3}}
138
+
139
+ RECOMMENDED PRODUCT/MARKETING RESPONSE:
140
+ □ Feature gap analysis
141
+ □ Pricing strategy review
142
+ □ Customer testimonial collection
143
+ □ Win-back opportunity assessment
144
+
145
+ This information is being fed into our competitive strategy.
146
+ `,
147
+ cta: 'Schedule loss review meeting',
148
+ priority: 'high',
149
+ },
150
+ };
151
+ /**
152
+ * Jira templates for different threat levels
153
+ */
154
+ export const jiraTemplates = {
155
+ critical_epic: {
156
+ name: 'Critical Competitor Response Epic',
157
+ titleTemplate: 'CRITICAL: Counter {{competitorName}} Threat ({{threatScore}})',
158
+ descriptionTemplate: `
159
+ h1. Critical Competitive Response Epic
160
+
161
+ h2. Overview
162
+ {{competitorName}} (Threat Level: {{threatLevel}}) is gaining traction and poses a critical threat to our market position.
163
+
164
+ h2. Market Impact
165
+ * Market Share Risk: {{marketRiskAssessment}}
166
+ * Affected Customer Base: {{affectedLeadCount}} accounts
167
+ * Revenue at Risk: {{revenueAtRisk}}
168
+ * Customer Churn Risk: {{churnRisk}}
169
+
170
+ h2. Competitor Analysis
171
+ h3. Key Strengths
172
+ * {{competitorStrength1}}
173
+ * {{competitorStrength2}}
174
+ * {{competitorStrength3}}
175
+
176
+ h3. Key Weaknesses
177
+ * {{competitorWeakness1}}
178
+ * {{competitorWeakness2}}
179
+
180
+ h3. Our Differentiation
181
+ * {{ourAdvantage1}}
182
+ * {{ourAdvantage2}}
183
+ * {{ourAdvantage3}}
184
+
185
+ h2. Feature Gaps to Address
186
+ * {{featureGap1}} - *{{priority1}}*
187
+ * {{featureGap2}} - *{{priority2}}*
188
+ * {{featureGap3}} - *{{priority3}}*
189
+
190
+ h2. Action Items
191
+ h3. Product Team
192
+ * [ ] Complete feature gap analysis
193
+ * [ ] Prioritize roadmap items
194
+ * [ ] Assess implementation effort
195
+ * [ ] Create customer-facing roadmap
196
+
197
+ h3. Marketing/Sales
198
+ * [ ] Create competitive comparison guide
199
+ * [ ] Prepare sales enablement materials
200
+ * [ ] Brief customer success team
201
+ * [ ] Plan win-back campaigns
202
+
203
+ h3. Leadership
204
+ * [ ] Strategic positioning review
205
+ * [ ] Pricing strategy reassessment
206
+ * [ ] Partnership opportunities evaluation
207
+
208
+ h2. Success Criteria
209
+ * [ ] Competitive threat reduced to HIGH or below
210
+ * [ ] Customer retention rate >95%
211
+ * [ ] Win rate improvement documented
212
+ * [ ] Roadmap response planned
213
+
214
+ h2. Timeline
215
+ CRITICAL: Complete strategic assessment within 1 week
216
+
217
+ h2. Labels
218
+ competitor-response, urgent, {{competitorName|lowercase}}
219
+
220
+ h2. Epic Link
221
+ Link to quarterly product roadmap
222
+
223
+ h2. Priority
224
+ Highest
225
+ `,
226
+ storyPoints: 21,
227
+ labels: ['competitor-response', 'urgent', 'critical'],
228
+ priority: 'Highest',
229
+ },
230
+ high_epic: {
231
+ name: 'High Priority Competitive Response',
232
+ titleTemplate: 'Counter {{competitorName}} High Threat ({{threatScore}})',
233
+ descriptionTemplate: `
234
+ h1. Competitive Response Epic
235
+
236
+ h2. Overview
237
+ {{competitorName}} (Threat Level: {{threatLevel}}) is gaining market traction.
238
+
239
+ h2. Competitive Threat
240
+ * Threat Score: {{threatScore}}/100
241
+ * Affected Accounts: {{affectedLeadCount}}
242
+ * Key Vulnerabilities: {{competitorWeaknesses}}
243
+
244
+ h2. Our Competitive Advantages
245
+ {{ourDifferentiation}}
246
+
247
+ h2. Product Response Roadmap
248
+ h3. Priority Features
249
+ * {{feature1}} - {{effort}}
250
+ * {{feature2}} - {{effort}}
251
+
252
+ h3. Messaging Updates
253
+ * [ ] Update competitive positioning
254
+ * [ ] Create customer comparison guide
255
+ * [ ] Prepare sales training
256
+
257
+ h2. Success Metrics
258
+ * Win rate against {{competitorName}}: Target >60%
259
+ * Customer satisfaction maintained >4.5/5
260
+ * Market share maintained
261
+
262
+ h2. Timeline
263
+ 1-2 weeks for strategic response planning
264
+
265
+ h2. Labels
266
+ competitor-response, {{competitorName|lowercase}}
267
+
268
+ h2. Priority
269
+ High
270
+ `,
271
+ storyPoints: 13,
272
+ labels: ['competitor-response', 'standard'],
273
+ priority: 'High',
274
+ },
275
+ medium_epic: {
276
+ name: 'Medium Priority Competitive Monitoring',
277
+ titleTemplate: 'Monitor {{competitorName}} Medium Threat ({{threatScore}})',
278
+ descriptionTemplate: `
279
+ h1. Competitive Monitoring Epic
280
+
281
+ h2. Overview
282
+ {{competitorName}} shows MEDIUM competitive threat indicators.
283
+
284
+ h2. Details
285
+ * Threat Score: {{threatScore}}/100
286
+ * Affected Accounts: {{affectedLeadCount}}
287
+ * Key Signals: {{signals}}
288
+
289
+ h2. Monitoring Tasks
290
+ * [ ] Track {{competitorName}} announcements
291
+ * [ ] Monitor customer feedback
292
+ * [ ] Assess feature roadmap impact
293
+ * [ ] Prepare contingency plans
294
+
295
+ h2. Timeline
296
+ Ongoing monitoring with quarterly reviews
297
+
298
+ h2. Labels
299
+ competitor-response, monitoring
300
+
301
+ h2. Priority
302
+ Medium
303
+ `,
304
+ storyPoints: 5,
305
+ labels: ['competitor-response', 'monitoring'],
306
+ priority: 'Medium',
307
+ },
308
+ };
309
+ /**
310
+ * Template renderer
311
+ */
312
+ export function renderTemplate(template, variables) {
313
+ let result = template;
314
+ Object.entries(variables).forEach(([key, value]) => {
315
+ const regex = new RegExp(`{{${key}(?:\\|[^}]+)?}}`, 'g');
316
+ result = result.replace(regex, String(value || ''));
317
+ });
318
+ return result;
319
+ }
320
+ /**
321
+ * Get email template by threat level
322
+ */
323
+ export function getEmailTemplate(threatLevel, scenario = 'new_threat') {
324
+ if (threatLevel === 'CRITICAL') {
325
+ return emailTemplates.critical_threat;
326
+ }
327
+ else if (threatLevel === 'HIGH') {
328
+ return emailTemplates.high_threat;
329
+ }
330
+ else if (scenario === 'lost_deal') {
331
+ return emailTemplates.lost_deal;
332
+ }
333
+ else {
334
+ return emailTemplates.medium_threat;
335
+ }
336
+ }
337
+ /**
338
+ * Get Jira template by threat level
339
+ */
340
+ export function getJiraTemplate(threatLevel) {
341
+ if (threatLevel === 'CRITICAL') {
342
+ return jiraTemplates.critical_epic;
343
+ }
344
+ else if (threatLevel === 'HIGH') {
345
+ return jiraTemplates.high_epic;
346
+ }
347
+ else {
348
+ return jiraTemplates.medium_epic;
349
+ }
350
+ }
351
+ /**
352
+ * Format email for sending
353
+ */
354
+ export function formatEmailForSending(templateKey, variables) {
355
+ const template = emailTemplates[templateKey] || emailTemplates.medium_threat;
356
+ return {
357
+ subject: renderTemplate(template.subject, variables),
358
+ body: renderTemplate(template.bodyTemplate, variables),
359
+ cta: template.cta,
360
+ };
361
+ }
362
+ /**
363
+ * Format Jira epic for creation
364
+ */
365
+ export function formatJiraForCreation(templateKey, variables) {
366
+ const template = jiraTemplates[templateKey] || jiraTemplates.medium_epic;
367
+ return {
368
+ title: renderTemplate(template.titleTemplate, variables),
369
+ description: renderTemplate(template.descriptionTemplate, variables),
370
+ storyPoints: template.storyPoints,
371
+ labels: template.labels,
372
+ };
373
+ }
374
+ //# sourceMappingURL=responseTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseTemplates.js","sourceRoot":"","sources":["../../src/automation/responseTemplates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Scheduled Background Jobs Scheduler
3
+ * In-memory cron-like task scheduling with audit logging
4
+ * No external dependencies (no Redis/Bull)
5
+ * Phase 8C Task 7
6
+ */
7
+ /**
8
+ * Job definition
9
+ */
10
+ export interface ScheduledJob {
11
+ id: string;
12
+ name: string;
13
+ interval: number;
14
+ fn: () => Promise<void> | void;
15
+ lastRun?: number;
16
+ nextRun: number;
17
+ status: 'scheduled' | 'running' | 'failed' | 'idle';
18
+ lastError?: string;
19
+ executionCount: number;
20
+ }
21
+ /**
22
+ * Job status for reporting
23
+ */
24
+ export interface JobStatus {
25
+ id: string;
26
+ name: string;
27
+ interval: number;
28
+ status: string;
29
+ lastRun?: string;
30
+ nextRun: string;
31
+ executionCount: number;
32
+ lastError?: string;
33
+ }
34
+ /**
35
+ * Scheduler: Manages background job execution
36
+ */
37
+ export declare class Scheduler {
38
+ private jobs;
39
+ private timers;
40
+ private auditLogger;
41
+ private running;
42
+ constructor();
43
+ /**
44
+ * Schedule a new job
45
+ */
46
+ scheduleJob(name: string, interval: number, fn: () => Promise<void> | void): string;
47
+ /**
48
+ * Start scheduler and all jobs
49
+ */
50
+ start(): Promise<void>;
51
+ /**
52
+ * Stop scheduler gracefully
53
+ */
54
+ stop(): Promise<void>;
55
+ /**
56
+ * Schedule a job's next execution
57
+ */
58
+ private scheduleJobExecution;
59
+ /**
60
+ * Execute a job immediately
61
+ */
62
+ manualRun(jobName: string): Promise<void>;
63
+ /**
64
+ * Execute a job with error handling
65
+ */
66
+ private executeJob;
67
+ /**
68
+ * Get status of all jobs
69
+ */
70
+ getJobStatus(): JobStatus[];
71
+ /**
72
+ * Get job status by name
73
+ */
74
+ getJobByName(jobName: string): JobStatus | undefined;
75
+ /**
76
+ * Is scheduler running
77
+ */
78
+ isRunning(): boolean;
79
+ /**
80
+ * Get count of scheduled jobs
81
+ */
82
+ getJobCount(): number;
83
+ }
84
+ export default Scheduler;
85
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/automation/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAwC;IACpD,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAkB;;IAMjC;;OAEG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAC7B,MAAM;IAwBT;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/C;;OAEG;YACW,UAAU;IAkDxB;;OAEG;IACH,YAAY,IAAI,SAAS,EAAE;IAa3B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAgBpD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Scheduled Background Jobs Scheduler
3
+ * In-memory cron-like task scheduling with audit logging
4
+ * No external dependencies (no Redis/Bull)
5
+ * Phase 8C Task 7
6
+ */
7
+ import { v4 as uuidv4 } from 'uuid';
8
+ import { AuditLogger } from '../core/auditLogger.js';
9
+ /**
10
+ * Scheduler: Manages background job execution
11
+ */
12
+ export class Scheduler {
13
+ constructor() {
14
+ this.jobs = new Map();
15
+ this.timers = new Map();
16
+ this.running = false;
17
+ this.auditLogger = new AuditLogger();
18
+ }
19
+ /**
20
+ * Schedule a new job
21
+ */
22
+ scheduleJob(name, interval, fn) {
23
+ const jobId = uuidv4();
24
+ const job = {
25
+ id: jobId,
26
+ name,
27
+ interval,
28
+ fn,
29
+ nextRun: Date.now() + interval,
30
+ status: 'idle',
31
+ executionCount: 0,
32
+ };
33
+ this.jobs.set(jobId, job);
34
+ this.auditLogger.log({
35
+ event: 'job:scheduled',
36
+ jobId,
37
+ name,
38
+ interval,
39
+ });
40
+ return jobId;
41
+ }
42
+ /**
43
+ * Start scheduler and all jobs
44
+ */
45
+ async start() {
46
+ if (this.running)
47
+ return;
48
+ this.running = true;
49
+ this.auditLogger.log({
50
+ event: 'scheduler:started',
51
+ jobCount: this.jobs.size,
52
+ });
53
+ // Schedule all jobs
54
+ for (const [jobId, job] of this.jobs) {
55
+ this.scheduleJobExecution(jobId, job);
56
+ }
57
+ }
58
+ /**
59
+ * Stop scheduler gracefully
60
+ */
61
+ async stop() {
62
+ if (!this.running)
63
+ return;
64
+ this.running = false;
65
+ // Clear all timers
66
+ for (const [jobId, timer] of this.timers) {
67
+ clearTimeout(timer);
68
+ this.timers.delete(jobId);
69
+ }
70
+ this.auditLogger.log({
71
+ event: 'scheduler:stopped',
72
+ jobCount: this.jobs.size,
73
+ });
74
+ }
75
+ /**
76
+ * Schedule a job's next execution
77
+ */
78
+ scheduleJobExecution(jobId, job) {
79
+ if (!this.running)
80
+ return;
81
+ const delay = Math.max(0, job.nextRun - Date.now());
82
+ const timer = setTimeout(async () => {
83
+ await this.executeJob(jobId);
84
+ // Reschedule
85
+ this.scheduleJobExecution(jobId, job);
86
+ }, delay);
87
+ this.timers.set(jobId, timer);
88
+ }
89
+ /**
90
+ * Execute a job immediately
91
+ */
92
+ async manualRun(jobName) {
93
+ const job = Array.from(this.jobs.values()).find((j) => j.name === jobName);
94
+ if (!job) {
95
+ throw new Error(`Job not found: ${jobName}`);
96
+ }
97
+ const jobId = job.id;
98
+ await this.executeJob(jobId);
99
+ }
100
+ /**
101
+ * Execute a job with error handling
102
+ */
103
+ async executeJob(jobId) {
104
+ const job = this.jobs.get(jobId);
105
+ if (!job)
106
+ return;
107
+ job.status = 'running';
108
+ const startTime = Date.now();
109
+ try {
110
+ this.auditLogger.log({
111
+ event: 'job:started',
112
+ jobId,
113
+ name: job.name,
114
+ });
115
+ // Execute the job function
116
+ await Promise.resolve(job.fn());
117
+ const duration = Date.now() - startTime;
118
+ job.lastRun = Date.now();
119
+ job.nextRun = Date.now() + job.interval;
120
+ job.status = 'scheduled';
121
+ job.executionCount++;
122
+ delete job.lastError;
123
+ this.auditLogger.log({
124
+ event: 'job:completed',
125
+ jobId,
126
+ name: job.name,
127
+ duration,
128
+ nextRun: new Date(job.nextRun).toISOString(),
129
+ });
130
+ }
131
+ catch (error) {
132
+ const errorMsg = error instanceof Error ? error.message : String(error);
133
+ job.status = 'failed';
134
+ job.lastError = errorMsg;
135
+ job.lastRun = Date.now();
136
+ job.nextRun = Date.now() + job.interval;
137
+ job.executionCount++;
138
+ this.auditLogger.log({
139
+ event: 'job:failed',
140
+ jobId,
141
+ name: job.name,
142
+ error: errorMsg,
143
+ });
144
+ // Log but don't re-throw - scheduler should continue
145
+ }
146
+ }
147
+ /**
148
+ * Get status of all jobs
149
+ */
150
+ getJobStatus() {
151
+ return Array.from(this.jobs.values()).map((job) => ({
152
+ id: job.id,
153
+ name: job.name,
154
+ interval: job.interval,
155
+ status: job.status,
156
+ lastRun: job.lastRun ? new Date(job.lastRun).toISOString() : undefined,
157
+ nextRun: new Date(job.nextRun).toISOString(),
158
+ executionCount: job.executionCount,
159
+ lastError: job.lastError,
160
+ }));
161
+ }
162
+ /**
163
+ * Get job status by name
164
+ */
165
+ getJobByName(jobName) {
166
+ const job = Array.from(this.jobs.values()).find((j) => j.name === jobName);
167
+ if (!job)
168
+ return undefined;
169
+ return {
170
+ id: job.id,
171
+ name: job.name,
172
+ interval: job.interval,
173
+ status: job.status,
174
+ lastRun: job.lastRun ? new Date(job.lastRun).toISOString() : undefined,
175
+ nextRun: new Date(job.nextRun).toISOString(),
176
+ executionCount: job.executionCount,
177
+ lastError: job.lastError,
178
+ };
179
+ }
180
+ /**
181
+ * Is scheduler running
182
+ */
183
+ isRunning() {
184
+ return this.running;
185
+ }
186
+ /**
187
+ * Get count of scheduled jobs
188
+ */
189
+ getJobCount() {
190
+ return this.jobs.size;
191
+ }
192
+ }
193
+ export default Scheduler;
194
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/automation/scheduler.ts"],"names":[],"mappings":"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"}