@nxuss/lemma 1.38.0 → 1.40.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 (431) hide show
  1. package/README.md +3 -4
  2. package/bin/brain-ingest.js +68 -31
  3. package/bin/init.js +25 -28
  4. package/dashboard/dist/assets/index-DNTQXLER.css +1 -0
  5. package/dashboard/dist/assets/index-DzL_Zu3m.js +452 -0
  6. package/dashboard/dist/index.html +2 -2
  7. package/dist/cjs/cli/gitHooks.d.ts +9 -2
  8. package/dist/cjs/cli/gitHooks.d.ts.map +1 -1
  9. package/dist/cjs/cli/gitHooks.js +31 -4
  10. package/dist/cjs/cli/gitHooks.js.map +1 -1
  11. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  12. package/dist/cjs/cli/lemma-proxy.js +21 -1
  13. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  14. package/dist/cjs/infra/analyzers/index.d.ts +0 -2
  15. package/dist/cjs/infra/analyzers/index.d.ts.map +1 -1
  16. package/dist/cjs/infra/analyzers/index.js +1 -6
  17. package/dist/cjs/infra/analyzers/index.js.map +1 -1
  18. package/dist/cjs/infra/cli.d.ts +4 -0
  19. package/dist/cjs/infra/cli.d.ts.map +1 -1
  20. package/dist/cjs/infra/cli.js +6 -199
  21. package/dist/cjs/infra/cli.js.map +1 -1
  22. package/dist/cjs/infra/index.d.ts +1 -3
  23. package/dist/cjs/infra/index.d.ts.map +1 -1
  24. package/dist/cjs/infra/index.js +1 -16
  25. package/dist/cjs/infra/index.js.map +1 -1
  26. package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
  27. package/dist/cjs/infra/mcp-tools.js +8 -453
  28. package/dist/cjs/infra/mcp-tools.js.map +1 -1
  29. package/dist/cjs/infra/types.d.ts +0 -101
  30. package/dist/cjs/infra/types.d.ts.map +1 -1
  31. package/dist/cjs/infra/types.js +2 -1
  32. package/dist/cjs/infra/types.js.map +1 -1
  33. package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -1
  34. package/dist/cjs/mcp/cognitiveMap.js +6 -2
  35. package/dist/cjs/mcp/cognitiveMap.js.map +1 -1
  36. package/dist/cjs/mcp/index.js +2 -0
  37. package/dist/cjs/mcp/index.js.map +1 -1
  38. package/dist/cjs/mcp/prompts.d.ts +1 -1
  39. package/dist/cjs/mcp/prompts.d.ts.map +1 -1
  40. package/dist/cjs/mcp/prompts.js +8 -23
  41. package/dist/cjs/mcp/prompts.js.map +1 -1
  42. package/dist/cjs/mcp/tool-profiles.d.ts +8 -3
  43. package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
  44. package/dist/cjs/mcp/tool-profiles.js +25 -54
  45. package/dist/cjs/mcp/tool-profiles.js.map +1 -1
  46. package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
  47. package/dist/cjs/mcp/tools/devtools.js +11 -1
  48. package/dist/cjs/mcp/tools/devtools.js.map +1 -1
  49. package/dist/cjs/mcp/tools/memory.d.ts +8 -0
  50. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  51. package/dist/cjs/mcp/tools/memory.js +209 -137
  52. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  53. package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
  54. package/dist/cjs/mcp/tools/refactor.js +129 -32
  55. package/dist/cjs/mcp/tools/refactor.js.map +1 -1
  56. package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
  57. package/dist/cjs/mcp/tools/workspace.js +108 -8
  58. package/dist/cjs/mcp/tools/workspace.js.map +1 -1
  59. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  60. package/dist/cjs/mcp/tools.js +11 -6
  61. package/dist/cjs/mcp/tools.js.map +1 -1
  62. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
  63. package/dist/cjs/mcp/workspaceShared.js +8 -4
  64. package/dist/cjs/mcp/workspaceShared.js.map +1 -1
  65. package/dist/cjs/proxy/ProjectRegistry.d.ts +20 -0
  66. package/dist/cjs/proxy/ProjectRegistry.d.ts.map +1 -1
  67. package/dist/cjs/proxy/ProjectRegistry.js +46 -4
  68. package/dist/cjs/proxy/ProjectRegistry.js.map +1 -1
  69. package/dist/cjs/proxy/ProjectStore.d.ts.map +1 -1
  70. package/dist/cjs/proxy/ProjectStore.js +9 -6
  71. package/dist/cjs/proxy/ProjectStore.js.map +1 -1
  72. package/dist/cjs/subconscious/HostRecall.d.ts +26 -2
  73. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  74. package/dist/cjs/subconscious/HostRecall.js +115 -40
  75. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  76. package/dist/cjs/subconscious/NarrowEvidence.d.ts +53 -0
  77. package/dist/cjs/subconscious/NarrowEvidence.d.ts.map +1 -0
  78. package/dist/cjs/subconscious/NarrowEvidence.js +237 -0
  79. package/dist/cjs/subconscious/NarrowEvidence.js.map +1 -0
  80. package/dist/cjs/subconscious/TheBrainV2.d.ts +48 -0
  81. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  82. package/dist/cjs/subconscious/TheBrainV2.js +227 -26
  83. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  84. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  85. package/dist/cjs/subconscious/freshness/LocalFsResolver.js +32 -0
  86. package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
  87. package/dist/cjs/subconscious/recallDigest.d.ts +8 -0
  88. package/dist/cjs/subconscious/recallDigest.d.ts.map +1 -1
  89. package/dist/cjs/subconscious/recallDigest.js +13 -1
  90. package/dist/cjs/subconscious/recallDigest.js.map +1 -1
  91. package/dist/cjs/utils/AffectedTests.d.ts +1 -5
  92. package/dist/cjs/utils/AffectedTests.d.ts.map +1 -1
  93. package/dist/cjs/utils/AffectedTests.js +5 -37
  94. package/dist/cjs/utils/AffectedTests.js.map +1 -1
  95. package/dist/cjs/utils/AtomicFile.d.ts +14 -0
  96. package/dist/cjs/utils/AtomicFile.d.ts.map +1 -0
  97. package/dist/cjs/utils/AtomicFile.js +44 -0
  98. package/dist/cjs/utils/AtomicFile.js.map +1 -0
  99. package/dist/cjs/utils/AutoContextBundle.js +1 -1
  100. package/dist/cjs/utils/AutoContextBundle.js.map +1 -1
  101. package/dist/cjs/utils/BulkFileDigest.js +1 -1
  102. package/dist/cjs/utils/BulkFileDigest.js.map +1 -1
  103. package/dist/cjs/utils/ContextSqueezer.d.ts +36 -4
  104. package/dist/cjs/utils/ContextSqueezer.d.ts.map +1 -1
  105. package/dist/cjs/utils/ContextSqueezer.js +69 -21
  106. package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
  107. package/dist/cjs/utils/FileLock.d.ts +2 -0
  108. package/dist/cjs/utils/FileLock.d.ts.map +1 -0
  109. package/dist/cjs/utils/FileLock.js +32 -0
  110. package/dist/cjs/utils/FileLock.js.map +1 -0
  111. package/dist/cjs/utils/FileOutline.d.ts +1 -1
  112. package/dist/cjs/utils/FileOutline.d.ts.map +1 -1
  113. package/dist/cjs/utils/FileOutline.js +5 -1
  114. package/dist/cjs/utils/FileOutline.js.map +1 -1
  115. package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
  116. package/dist/cjs/utils/FixCapture.js +4 -3
  117. package/dist/cjs/utils/FixCapture.js.map +1 -1
  118. package/dist/cjs/utils/GitChanges.d.ts +11 -0
  119. package/dist/cjs/utils/GitChanges.d.ts.map +1 -0
  120. package/dist/cjs/utils/GitChanges.js +44 -0
  121. package/dist/cjs/utils/GitChanges.js.map +1 -0
  122. package/dist/cjs/utils/JsonKeys.d.ts +17 -0
  123. package/dist/cjs/utils/JsonKeys.d.ts.map +1 -0
  124. package/dist/cjs/utils/JsonKeys.js +75 -0
  125. package/dist/cjs/utils/JsonKeys.js.map +1 -0
  126. package/dist/cjs/utils/LocalExclude.d.ts +3 -0
  127. package/dist/cjs/utils/LocalExclude.d.ts.map +1 -0
  128. package/dist/cjs/utils/LocalExclude.js +68 -0
  129. package/dist/cjs/utils/LocalExclude.js.map +1 -0
  130. package/dist/cjs/utils/OtherLanguageSymbols.d.ts +31 -0
  131. package/dist/cjs/utils/OtherLanguageSymbols.d.ts.map +1 -0
  132. package/dist/cjs/utils/OtherLanguageSymbols.js +276 -0
  133. package/dist/cjs/utils/OtherLanguageSymbols.js.map +1 -0
  134. package/dist/cjs/utils/OutputDelta.d.ts +14 -2
  135. package/dist/cjs/utils/OutputDelta.d.ts.map +1 -1
  136. package/dist/cjs/utils/OutputDelta.js +22 -15
  137. package/dist/cjs/utils/OutputDelta.js.map +1 -1
  138. package/dist/cjs/utils/RoiLedger.d.ts.map +1 -1
  139. package/dist/cjs/utils/RoiLedger.js +7 -3
  140. package/dist/cjs/utils/RoiLedger.js.map +1 -1
  141. package/dist/cjs/utils/SavingsLedger.d.ts +27 -0
  142. package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
  143. package/dist/cjs/utils/SavingsLedger.js +56 -2
  144. package/dist/cjs/utils/SavingsLedger.js.map +1 -1
  145. package/dist/cjs/utils/SharedLedgerStore.d.ts.map +1 -1
  146. package/dist/cjs/utils/SharedLedgerStore.js +2 -1
  147. package/dist/cjs/utils/SharedLedgerStore.js.map +1 -1
  148. package/dist/cjs/utils/StoreDraft.d.ts +12 -0
  149. package/dist/cjs/utils/StoreDraft.d.ts.map +1 -1
  150. package/dist/cjs/utils/StoreDraft.js +53 -1
  151. package/dist/cjs/utils/StoreDraft.js.map +1 -1
  152. package/dist/cjs/utils/SurgicalASTInsert.d.ts.map +1 -1
  153. package/dist/cjs/utils/SurgicalASTInsert.js +2 -1
  154. package/dist/cjs/utils/SurgicalASTInsert.js.map +1 -1
  155. package/dist/cjs/utils/SymbolSurgicalContext.d.ts +2 -0
  156. package/dist/cjs/utils/SymbolSurgicalContext.d.ts.map +1 -1
  157. package/dist/cjs/utils/SymbolSurgicalContext.js +30 -62
  158. package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
  159. package/dist/cjs/utils/Utf8Guard.d.ts +23 -0
  160. package/dist/cjs/utils/Utf8Guard.d.ts.map +1 -0
  161. package/dist/cjs/utils/Utf8Guard.js +81 -0
  162. package/dist/cjs/utils/Utf8Guard.js.map +1 -0
  163. package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
  164. package/dist/cjs/utils/WorkspaceSearch.js +26 -8
  165. package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
  166. package/dist/cjs/utils/reportSavings.d.ts +17 -4
  167. package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
  168. package/dist/cjs/utils/reportSavings.js +67 -22
  169. package/dist/cjs/utils/reportSavings.js.map +1 -1
  170. package/dist/cjs/utils/tsLoader.d.ts +5 -0
  171. package/dist/cjs/utils/tsLoader.d.ts.map +1 -0
  172. package/dist/cjs/utils/tsLoader.js +15 -0
  173. package/dist/cjs/utils/tsLoader.js.map +1 -0
  174. package/dist/esm/cli/gitHooks.d.ts +9 -2
  175. package/dist/esm/cli/gitHooks.d.ts.map +1 -1
  176. package/dist/esm/cli/gitHooks.js +31 -4
  177. package/dist/esm/cli/gitHooks.js.map +1 -1
  178. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  179. package/dist/esm/cli/lemma-proxy.js +21 -1
  180. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  181. package/dist/esm/infra/analyzers/index.d.ts +0 -2
  182. package/dist/esm/infra/analyzers/index.d.ts.map +1 -1
  183. package/dist/esm/infra/analyzers/index.js +0 -2
  184. package/dist/esm/infra/analyzers/index.js.map +1 -1
  185. package/dist/esm/infra/cli.d.ts +4 -0
  186. package/dist/esm/infra/cli.d.ts.map +1 -1
  187. package/dist/esm/infra/cli.js +6 -199
  188. package/dist/esm/infra/cli.js.map +1 -1
  189. package/dist/esm/infra/index.d.ts +1 -3
  190. package/dist/esm/infra/index.d.ts.map +1 -1
  191. package/dist/esm/infra/index.js +1 -3
  192. package/dist/esm/infra/index.js.map +1 -1
  193. package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
  194. package/dist/esm/infra/mcp-tools.js +9 -454
  195. package/dist/esm/infra/mcp-tools.js.map +1 -1
  196. package/dist/esm/infra/types.d.ts +0 -101
  197. package/dist/esm/infra/types.d.ts.map +1 -1
  198. package/dist/esm/infra/types.js +2 -1
  199. package/dist/esm/infra/types.js.map +1 -1
  200. package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -1
  201. package/dist/esm/mcp/cognitiveMap.js +6 -2
  202. package/dist/esm/mcp/cognitiveMap.js.map +1 -1
  203. package/dist/esm/mcp/index.js +2 -0
  204. package/dist/esm/mcp/index.js.map +1 -1
  205. package/dist/esm/mcp/prompts.d.ts +1 -1
  206. package/dist/esm/mcp/prompts.d.ts.map +1 -1
  207. package/dist/esm/mcp/prompts.js +8 -23
  208. package/dist/esm/mcp/prompts.js.map +1 -1
  209. package/dist/esm/mcp/tool-profiles.d.ts +8 -3
  210. package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
  211. package/dist/esm/mcp/tool-profiles.js +25 -54
  212. package/dist/esm/mcp/tool-profiles.js.map +1 -1
  213. package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
  214. package/dist/esm/mcp/tools/devtools.js +11 -1
  215. package/dist/esm/mcp/tools/devtools.js.map +1 -1
  216. package/dist/esm/mcp/tools/memory.d.ts +8 -0
  217. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  218. package/dist/esm/mcp/tools/memory.js +211 -140
  219. package/dist/esm/mcp/tools/memory.js.map +1 -1
  220. package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
  221. package/dist/esm/mcp/tools/refactor.js +129 -32
  222. package/dist/esm/mcp/tools/refactor.js.map +1 -1
  223. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
  224. package/dist/esm/mcp/tools/workspace.js +108 -8
  225. package/dist/esm/mcp/tools/workspace.js.map +1 -1
  226. package/dist/esm/mcp/tools.d.ts.map +1 -1
  227. package/dist/esm/mcp/tools.js +12 -7
  228. package/dist/esm/mcp/tools.js.map +1 -1
  229. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
  230. package/dist/esm/mcp/workspaceShared.js +9 -5
  231. package/dist/esm/mcp/workspaceShared.js.map +1 -1
  232. package/dist/esm/proxy/ProjectRegistry.d.ts +20 -0
  233. package/dist/esm/proxy/ProjectRegistry.d.ts.map +1 -1
  234. package/dist/esm/proxy/ProjectRegistry.js +45 -3
  235. package/dist/esm/proxy/ProjectRegistry.js.map +1 -1
  236. package/dist/esm/proxy/ProjectStore.d.ts.map +1 -1
  237. package/dist/esm/proxy/ProjectStore.js +9 -6
  238. package/dist/esm/proxy/ProjectStore.js.map +1 -1
  239. package/dist/esm/subconscious/HostRecall.d.ts +26 -2
  240. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  241. package/dist/esm/subconscious/HostRecall.js +113 -41
  242. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  243. package/dist/esm/subconscious/NarrowEvidence.d.ts +53 -0
  244. package/dist/esm/subconscious/NarrowEvidence.d.ts.map +1 -0
  245. package/dist/esm/subconscious/NarrowEvidence.js +228 -0
  246. package/dist/esm/subconscious/NarrowEvidence.js.map +1 -0
  247. package/dist/esm/subconscious/TheBrainV2.d.ts +48 -0
  248. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  249. package/dist/esm/subconscious/TheBrainV2.js +226 -25
  250. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  251. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  252. package/dist/esm/subconscious/freshness/LocalFsResolver.js +32 -0
  253. package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
  254. package/dist/esm/subconscious/recallDigest.d.ts +8 -0
  255. package/dist/esm/subconscious/recallDigest.d.ts.map +1 -1
  256. package/dist/esm/subconscious/recallDigest.js +12 -1
  257. package/dist/esm/subconscious/recallDigest.js.map +1 -1
  258. package/dist/esm/utils/AffectedTests.d.ts +1 -5
  259. package/dist/esm/utils/AffectedTests.d.ts.map +1 -1
  260. package/dist/esm/utils/AffectedTests.js +2 -35
  261. package/dist/esm/utils/AffectedTests.js.map +1 -1
  262. package/dist/esm/utils/AtomicFile.d.ts +14 -0
  263. package/dist/esm/utils/AtomicFile.d.ts.map +1 -0
  264. package/dist/esm/utils/AtomicFile.js +37 -0
  265. package/dist/esm/utils/AtomicFile.js.map +1 -0
  266. package/dist/esm/utils/AutoContextBundle.js +1 -1
  267. package/dist/esm/utils/AutoContextBundle.js.map +1 -1
  268. package/dist/esm/utils/BulkFileDigest.js +1 -1
  269. package/dist/esm/utils/BulkFileDigest.js.map +1 -1
  270. package/dist/esm/utils/ContextSqueezer.d.ts +36 -4
  271. package/dist/esm/utils/ContextSqueezer.d.ts.map +1 -1
  272. package/dist/esm/utils/ContextSqueezer.js +67 -21
  273. package/dist/esm/utils/ContextSqueezer.js.map +1 -1
  274. package/dist/esm/utils/FileLock.d.ts +2 -0
  275. package/dist/esm/utils/FileLock.d.ts.map +1 -0
  276. package/dist/esm/utils/FileLock.js +29 -0
  277. package/dist/esm/utils/FileLock.js.map +1 -0
  278. package/dist/esm/utils/FileOutline.d.ts +1 -1
  279. package/dist/esm/utils/FileOutline.d.ts.map +1 -1
  280. package/dist/esm/utils/FileOutline.js +5 -1
  281. package/dist/esm/utils/FileOutline.js.map +1 -1
  282. package/dist/esm/utils/FixCapture.d.ts.map +1 -1
  283. package/dist/esm/utils/FixCapture.js +3 -2
  284. package/dist/esm/utils/FixCapture.js.map +1 -1
  285. package/dist/esm/utils/GitChanges.d.ts +11 -0
  286. package/dist/esm/utils/GitChanges.d.ts.map +1 -0
  287. package/dist/esm/utils/GitChanges.js +41 -0
  288. package/dist/esm/utils/GitChanges.js.map +1 -0
  289. package/dist/esm/utils/JsonKeys.d.ts +17 -0
  290. package/dist/esm/utils/JsonKeys.d.ts.map +1 -0
  291. package/dist/esm/utils/JsonKeys.js +71 -0
  292. package/dist/esm/utils/JsonKeys.js.map +1 -0
  293. package/dist/esm/utils/LocalExclude.d.ts +3 -0
  294. package/dist/esm/utils/LocalExclude.d.ts.map +1 -0
  295. package/dist/esm/utils/LocalExclude.js +62 -0
  296. package/dist/esm/utils/LocalExclude.js.map +1 -0
  297. package/dist/esm/utils/OtherLanguageSymbols.d.ts +31 -0
  298. package/dist/esm/utils/OtherLanguageSymbols.d.ts.map +1 -0
  299. package/dist/esm/utils/OtherLanguageSymbols.js +268 -0
  300. package/dist/esm/utils/OtherLanguageSymbols.js.map +1 -0
  301. package/dist/esm/utils/OutputDelta.d.ts +14 -2
  302. package/dist/esm/utils/OutputDelta.d.ts.map +1 -1
  303. package/dist/esm/utils/OutputDelta.js +22 -15
  304. package/dist/esm/utils/OutputDelta.js.map +1 -1
  305. package/dist/esm/utils/RoiLedger.d.ts.map +1 -1
  306. package/dist/esm/utils/RoiLedger.js +7 -3
  307. package/dist/esm/utils/RoiLedger.js.map +1 -1
  308. package/dist/esm/utils/SavingsLedger.d.ts +27 -0
  309. package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
  310. package/dist/esm/utils/SavingsLedger.js +56 -2
  311. package/dist/esm/utils/SavingsLedger.js.map +1 -1
  312. package/dist/esm/utils/SharedLedgerStore.d.ts.map +1 -1
  313. package/dist/esm/utils/SharedLedgerStore.js +2 -1
  314. package/dist/esm/utils/SharedLedgerStore.js.map +1 -1
  315. package/dist/esm/utils/StoreDraft.d.ts +12 -0
  316. package/dist/esm/utils/StoreDraft.d.ts.map +1 -1
  317. package/dist/esm/utils/StoreDraft.js +52 -1
  318. package/dist/esm/utils/StoreDraft.js.map +1 -1
  319. package/dist/esm/utils/SurgicalASTInsert.d.ts.map +1 -1
  320. package/dist/esm/utils/SurgicalASTInsert.js +2 -1
  321. package/dist/esm/utils/SurgicalASTInsert.js.map +1 -1
  322. package/dist/esm/utils/SymbolSurgicalContext.d.ts +2 -0
  323. package/dist/esm/utils/SymbolSurgicalContext.d.ts.map +1 -1
  324. package/dist/esm/utils/SymbolSurgicalContext.js +2 -2
  325. package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
  326. package/dist/esm/utils/Utf8Guard.d.ts +23 -0
  327. package/dist/esm/utils/Utf8Guard.d.ts.map +1 -0
  328. package/dist/esm/utils/Utf8Guard.js +74 -0
  329. package/dist/esm/utils/Utf8Guard.js.map +1 -0
  330. package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
  331. package/dist/esm/utils/WorkspaceSearch.js +26 -8
  332. package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
  333. package/dist/esm/utils/reportSavings.d.ts +17 -4
  334. package/dist/esm/utils/reportSavings.d.ts.map +1 -1
  335. package/dist/esm/utils/reportSavings.js +65 -22
  336. package/dist/esm/utils/reportSavings.js.map +1 -1
  337. package/dist/esm/utils/tsLoader.d.ts +5 -0
  338. package/dist/esm/utils/tsLoader.d.ts.map +1 -0
  339. package/dist/esm/utils/tsLoader.js +13 -0
  340. package/dist/esm/utils/tsLoader.js.map +1 -0
  341. package/package.json +3 -2
  342. package/dashboard/dist/assets/index-CLXWgzTm.css +0 -1
  343. package/dashboard/dist/assets/index-CoMIMxyC.js +0 -451
  344. package/dist/cjs/infra/analyzers/DriftDetector.d.ts +0 -4
  345. package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +0 -1
  346. package/dist/cjs/infra/analyzers/DriftDetector.js +0 -88
  347. package/dist/cjs/infra/analyzers/DriftDetector.js.map +0 -1
  348. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  349. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  350. package/dist/cjs/infra/analyzers/InfraAnalyzer.js +0 -73
  351. package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +0 -1
  352. package/dist/cjs/infra/config.d.ts +0 -17
  353. package/dist/cjs/infra/config.d.ts.map +0 -1
  354. package/dist/cjs/infra/config.js +0 -111
  355. package/dist/cjs/infra/config.js.map +0 -1
  356. package/dist/cjs/infra/errorCause.d.ts +0 -36
  357. package/dist/cjs/infra/errorCause.d.ts.map +0 -1
  358. package/dist/cjs/infra/errorCause.js +0 -143
  359. package/dist/cjs/infra/errorCause.js.map +0 -1
  360. package/dist/cjs/infra/providers/InfraProvider.d.ts +0 -9
  361. package/dist/cjs/infra/providers/InfraProvider.d.ts.map +0 -1
  362. package/dist/cjs/infra/providers/InfraProvider.js +0 -3
  363. package/dist/cjs/infra/providers/InfraProvider.js.map +0 -1
  364. package/dist/cjs/infra/providers/JenkinsProvider.d.ts +0 -16
  365. package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +0 -1
  366. package/dist/cjs/infra/providers/JenkinsProvider.js +0 -193
  367. package/dist/cjs/infra/providers/JenkinsProvider.js.map +0 -1
  368. package/dist/cjs/infra/providers/OKDProvider.d.ts +0 -24
  369. package/dist/cjs/infra/providers/OKDProvider.d.ts.map +0 -1
  370. package/dist/cjs/infra/providers/OKDProvider.js +0 -296
  371. package/dist/cjs/infra/providers/OKDProvider.js.map +0 -1
  372. package/dist/cjs/infra/providers/TerraformProvider.d.ts +0 -17
  373. package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +0 -1
  374. package/dist/cjs/infra/providers/TerraformProvider.js +0 -111
  375. package/dist/cjs/infra/providers/TerraformProvider.js.map +0 -1
  376. package/dist/cjs/infra/providers/index.d.ts +0 -9
  377. package/dist/cjs/infra/providers/index.d.ts.map +0 -1
  378. package/dist/cjs/infra/providers/index.js +0 -34
  379. package/dist/cjs/infra/providers/index.js.map +0 -1
  380. package/dist/cjs/infra/templates/jenkins/index.d.ts +0 -15
  381. package/dist/cjs/infra/templates/jenkins/index.d.ts.map +0 -1
  382. package/dist/cjs/infra/templates/jenkins/index.js +0 -128
  383. package/dist/cjs/infra/templates/jenkins/index.js.map +0 -1
  384. package/dist/cjs/infra/templates/okd/index.d.ts +0 -31
  385. package/dist/cjs/infra/templates/okd/index.d.ts.map +0 -1
  386. package/dist/cjs/infra/templates/okd/index.js +0 -149
  387. package/dist/cjs/infra/templates/okd/index.js.map +0 -1
  388. package/dist/esm/infra/analyzers/DriftDetector.d.ts +0 -4
  389. package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +0 -1
  390. package/dist/esm/infra/analyzers/DriftDetector.js +0 -84
  391. package/dist/esm/infra/analyzers/DriftDetector.js.map +0 -1
  392. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  393. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  394. package/dist/esm/infra/analyzers/InfraAnalyzer.js +0 -70
  395. package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +0 -1
  396. package/dist/esm/infra/config.d.ts +0 -17
  397. package/dist/esm/infra/config.d.ts.map +0 -1
  398. package/dist/esm/infra/config.js +0 -101
  399. package/dist/esm/infra/config.js.map +0 -1
  400. package/dist/esm/infra/errorCause.d.ts +0 -36
  401. package/dist/esm/infra/errorCause.d.ts.map +0 -1
  402. package/dist/esm/infra/errorCause.js +0 -138
  403. package/dist/esm/infra/errorCause.js.map +0 -1
  404. package/dist/esm/infra/providers/InfraProvider.d.ts +0 -9
  405. package/dist/esm/infra/providers/InfraProvider.d.ts.map +0 -1
  406. package/dist/esm/infra/providers/InfraProvider.js +0 -2
  407. package/dist/esm/infra/providers/InfraProvider.js.map +0 -1
  408. package/dist/esm/infra/providers/JenkinsProvider.d.ts +0 -16
  409. package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +0 -1
  410. package/dist/esm/infra/providers/JenkinsProvider.js +0 -186
  411. package/dist/esm/infra/providers/JenkinsProvider.js.map +0 -1
  412. package/dist/esm/infra/providers/OKDProvider.d.ts +0 -24
  413. package/dist/esm/infra/providers/OKDProvider.d.ts.map +0 -1
  414. package/dist/esm/infra/providers/OKDProvider.js +0 -292
  415. package/dist/esm/infra/providers/OKDProvider.js.map +0 -1
  416. package/dist/esm/infra/providers/TerraformProvider.d.ts +0 -17
  417. package/dist/esm/infra/providers/TerraformProvider.d.ts.map +0 -1
  418. package/dist/esm/infra/providers/TerraformProvider.js +0 -107
  419. package/dist/esm/infra/providers/TerraformProvider.js.map +0 -1
  420. package/dist/esm/infra/providers/index.d.ts +0 -9
  421. package/dist/esm/infra/providers/index.d.ts.map +0 -1
  422. package/dist/esm/infra/providers/index.js +0 -27
  423. package/dist/esm/infra/providers/index.js.map +0 -1
  424. package/dist/esm/infra/templates/jenkins/index.d.ts +0 -15
  425. package/dist/esm/infra/templates/jenkins/index.d.ts.map +0 -1
  426. package/dist/esm/infra/templates/jenkins/index.js +0 -124
  427. package/dist/esm/infra/templates/jenkins/index.js.map +0 -1
  428. package/dist/esm/infra/templates/okd/index.d.ts +0 -31
  429. package/dist/esm/infra/templates/okd/index.d.ts.map +0 -1
  430. package/dist/esm/infra/templates/okd/index.js +0 -142
  431. package/dist/esm/infra/templates/okd/index.js.map +0 -1
