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,109 @@
1
+
2
+ <!DOCTYPE html>
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Executive Summary</title>
8
+ <style>
9
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.6; color: #333; }
10
+ .page { page-break-after: always; padding: 40px; max-width: 8.5in; margin: 0 auto; }
11
+ .header { border-bottom: 3px solid #4F46E5; padding-bottom: 20px; margin-bottom: 30px; }
12
+ .title { font-size: 28px; font-weight: bold; color: #4F46E5; }
13
+ .subtitle { font-size: 14px; color: #666; }
14
+ .kpi-section { margin: 30px 0; }
15
+ .kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 20px 0; }
16
+ .kpi-card { background: #f5f5f5; padding: 15px; border-radius: 8px; border-left: 4px solid #4F46E5; }
17
+ .kpi-value { font-size: 24px; font-weight: bold; color: #4F46E5; }
18
+ .kpi-label { font-size: 12px; color: #666; margin-top: 5px; }
19
+ .trend { font-size: 14px; margin-top: 5px; }
20
+ .trend.up { color: #059669; }
21
+ .trend.down { color: #dc2626; }
22
+ .recommendations { background: #fffbeb; padding: 15px; border-radius: 8px; margin: 20px 0; }
23
+ .recommendations h3 { margin-top: 0; color: #d97706; }
24
+ .recommendations li { margin: 10px 0; }
25
+ .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 12px; color: #666; }
26
+ @media print { body { margin: 0; padding: 0; } .page { padding: 20px; } }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <div class="page">
31
+ <div class="header">
32
+ <div class="title">Executive Summary</div>
33
+ <div class="subtitle">
34
+ 06/01/2026 – 06/30/2026
35
+ </div>
36
+ </div>
37
+
38
+ <div class="kpi-section">
39
+ <h2>Key Performance Indicators</h2>
40
+ <div class="kpi-grid">
41
+ <div class="kpi-card">
42
+ <div class="kpi-value">3</div>
43
+ <div class="kpi-label">Total Leads Identified</div>
44
+ <div class="trend up">
45
+ ↑ 2 vs last week
46
+ </div>
47
+ </div>
48
+ <div class="kpi-card">
49
+ <div class="kpi-value">2</div>
50
+ <div class="kpi-label">Qualified Leads</div>
51
+ <div class="trend">66.7%</div>
52
+ </div>
53
+ <div class="kpi-card">
54
+ <div class="kpi-value">$105k</div>
55
+ <div class="kpi-label">Projected Revenue</div>
56
+ <div class="trend up">
57
+ ↑ $10k
58
+ </div>
59
+ </div>
60
+ <div class="kpi-card">
61
+ <div class="kpi-value">1</div>
62
+ <div class="kpi-label">Critical Threats</div>
63
+ <div class="trend">Require immediate response</div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+
68
+ <div class="kpi-section">
69
+ <h2>Top 3 Leads</h2>
70
+
71
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
72
+ <div style="font-weight: bold;">John Doe (Acme Corp)</div>
73
+ <div style="color: #666; font-size: 14px;">
74
+ Quality: 85% | Revenue: $50k
75
+ </div>
76
+ </div>
77
+
78
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
79
+ <div style="font-weight: bold;">Jane Smith (TechStartup Inc)</div>
80
+ <div style="color: #666; font-size: 14px;">
81
+ Quality: 72% | Revenue: $35k
82
+ </div>
83
+ </div>
84
+
85
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
86
+ <div style="font-weight: bold;">Bob Wilson (Global Industries)</div>
87
+ <div style="color: #666; font-size: 14px;">
88
+ Quality: 45% | Revenue: $20k
89
+ </div>
90
+ </div>
91
+
92
+ </div>
93
+
94
+ <div class="recommendations">
95
+ <h3>Top 3 Recommendations</h3>
96
+ <ol>
97
+ <li>Critical threats detected - prioritize competitive response strategy</li><li>Many leads have low signal count - enhance market research and enrichment process</li>
98
+ </ol>
99
+ </div>
100
+
101
+ <div class="footer">
102
+ <strong>Report ID:</strong> b628b588-ca23-4b68-8206-c48698bfde5c<br>
103
+ <strong>Generated:</strong> as of 5:21:25 PM on 6/20/2026<br>
104
+ <strong>Version:</strong> 1.0.0
105
+ </div>
106
+ </div>
107
+ </body>
108
+ </html>
109
+
@@ -0,0 +1,109 @@
1
+
2
+ <!DOCTYPE html>
3
+ <html>
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Executive Summary</title>
8
+ <style>
9
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.6; color: #333; }
10
+ .page { page-break-after: always; padding: 40px; max-width: 8.5in; margin: 0 auto; }
11
+ .header { border-bottom: 3px solid #4F46E5; padding-bottom: 20px; margin-bottom: 30px; }
12
+ .title { font-size: 28px; font-weight: bold; color: #4F46E5; }
13
+ .subtitle { font-size: 14px; color: #666; }
14
+ .kpi-section { margin: 30px 0; }
15
+ .kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 20px 0; }
16
+ .kpi-card { background: #f5f5f5; padding: 15px; border-radius: 8px; border-left: 4px solid #4F46E5; }
17
+ .kpi-value { font-size: 24px; font-weight: bold; color: #4F46E5; }
18
+ .kpi-label { font-size: 12px; color: #666; margin-top: 5px; }
19
+ .trend { font-size: 14px; margin-top: 5px; }
20
+ .trend.up { color: #059669; }
21
+ .trend.down { color: #dc2626; }
22
+ .recommendations { background: #fffbeb; padding: 15px; border-radius: 8px; margin: 20px 0; }
23
+ .recommendations h3 { margin-top: 0; color: #d97706; }
24
+ .recommendations li { margin: 10px 0; }
25
+ .footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ddd; font-size: 12px; color: #666; }
26
+ @media print { body { margin: 0; padding: 0; } .page { padding: 20px; } }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <div class="page">
31
+ <div class="header">
32
+ <div class="title">Executive Summary</div>
33
+ <div class="subtitle">
34
+ 06/01/2026 – 06/30/2026
35
+ </div>
36
+ </div>
37
+
38
+ <div class="kpi-section">
39
+ <h2>Key Performance Indicators</h2>
40
+ <div class="kpi-grid">
41
+ <div class="kpi-card">
42
+ <div class="kpi-value">3</div>
43
+ <div class="kpi-label">Total Leads Identified</div>
44
+ <div class="trend up">
45
+ ↑ 2 vs last week
46
+ </div>
47
+ </div>
48
+ <div class="kpi-card">
49
+ <div class="kpi-value">2</div>
50
+ <div class="kpi-label">Qualified Leads</div>
51
+ <div class="trend">66.7%</div>
52
+ </div>
53
+ <div class="kpi-card">
54
+ <div class="kpi-value">$105k</div>
55
+ <div class="kpi-label">Projected Revenue</div>
56
+ <div class="trend up">
57
+ ↑ $10k
58
+ </div>
59
+ </div>
60
+ <div class="kpi-card">
61
+ <div class="kpi-value">1</div>
62
+ <div class="kpi-label">Critical Threats</div>
63
+ <div class="trend">Require immediate response</div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+
68
+ <div class="kpi-section">
69
+ <h2>Top 3 Leads</h2>
70
+
71
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
72
+ <div style="font-weight: bold;">John Doe (Acme Corp)</div>
73
+ <div style="color: #666; font-size: 14px;">
74
+ Quality: 85% | Revenue: $50k
75
+ </div>
76
+ </div>
77
+
78
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
79
+ <div style="font-weight: bold;">Jane Smith (TechStartup Inc)</div>
80
+ <div style="color: #666; font-size: 14px;">
81
+ Quality: 72% | Revenue: $35k
82
+ </div>
83
+ </div>
84
+
85
+ <div style="padding: 10px 0; border-bottom: 1px solid #eee;">
86
+ <div style="font-weight: bold;">Bob Wilson (Global Industries)</div>
87
+ <div style="color: #666; font-size: 14px;">
88
+ Quality: 45% | Revenue: $20k
89
+ </div>
90
+ </div>
91
+
92
+ </div>
93
+
94
+ <div class="recommendations">
95
+ <h3>Top 3 Recommendations</h3>
96
+ <ol>
97
+ <li>Critical threats detected - prioritize competitive response strategy</li><li>Many leads have low signal count - enhance market research and enrichment process</li>
98
+ </ol>
99
+ </div>
100
+
101
+ <div class="footer">
102
+ <strong>Report ID:</strong> 49a2092b-727d-4fbf-9b4d-9c554d2fc7de<br>
103
+ <strong>Generated:</strong> as of 5:21:14 PM on 6/20/2026<br>
104
+ <strong>Version:</strong> 1.0.0
105
+ </div>
106
+ </div>
107
+ </body>
108
+ </html>
109
+
package/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # @lean-claudient/core
2
+
3
+ **Core Lean Claudient CLI package** — Phases 1-4 implementation.
4
+
5
+ ## Features
6
+
7
+ - **Caveman Mode**: Aggressive compression toggle (strips comments, minimizes whitespace)
8
+ - **Auto-Compact Engine**: Dynamically prunes conversation history
9
+ - **Read Deduplication**: Hash-based caching for repeated file reads
10
+ - **Tool Output Budgets**: Hard limits on grep, bash, file reads with ANSI stripping
11
+ - **Self-Healing**: Background monitoring of tool failures and linter errors
12
+ - **Skill Capture**: Permanent recovery routines for known issues
13
+ - **Conservative CTO Mode**: Hard-capped token limits, aggressive semantic caching
14
+ - **Senior Developer Mode**: Balanced depth and brevity
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @lean-claudient/core
20
+ ```
21
+
22
+ ## CLI Usage
23
+
24
+ ```bash
25
+ lean-claudient --help
26
+ lean-claudient init --mode full
27
+ lean-claudient audit --session <id> --format json
28
+ ```
29
+
30
+ ## Architecture
31
+
32
+ - `src/cli/` — CLI entry point and command handlers
33
+ - `src/subagents/` — Investigator, Builder, Reviewer, Orchestrator agents
34
+ - `src/context/` — Tool budgets, auto-compact, read deduplication
35
+ - `src/compression/` — Caveman mode implementation
36
+ - `src/modes/` — Conservative CTO, Senior Developer modes
37
+ - `src/recovery/` — Context recovery and emergency procedures
38
+ - `src/telemetry/` — Token counting and metrics
39
+ - `src/config/` — Configuration management
40
+
41
+ ## Development
42
+
43
+ ```bash
44
+ npm run build # Compile TypeScript
45
+ npm run dev # Watch mode
46
+ npm run test # Run tests
47
+ npm run lint # ESLint
48
+ npm run type-check # TypeScript validation
49
+ ```
50
+
51
+ ## License
52
+
53
+ MIT
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Action Approver
3
+ * Human-in-the-loop approval workflow for automated actions.
4
+ * Display action details, collect approval, store approvals in SQLite for future batching.
5
+ */
6
+ import { AutomatedAction } from './actionExecutor.js';
7
+ interface ApprovalRecord {
8
+ id: string;
9
+ actionId: string;
10
+ actionType: string;
11
+ status: 'approved' | 'rejected';
12
+ reason?: string;
13
+ approvedBy: string;
14
+ approvedAt: string;
15
+ }
16
+ interface ApprovalStats {
17
+ totalRequests: number;
18
+ approvedCount: number;
19
+ rejectedCount: number;
20
+ approvalRate: number;
21
+ averageResponseTime: number;
22
+ }
23
+ /**
24
+ * ActionApprover: Human-in-the-loop approval workflow
25
+ */
26
+ export declare class ActionApprover {
27
+ private db;
28
+ private dbPath;
29
+ constructor();
30
+ /**
31
+ * Ensure database directory exists
32
+ */
33
+ private ensureDatabase;
34
+ /**
35
+ * Initialize database schema
36
+ */
37
+ private initializeSchema;
38
+ /**
39
+ * Request human approval for an action
40
+ * Displays action details and collects user response
41
+ */
42
+ requestApproval(action: AutomatedAction, userId?: string): Promise<boolean>;
43
+ /**
44
+ * Record approval decision
45
+ */
46
+ recordApproval(actionId: string, actionType: string, approved: boolean, userId: string, reason?: string): ApprovalRecord;
47
+ /**
48
+ * Get approval decision for an action
49
+ */
50
+ getApprovalDecision(actionId: string): ApprovalRecord | null;
51
+ /**
52
+ * Get all approval records
53
+ */
54
+ getAllApprovals(limit?: number): ApprovalRecord[];
55
+ /**
56
+ * Get approval statistics
57
+ */
58
+ getApprovalStats(): ApprovalStats;
59
+ /**
60
+ * Batch execute approved actions
61
+ */
62
+ getBatchApprovedActions(limit?: number): ApprovalRecord[];
63
+ /**
64
+ * Display formatted action details for review
65
+ */
66
+ private displayActionDetails;
67
+ /**
68
+ * Display email action details
69
+ */
70
+ private displayEmailAction;
71
+ /**
72
+ * Display CRM action details
73
+ */
74
+ private displayCRMAction;
75
+ /**
76
+ * Display Jira action details
77
+ */
78
+ private displayJiraAction;
79
+ /**
80
+ * Close database connection
81
+ */
82
+ close(): void;
83
+ /**
84
+ * Export approval history as JSON
85
+ */
86
+ exportApprovalHistory(filename: string): void;
87
+ }
88
+ export default ActionApprover;
89
+ //# sourceMappingURL=actionApprover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionApprover.d.ts","sourceRoot":"","sources":["../../src/automation/actionApprover.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,aAAa;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,MAAM,CAAS;;IASvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,GAAE,MAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB7F;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,cAAc;IAgCjB;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAmB5D;;OAEG;IACH,eAAe,CAAC,KAAK,GAAE,MAAY,GAAG,cAAc,EAAE;IAiBtD;;OAEG;IACH,gBAAgB,IAAI,aAAa;IA4BjC;;OAEG;IACH,uBAAuB,CAAC,KAAK,GAAE,MAAW,GAAG,cAAc,EAAE;IAoB7D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAK9C;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Action Approver
3
+ * Human-in-the-loop approval workflow for automated actions.
4
+ * Display action details, collect approval, store approvals in SQLite for future batching.
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
7
+ const Database = require('better-sqlite3');
8
+ import { homedir } from 'os';
9
+ import { join } from 'path';
10
+ import { existsSync, mkdirSync } from 'fs';
11
+ /**
12
+ * ActionApprover: Human-in-the-loop approval workflow
13
+ */
14
+ export class ActionApprover {
15
+ constructor() {
16
+ this.dbPath = join(homedir(), '.lean-claudient', 'approvals.db');
17
+ this.ensureDatabase();
18
+ this.db = new Database(this.dbPath);
19
+ this.initializeSchema();
20
+ }
21
+ /**
22
+ * Ensure database directory exists
23
+ */
24
+ ensureDatabase() {
25
+ const dir = join(homedir(), '.lean-claudient');
26
+ if (!existsSync(dir)) {
27
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
28
+ }
29
+ }
30
+ /**
31
+ * Initialize database schema
32
+ */
33
+ initializeSchema() {
34
+ this.db.exec(`
35
+ CREATE TABLE IF NOT EXISTS approvals (
36
+ id TEXT PRIMARY KEY,
37
+ action_id TEXT NOT NULL,
38
+ action_type TEXT NOT NULL,
39
+ status TEXT NOT NULL CHECK (status IN ('approved', 'rejected')),
40
+ reason TEXT,
41
+ approved_by TEXT NOT NULL,
42
+ approved_at TEXT NOT NULL,
43
+ created_at TEXT NOT NULL
44
+ );
45
+
46
+ CREATE INDEX IF NOT EXISTS idx_action_id ON approvals(action_id);
47
+ CREATE INDEX IF NOT EXISTS idx_status ON approvals(status);
48
+ CREATE INDEX IF NOT EXISTS idx_approved_at ON approvals(approved_at);
49
+ `);
50
+ }
51
+ /**
52
+ * Request human approval for an action
53
+ * Displays action details and collects user response
54
+ */
55
+ async requestApproval(action, userId = 'cli-user') {
56
+ // Display action details
57
+ this.displayActionDetails(action);
58
+ // Note: In CLI context, this would use readline or similar for interactive input
59
+ // For now, returning approval flow template
60
+ console.log('\n');
61
+ console.log('────────────────────────────────────────────');
62
+ console.log('ACTION APPROVAL REQUIRED');
63
+ console.log('────────────────────────────────────────────');
64
+ console.log(`Action ID: ${action.id}`);
65
+ console.log(`Type: ${action.type}`);
66
+ console.log(`Status: ${action.status}`);
67
+ console.log('');
68
+ console.log('To approve this action, run:');
69
+ console.log(` lean-claudient action-approve ${action.id}`);
70
+ console.log('');
71
+ console.log('To reject this action, run:');
72
+ console.log(` lean-claudient action-reject ${action.id} "reason"`);
73
+ console.log('────────────────────────────────────────────\n');
74
+ return false; // Return false to indicate pending approval
75
+ }
76
+ /**
77
+ * Record approval decision
78
+ */
79
+ recordApproval(actionId, actionType, approved, userId, reason) {
80
+ const id = `approval_${actionId}_${Date.now()}`;
81
+ const record = {
82
+ id,
83
+ actionId,
84
+ actionType,
85
+ status: approved ? 'approved' : 'rejected',
86
+ reason,
87
+ approvedBy: userId,
88
+ approvedAt: new Date().toISOString()
89
+ };
90
+ const stmt = this.db.prepare(`
91
+ INSERT INTO approvals (
92
+ id, action_id, action_type, status, reason, approved_by, approved_at, created_at
93
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
94
+ `);
95
+ stmt.run(record.id, record.actionId, record.actionType, record.status, record.reason, record.approvedBy, record.approvedAt, new Date().toISOString());
96
+ return record;
97
+ }
98
+ /**
99
+ * Get approval decision for an action
100
+ */
101
+ getApprovalDecision(actionId) {
102
+ const stmt = this.db.prepare('SELECT * FROM approvals WHERE action_id = ? ORDER BY created_at DESC LIMIT 1');
103
+ const record = stmt.get(actionId);
104
+ if (!record)
105
+ return null;
106
+ return {
107
+ id: record.id,
108
+ actionId: record.action_id,
109
+ actionType: record.action_type,
110
+ status: record.status,
111
+ reason: record.reason,
112
+ approvedBy: record.approved_by,
113
+ approvedAt: record.approved_at
114
+ };
115
+ }
116
+ /**
117
+ * Get all approval records
118
+ */
119
+ getAllApprovals(limit = 100) {
120
+ const stmt = this.db.prepare('SELECT * FROM approvals ORDER BY created_at DESC LIMIT ?');
121
+ const records = stmt.all(limit);
122
+ return records.map(r => ({
123
+ id: r.id,
124
+ actionId: r.action_id,
125
+ actionType: r.action_type,
126
+ status: r.status,
127
+ reason: r.reason,
128
+ approvedBy: r.approved_by,
129
+ approvedAt: r.approved_at
130
+ }));
131
+ }
132
+ /**
133
+ * Get approval statistics
134
+ */
135
+ getApprovalStats() {
136
+ const totalStmt = this.db.prepare('SELECT COUNT(*) as count FROM approvals');
137
+ const approvedStmt = this.db.prepare('SELECT COUNT(*) as count FROM approvals WHERE status = "approved"');
138
+ const rejectedStmt = this.db.prepare('SELECT COUNT(*) as count FROM approvals WHERE status = "rejected"');
139
+ const total = totalStmt.get().count;
140
+ const approved = approvedStmt.get().count;
141
+ const rejected = rejectedStmt.get().count;
142
+ const approvalRate = total > 0 ? (approved / total) * 100 : 0;
143
+ // Calculate average response time (time between first request and approval/rejection)
144
+ // For now, returning placeholder
145
+ const averageResponseTime = 300; // seconds
146
+ return {
147
+ totalRequests: total,
148
+ approvedCount: approved,
149
+ rejectedCount: rejected,
150
+ approvalRate: Math.round(approvalRate),
151
+ averageResponseTime
152
+ };
153
+ }
154
+ /**
155
+ * Batch execute approved actions
156
+ */
157
+ getBatchApprovedActions(limit = 10) {
158
+ const stmt = this.db.prepare(`
159
+ SELECT * FROM approvals
160
+ WHERE status = 'approved'
161
+ ORDER BY approved_at ASC
162
+ LIMIT ?
163
+ `);
164
+ const records = stmt.all(limit);
165
+ return records.map(r => ({
166
+ id: r.id,
167
+ actionId: r.action_id,
168
+ actionType: r.action_type,
169
+ status: r.status,
170
+ reason: r.reason,
171
+ approvedBy: r.approved_by,
172
+ approvedAt: r.approved_at
173
+ }));
174
+ }
175
+ /**
176
+ * Display formatted action details for review
177
+ */
178
+ displayActionDetails(action) {
179
+ console.log('\n');
180
+ console.log('═══════════════════════════════════════════════════════════════');
181
+ console.log(`ACTION DETAILS: ${action.type.toUpperCase()}`);
182
+ console.log('═══════════════════════════════════════════════════════════════');
183
+ console.log(`ID: ${action.id}`);
184
+ console.log(`Finding ID: ${action.finding_id}`);
185
+ console.log(`Status: ${action.status}`);
186
+ console.log(`Created: ${action.created_at}`);
187
+ console.log('');
188
+ switch (action.type) {
189
+ case 'email_draft':
190
+ this.displayEmailAction(action);
191
+ break;
192
+ case 'crm_lead':
193
+ this.displayCRMAction(action);
194
+ break;
195
+ case 'jira_epic':
196
+ this.displayJiraAction(action);
197
+ break;
198
+ }
199
+ console.log('═══════════════════════════════════════════════════════════════\n');
200
+ }
201
+ /**
202
+ * Display email action details
203
+ */
204
+ displayEmailAction(action) {
205
+ const { to, template, variables } = action.payload;
206
+ console.log('EMAIL DRAFT');
207
+ console.log('───────────────────────────────────────────────────────────────');
208
+ console.log(`To: ${to}`);
209
+ console.log(`Template: ${template}`);
210
+ console.log('Variables:');
211
+ for (const [key, value] of Object.entries(variables)) {
212
+ console.log(` • ${key}: ${value}`);
213
+ }
214
+ }
215
+ /**
216
+ * Display CRM action details
217
+ */
218
+ displayCRMAction(action) {
219
+ const lead = action.payload;
220
+ console.log('CRM LEAD');
221
+ console.log('───────────────────────────────────────────────────────────────');
222
+ console.log(`Name: ${lead.name}`);
223
+ console.log(`Email: ${lead.email}`);
224
+ console.log(`Company: ${lead.company}`);
225
+ console.log(`Industry: ${lead.industry}`);
226
+ console.log(`Pain Point: ${lead.painPoint}`);
227
+ console.log(`Source: ${lead.source}`);
228
+ console.log(`Signal Strength: ${lead.signalStrength}/100`);
229
+ }
230
+ /**
231
+ * Display Jira action details
232
+ */
233
+ displayJiraAction(action) {
234
+ const { title, description, threatLevel, linkedResources } = action.payload;
235
+ console.log('JIRA EPIC');
236
+ console.log('───────────────────────────────────────────────────────────────');
237
+ console.log(`Title: ${title}`);
238
+ console.log(`Threat Level: ${threatLevel.toUpperCase()}`);
239
+ console.log(`Description: ${description}`);
240
+ console.log(`Linked Resources: ${linkedResources?.length || 0}`);
241
+ if (linkedResources && linkedResources.length > 0) {
242
+ for (const resource of linkedResources) {
243
+ console.log(` • [${resource.type}] ${resource.title}`);
244
+ console.log(` ${resource.url}`);
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * Close database connection
250
+ */
251
+ close() {
252
+ this.db.close();
253
+ }
254
+ /**
255
+ * Export approval history as JSON
256
+ */
257
+ exportApprovalHistory(filename) {
258
+ const records = this.getAllApprovals();
259
+ const fs = require('fs');
260
+ fs.writeFileSync(filename, JSON.stringify(records, null, 2));
261
+ }
262
+ }
263
+ export default ActionApprover;
264
+ //# sourceMappingURL=actionApprover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionApprover.js","sourceRoot":"","sources":["../../src/automation/actionApprover.ts"],"names":[],"mappings":"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"}