@jterrats/smart-deployment 1.0.3

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 (395) hide show
  1. package/README.md +193 -0
  2. package/lib/ai/agentforce-error-handler.d.ts +81 -0
  3. package/lib/ai/agentforce-error-handler.js +196 -0
  4. package/lib/ai/agentforce-error-handler.js.map +1 -0
  5. package/lib/ai/agentforce-priority-service.d.ts +82 -0
  6. package/lib/ai/agentforce-priority-service.js +257 -0
  7. package/lib/ai/agentforce-priority-service.js.map +1 -0
  8. package/lib/ai/agentforce-service.d.ts +99 -0
  9. package/lib/ai/agentforce-service.js +300 -0
  10. package/lib/ai/agentforce-service.js.map +1 -0
  11. package/lib/ai/circuit-breaker.d.ts +115 -0
  12. package/lib/ai/circuit-breaker.js +277 -0
  13. package/lib/ai/circuit-breaker.js.map +1 -0
  14. package/lib/ai/dependency-inference-service.d.ts +76 -0
  15. package/lib/ai/dependency-inference-service.js +220 -0
  16. package/lib/ai/dependency-inference-service.js.map +1 -0
  17. package/lib/ai/llm-provider-factory.d.ts +15 -0
  18. package/lib/ai/llm-provider-factory.js +36 -0
  19. package/lib/ai/llm-provider-factory.js.map +1 -0
  20. package/lib/ai/llm-provider.d.ts +27 -0
  21. package/lib/ai/llm-provider.js +2 -0
  22. package/lib/ai/llm-provider.js.map +1 -0
  23. package/lib/ai/openai-service.d.ts +20 -0
  24. package/lib/ai/openai-service.js +89 -0
  25. package/lib/ai/openai-service.js.map +1 -0
  26. package/lib/ai/prompt-builder.d.ts +79 -0
  27. package/lib/ai/prompt-builder.js +180 -0
  28. package/lib/ai/prompt-builder.js.map +1 -0
  29. package/lib/ai/response-parser.d.ts +67 -0
  30. package/lib/ai/response-parser.js +234 -0
  31. package/lib/ai/response-parser.js.map +1 -0
  32. package/lib/ai/wave-validation-service.d.ts +111 -0
  33. package/lib/ai/wave-validation-service.js +381 -0
  34. package/lib/ai/wave-validation-service.js.map +1 -0
  35. package/lib/analysis/analysis-reporter.d.ts +56 -0
  36. package/lib/analysis/analysis-reporter.js +170 -0
  37. package/lib/analysis/analysis-reporter.js.map +1 -0
  38. package/lib/analytics/error-analytics.d.ts +80 -0
  39. package/lib/analytics/error-analytics.js +162 -0
  40. package/lib/analytics/error-analytics.js.map +1 -0
  41. package/lib/commands/analyze.d.ts +49 -0
  42. package/lib/commands/analyze.js +232 -0
  43. package/lib/commands/analyze.js.map +1 -0
  44. package/lib/commands/config.d.ts +42 -0
  45. package/lib/commands/config.js +219 -0
  46. package/lib/commands/config.js.map +1 -0
  47. package/lib/commands/resume.d.ts +26 -0
  48. package/lib/commands/resume.js +69 -0
  49. package/lib/commands/resume.js.map +1 -0
  50. package/lib/commands/start.d.ts +70 -0
  51. package/lib/commands/start.js +659 -0
  52. package/lib/commands/start.js.map +1 -0
  53. package/lib/commands/status.d.ts +37 -0
  54. package/lib/commands/status.js +69 -0
  55. package/lib/commands/status.js.map +1 -0
  56. package/lib/commands/validate.d.ts +33 -0
  57. package/lib/commands/validate.js +66 -0
  58. package/lib/commands/validate.js.map +1 -0
  59. package/lib/config/repo-config.d.ts +22 -0
  60. package/lib/config/repo-config.js +31 -0
  61. package/lib/config/repo-config.js.map +1 -0
  62. package/lib/constants/agentforce-limits.d.ts +174 -0
  63. package/lib/constants/agentforce-limits.js +262 -0
  64. package/lib/constants/agentforce-limits.js.map +1 -0
  65. package/lib/constants/api-version.d.ts +70 -0
  66. package/lib/constants/api-version.js +122 -0
  67. package/lib/constants/api-version.js.map +1 -0
  68. package/lib/constants/deployment-order.d.ts +68 -0
  69. package/lib/constants/deployment-order.js +162 -0
  70. package/lib/constants/deployment-order.js.map +1 -0
  71. package/lib/constants/salesforce-limits.d.ts +107 -0
  72. package/lib/constants/salesforce-limits.js +104 -0
  73. package/lib/constants/salesforce-limits.js.map +1 -0
  74. package/lib/dependencies/circular-dependency-detector.d.ts +137 -0
  75. package/lib/dependencies/circular-dependency-detector.js +329 -0
  76. package/lib/dependencies/circular-dependency-detector.js.map +1 -0
  77. package/lib/dependencies/cycle-remediation-planner.d.ts +50 -0
  78. package/lib/dependencies/cycle-remediation-planner.js +192 -0
  79. package/lib/dependencies/cycle-remediation-planner.js.map +1 -0
  80. package/lib/dependencies/dependency-cache.d.ts +134 -0
  81. package/lib/dependencies/dependency-cache.js +303 -0
  82. package/lib/dependencies/dependency-cache.js.map +1 -0
  83. package/lib/dependencies/dependency-depth-calculator.d.ts +145 -0
  84. package/lib/dependencies/dependency-depth-calculator.js +368 -0
  85. package/lib/dependencies/dependency-depth-calculator.js.map +1 -0
  86. package/lib/dependencies/dependency-graph-builder.d.ts +151 -0
  87. package/lib/dependencies/dependency-graph-builder.js +411 -0
  88. package/lib/dependencies/dependency-graph-builder.js.map +1 -0
  89. package/lib/dependencies/dependency-impact-analyzer.d.ts +145 -0
  90. package/lib/dependencies/dependency-impact-analyzer.js +330 -0
  91. package/lib/dependencies/dependency-impact-analyzer.js.map +1 -0
  92. package/lib/dependencies/dependency-merger.d.ts +122 -0
  93. package/lib/dependencies/dependency-merger.js +245 -0
  94. package/lib/dependencies/dependency-merger.js.map +1 -0
  95. package/lib/dependencies/dependency-resolver.d.ts +157 -0
  96. package/lib/dependencies/dependency-resolver.js +298 -0
  97. package/lib/dependencies/dependency-resolver.js.map +1 -0
  98. package/lib/dependencies/dependency-validator.d.ts +123 -0
  99. package/lib/dependencies/dependency-validator.js +291 -0
  100. package/lib/dependencies/dependency-validator.js.map +1 -0
  101. package/lib/dependencies/graph-visualizer.d.ts +110 -0
  102. package/lib/dependencies/graph-visualizer.js +262 -0
  103. package/lib/dependencies/graph-visualizer.js.map +1 -0
  104. package/lib/dependencies/heuristic-inference.d.ts +136 -0
  105. package/lib/dependencies/heuristic-inference.js +430 -0
  106. package/lib/dependencies/heuristic-inference.js.map +1 -0
  107. package/lib/deployment/cycle-source-editor.d.ts +34 -0
  108. package/lib/deployment/cycle-source-editor.js +121 -0
  109. package/lib/deployment/cycle-source-editor.js.map +1 -0
  110. package/lib/deployment/deployment-error-handler.d.ts +38 -0
  111. package/lib/deployment/deployment-error-handler.js +79 -0
  112. package/lib/deployment/deployment-error-handler.js.map +1 -0
  113. package/lib/deployment/deployment-reporter.d.ts +63 -0
  114. package/lib/deployment/deployment-reporter.js +150 -0
  115. package/lib/deployment/deployment-reporter.js.map +1 -0
  116. package/lib/deployment/deployment-state-summary.d.ts +38 -0
  117. package/lib/deployment/deployment-state-summary.js +209 -0
  118. package/lib/deployment/deployment-state-summary.js.map +1 -0
  119. package/lib/deployment/deployment-status-service.d.ts +36 -0
  120. package/lib/deployment/deployment-status-service.js +128 -0
  121. package/lib/deployment/deployment-status-service.js.map +1 -0
  122. package/lib/deployment/deployment-tracker.d.ts +42 -0
  123. package/lib/deployment/deployment-tracker.js +79 -0
  124. package/lib/deployment/deployment-tracker.js.map +1 -0
  125. package/lib/deployment/deployment-validation-service.d.ts +28 -0
  126. package/lib/deployment/deployment-validation-service.js +161 -0
  127. package/lib/deployment/deployment-validation-service.js.map +1 -0
  128. package/lib/deployment/retry-handler.d.ts +37 -0
  129. package/lib/deployment/retry-handler.js +86 -0
  130. package/lib/deployment/retry-handler.js.map +1 -0
  131. package/lib/deployment/sf-cli-integration.d.ts +42 -0
  132. package/lib/deployment/sf-cli-integration.js +105 -0
  133. package/lib/deployment/sf-cli-integration.js.map +1 -0
  134. package/lib/deployment/state-manager.d.ts +61 -0
  135. package/lib/deployment/state-manager.js +83 -0
  136. package/lib/deployment/state-manager.js.map +1 -0
  137. package/lib/deployment/test-executor.d.ts +41 -0
  138. package/lib/deployment/test-executor.js +87 -0
  139. package/lib/deployment/test-executor.js.map +1 -0
  140. package/lib/errors/base-error.d.ts +24 -0
  141. package/lib/errors/base-error.js +66 -0
  142. package/lib/errors/base-error.js.map +1 -0
  143. package/lib/errors/dependency-error.d.ts +37 -0
  144. package/lib/errors/dependency-error.js +76 -0
  145. package/lib/errors/dependency-error.js.map +1 -0
  146. package/lib/errors/deployment-error.d.ts +55 -0
  147. package/lib/errors/deployment-error.js +132 -0
  148. package/lib/errors/deployment-error.js.map +1 -0
  149. package/lib/errors/index.d.ts +45 -0
  150. package/lib/errors/index.js +71 -0
  151. package/lib/errors/index.js.map +1 -0
  152. package/lib/errors/network-error.d.ts +53 -0
  153. package/lib/errors/network-error.js +111 -0
  154. package/lib/errors/network-error.js.map +1 -0
  155. package/lib/errors/parsing-error.d.ts +41 -0
  156. package/lib/errors/parsing-error.js +69 -0
  157. package/lib/errors/parsing-error.js.map +1 -0
  158. package/lib/errors/validation-error-reporter.d.ts +34 -0
  159. package/lib/errors/validation-error-reporter.js +99 -0
  160. package/lib/errors/validation-error-reporter.js.map +1 -0
  161. package/lib/errors/validation-error.d.ts +58 -0
  162. package/lib/errors/validation-error.js +131 -0
  163. package/lib/errors/validation-error.js.map +1 -0
  164. package/lib/index.d.ts +2 -0
  165. package/lib/index.js +2 -0
  166. package/lib/index.js.map +1 -0
  167. package/lib/monitoring/performance-monitor.d.ts +98 -0
  168. package/lib/monitoring/performance-monitor.js +260 -0
  169. package/lib/monitoring/performance-monitor.js.map +1 -0
  170. package/lib/parsers/apex-class-parser.d.ts +47 -0
  171. package/lib/parsers/apex-class-parser.js +368 -0
  172. package/lib/parsers/apex-class-parser.js.map +1 -0
  173. package/lib/parsers/apex-trigger-parser.d.ts +48 -0
  174. package/lib/parsers/apex-trigger-parser.js +229 -0
  175. package/lib/parsers/apex-trigger-parser.js.map +1 -0
  176. package/lib/parsers/aura-parser.d.ts +55 -0
  177. package/lib/parsers/aura-parser.js +229 -0
  178. package/lib/parsers/aura-parser.js.map +1 -0
  179. package/lib/parsers/bot-parser.d.ts +65 -0
  180. package/lib/parsers/bot-parser.js +225 -0
  181. package/lib/parsers/bot-parser.js.map +1 -0
  182. package/lib/parsers/custom-metadata-parser.d.ts +94 -0
  183. package/lib/parsers/custom-metadata-parser.js +199 -0
  184. package/lib/parsers/custom-metadata-parser.js.map +1 -0
  185. package/lib/parsers/custom-object-parser.d.ts +62 -0
  186. package/lib/parsers/custom-object-parser.js +297 -0
  187. package/lib/parsers/custom-object-parser.js.map +1 -0
  188. package/lib/parsers/email-template-parser.d.ts +64 -0
  189. package/lib/parsers/email-template-parser.js +238 -0
  190. package/lib/parsers/email-template-parser.js.map +1 -0
  191. package/lib/parsers/error-resilient-parser.d.ts +110 -0
  192. package/lib/parsers/error-resilient-parser.js +277 -0
  193. package/lib/parsers/error-resilient-parser.js.map +1 -0
  194. package/lib/parsers/flexipage-parser.d.ts +64 -0
  195. package/lib/parsers/flexipage-parser.js +196 -0
  196. package/lib/parsers/flexipage-parser.js.map +1 -0
  197. package/lib/parsers/flow-parser.d.ts +54 -0
  198. package/lib/parsers/flow-parser.js +287 -0
  199. package/lib/parsers/flow-parser.js.map +1 -0
  200. package/lib/parsers/genai-prompt-parser.d.ts +67 -0
  201. package/lib/parsers/genai-prompt-parser.js +160 -0
  202. package/lib/parsers/genai-prompt-parser.js.map +1 -0
  203. package/lib/parsers/layout-parser.d.ts +64 -0
  204. package/lib/parsers/layout-parser.js +267 -0
  205. package/lib/parsers/layout-parser.js.map +1 -0
  206. package/lib/parsers/lwc-parser.d.ts +60 -0
  207. package/lib/parsers/lwc-parser.js +264 -0
  208. package/lib/parsers/lwc-parser.js.map +1 -0
  209. package/lib/parsers/permission-set-parser.d.ts +86 -0
  210. package/lib/parsers/permission-set-parser.js +152 -0
  211. package/lib/parsers/permission-set-parser.js.map +1 -0
  212. package/lib/parsers/profile-parser.d.ts +81 -0
  213. package/lib/parsers/profile-parser.js +141 -0
  214. package/lib/parsers/profile-parser.js.map +1 -0
  215. package/lib/parsers/visualforce-parser.d.ts +47 -0
  216. package/lib/parsers/visualforce-parser.js +180 -0
  217. package/lib/parsers/visualforce-parser.js.map +1 -0
  218. package/lib/provisioning/data-provisioner.d.ts +88 -0
  219. package/lib/provisioning/data-provisioner.js +257 -0
  220. package/lib/provisioning/data-provisioner.js.map +1 -0
  221. package/lib/scanner/custom-structure-scanner.d.ts +66 -0
  222. package/lib/scanner/custom-structure-scanner.js +229 -0
  223. package/lib/scanner/custom-structure-scanner.js.map +1 -0
  224. package/lib/scanner/forceignore-parser.d.ts +69 -0
  225. package/lib/scanner/forceignore-parser.js +195 -0
  226. package/lib/scanner/forceignore-parser.js.map +1 -0
  227. package/lib/scanner/metadata-format-scanner.d.ts +77 -0
  228. package/lib/scanner/metadata-format-scanner.js +282 -0
  229. package/lib/scanner/metadata-format-scanner.js.map +1 -0
  230. package/lib/scanner/monorepo-scanner.d.ts +71 -0
  231. package/lib/scanner/monorepo-scanner.js +225 -0
  232. package/lib/scanner/monorepo-scanner.js.map +1 -0
  233. package/lib/scanner/project-validator.d.ts +55 -0
  234. package/lib/scanner/project-validator.js +235 -0
  235. package/lib/scanner/project-validator.js.map +1 -0
  236. package/lib/scanner/sfdx-project-detector.d.ts +86 -0
  237. package/lib/scanner/sfdx-project-detector.js +240 -0
  238. package/lib/scanner/sfdx-project-detector.js.map +1 -0
  239. package/lib/scanner/structure-validator.d.ts +64 -0
  240. package/lib/scanner/structure-validator.js +296 -0
  241. package/lib/scanner/structure-validator.js.map +1 -0
  242. package/lib/services/metadata-scanner-service.d.ts +64 -0
  243. package/lib/services/metadata-scanner-service.js +651 -0
  244. package/lib/services/metadata-scanner-service.js.map +1 -0
  245. package/lib/types/agentforce.d.ts +157 -0
  246. package/lib/types/agentforce.js +2 -0
  247. package/lib/types/agentforce.js.map +1 -0
  248. package/lib/types/dependency.d.ts +98 -0
  249. package/lib/types/dependency.js +5 -0
  250. package/lib/types/dependency.js.map +1 -0
  251. package/lib/types/deployment-plan.d.ts +81 -0
  252. package/lib/types/deployment-plan.js +6 -0
  253. package/lib/types/deployment-plan.js.map +1 -0
  254. package/lib/types/deployment.d.ts +88 -0
  255. package/lib/types/deployment.js +5 -0
  256. package/lib/types/deployment.js.map +1 -0
  257. package/lib/types/graph.d.ts +35 -0
  258. package/lib/types/graph.js +5 -0
  259. package/lib/types/graph.js.map +1 -0
  260. package/lib/types/index.d.ts +12 -0
  261. package/lib/types/index.js +17 -0
  262. package/lib/types/index.js.map +1 -0
  263. package/lib/types/metadata.d.ts +101 -0
  264. package/lib/types/metadata.js +13 -0
  265. package/lib/types/metadata.js.map +1 -0
  266. package/lib/types/project.d.ts +156 -0
  267. package/lib/types/project.js +56 -0
  268. package/lib/types/project.js.map +1 -0
  269. package/lib/types/salesforce/apex.d.ts +94 -0
  270. package/lib/types/salesforce/apex.js +6 -0
  271. package/lib/types/salesforce/apex.js.map +1 -0
  272. package/lib/types/salesforce/aura.d.ts +150 -0
  273. package/lib/types/salesforce/aura.js +6 -0
  274. package/lib/types/salesforce/aura.js.map +1 -0
  275. package/lib/types/salesforce/bot.d.ts +293 -0
  276. package/lib/types/salesforce/bot.js +6 -0
  277. package/lib/types/salesforce/bot.js.map +1 -0
  278. package/lib/types/salesforce/common.d.ts +15 -0
  279. package/lib/types/salesforce/common.js +5 -0
  280. package/lib/types/salesforce/common.js.map +1 -0
  281. package/lib/types/salesforce/custom-metadata.d.ts +92 -0
  282. package/lib/types/salesforce/custom-metadata.js +6 -0
  283. package/lib/types/salesforce/custom-metadata.js.map +1 -0
  284. package/lib/types/salesforce/email.d.ts +56 -0
  285. package/lib/types/salesforce/email.js +6 -0
  286. package/lib/types/salesforce/email.js.map +1 -0
  287. package/lib/types/salesforce/flexipage.d.ts +149 -0
  288. package/lib/types/salesforce/flexipage.js +6 -0
  289. package/lib/types/salesforce/flexipage.js.map +1 -0
  290. package/lib/types/salesforce/flow.d.ts +516 -0
  291. package/lib/types/salesforce/flow.js +6 -0
  292. package/lib/types/salesforce/flow.js.map +1 -0
  293. package/lib/types/salesforce/genai.d.ts +67 -0
  294. package/lib/types/salesforce/genai.js +6 -0
  295. package/lib/types/salesforce/genai.js.map +1 -0
  296. package/lib/types/salesforce/index.d.ts +27 -0
  297. package/lib/types/salesforce/index.js +43 -0
  298. package/lib/types/salesforce/index.js.map +1 -0
  299. package/lib/types/salesforce/layout.d.ts +236 -0
  300. package/lib/types/salesforce/layout.js +6 -0
  301. package/lib/types/salesforce/layout.js.map +1 -0
  302. package/lib/types/salesforce/lwc.d.ts +123 -0
  303. package/lib/types/salesforce/lwc.js +6 -0
  304. package/lib/types/salesforce/lwc.js.map +1 -0
  305. package/lib/types/salesforce/object.d.ts +427 -0
  306. package/lib/types/salesforce/object.js +6 -0
  307. package/lib/types/salesforce/object.js.map +1 -0
  308. package/lib/types/salesforce/parser-types.d.ts +79 -0
  309. package/lib/types/salesforce/parser-types.js +80 -0
  310. package/lib/types/salesforce/parser-types.js.map +1 -0
  311. package/lib/types/salesforce/permission.d.ts +289 -0
  312. package/lib/types/salesforce/permission.js +6 -0
  313. package/lib/types/salesforce/permission.js.map +1 -0
  314. package/lib/types/salesforce/resource.d.ts +93 -0
  315. package/lib/types/salesforce/resource.js +6 -0
  316. package/lib/types/salesforce/resource.js.map +1 -0
  317. package/lib/types/salesforce/visualforce.d.ts +70 -0
  318. package/lib/types/salesforce/visualforce.js +6 -0
  319. package/lib/types/salesforce/visualforce.js.map +1 -0
  320. package/lib/utils/cache-manager.d.ts +158 -0
  321. package/lib/utils/cache-manager.js +429 -0
  322. package/lib/utils/cache-manager.js.map +1 -0
  323. package/lib/utils/deployment-plan-manager.d.ts +40 -0
  324. package/lib/utils/deployment-plan-manager.js +183 -0
  325. package/lib/utils/deployment-plan-manager.js.map +1 -0
  326. package/lib/utils/error-aggregator.d.ts +117 -0
  327. package/lib/utils/error-aggregator.js +268 -0
  328. package/lib/utils/error-aggregator.js.map +1 -0
  329. package/lib/utils/file-system.d.ts +62 -0
  330. package/lib/utils/file-system.js +167 -0
  331. package/lib/utils/file-system.js.map +1 -0
  332. package/lib/utils/functional.d.ts +52 -0
  333. package/lib/utils/functional.js +61 -0
  334. package/lib/utils/functional.js.map +1 -0
  335. package/lib/utils/graph-algorithms.d.ts +53 -0
  336. package/lib/utils/graph-algorithms.js +177 -0
  337. package/lib/utils/graph-algorithms.js.map +1 -0
  338. package/lib/utils/logger.d.ts +154 -0
  339. package/lib/utils/logger.js +327 -0
  340. package/lib/utils/logger.js.map +1 -0
  341. package/lib/utils/network-handler.d.ts +64 -0
  342. package/lib/utils/network-handler.js +147 -0
  343. package/lib/utils/network-handler.js.map +1 -0
  344. package/lib/utils/performance.d.ts +148 -0
  345. package/lib/utils/performance.js +294 -0
  346. package/lib/utils/performance.js.map +1 -0
  347. package/lib/utils/string.d.ts +197 -0
  348. package/lib/utils/string.js +331 -0
  349. package/lib/utils/string.js.map +1 -0
  350. package/lib/utils/xml.d.ts +97 -0
  351. package/lib/utils/xml.js +227 -0
  352. package/lib/utils/xml.js.map +1 -0
  353. package/lib/validators/xml-metadata-validator.d.ts +106 -0
  354. package/lib/validators/xml-metadata-validator.js +509 -0
  355. package/lib/validators/xml-metadata-validator.js.map +1 -0
  356. package/lib/waves/priority-wave-generator-ai.d.ts +85 -0
  357. package/lib/waves/priority-wave-generator-ai.js +191 -0
  358. package/lib/waves/priority-wave-generator-ai.js.map +1 -0
  359. package/lib/waves/priority-wave-generator.d.ts +47 -0
  360. package/lib/waves/priority-wave-generator.js +88 -0
  361. package/lib/waves/priority-wave-generator.js.map +1 -0
  362. package/lib/waves/test-optimizer.d.ts +155 -0
  363. package/lib/waves/test-optimizer.js +290 -0
  364. package/lib/waves/test-optimizer.js.map +1 -0
  365. package/lib/waves/wave-builder.d.ts +147 -0
  366. package/lib/waves/wave-builder.js +286 -0
  367. package/lib/waves/wave-builder.js.map +1 -0
  368. package/lib/waves/wave-diff-generator.d.ts +17 -0
  369. package/lib/waves/wave-diff-generator.js +6 -0
  370. package/lib/waves/wave-diff-generator.js.map +1 -0
  371. package/lib/waves/wave-executor.d.ts +33 -0
  372. package/lib/waves/wave-executor.js +50 -0
  373. package/lib/waves/wave-executor.js.map +1 -0
  374. package/lib/waves/wave-merger.d.ts +96 -0
  375. package/lib/waves/wave-merger.js +181 -0
  376. package/lib/waves/wave-merger.js.map +1 -0
  377. package/lib/waves/wave-metadata-generator.d.ts +13 -0
  378. package/lib/waves/wave-metadata-generator.js +12 -0
  379. package/lib/waves/wave-metadata-generator.js.map +1 -0
  380. package/lib/waves/wave-splitter.d.ts +154 -0
  381. package/lib/waves/wave-splitter.js +307 -0
  382. package/lib/waves/wave-splitter.js.map +1 -0
  383. package/lib/waves/wave-validator.d.ts +17 -0
  384. package/lib/waves/wave-validator.js +15 -0
  385. package/lib/waves/wave-validator.js.map +1 -0
  386. package/messages/analyze.json +18 -0
  387. package/messages/config.json +29 -0
  388. package/messages/resume.json +9 -0
  389. package/messages/start.json +24 -0
  390. package/messages/status.json +8 -0
  391. package/messages/validate.json +9 -0
  392. package/npm-shrinkwrap.json +25676 -0
  393. package/oclif.lock +11988 -0
  394. package/oclif.manifest.json +589 -0
  395. package/package.json +224 -0