@@ -1,101 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import os from 'os';
4
- const INFRA_CACHE_DIR = path.join(os.homedir(), '.lemma-cache', 'infra');
5
- const INFRA_STATE_FILE = path.join(INFRA_CACHE_DIR, 'state.json');
6
- const LEMMA_CONFIG_PATH = path.join(process.cwd(), 'lemma.config.json');
7
- // ── Config Loading ────────────────────────────────────────────────────────────
8
- function ensureCacheDir() {
9
- if (!fs.existsSync(INFRA_CACHE_DIR)) {
10
- fs.mkdirSync(INFRA_CACHE_DIR, { recursive: true });
11
- }
12
- }
13
- function readLemmaConfig() {
14
- try {
15
- if (fs.existsSync(LEMMA_CONFIG_PATH)) {
16
- const raw = fs.readFileSync(LEMMA_CONFIG_PATH, 'utf8');
17
- const parsed = JSON.parse(raw);
18
- return parsed.infra || {};
19
- }
20
- }
21
- catch { }
22
- return {};
23
- }
24
- export function getInfraConfig() {
25
- const fileConfig = readLemmaConfig();
26
- return {
27
- jenkins: fileConfig.jenkins || {
28
- url: process.env.JENKINS_URL || '',
29
- username: process.env.JENKINS_USERNAME || '',
30
- apiToken: process.env.JENKINS_API_TOKEN || '',
31
- credentialsId: process.env.JENKINS_CREDENTIALS_ID || '',
32
- folder: process.env.JENKINS_FOLDER || '',
33
- },
34
- okd: fileConfig.okd || {
35
- server: process.env.OKD_SERVER || '',
36
- project: process.env.OKD_PROJECT || '',
37
- imageRegistry: process.env.OKD_IMAGE_REGISTRY || '',
38
- token: process.env.OKD_TOKEN || '',
39
- route: process.env.OKD_ROUTE_HOST
40
- ? { tls: process.env.OKD_ROUTE_TLS !== 'false', hostname: process.env.OKD_ROUTE_HOST }
41
- : undefined,
42
- },
43
- terraform: fileConfig.terraform || {
44
- backend: process.env.TF_BACKEND || 's3',
45
- bucket: process.env.TF_BUCKET || '',
46
- key: process.env.TF_KEY || '',
47
- region: process.env.TF_REGION || '',
48
- workDir: process.env.TF_WORK_DIR || process.cwd(),
49
- },
50
- deploy: fileConfig.deploy || {
51
- autoApprove: process.env.INFRA_AUTO_APPROVE === 'true',
52
- confirmationPrompt: process.env.INFRA_CONFIRM !== 'false',
53
- notifyOnSuccess: process.env.INFRA_NOTIFY !== 'false',
54
- },
55
- };
56
- }
57
- function loadState() {
58
- ensureCacheDir();
59
- try {
60
- if (fs.existsSync(INFRA_STATE_FILE)) {
61
- return JSON.parse(fs.readFileSync(INFRA_STATE_FILE, 'utf8'));
62
- }
63
- }
64
- catch { }
65
- return { connectedProviders: {}, lastDiscovery: '', deployHistory: [] };
66
- }
67
- function saveState(state) {
68
- ensureCacheDir();
69
- fs.writeFileSync(INFRA_STATE_FILE, JSON.stringify(state, null, 2), 'utf8');
70
- }
71
- export function markProviderConnected(name, config) {
72
- const state = loadState();
73
- state.connectedProviders[name] = { connectedAt: new Date().toISOString(), config };
74
- saveState(state);
75
- }
76
- export function getConnectedProviders() {
77
- const state = loadState();
78
- const result = {};
79
- for (const [k, v] of Object.entries(state.connectedProviders)) {
80
- result[k] = { connectedAt: v.connectedAt };
81
- }
82
- return result;
83
- }
84
- export function recordDeploy(provider, project, success, summary) {
85
- const state = loadState();
86
- state.deployHistory.push({
87
- provider,
88
- project,
89
- timestamp: new Date().toISOString(),
90
- success,
91
- summary,
92
- });
93
- if (state.deployHistory.length > 100)
94
- state.deployHistory = state.deployHistory.slice(-100);
95
- saveState(state);
96
- }
97
- export function getDeployHistory(limit = 10) {
98
- const state = loadState();
99
- return state.deployHistory.slice(-limit);
100
- }
101
- //# 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,138 +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
- const AUTH_RE = /unauthori[sz]ed|forbidden|\b401\b|\b403\b|login failed|invalid.*token|bad credentials|certificate|self[- ]signed|tls|ssl/i;
11
- const UNREACHABLE_RE = /ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|EPIPE|ENETUNREACH|connect .*refused|getaddrinfo|no such host/i;
12
- const TIMEOUT_RE = /ETIMEDOUT|timed out|timeout|ESOCKETTIMEDOUT/i;
13
- // The token travels on the command line today (see OKDProvider.connect); if a failure
14
- // message ever echoes argv, the secret must not ride along into logs and transcripts.
15
- const SECRET_RE = /--token=\S+|token[=:]\s*\S+/gi;
16
- function scrubSecrets(text) {
17
- return String(text ?? '').replace(SECRET_RE, '--token=[redacted]');
18
- }
19
- function firstLine(text, max = 200) {
20
- const line = scrubSecrets(text).split('\n').map((l) => l.trim()).filter(Boolean)[0] ?? '';
21
- return line.length > max ? line.slice(0, max) + '…' : line;
22
- }
23
- /**
24
- * Classify a child_process exec failure (execSync/execFileSync error shape).
25
- * Precedence matters: a missing binary also matches nothing else, but a timeout that
26
- * mentions a host must read as timeout, not unreachable — check in this order.
27
- */
28
- export function classifyExecError(bin, err) {
29
- const code = typeof err?.code === 'string' ? err.code : '';
30
- const signal = typeof err?.signal === 'string' ? err.signal : '';
31
- const raw = [err?.stderr, err?.message].filter(Boolean).join('\n');
32
- if (code === 'ENOENT' || /command not found|spawn .* ENOENT/i.test(raw)) {
33
- return {
34
- cause: 'tool-missing',
35
- label: `${bin} binary not found`,
36
- nextStep: `install ${bin} and ensure it is on PATH`,
37
- };
38
- }
39
- if (code === 'ETIMEDOUT' || signal === 'SIGTERM' && /timed out/i.test(raw) || TIMEOUT_RE.test(code)) {
40
- return {
41
- cause: 'timeout',
42
- label: `${bin} timed out`,
43
- nextStep: 'check cluster responsiveness and raise the timeout for slow clusters',
44
- };
45
- }
46
- if (TIMEOUT_RE.test(raw)) {
47
- return {
48
- cause: 'timeout',
49
- label: `${bin} timed out`,
50
- nextStep: 'check cluster responsiveness and raise the timeout for slow clusters',
51
- };
52
- }
53
- if (AUTH_RE.test(raw)) {
54
- return {
55
- cause: 'auth',
56
- label: `${bin} rejected credentials`,
57
- nextStep: 're-login / rotate the token and verify the active context',
58
- };
59
- }
60
- if (UNREACHABLE_RE.test(raw) || UNREACHABLE_RE.test(code)) {
61
- return {
62
- cause: 'unreachable',
63
- label: `${bin} cannot reach the server`,
64
- nextStep: 'verify the server URL, VPN/proxy, and that the API endpoint is up',
65
- };
66
- }
67
- void bin;
68
- return {
69
- cause: 'remote',
70
- label: `${bin} reported a server-side error`,
71
- nextStep: 'inspect the detail below; the far end answered with an error',
72
- };
73
- }
74
- /**
75
- * Classify an axios-style HTTP failure (err.response?.status / err.code / message).
76
- */
77
- export function classifyHttpError(bin, err) {
78
- const status = Number(err?.response?.status);
79
- const code = typeof err?.code === 'string' ? err.code : '';
80
- const raw = [err?.response?.data && typeof err.response.data === 'string' ? err.response.data : '', err?.message]
81
- .filter(Boolean)
82
- .join('\n');
83
- if (status === 401 || status === 403 || (!status && AUTH_RE.test(raw))) {
84
- return {
85
- cause: 'auth',
86
- label: `${bin} rejected credentials (HTTP ${status || 'auth failure'})`,
87
- nextStep: 'verify the username/API token and that it has not expired',
88
- };
89
- }
90
- if (status === 404) {
91
- return {
92
- cause: 'config',
93
- label: `${bin} resource not found (HTTP 404)`,
94
- nextStep: 'verify the URL, folder and job/resource names in the provider config',
95
- };
96
- }
97
- if (code === 'ECONNABORTED' || TIMEOUT_RE.test(raw) || TIMEOUT_RE.test(code)) {
98
- return {
99
- cause: 'timeout',
100
- label: `${bin} request timed out`,
101
- nextStep: 'check server responsiveness; the call exceeded the client timeout',
102
- };
103
- }
104
- if (!status && (UNREACHABLE_RE.test(raw) || UNREACHABLE_RE.test(code))) {
105
- return {
106
- cause: 'unreachable',
107
- label: `${bin} server unreachable`,
108
- nextStep: 'verify the server URL and network path (VPN/proxy/DNS)',
109
- };
110
- }
111
- if (!err?.response) {
112
- return {
113
- cause: 'unreachable',
114
- label: `${bin} request never reached the server`,
115
- nextStep: 'verify the server URL and network path (VPN/proxy/DNS)',
116
- };
117
- }
118
- return {
119
- cause: 'remote',
120
- label: `${bin} server error (HTTP ${status})`,
121
- nextStep: 'the server answered with an error; check its logs',
122
- };
123
- }
124
- /**
125
- * Build the error every infra provider throws: `[<bin>:<cause>] <detail>. Next: <step>`.
126
- * The bracket prefix is deliberately first — onToolCall truncates errors to 100 chars,
127
- * so the cause must survive truncation for the cause histogram to work.
128
- */
129
- export function infraError(bin, err, opts) {
130
- const classified = opts?.http ? classifyHttpError(bin, err) : classifyExecError(bin, err);
131
- const rawDetail = (!opts?.http && typeof err?.stderr === 'string' && err.stderr.trim()
132
- ? err.stderr
133
- : err?.message) || 'unknown error';
134
- const detail = firstLine(rawDetail);
135
- const message = `[${bin}:${classified.cause}] ${classified.label}${detail ? `: ${detail}` : ''}. Next: ${classified.nextStep}.`;
136
- return new Error(message);
137
- }
138
- //# 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.js';
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,2 +0,0 @@
1
- export {};
2
- //# 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.js';
2
- import type { HealthStatus, PipelineConfig, DeployResult, JenkinsConfig } from '../types.js';
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"}
@@ -1,186 +0,0 @@
1
- import axios from 'axios';
2
- import { infraError } from '../errorCause.js';
3
- export class JenkinsProvider {
4
- constructor() {
5
- this.name = 'jenkins';
6
- this.type = 'jenkins';
7
- this.client = null;
8
- this.config = null;
9
- }
10
- async connect(config) {
11
- this.config = config;
12
- if (!config.url)
13
- throw new Error('Jenkins URL is required');
14
- const baseURL = config.url.replace(/\/$/, '');
15
- const headers = { 'Content-Type': 'application/json' };
16
- if (config.username && config.apiToken) {
17
- const auth = Buffer.from(`${config.username}:${config.apiToken}`).toString('base64');
18
- headers['Authorization'] = `Basic ${auth}`;
19
- }
20
- this.client = axios.create({ baseURL, headers, timeout: 15000 });
21
- // AN-17: one choke point for every request this provider makes — raw axios errors
22
- // (ECONNREFUSED blobs, HTML login pages as "data") become [jenkins:<cause>] with a
23
- // next step, instead of one opaque bucket next to oc/terraform failures.
24
- this.client.interceptors.response.use(undefined, (err) => Promise.reject(infraError('jenkins', err, { http: true })));
25
- try {
26
- await this.healthCheck();
27
- return true;
28
- }
29
- catch {
30
- return false;
31
- }
32
- }
33
- async healthCheck() {
34
- const start = Date.now();
35
- try {
36
- if (!this.client)
37
- throw new Error('Not connected');
38
- const resp = await this.client.get('/api/json?tree=nodeName');
39
- return {
40
- status: 'healthy',
41
- latency: Date.now() - start,
42
- details: { nodeName: resp.data?.nodeName || 'unknown' },
43
- lastChecked: new Date().toISOString(),
44
- };
45
- }
46
- catch (err) {
47
- return {
48
- status: 'down',
49
- latency: Date.now() - start,
50
- details: { error: err.message },
51
- lastChecked: new Date().toISOString(),
52
- };
53
- }
54
- }
55
- async getStatus() {
56
- if (!this.client)
57
- throw new Error('Not connected');
58
- const folder = this.config?.folder;
59
- const treeParam = folder
60
- ? `job/${folder}/jobs[name,building,color,lastBuild[number,result,timestamp]]`
61
- : 'jobs[name,building,color,lastBuild[number,result,timestamp]]';
62
- const resp = await this.client.get(`/api/json?tree=${treeParam}`);
63
- return resp.data;
64
- }
65
- async generatePipeline(cfg) {
66
- return `pipeline {
67
- agent any
68
-
69
- environment {
70
- DOCKER_IMAGE = '${cfg.dockerImage || cfg.name}'
71
- REGISTRY = '${cfg.registry || 'docker.io'}'
72
- NAMESPACE = '${cfg.namespace || 'default'}'
73
- }
74
-
75
- stages {
76
- stage('Checkout') {
77
- steps {
78
- checkout scm
79
- }
80
- }
81
-
82
- stage('Build') {
83
- steps {
84
- script {
85
- sh "docker build -t \${REGISTRY}/\${DOCKER_IMAGE}:\${BUILD_NUMBER} ."
86
- }
87
- }
88
- }
89
-
90
- stage('Test') {
91
- steps {
92
- sh 'echo "Running tests..."'
93
- }
94
- }
95
-
96
- stage('Push') {
97
- steps {
98
- script {
99
- withCredentials([usernamePassword(credentialsId: '${cfg.registry ? 'registry-creds' : 'dockerhub'}', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
100
- sh "echo $PASS | docker login \${REGISTRY} -u $USER --password-stdin"
101
- sh "docker push \${REGISTRY}/\${DOCKER_IMAGE}:\${BUILD_NUMBER}"
102
- }
103
- }
104
- }
105
- }
106
-
107
- stage('Deploy to OKD') {
108
- steps {
109
- sh "oc tag \${DOCKER_IMAGE}:\${BUILD_NUMBER} \${NAMESPACE}/\${DOCKER_IMAGE}:latest"
110
- sh "oc rollout latest dc/\${DOCKER_IMAGE} -n \${NAMESPACE}"
111
- }
112
- }
113
- }
114
-
115
- post {
116
- success {
117
- echo 'Pipeline succeeded!'
118
- }
119
- failure {
120
- echo 'Pipeline failed!'
121
- }
122
- }
123
- }`;
124
- }
125
- async triggerBuild(jobName, params) {
126
- if (!this.client)
127
- throw new Error('Not connected');
128
- const folder = this.config?.folder;
129
- const jobPath = folder ? `/job/${folder}/job/${jobName}` : `/job/${jobName}`;
130
- try {
131
- if (params && Object.keys(params).length > 0) {
132
- await this.client.post(`${jobPath}/buildWithParameters`, null, { params });
133
- }
134
- else {
135
- await this.client.post(`${jobPath}/build`);
136
- }
137
- return {
138
- provider: 'jenkins',
139
- success: true,
140
- artifacts: [],
141
- logs: [`Build triggered for ${jobName}`],
142
- nextSteps: ['Monitor build progress in Jenkins UI'],
143
- tokenEstimate: 50,
144
- };
145
- }
146
- catch (err) {
147
- return {
148
- provider: 'jenkins',
149
- success: false,
150
- artifacts: [],
151
- logs: [`Failed to trigger build: ${err.message}`],
152
- nextSteps: ['Check Jenkins credentials and job name'],
153
- tokenEstimate: 50,
154
- };
155
- }
156
- }
157
- async getBuildStatus(jobName, buildNumber) {
158
- if (!this.client)
159
- throw new Error('Not connected');
160
- const folder = this.config?.folder;
161
- const jobPath = folder ? `/job/${folder}/job/${jobName}` : `/job/${jobName}`;
162
- const buildPath = buildNumber ? `${jobPath}/${buildNumber}` : `${jobPath}/lastBuild`;
163
- const resp = await this.client.get(`${buildPath}/api/json`);
164
- return {
165
- number: resp.data.number,
166
- result: resp.data.result,
167
- building: resp.data.building,
168
- timestamp: resp.data.timestamp,
169
- duration: resp.data.duration,
170
- url: resp.data.url,
171
- };
172
- }
173
- async getBuildLogs(jobName, buildNumber) {
174
- if (!this.client)
175
- throw new Error('Not connected');
176
- const folder = this.config?.folder;
177
- const jobPath = folder ? `/job/${folder}/job/${jobName}` : `/job/${jobName}`;
178
- const resp = await this.client.get(`${jobPath}/${buildNumber}/consoleText`, {
179
- transformResponse: [(data) => data],
180
- });
181
- const text = typeof resp.data === 'string' ? resp.data : String(resp.data);
182
- const lines = text.split('\n');
183
- return lines.slice(-80).join('\n');
184
- }
185
- }
186
- //# sourceMappingURL=JenkinsProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JenkinsProvider.js","sourceRoot":"","sources":["../../../../src/infra/providers/JenkinsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,eAAe;IAA5B;QACW,SAAI,GAAG,SAAS,CAAC;QACjB,SAAI,GAAG,SAAkB,CAAC;QAC3B,WAAM,GAAyB,IAAI,CAAC;QACpC,WAAM,GAAyB,IAAI,CAAC;IAmL9C,CAAC;IAjLC,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAE/E,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrF,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,kFAAkF;QAClF,mFAAmF;QACnF,yEAAyE;QACzE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3H,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC9D,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC3B,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,SAAS,EAAE;gBACvD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC3B,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE;gBAC/B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM;YACtB,CAAC,CAAC,OAAO,MAAM,+DAA+D;YAC9E,CAAC,CAAC,8DAA8D,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAmB;QACxC,OAAO;;;;sBAIW,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI;kBAC/B,GAAG,CAAC,QAAQ,IAAI,WAAW;mBAC1B,GAAG,CAAC,SAAS,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;8DA2BiB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;EAwBzG,CAAC;IACD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,MAA+B;QACjE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC;QAE7E,IAAI,CAAC;YACH,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,sBAAsB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,CAAC,uBAAuB,OAAO,EAAE,CAAC;gBACxC,SAAS,EAAE,CAAC,sCAAsC,CAAC;gBACnD,aAAa,EAAE,EAAE;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjD,SAAS,EAAE,CAAC,wCAAwC,CAAC;gBACrD,aAAa,EAAE,EAAE;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,WAAoB;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,YAAY,CAAC;QACrF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,WAAW,CAAC,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,WAAmB;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,WAAW,cAAc,EAAE;YAC1E,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -1,24 +0,0 @@
1
- import type { InfraProvider } from './InfraProvider.js';
2
- import type { HealthStatus, OKDManifests, DeployResult, OKDConfig } from '../types.js';
3
- export declare class OKDProvider implements InfraProvider {
4
- readonly name = "okd";
5
- readonly type: "okd";
6
- private config;
7
- connect(config: OKDConfig): Promise<boolean>;
8
- healthCheck(): Promise<HealthStatus>;
9
- getStatus(): Promise<Record<string, any>>;
10
- generateManifests(cfg: {
11
- name: string;
12
- image?: string;
13
- port?: number;
14
- replicas?: number;
15
- envVars?: Record<string, string>;
16
- }): OKDManifests;
17
- apply(manifests: OKDManifests, dryRun?: boolean): Promise<DeployResult>;
18
- getPods(): Promise<any[]>;
19
- getLogs(podName: string, lines?: number): Promise<string>;
20
- getEvents(): Promise<string>;
21
- describe(resource: string, name: string): Promise<string>;
22
- getRouteURL(routeName: string): Promise<string>;
23
- }
24
- //# sourceMappingURL=OKDProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OKDProvider.d.ts","sourceRoot":"","sources":["../../../../src/infra/providers/OKDProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAkBpF,qBAAa,WAAY,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,OAAO,CAAC,MAAM,CAA0B;IAElC,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB5C,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAuBpC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAiB/C,iBAAiB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,YAAY;IAkJpI,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;IAyCrE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAazB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAItD"}