@nxuss/lemma 1.37.0 → 1.39.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 (284) hide show
  1. package/README.md +9 -6
  2. package/bin/brain-ingest.js +86 -27
  3. package/bin/doctor.js +31 -4
  4. package/bin/init.js +98 -60
  5. package/dashboard/dist/assets/index-DNTQXLER.css +1 -0
  6. package/dashboard/dist/assets/index-DzL_Zu3m.js +452 -0
  7. package/dashboard/dist/index.html +2 -2
  8. package/dist/cjs/cli/gitHooks.d.ts +9 -2
  9. package/dist/cjs/cli/gitHooks.d.ts.map +1 -1
  10. package/dist/cjs/cli/gitHooks.js +31 -4
  11. package/dist/cjs/cli/gitHooks.js.map +1 -1
  12. package/dist/cjs/cli/hostHooks.d.ts +13 -1
  13. package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
  14. package/dist/cjs/cli/hostHooks.js +34 -4
  15. package/dist/cjs/cli/hostHooks.js.map +1 -1
  16. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  17. package/dist/cjs/cli/lemma-proxy.js +42 -5
  18. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  19. package/dist/cjs/infra/analyzers/index.d.ts +0 -2
  20. package/dist/cjs/infra/analyzers/index.d.ts.map +1 -1
  21. package/dist/cjs/infra/analyzers/index.js +1 -6
  22. package/dist/cjs/infra/analyzers/index.js.map +1 -1
  23. package/dist/cjs/infra/cli.d.ts +4 -0
  24. package/dist/cjs/infra/cli.d.ts.map +1 -1
  25. package/dist/cjs/infra/cli.js +6 -199
  26. package/dist/cjs/infra/cli.js.map +1 -1
  27. package/dist/cjs/infra/index.d.ts +1 -3
  28. package/dist/cjs/infra/index.d.ts.map +1 -1
  29. package/dist/cjs/infra/index.js +1 -16
  30. package/dist/cjs/infra/index.js.map +1 -1
  31. package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
  32. package/dist/cjs/infra/mcp-tools.js +8 -453
  33. package/dist/cjs/infra/mcp-tools.js.map +1 -1
  34. package/dist/cjs/infra/types.d.ts +0 -101
  35. package/dist/cjs/infra/types.d.ts.map +1 -1
  36. package/dist/cjs/infra/types.js +2 -1
  37. package/dist/cjs/infra/types.js.map +1 -1
  38. package/dist/cjs/mcp/index.js +33 -10
  39. package/dist/cjs/mcp/index.js.map +1 -1
  40. package/dist/cjs/mcp/prompts.d.ts +1 -1
  41. package/dist/cjs/mcp/prompts.d.ts.map +1 -1
  42. package/dist/cjs/mcp/prompts.js +8 -21
  43. package/dist/cjs/mcp/prompts.js.map +1 -1
  44. package/dist/cjs/mcp/tool-profiles.d.ts +8 -3
  45. package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
  46. package/dist/cjs/mcp/tool-profiles.js +25 -54
  47. package/dist/cjs/mcp/tool-profiles.js.map +1 -1
  48. package/dist/cjs/mcp/tools/memory.d.ts +8 -0
  49. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  50. package/dist/cjs/mcp/tools/memory.js +154 -125
  51. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  52. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  53. package/dist/cjs/mcp/tools.js +11 -6
  54. package/dist/cjs/mcp/tools.js.map +1 -1
  55. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
  56. package/dist/cjs/mcp/workspaceShared.js +13 -12
  57. package/dist/cjs/mcp/workspaceShared.js.map +1 -1
  58. package/dist/cjs/proxy/ProjectRegistry.d.ts +44 -0
  59. package/dist/cjs/proxy/ProjectRegistry.d.ts.map +1 -1
  60. package/dist/cjs/proxy/ProjectRegistry.js +92 -3
  61. package/dist/cjs/proxy/ProjectRegistry.js.map +1 -1
  62. package/dist/cjs/subconscious/HostRecall.d.ts +36 -3
  63. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  64. package/dist/cjs/subconscious/HostRecall.js +164 -37
  65. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  66. package/dist/cjs/subconscious/NarrowEvidence.d.ts +47 -0
  67. package/dist/cjs/subconscious/NarrowEvidence.d.ts.map +1 -0
  68. package/dist/cjs/subconscious/NarrowEvidence.js +252 -0
  69. package/dist/cjs/subconscious/NarrowEvidence.js.map +1 -0
  70. package/dist/cjs/subconscious/TheBrainV2.d.ts +37 -0
  71. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  72. package/dist/cjs/subconscious/TheBrainV2.js +147 -15
  73. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  74. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  75. package/dist/cjs/subconscious/freshness/LocalFsResolver.js +17 -0
  76. package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
  77. package/dist/cjs/subconscious/recallDigest.d.ts +42 -0
  78. package/dist/cjs/subconscious/recallDigest.d.ts.map +1 -0
  79. package/dist/cjs/subconscious/recallDigest.js +94 -0
  80. package/dist/cjs/subconscious/recallDigest.js.map +1 -0
  81. package/dist/cjs/utils/OtherLanguageSymbols.d.ts +31 -0
  82. package/dist/cjs/utils/OtherLanguageSymbols.d.ts.map +1 -0
  83. package/dist/cjs/utils/OtherLanguageSymbols.js +283 -0
  84. package/dist/cjs/utils/OtherLanguageSymbols.js.map +1 -0
  85. package/dist/cjs/utils/SavingsLedger.d.ts +27 -0
  86. package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
  87. package/dist/cjs/utils/SavingsLedger.js +51 -0
  88. package/dist/cjs/utils/SavingsLedger.js.map +1 -1
  89. package/dist/cjs/utils/StoreDraft.d.ts +12 -0
  90. package/dist/cjs/utils/StoreDraft.d.ts.map +1 -1
  91. package/dist/cjs/utils/StoreDraft.js +53 -1
  92. package/dist/cjs/utils/StoreDraft.js.map +1 -1
  93. package/dist/cjs/utils/SymbolSurgicalContext.d.ts +2 -0
  94. package/dist/cjs/utils/SymbolSurgicalContext.d.ts.map +1 -1
  95. package/dist/cjs/utils/SymbolSurgicalContext.js +1 -0
  96. package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
  97. package/dist/cjs/utils/reportSavings.d.ts +17 -4
  98. package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
  99. package/dist/cjs/utils/reportSavings.js +67 -22
  100. package/dist/cjs/utils/reportSavings.js.map +1 -1
  101. package/dist/esm/cli/gitHooks.d.ts +9 -2
  102. package/dist/esm/cli/gitHooks.d.ts.map +1 -1
  103. package/dist/esm/cli/gitHooks.js +31 -4
  104. package/dist/esm/cli/gitHooks.js.map +1 -1
  105. package/dist/esm/cli/hostHooks.d.ts +13 -1
  106. package/dist/esm/cli/hostHooks.d.ts.map +1 -1
  107. package/dist/esm/cli/hostHooks.js +32 -3
  108. package/dist/esm/cli/hostHooks.js.map +1 -1
  109. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  110. package/dist/esm/cli/lemma-proxy.js +42 -5
  111. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  112. package/dist/esm/infra/analyzers/index.d.ts +0 -2
  113. package/dist/esm/infra/analyzers/index.d.ts.map +1 -1
  114. package/dist/esm/infra/analyzers/index.js +0 -2
  115. package/dist/esm/infra/analyzers/index.js.map +1 -1
  116. package/dist/esm/infra/cli.d.ts +4 -0
  117. package/dist/esm/infra/cli.d.ts.map +1 -1
  118. package/dist/esm/infra/cli.js +6 -199
  119. package/dist/esm/infra/cli.js.map +1 -1
  120. package/dist/esm/infra/index.d.ts +1 -3
  121. package/dist/esm/infra/index.d.ts.map +1 -1
  122. package/dist/esm/infra/index.js +1 -3
  123. package/dist/esm/infra/index.js.map +1 -1
  124. package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
  125. package/dist/esm/infra/mcp-tools.js +9 -454
  126. package/dist/esm/infra/mcp-tools.js.map +1 -1
  127. package/dist/esm/infra/types.d.ts +0 -101
  128. package/dist/esm/infra/types.d.ts.map +1 -1
  129. package/dist/esm/infra/types.js +2 -1
  130. package/dist/esm/infra/types.js.map +1 -1
  131. package/dist/esm/mcp/index.js +33 -10
  132. package/dist/esm/mcp/index.js.map +1 -1
  133. package/dist/esm/mcp/prompts.d.ts +1 -1
  134. package/dist/esm/mcp/prompts.d.ts.map +1 -1
  135. package/dist/esm/mcp/prompts.js +8 -21
  136. package/dist/esm/mcp/prompts.js.map +1 -1
  137. package/dist/esm/mcp/tool-profiles.d.ts +8 -3
  138. package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
  139. package/dist/esm/mcp/tool-profiles.js +25 -54
  140. package/dist/esm/mcp/tool-profiles.js.map +1 -1
  141. package/dist/esm/mcp/tools/memory.d.ts +8 -0
  142. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  143. package/dist/esm/mcp/tools/memory.js +156 -128
  144. package/dist/esm/mcp/tools/memory.js.map +1 -1
  145. package/dist/esm/mcp/tools.d.ts.map +1 -1
  146. package/dist/esm/mcp/tools.js +12 -7
  147. package/dist/esm/mcp/tools.js.map +1 -1
  148. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
  149. package/dist/esm/mcp/workspaceShared.js +13 -12
  150. package/dist/esm/mcp/workspaceShared.js.map +1 -1
  151. package/dist/esm/proxy/ProjectRegistry.d.ts +44 -0
  152. package/dist/esm/proxy/ProjectRegistry.d.ts.map +1 -1
  153. package/dist/esm/proxy/ProjectRegistry.js +91 -2
  154. package/dist/esm/proxy/ProjectRegistry.js.map +1 -1
  155. package/dist/esm/subconscious/HostRecall.d.ts +36 -3
  156. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  157. package/dist/esm/subconscious/HostRecall.js +159 -36
  158. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  159. package/dist/esm/subconscious/NarrowEvidence.d.ts +47 -0
  160. package/dist/esm/subconscious/NarrowEvidence.d.ts.map +1 -0
  161. package/dist/esm/subconscious/NarrowEvidence.js +211 -0
  162. package/dist/esm/subconscious/NarrowEvidence.js.map +1 -0
  163. package/dist/esm/subconscious/TheBrainV2.d.ts +37 -0
  164. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  165. package/dist/esm/subconscious/TheBrainV2.js +146 -14
  166. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  167. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  168. package/dist/esm/subconscious/freshness/LocalFsResolver.js +17 -0
  169. package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
  170. package/dist/esm/subconscious/recallDigest.d.ts +42 -0
  171. package/dist/esm/subconscious/recallDigest.d.ts.map +1 -0
  172. package/dist/esm/subconscious/recallDigest.js +87 -0
  173. package/dist/esm/subconscious/recallDigest.js.map +1 -0
  174. package/dist/esm/utils/OtherLanguageSymbols.d.ts +31 -0
  175. package/dist/esm/utils/OtherLanguageSymbols.d.ts.map +1 -0
  176. package/dist/esm/utils/OtherLanguageSymbols.js +275 -0
  177. package/dist/esm/utils/OtherLanguageSymbols.js.map +1 -0
  178. package/dist/esm/utils/SavingsLedger.d.ts +27 -0
  179. package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
  180. package/dist/esm/utils/SavingsLedger.js +51 -0
  181. package/dist/esm/utils/SavingsLedger.js.map +1 -1
  182. package/dist/esm/utils/StoreDraft.d.ts +12 -0
  183. package/dist/esm/utils/StoreDraft.d.ts.map +1 -1
  184. package/dist/esm/utils/StoreDraft.js +52 -1
  185. package/dist/esm/utils/StoreDraft.js.map +1 -1
  186. package/dist/esm/utils/SymbolSurgicalContext.d.ts +2 -0
  187. package/dist/esm/utils/SymbolSurgicalContext.d.ts.map +1 -1
  188. package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
  189. package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
  190. package/dist/esm/utils/reportSavings.d.ts +17 -4
  191. package/dist/esm/utils/reportSavings.d.ts.map +1 -1
  192. package/dist/esm/utils/reportSavings.js +65 -22
  193. package/dist/esm/utils/reportSavings.js.map +1 -1
  194. package/package.json +2 -1
  195. package/dashboard/dist/assets/index-BoeQau6n.css +0 -1
  196. package/dashboard/dist/assets/index-Clf3qR64.js +0 -451
  197. package/dist/cjs/infra/analyzers/DriftDetector.d.ts +0 -4
  198. package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +0 -1
  199. package/dist/cjs/infra/analyzers/DriftDetector.js +0 -88
  200. package/dist/cjs/infra/analyzers/DriftDetector.js.map +0 -1
  201. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  202. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  203. package/dist/cjs/infra/analyzers/InfraAnalyzer.js +0 -73
  204. package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +0 -1
  205. package/dist/cjs/infra/config.d.ts +0 -17
  206. package/dist/cjs/infra/config.d.ts.map +0 -1
  207. package/dist/cjs/infra/config.js +0 -111
  208. package/dist/cjs/infra/config.js.map +0 -1
  209. package/dist/cjs/infra/errorCause.d.ts +0 -36
  210. package/dist/cjs/infra/errorCause.d.ts.map +0 -1
  211. package/dist/cjs/infra/errorCause.js +0 -143
  212. package/dist/cjs/infra/errorCause.js.map +0 -1
  213. package/dist/cjs/infra/providers/InfraProvider.d.ts +0 -9
  214. package/dist/cjs/infra/providers/InfraProvider.d.ts.map +0 -1
  215. package/dist/cjs/infra/providers/InfraProvider.js +0 -3
  216. package/dist/cjs/infra/providers/InfraProvider.js.map +0 -1
  217. package/dist/cjs/infra/providers/JenkinsProvider.d.ts +0 -16
  218. package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +0 -1
  219. package/dist/cjs/infra/providers/JenkinsProvider.js +0 -193
  220. package/dist/cjs/infra/providers/JenkinsProvider.js.map +0 -1
  221. package/dist/cjs/infra/providers/OKDProvider.d.ts +0 -24
  222. package/dist/cjs/infra/providers/OKDProvider.d.ts.map +0 -1
  223. package/dist/cjs/infra/providers/OKDProvider.js +0 -296
  224. package/dist/cjs/infra/providers/OKDProvider.js.map +0 -1
  225. package/dist/cjs/infra/providers/TerraformProvider.d.ts +0 -17
  226. package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +0 -1
  227. package/dist/cjs/infra/providers/TerraformProvider.js +0 -111
  228. package/dist/cjs/infra/providers/TerraformProvider.js.map +0 -1
  229. package/dist/cjs/infra/providers/index.d.ts +0 -9
  230. package/dist/cjs/infra/providers/index.d.ts.map +0 -1
  231. package/dist/cjs/infra/providers/index.js +0 -34
  232. package/dist/cjs/infra/providers/index.js.map +0 -1
  233. package/dist/cjs/infra/templates/jenkins/index.d.ts +0 -15
  234. package/dist/cjs/infra/templates/jenkins/index.d.ts.map +0 -1
  235. package/dist/cjs/infra/templates/jenkins/index.js +0 -128
  236. package/dist/cjs/infra/templates/jenkins/index.js.map +0 -1
  237. package/dist/cjs/infra/templates/okd/index.d.ts +0 -31
  238. package/dist/cjs/infra/templates/okd/index.d.ts.map +0 -1
  239. package/dist/cjs/infra/templates/okd/index.js +0 -149
  240. package/dist/cjs/infra/templates/okd/index.js.map +0 -1
  241. package/dist/esm/infra/analyzers/DriftDetector.d.ts +0 -4
  242. package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +0 -1
  243. package/dist/esm/infra/analyzers/DriftDetector.js +0 -84
  244. package/dist/esm/infra/analyzers/DriftDetector.js.map +0 -1
  245. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  246. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  247. package/dist/esm/infra/analyzers/InfraAnalyzer.js +0 -70
  248. package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +0 -1
  249. package/dist/esm/infra/config.d.ts +0 -17
  250. package/dist/esm/infra/config.d.ts.map +0 -1
  251. package/dist/esm/infra/config.js +0 -101
  252. package/dist/esm/infra/config.js.map +0 -1
  253. package/dist/esm/infra/errorCause.d.ts +0 -36
  254. package/dist/esm/infra/errorCause.d.ts.map +0 -1
  255. package/dist/esm/infra/errorCause.js +0 -138
  256. package/dist/esm/infra/errorCause.js.map +0 -1
  257. package/dist/esm/infra/providers/InfraProvider.d.ts +0 -9
  258. package/dist/esm/infra/providers/InfraProvider.d.ts.map +0 -1
  259. package/dist/esm/infra/providers/InfraProvider.js +0 -2
  260. package/dist/esm/infra/providers/InfraProvider.js.map +0 -1
  261. package/dist/esm/infra/providers/JenkinsProvider.d.ts +0 -16
  262. package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +0 -1
  263. package/dist/esm/infra/providers/JenkinsProvider.js +0 -186
  264. package/dist/esm/infra/providers/JenkinsProvider.js.map +0 -1
  265. package/dist/esm/infra/providers/OKDProvider.d.ts +0 -24
  266. package/dist/esm/infra/providers/OKDProvider.d.ts.map +0 -1
  267. package/dist/esm/infra/providers/OKDProvider.js +0 -292
  268. package/dist/esm/infra/providers/OKDProvider.js.map +0 -1
  269. package/dist/esm/infra/providers/TerraformProvider.d.ts +0 -17
  270. package/dist/esm/infra/providers/TerraformProvider.d.ts.map +0 -1
  271. package/dist/esm/infra/providers/TerraformProvider.js +0 -107
  272. package/dist/esm/infra/providers/TerraformProvider.js.map +0 -1
  273. package/dist/esm/infra/providers/index.d.ts +0 -9
  274. package/dist/esm/infra/providers/index.d.ts.map +0 -1
  275. package/dist/esm/infra/providers/index.js +0 -27
  276. package/dist/esm/infra/providers/index.js.map +0 -1
  277. package/dist/esm/infra/templates/jenkins/index.d.ts +0 -15
  278. package/dist/esm/infra/templates/jenkins/index.d.ts.map +0 -1
  279. package/dist/esm/infra/templates/jenkins/index.js +0 -124
  280. package/dist/esm/infra/templates/jenkins/index.js.map +0 -1
  281. package/dist/esm/infra/templates/okd/index.d.ts +0 -31
  282. package/dist/esm/infra/templates/okd/index.d.ts.map +0 -1
  283. package/dist/esm/infra/templates/okd/index.js +0 -142
  284. package/dist/esm/infra/templates/okd/index.js.map +0 -1