@@ -0,0 +1,115 @@
1
+ /**
2
+ * AI Circuit Breaker - US-060
3
+ * Circuit breaker pattern for AI calls to handle service failures
4
+ *
5
+ * @ac US-060-AC-1: Track failure rate
6
+ * @ac US-060-AC-2: Open circuit after N failures
7
+ * @ac US-060-AC-3: Automatic fallback to static analysis
8
+ * @ac US-060-AC-4: Reset after timeout
9
+ * @ac US-060-AC-5: Monitor circuit state
10
+ * @ac US-060-AC-6: Alert on circuit open
11
+ * @issue #60
12
+ */
13
+ export type CircuitState = 'closed' | 'open' | 'half-open';
14
+ export type CircuitBreakerOptions = {
15
+ failureThreshold: number;
16
+ successThreshold: number;
17
+ timeout: number;
18
+ monitoringWindow: number;
19
+ };
20
+ export type CircuitBreakerStats = {
21
+ state: CircuitState;
22
+ failures: number;
23
+ successes: number;
24
+ consecutiveFailures: number;
25
+ lastFailureTime?: Date;
26
+ lastSuccessTime?: Date;
27
+ tripCount: number;
28
+ };
29
+ /**
30
+ * @ac US-060-AC-1: Track failure rate
31
+ * @ac US-060-AC-2: Open circuit after N failures
32
+ * @ac US-060-AC-5: Monitor circuit state
33
+ */
34
+ export declare class CircuitBreaker {
35
+ private state;
36
+ private failures;
37
+ private successes;
38
+ private consecutiveFailures;
39
+ private lastFailureTime?;
40
+ private lastSuccessTime?;
41
+ private tripCount;
42
+ private readonly options;
43
+ constructor(options?: Partial<CircuitBreakerOptions>);
44
+ /**
45
+ * @ac US-060-AC-2: Open circuit after N failures
46
+ * @ac US-060-AC-3: Automatic fallback to static analysis
47
+ * Execute function with circuit breaker protection
48
+ */
49
+ execute<T>(fn: () => Promise<T>, fallback?: () => T | Promise<T>): Promise<T>;
50
+ /**
51
+ * @ac US-060-AC-1: Track failure rate
52
+ * Record successful execution
53
+ */
54
+ private onSuccess;
55
+ /**
56
+ * @ac US-060-AC-1: Track failure rate
57
+ * @ac US-060-AC-2: Open circuit after N failures
58
+ * Record failed execution
59
+ */
60
+ private onFailure;
61
+ /**
62
+ * @ac US-060-AC-2: Open circuit after N failures
63
+ * @ac US-060-AC-6: Alert on circuit open
64
+ * Open the circuit
65
+ */
66
+ private openCircuit;
67
+ /**
68
+ * Close the circuit
69
+ */
70
+ private closeCircuit;
71
+ /**
72
+ * @ac US-060-AC-4: Reset after timeout
73
+ * Check if circuit should transition to half-open
74
+ */
75
+ private checkStateTransition;
76
+ /**
77
+ * @ac US-060-AC-5: Monitor circuit state
78
+ * Get current statistics
79
+ */
80
+ getStats(): CircuitBreakerStats;
81
+ /**
82
+ * @ac US-060-AC-1: Track failure rate
83
+ * Get failure rate within monitoring window
84
+ */
85
+ getFailureRate(): number;
86
+ /**
87
+ * Get current state
88
+ */
89
+ getState(): CircuitState;
90
+ /**
91
+ * Check if circuit is allowing requests
92
+ */
93
+ isOpen(): boolean;
94
+ /**
95
+ * Manual reset (for testing or manual intervention)
96
+ */
97
+ reset(): void;
98
+ /**
99
+ * @ac US-060-AC-6: Alert on circuit open
100
+ * Send alert (integration point for monitoring)
101
+ */
102
+ private sendAlert;
103
+ /**
104
+ * Format monitoring report
105
+ */
106
+ formatReport(): string;
107
+ /**
108
+ * Get state icon
109
+ */
110
+ private getStateIcon;
111
+ /**
112
+ * Get time until half-open state
113
+ */
114
+ private getTimeUntilHalfOpen;
115
+ }
@@ -0,0 +1,277 @@
1
+ /**
2
+ * AI Circuit Breaker - US-060
3
+ * Circuit breaker pattern for AI calls to handle service failures
4
+ *
5
+ * @ac US-060-AC-1: Track failure rate
6
+ * @ac US-060-AC-2: Open circuit after N failures
7
+ * @ac US-060-AC-3: Automatic fallback to static analysis
8
+ * @ac US-060-AC-4: Reset after timeout
9
+ * @ac US-060-AC-5: Monitor circuit state
10
+ * @ac US-060-AC-6: Alert on circuit open
11
+ * @issue #60
12
+ */
13
+ import { getLogger } from '../utils/logger.js';
14
+ const logger = getLogger('CircuitBreaker');
15
+ /**
16
+ * @ac US-060-AC-1: Track failure rate
17
+ * @ac US-060-AC-2: Open circuit after N failures
18
+ * @ac US-060-AC-5: Monitor circuit state
19
+ */
20
+ export class CircuitBreaker {
21
+ state = 'closed';
22
+ failures = 0;
23
+ successes = 0;
24
+ consecutiveFailures = 0;
25
+ lastFailureTime;
26
+ lastSuccessTime;
27
+ tripCount = 0;
28
+ options;
29
+ constructor(options) {
30
+ this.options = {
31
+ failureThreshold: options?.failureThreshold ?? 5,
32
+ successThreshold: options?.successThreshold ?? 2,
33
+ timeout: options?.timeout ?? 60_000, // 1 minute
34
+ monitoringWindow: options?.monitoringWindow ?? 300_000, // 5 minutes
35
+ };
36
+ logger.info('Circuit breaker initialized', {
37
+ failureThreshold: this.options.failureThreshold,
38
+ timeout: this.options.timeout,
39
+ });
40
+ }
41
+ /**
42
+ * @ac US-060-AC-2: Open circuit after N failures
43
+ * @ac US-060-AC-3: Automatic fallback to static analysis
44
+ * Execute function with circuit breaker protection
45
+ */
46
+ async execute(fn, fallback) {
47
+ // Check if circuit should transition states
48
+ this.checkStateTransition();
49
+ if (this.state === 'open') {
50
+ logger.warn('Circuit breaker is OPEN, using fallback');
51
+ if (fallback) {
52
+ return Promise.resolve(fallback());
53
+ }
54
+ throw new Error('Circuit breaker is OPEN and no fallback provided');
55
+ }
56
+ try {
57
+ const result = await fn();
58
+ this.onSuccess();
59
+ return result;
60
+ }
61
+ catch (error) {
62
+ this.onFailure();
63
+ // If circuit just opened, use fallback
64
+ // Re-check state after onFailure() which may have changed it
65
+ if (this.getState() === 'open' && fallback) {
66
+ logger.info('Circuit opened, using fallback');
67
+ return Promise.resolve(fallback());
68
+ }
69
+ throw error;
70
+ }
71
+ }
72
+ /**
73
+ * @ac US-060-AC-1: Track failure rate
74
+ * Record successful execution
75
+ */
76
+ onSuccess() {
77
+ this.successes++;
78
+ this.consecutiveFailures = 0;
79
+ this.lastSuccessTime = new Date();
80
+ logger.debug('Circuit breaker: success recorded', {
81
+ state: this.state,
82
+ successes: this.successes,
83
+ });
84
+ // If half-open and enough successes, close circuit
85
+ if (this.state === 'half-open' && this.successes >= this.options.successThreshold) {
86
+ this.closeCircuit();
87
+ }
88
+ }
89
+ /**
90
+ * @ac US-060-AC-1: Track failure rate
91
+ * @ac US-060-AC-2: Open circuit after N failures
92
+ * Record failed execution
93
+ */
94
+ onFailure() {
95
+ this.failures++;
96
+ this.consecutiveFailures++;
97
+ this.lastFailureTime = new Date();
98
+ logger.warn('Circuit breaker: failure recorded', {
99
+ state: this.state,
100
+ failures: this.failures,
101
+ consecutiveFailures: this.consecutiveFailures,
102
+ });
103
+ // Open circuit if threshold reached
104
+ if (this.consecutiveFailures >= this.options.failureThreshold) {
105
+ this.openCircuit();
106
+ }
107
+ }
108
+ /**
109
+ * @ac US-060-AC-2: Open circuit after N failures
110
+ * @ac US-060-AC-6: Alert on circuit open
111
+ * Open the circuit
112
+ */
113
+ openCircuit() {
114
+ if (this.state === 'open')
115
+ return;
116
+ this.state = 'open';
117
+ this.tripCount++;
118
+ logger.error('🔴 CIRCUIT BREAKER OPENED', {
119
+ tripCount: this.tripCount,
120
+ consecutiveFailures: this.consecutiveFailures,
121
+ timeout: this.options.timeout,
122
+ });
123
+ // Alert (in production, this would send to monitoring system)
124
+ this.sendAlert('Circuit breaker opened due to repeated failures');
125
+ }
126
+ /**
127
+ * Close the circuit
128
+ */
129
+ closeCircuit() {
130
+ this.state = 'closed';
131
+ this.consecutiveFailures = 0;
132
+ this.successes = 0;
133
+ logger.info('🟢 Circuit breaker CLOSED', {
134
+ tripCount: this.tripCount,
135
+ });
136
+ }
137
+ /**
138
+ * @ac US-060-AC-4: Reset after timeout
139
+ * Check if circuit should transition to half-open
140
+ */
141
+ checkStateTransition() {
142
+ if (this.state !== 'open')
143
+ return;
144
+ if (!this.lastFailureTime)
145
+ return;
146
+ const timeSinceLastFailure = Date.now() - this.lastFailureTime.getTime();
147
+ if (timeSinceLastFailure >= this.options.timeout) {
148
+ this.state = 'half-open';
149
+ this.successes = 0; // Reset success counter for half-open test
150
+ logger.info('🟡 Circuit breaker HALF-OPEN (testing)', {
151
+ timeout: this.options.timeout,
152
+ timeSinceLastFailure,
153
+ });
154
+ }
155
+ }
156
+ /**
157
+ * @ac US-060-AC-5: Monitor circuit state
158
+ * Get current statistics
159
+ */
160
+ getStats() {
161
+ return {
162
+ state: this.state,
163
+ failures: this.failures,
164
+ successes: this.successes,
165
+ consecutiveFailures: this.consecutiveFailures,
166
+ lastFailureTime: this.lastFailureTime,
167
+ lastSuccessTime: this.lastSuccessTime,
168
+ tripCount: this.tripCount,
169
+ };
170
+ }
171
+ /**
172
+ * @ac US-060-AC-1: Track failure rate
173
+ * Get failure rate within monitoring window
174
+ */
175
+ getFailureRate() {
176
+ if (!this.lastFailureTime)
177
+ return 0;
178
+ const windowStart = Date.now() - this.options.monitoringWindow;
179
+ const lastFailureTime = this.lastFailureTime.getTime();
180
+ if (lastFailureTime < windowStart) {
181
+ return 0; // Failures outside window
182
+ }
183
+ const total = this.failures + this.successes;
184
+ return total > 0 ? this.failures / total : 0;
185
+ }
186
+ /**
187
+ * Get current state
188
+ */
189
+ getState() {
190
+ this.checkStateTransition();
191
+ return this.state;
192
+ }
193
+ /**
194
+ * Check if circuit is allowing requests
195
+ */
196
+ isOpen() {
197
+ this.checkStateTransition();
198
+ return this.state === 'open';
199
+ }
200
+ /**
201
+ * Manual reset (for testing or manual intervention)
202
+ */
203
+ reset() {
204
+ this.state = 'closed';
205
+ this.failures = 0;
206
+ this.successes = 0;
207
+ this.consecutiveFailures = 0;
208
+ this.lastFailureTime = undefined;
209
+ this.lastSuccessTime = undefined;
210
+ logger.info('Circuit breaker manually reset');
211
+ }
212
+ /**
213
+ * @ac US-060-AC-6: Alert on circuit open
214
+ * Send alert (integration point for monitoring)
215
+ */
216
+ sendAlert(message) {
217
+ // In production, this would integrate with:
218
+ // - PagerDuty
219
+ // - Slack
220
+ // - CloudWatch Alarms
221
+ // - Datadog
222
+ // etc.
223
+ logger.error('🚨 ALERT:', { message, stats: this.getStats() });
224
+ // For now, just log. In production, implement actual alerting.
225
+ }
226
+ /**
227
+ * Format monitoring report
228
+ */
229
+ formatReport() {
230
+ const stats = this.getStats();
231
+ const failureRate = (this.getFailureRate() * 100).toFixed(1);
232
+ const lines = [];
233
+ lines.push('⚡ Circuit Breaker Status');
234
+ lines.push('═══════════════════════════════════════');
235
+ lines.push(`State: ${this.getStateIcon()} ${stats.state.toUpperCase()}`);
236
+ lines.push(`Failure Rate: ${failureRate}%`);
237
+ lines.push(`Consecutive Failures: ${stats.consecutiveFailures}/${this.options.failureThreshold}`);
238
+ lines.push(`Trip Count: ${stats.tripCount}`);
239
+ lines.push('');
240
+ lines.push(`Total Successes: ${stats.successes}`);
241
+ lines.push(`Total Failures: ${stats.failures}`);
242
+ if (stats.lastFailureTime) {
243
+ const timeSince = Date.now() - stats.lastFailureTime.getTime();
244
+ lines.push(`Last Failure: ${Math.floor(timeSince / 1000)}s ago`);
245
+ }
246
+ if (this.state === 'open') {
247
+ lines.push('');
248
+ lines.push(`⏰ Reset in: ${this.getTimeUntilHalfOpen()}ms`);
249
+ }
250
+ return lines.join('\n');
251
+ }
252
+ /**
253
+ * Get state icon
254
+ */
255
+ getStateIcon() {
256
+ switch (this.state) {
257
+ case 'closed':
258
+ return '🟢';
259
+ case 'open':
260
+ return '🔴';
261
+ case 'half-open':
262
+ return '🟡';
263
+ default:
264
+ return '⚪';
265
+ }
266
+ }
267
+ /**
268
+ * Get time until half-open state
269
+ */
270
+ getTimeUntilHalfOpen() {
271
+ if (this.state !== 'open' || !this.lastFailureTime)
272
+ return 0;
273
+ const timeSinceFailure = Date.now() - this.lastFailureTime.getTime();
274
+ return Math.max(0, this.options.timeout - timeSinceFailure);
275
+ }
276
+ }
277
+ //# sourceMappingURL=circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/ai/circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * AI Dependency Inference Service - US-055
3
+ * Uses Agentforce to infer non-obvious dependencies
4
+ *
5
+ * @ac US-055-AC-1: Send component context to Agentforce
6
+ * @ac US-055-AC-2: Receive dependency inferences
7
+ * @ac US-055-AC-3: Parse AI responses
8
+ * @ac US-055-AC-4: Confidence scoring
9
+ * @ac US-055-AC-5: Fallback to static analysis if AI fails
10
+ * @ac US-055-AC-6: Cache AI results
11
+ * @issue #55
12
+ */
13
+ import type { MetadataComponent } from '../types/metadata.js';
14
+ import type { DependencyGraph } from '../types/dependency.js';
15
+ import type { LLMProvider } from './llm-provider.js';
16
+ export type InferredDependency = {
17
+ from: string;
18
+ to: string;
19
+ type: 'implicit' | 'dynamic' | 'runtime' | 'business-logic';
20
+ confidence: number;
21
+ reason: string;
22
+ lineNumber?: number;
23
+ };
24
+ export type InferenceResult = {
25
+ dependencies: InferredDependency[];
26
+ totalInferred: number;
27
+ highConfidenceCount: number;
28
+ executionTime: number;
29
+ usedCache: boolean;
30
+ fallbackToStatic: boolean;
31
+ };
32
+ export type DependencyInferenceServiceOptions = {
33
+ baseDir?: string;
34
+ };
35
+ /**
36
+ * @ac US-055-AC-1: Send component context to Agentforce
37
+ * @ac US-055-AC-2: Receive dependency inferences
38
+ */
39
+ export declare class DependencyInferenceService {
40
+ private readonly llmProvider;
41
+ private readonly cache;
42
+ private readonly confidenceThreshold;
43
+ constructor(llmProviderOrOptions?: LLMProvider | DependencyInferenceServiceOptions, confidenceThreshold?: number);
44
+ private resolveProvider;
45
+ /**
46
+ * @ac US-055-AC-1: Send component context to Agentforce
47
+ * Infer dependencies for components
48
+ */
49
+ inferDependencies(components: MetadataComponent[], existingGraph?: DependencyGraph): Promise<InferenceResult>;
50
+ /**
51
+ * Build prompt for dependency inference
52
+ */
53
+ private buildInferencePrompt;
54
+ /**
55
+ * @ac US-055-AC-3: Parse AI responses
56
+ * Parse Agentforce response into structured data
57
+ */
58
+ private parseInferenceResponse;
59
+ /**
60
+ * @ac US-055-AC-6: Cache AI results
61
+ * Generate cache key for components
62
+ */
63
+ private getCacheKey;
64
+ /**
65
+ * Clear cache
66
+ */
67
+ clearCache(): void;
68
+ /**
69
+ * Get cache size
70
+ */
71
+ getCacheSize(): number;
72
+ /**
73
+ * Get confidence threshold
74
+ */
75
+ getConfidenceThreshold(): number;
76
+ }