@@ -1,4 +0,0 @@
1
- import type { DriftResult } from '../types';
2
- export declare function detectTerraformDrift(workDir?: string): DriftResult[];
3
- export declare function detectOKDDrift(project: string): DriftResult[];
4
- //# sourceMappingURL=DriftDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DriftDetector.d.ts","sourceRoot":"","sources":["../../../../src/infra/analyzers/DriftDetector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAepE;AA8CD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA0B7D"}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectTerraformDrift = detectTerraformDrift;
4
- exports.detectOKDDrift = detectOKDDrift;
5
- const child_process_1 = require("child_process");
6
- function detectTerraformDrift(workDir) {
7
- try {
8
- (0, child_process_1.execSync)('terraform plan -detailed-exitcode -no-color', {
9
- encoding: 'utf8',
10
- timeout: 60000,
11
- cwd: workDir,
12
- stdio: ['pipe', 'pipe', 'pipe'],
13
- });
14
- return [];
15
- }
16
- catch (err) {
17
- if (err.status === 2) {
18
- return parsePlanOutput(err.stdout || '');
19
- }
20
- return [];
21
- }
22
- }
23
- function parsePlanOutput(output) {
24
- const drifts = [];
25
- const lines = output.split('\n');
26
- for (const line of lines) {
27
- const modifiedMatch = line.match(/^\s+~\s+(\S+)/);
28
- if (modifiedMatch) {
29
- drifts.push({
30
- resource: modifiedMatch[1],
31
- type: 'config',
32
- expected: 'current state',
33
- actual: 'will be modified',
34
- severity: 'MEDIUM',
35
- });
36
- continue;
37
- }
38
- const removedMatch = line.match(/^\s+-\s+(\S+)/);
39
- if (removedMatch) {
40
- drifts.push({
41
- resource: removedMatch[1],
42
- type: 'state',
43
- expected: 'exists',
44
- actual: 'will be destroyed',
45
- severity: 'HIGH',
46
- });
47
- continue;
48
- }
49
- const addedMatch = line.match(/^\s+\+\s+(\S+)/);
50
- if (addedMatch) {
51
- drifts.push({
52
- resource: addedMatch[1],
53
- type: 'config',
54
- expected: 'does not exist',
55
- actual: 'will be created',
56
- severity: 'LOW',
57
- });
58
- }
59
- }
60
- return drifts;
61
- }
62
- function detectOKDDrift(project) {
63
- try {
64
- const raw = (0, child_process_1.execSync)(`oc get all -n ${project} -o json`, {
65
- encoding: 'utf8',
66
- timeout: 15000,
67
- });
68
- const data = JSON.parse(raw);
69
- const drifts = [];
70
- for (const item of data.items || []) {
71
- const status = item.status;
72
- if (status?.phase === 'Failed' || status?.phase === 'Error') {
73
- drifts.push({
74
- resource: `${item.kind}/${item.metadata.name}`,
75
- type: 'config',
76
- expected: 'Running',
77
- actual: status.phase,
78
- severity: 'HIGH',
79
- });
80
- }
81
- }
82
- return drifts;
83
- }
84
- catch {
85
- return [];
86
- }
87
- }
88
- //# sourceMappingURL=DriftDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DriftDetector.js","sourceRoot":"","sources":["../../../../src/infra/analyzers/DriftDetector.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { InfraAnalysisResult } from '../types';
2
- export declare function analyzeInfra(provider: string, status: Record<string, any>): InfraAnalysisResult;
3
- //# sourceMappingURL=InfraAnalyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InfraAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/infra/analyzers/InfraAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAElE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,mBAAmB,CAwE/F"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeInfra = analyzeInfra;
4
- function analyzeInfra(provider, status) {
5
- const findings = [];
6
- if (provider === 'okd') {
7
- const podList = status.podList || [];
8
- for (const pod of podList) {
9
- if (pod.status !== 'Running') {
10
- findings.push({
11
- ruleId: 'okd-pod-not-running',
12
- severity: pod.status === 'CrashLoopBackOff' ? 'CRITICAL' : 'HIGH',
13
- category: 'reliability',
14
- resource: pod.name,
15
- message: `Pod ${pod.name} is in ${pod.status}`,
16
- suggestion: 'Check pod logs: oc logs ' + pod.name,
17
- autoFixAvailable: false,
18
- });
19
- }
20
- if (pod.restarts > 3) {
21
- findings.push({
22
- ruleId: 'okd-high-restarts',
23
- severity: 'MEDIUM',
24
- category: 'reliability',
25
- resource: pod.name,
26
- message: `Pod ${pod.name} has ${pod.restarts} restarts`,
27
- suggestion: 'Investigate crash reason in pod logs',
28
- autoFixAvailable: false,
29
- });
30
- }
31
- }
32
- }
33
- if (provider === 'jenkins') {
34
- const jobs = status.jobs || [];
35
- for (const job of jobs) {
36
- if (job.color === 'red') {
37
- findings.push({
38
- ruleId: 'jenkins-failed-build',
39
- severity: 'HIGH',
40
- category: 'reliability',
41
- resource: job.name,
42
- message: `Jenkins job ${job.name} last build failed`,
43
- suggestion: 'Check build logs and fix the failure',
44
- autoFixAvailable: false,
45
- });
46
- }
47
- if (job.building) {
48
- findings.push({
49
- ruleId: 'jenkins-active-build',
50
- severity: 'LOW',
51
- category: 'performance',
52
- resource: job.name,
53
- message: `Jenkins job ${job.name} is currently building`,
54
- suggestion: 'No action needed, build in progress',
55
- autoFixAvailable: false,
56
- });
57
- }
58
- }
59
- }
60
- const score = Math.max(0, 100 - findings.reduce((sum, f) => {
61
- const deduction = f.severity === 'CRITICAL' ? 25 : f.severity === 'HIGH' ? 15 : f.severity === 'MEDIUM' ? 8 : 3;
62
- return sum + deduction;
63
- }, 0));
64
- return {
65
- findings,
66
- score,
67
- provider,
68
- summary: findings.length === 0
69
- ? `All ${provider} resources are healthy.`
70
- : `Found ${findings.length} issue(s) in ${provider} (score: ${score}/100)`,
71
- };
72
- }
73
- //# sourceMappingURL=InfraAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InfraAnalyzer.js","sourceRoot":"","sources":["../../../../src/infra/analyzers/InfraAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { InfraConfig } from './types';
2
- export declare function getInfraConfig(): InfraConfig;
3
- interface DeployRecord {
4
- provider: string;
5
- project: string;
6
- timestamp: string;
7
- success: boolean;
8
- summary: string;
9
- }
10
- export declare function markProviderConnected(name: string, config: any): void;
11
- export declare function getConnectedProviders(): Record<string, {
12
- connectedAt: string;
13
- }>;
14
- export declare function recordDeploy(provider: string, project: string, success: boolean, summary: string): void;
15
- export declare function getDeployHistory(limit?: number): DeployRecord[];
16
- export {};
17
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/infra/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyB3C,wBAAgB,cAAc,IAAI,WAAW,CAiC5C;AAUD,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAIrE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAO/E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAWvG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE,CAG3D"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getInfraConfig = getInfraConfig;
7
- exports.markProviderConnected = markProviderConnected;
8
- exports.getConnectedProviders = getConnectedProviders;
9
- exports.recordDeploy = recordDeploy;
10
- exports.getDeployHistory = getDeployHistory;
11
- const fs_1 = __importDefault(require("fs"));
12
- const path_1 = __importDefault(require("path"));
13
- const os_1 = __importDefault(require("os"));
14
- const INFRA_CACHE_DIR = path_1.default.join(os_1.default.homedir(), '.lemma-cache', 'infra');
15
- const INFRA_STATE_FILE = path_1.default.join(INFRA_CACHE_DIR, 'state.json');
16
- const LEMMA_CONFIG_PATH = path_1.default.join(process.cwd(), 'lemma.config.json');
17
- // ── Config Loading ────────────────────────────────────────────────────────────
18
- function ensureCacheDir() {
19
- if (!fs_1.default.existsSync(INFRA_CACHE_DIR)) {
20
- fs_1.default.mkdirSync(INFRA_CACHE_DIR, { recursive: true });
21
- }
22
- }
23
- function readLemmaConfig() {
24
- try {
25
- if (fs_1.default.existsSync(LEMMA_CONFIG_PATH)) {
26
- const raw = fs_1.default.readFileSync(LEMMA_CONFIG_PATH, 'utf8');
27
- const parsed = JSON.parse(raw);
28
- return parsed.infra || {};
29
- }
30
- }
31
- catch { }
32
- return {};
33
- }
34
- function getInfraConfig() {
35
- const fileConfig = readLemmaConfig();
36
- return {
37
- jenkins: fileConfig.jenkins || {
38
- url: process.env.JENKINS_URL || '',
39
- username: process.env.JENKINS_USERNAME || '',
40
- apiToken: process.env.JENKINS_API_TOKEN || '',
41
- credentialsId: process.env.JENKINS_CREDENTIALS_ID || '',
42
- folder: process.env.JENKINS_FOLDER || '',
43
- },
44
- okd: fileConfig.okd || {
45
- server: process.env.OKD_SERVER || '',
46
- project: process.env.OKD_PROJECT || '',
47
- imageRegistry: process.env.OKD_IMAGE_REGISTRY || '',
48
- token: process.env.OKD_TOKEN || '',
49
- route: process.env.OKD_ROUTE_HOST
50
- ? { tls: process.env.OKD_ROUTE_TLS !== 'false', hostname: process.env.OKD_ROUTE_HOST }
51
- : undefined,
52
- },
53
- terraform: fileConfig.terraform || {
54
- backend: process.env.TF_BACKEND || 's3',
55
- bucket: process.env.TF_BUCKET || '',
56
- key: process.env.TF_KEY || '',
57
- region: process.env.TF_REGION || '',
58
- workDir: process.env.TF_WORK_DIR || process.cwd(),
59
- },
60
- deploy: fileConfig.deploy || {
61
- autoApprove: process.env.INFRA_AUTO_APPROVE === 'true',
62
- confirmationPrompt: process.env.INFRA_CONFIRM !== 'false',
63
- notifyOnSuccess: process.env.INFRA_NOTIFY !== 'false',
64
- },
65
- };
66
- }
67
- function loadState() {
68
- ensureCacheDir();
69
- try {
70
- if (fs_1.default.existsSync(INFRA_STATE_FILE)) {
71
- return JSON.parse(fs_1.default.readFileSync(INFRA_STATE_FILE, 'utf8'));
72
- }
73
- }
74
- catch { }
75
- return { connectedProviders: {}, lastDiscovery: '', deployHistory: [] };
76
- }
77
- function saveState(state) {
78
- ensureCacheDir();
79
- fs_1.default.writeFileSync(INFRA_STATE_FILE, JSON.stringify(state, null, 2), 'utf8');
80
- }
81
- function markProviderConnected(name, config) {
82
- const state = loadState();
83
- state.connectedProviders[name] = { connectedAt: new Date().toISOString(), config };
84
- saveState(state);
85
- }
86
- function getConnectedProviders() {
87
- const state = loadState();
88
- const result = {};
89
- for (const [k, v] of Object.entries(state.connectedProviders)) {
90
- result[k] = { connectedAt: v.connectedAt };
91
- }
92
- return result;
93
- }
94
- function recordDeploy(provider, project, success, summary) {
95
- const state = loadState();
96
- state.deployHistory.push({
97
- provider,
98
- project,
99
- timestamp: new Date().toISOString(),
100
- success,
101
- summary,
102
- });
103
- if (state.deployHistory.length > 100)
104
- state.deployHistory = state.deployHistory.slice(-100);
105
- saveState(state);
106
- }
107
- function getDeployHistory(limit = 10) {
108
- const state = loadState();
109
- return state.deployHistory.slice(-limit);
110
- }
111
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/infra/config.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * AN-17: every infra failure used to surface as "<bin> command failed: ...", which made
3
- * the 33% infrastructure error rate (okd_status 9/16) undiagnosable — tool, credentials,
4
- * network and cluster failures were indistinguishable in `is_error` and in the 100-char
5
- * onToolCall error strings. These helpers classify at the only point where the signal
6
- * still exists (errno, signal, status code, stderr text) and prefix every error as
7
- * `[<bin>:<cause>]`, so future failures aggregate into a cause histogram instead of
8
- * one opaque bucket. Pure functions + thin wrappers: fully unit-testable, no I/O here.
9
- */
10
- export type InfraErrorCause = 'tool-missing' | 'timeout' | 'unreachable' | 'auth' | 'config' | 'remote';
11
- export interface ClassifiedInfraError {
12
- cause: InfraErrorCause;
13
- /** Short human-readable cause label for the message prefix. */
14
- label: string;
15
- /** What to do about it — the part that turns a failure into an actionable error. */
16
- nextStep: string;
17
- }
18
- /**
19
- * Classify a child_process exec failure (execSync/execFileSync error shape).
20
- * Precedence matters: a missing binary also matches nothing else, but a timeout that
21
- * mentions a host must read as timeout, not unreachable — check in this order.
22
- */
23
- export declare function classifyExecError(bin: string, err: any): ClassifiedInfraError;
24
- /**
25
- * Classify an axios-style HTTP failure (err.response?.status / err.code / message).
26
- */
27
- export declare function classifyHttpError(bin: string, err: any): ClassifiedInfraError;
28
- /**
29
- * Build the error every infra provider throws: `[<bin>:<cause>] <detail>. Next: <step>`.
30
- * The bracket prefix is deliberately first — onToolCall truncates errors to 100 chars,
31
- * so the cause must survive truncation for the cause histogram to work.
32
- */
33
- export declare function infraError(bin: string, err: any, opts?: {
34
- http?: boolean;
35
- }): Error;
36
- //# sourceMappingURL=errorCause.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorCause.d.ts","sourceRoot":"","sources":["../../../src/infra/errorCause.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,aAAa,GACb,MAAM,GACN,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,oBAAoB,CA8C7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,oBAAoB,CA+C7E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CASlF"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- /**
3
- * AN-17: every infra failure used to surface as "<bin> command failed: ...", which made
4
- * the 33% infrastructure error rate (okd_status 9/16) undiagnosable — tool, credentials,
5
- * network and cluster failures were indistinguishable in `is_error` and in the 100-char
6
- * onToolCall error strings. These helpers classify at the only point where the signal
7
- * still exists (errno, signal, status code, stderr text) and prefix every error as
8
- * `[<bin>:<cause>]`, so future failures aggregate into a cause histogram instead of
9
- * one opaque bucket. Pure functions + thin wrappers: fully unit-testable, no I/O here.
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.classifyExecError = classifyExecError;
13
- exports.classifyHttpError = classifyHttpError;
14
- exports.infraError = infraError;
15
- const AUTH_RE = /unauthori[sz]ed|forbidden|\b401\b|\b403\b|login failed|invalid.*token|bad credentials|certificate|self[- ]signed|tls|ssl/i;
16
- const UNREACHABLE_RE = /ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|EPIPE|ENETUNREACH|connect .*refused|getaddrinfo|no such host/i;
17
- const TIMEOUT_RE = /ETIMEDOUT|timed out|timeout|ESOCKETTIMEDOUT/i;
18
- // The token travels on the command line today (see OKDProvider.connect); if a failure
19
- // message ever echoes argv, the secret must not ride along into logs and transcripts.
20
- const SECRET_RE = /--token=\S+|token[=:]\s*\S+/gi;
21
- function scrubSecrets(text) {
22
- return String(text ?? '').replace(SECRET_RE, '--token=[redacted]');
23
- }
24
- function firstLine(text, max = 200) {
25
- const line = scrubSecrets(text).split('\n').map((l) => l.trim()).filter(Boolean)[0] ?? '';
26
- return line.length > max ? line.slice(0, max) + '…' : line;
27
- }
28
- /**
29
- * Classify a child_process exec failure (execSync/execFileSync error shape).
30
- * Precedence matters: a missing binary also matches nothing else, but a timeout that
31
- * mentions a host must read as timeout, not unreachable — check in this order.
32
- */
33
- function classifyExecError(bin, err) {
34
- const code = typeof err?.code === 'string' ? err.code : '';
35
- const signal = typeof err?.signal === 'string' ? err.signal : '';
36
- const raw = [err?.stderr, err?.message].filter(Boolean).join('\n');
37
- if (code === 'ENOENT' || /command not found|spawn .* ENOENT/i.test(raw)) {
38
- return {
39
- cause: 'tool-missing',
40
- label: `${bin} binary not found`,
41
- nextStep: `install ${bin} and ensure it is on PATH`,
42
- };
43
- }
44
- if (code === 'ETIMEDOUT' || signal === 'SIGTERM' && /timed out/i.test(raw) || TIMEOUT_RE.test(code)) {
45
- return {
46
- cause: 'timeout',
47
- label: `${bin} timed out`,
48
- nextStep: 'check cluster responsiveness and raise the timeout for slow clusters',
49
- };
50
- }
51
- if (TIMEOUT_RE.test(raw)) {
52
- return {
53
- cause: 'timeout',
54
- label: `${bin} timed out`,
55
- nextStep: 'check cluster responsiveness and raise the timeout for slow clusters',
56
- };
57
- }
58
- if (AUTH_RE.test(raw)) {
59
- return {
60
- cause: 'auth',
61
- label: `${bin} rejected credentials`,
62
- nextStep: 're-login / rotate the token and verify the active context',
63
- };
64
- }
65
- if (UNREACHABLE_RE.test(raw) || UNREACHABLE_RE.test(code)) {
66
- return {
67
- cause: 'unreachable',
68
- label: `${bin} cannot reach the server`,
69
- nextStep: 'verify the server URL, VPN/proxy, and that the API endpoint is up',
70
- };
71
- }
72
- void bin;
73
- return {
74
- cause: 'remote',
75
- label: `${bin} reported a server-side error`,
76
- nextStep: 'inspect the detail below; the far end answered with an error',
77
- };
78
- }
79
- /**
80
- * Classify an axios-style HTTP failure (err.response?.status / err.code / message).
81
- */
82
- function classifyHttpError(bin, err) {
83
- const status = Number(err?.response?.status);
84
- const code = typeof err?.code === 'string' ? err.code : '';
85
- const raw = [err?.response?.data && typeof err.response.data === 'string' ? err.response.data : '', err?.message]
86
- .filter(Boolean)
87
- .join('\n');
88
- if (status === 401 || status === 403 || (!status && AUTH_RE.test(raw))) {
89
- return {
90
- cause: 'auth',
91
- label: `${bin} rejected credentials (HTTP ${status || 'auth failure'})`,
92
- nextStep: 'verify the username/API token and that it has not expired',
93
- };
94
- }
95
- if (status === 404) {
96
- return {
97
- cause: 'config',
98
- label: `${bin} resource not found (HTTP 404)`,
99
- nextStep: 'verify the URL, folder and job/resource names in the provider config',
100
- };
101
- }
102
- if (code === 'ECONNABORTED' || TIMEOUT_RE.test(raw) || TIMEOUT_RE.test(code)) {
103
- return {
104
- cause: 'timeout',
105
- label: `${bin} request timed out`,
106
- nextStep: 'check server responsiveness; the call exceeded the client timeout',
107
- };
108
- }
109
- if (!status && (UNREACHABLE_RE.test(raw) || UNREACHABLE_RE.test(code))) {
110
- return {
111
- cause: 'unreachable',
112
- label: `${bin} server unreachable`,
113
- nextStep: 'verify the server URL and network path (VPN/proxy/DNS)',
114
- };
115
- }
116
- if (!err?.response) {
117
- return {
118
- cause: 'unreachable',
119
- label: `${bin} request never reached the server`,
120
- nextStep: 'verify the server URL and network path (VPN/proxy/DNS)',
121
- };
122
- }
123
- return {
124
- cause: 'remote',
125
- label: `${bin} server error (HTTP ${status})`,
126
- nextStep: 'the server answered with an error; check its logs',
127
- };
128
- }
129
- /**
130
- * Build the error every infra provider throws: `[<bin>:<cause>] <detail>. Next: <step>`.
131
- * The bracket prefix is deliberately first — onToolCall truncates errors to 100 chars,
132
- * so the cause must survive truncation for the cause histogram to work.
133
- */
134
- function infraError(bin, err, opts) {
135
- const classified = opts?.http ? classifyHttpError(bin, err) : classifyExecError(bin, err);
136
- const rawDetail = (!opts?.http && typeof err?.stderr === 'string' && err.stderr.trim()
137
- ? err.stderr
138
- : err?.message) || 'unknown error';
139
- const detail = firstLine(rawDetail);
140
- const message = `[${bin}:${classified.cause}] ${classified.label}${detail ? `: ${detail}` : ''}. Next: ${classified.nextStep}.`;
141
- return new Error(message);
142
- }
143
- //# sourceMappingURL=errorCause.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorCause.js","sourceRoot":"","sources":["../../../src/infra/errorCause.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { HealthStatus } from '../types';
2
- export interface InfraProvider {
3
- readonly name: string;
4
- readonly type: 'jenkins' | 'okd' | 'terraform';
5
- connect(config: any): Promise<boolean>;
6
- healthCheck(): Promise<HealthStatus>;
7
- getStatus(): Promise<Record<string, any>>;
8
- }
9
- //# sourceMappingURL=InfraProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InfraProvider.d.ts","sourceRoot":"","sources":["../../../../src/infra/providers/InfraProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC;IAE/C,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC3C"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=InfraProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InfraProvider.js","sourceRoot":"","sources":["../../../../src/infra/providers/InfraProvider.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import type { InfraProvider } from './InfraProvider';
2
- import type { HealthStatus, PipelineConfig, DeployResult, JenkinsConfig } from '../types';
3
- export declare class JenkinsProvider implements InfraProvider {
4
- readonly name = "jenkins";
5
- readonly type: "jenkins";
6
- private client;
7
- private config;
8
- connect(config: JenkinsConfig): Promise<boolean>;
9
- healthCheck(): Promise<HealthStatus>;
10
- getStatus(): Promise<Record<string, any>>;
11
- generatePipeline(cfg: PipelineConfig): Promise<string>;
12
- triggerBuild(jobName: string, params?: Record<string, string>): Promise<DeployResult>;
13
- getBuildStatus(jobName: string, buildNumber?: number): Promise<Record<string, any>>;
14
- getBuildLogs(jobName: string, buildNumber: number): Promise<string>;
15
- }
16
- //# sourceMappingURL=JenkinsProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JenkinsProvider.d.ts","sourceRoot":"","sources":["../../../../src/infra/providers/JenkinsProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1F,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAA8B;IAEtC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BhD,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAqBpC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAUzC,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA6DtD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgCrF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAgBnF,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW1E"}