aspectcode 0.2.2 → 0.3.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 (299) hide show
  1. package/dist/cli.d.ts +15 -47
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +18 -17
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +14 -24
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +5 -60
  8. package/dist/config.js.map +1 -1
  9. package/dist/kbBuilder.d.ts +14 -0
  10. package/dist/kbBuilder.d.ts.map +1 -0
  11. package/dist/kbBuilder.js +106 -0
  12. package/dist/kbBuilder.js.map +1 -0
  13. package/dist/main.d.ts +4 -5
  14. package/dist/main.d.ts.map +1 -1
  15. package/dist/main.js +45 -124
  16. package/dist/main.js.map +1 -1
  17. package/dist/optimize.d.ts +14 -0
  18. package/dist/optimize.d.ts.map +1 -0
  19. package/dist/optimize.js +131 -0
  20. package/dist/optimize.js.map +1 -0
  21. package/dist/pipeline.d.ts +15 -0
  22. package/dist/pipeline.d.ts.map +1 -0
  23. package/dist/pipeline.js +212 -0
  24. package/dist/pipeline.js.map +1 -0
  25. package/dist/toolIngestion.d.ts +15 -0
  26. package/dist/toolIngestion.d.ts.map +1 -0
  27. package/dist/toolIngestion.js +47 -0
  28. package/dist/toolIngestion.js.map +1 -0
  29. package/dist/writer.d.ts +17 -0
  30. package/dist/writer.d.ts.map +1 -0
  31. package/dist/writer.js +26 -0
  32. package/dist/writer.js.map +1 -0
  33. package/node_modules/@aspectcode/core/dist/analysis/analyzer.d.ts +34 -0
  34. package/node_modules/@aspectcode/core/dist/analysis/analyzer.d.ts.map +1 -0
  35. package/node_modules/@aspectcode/core/dist/analysis/analyzer.js +240 -0
  36. package/node_modules/@aspectcode/core/dist/analysis/analyzer.js.map +1 -0
  37. package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.d.ts +32 -0
  38. package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.d.ts.map +1 -0
  39. package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.js +133 -0
  40. package/node_modules/@aspectcode/core/dist/analysis/dependencyAdapters.js.map +1 -0
  41. package/node_modules/@aspectcode/core/dist/analysis/importParsers.d.ts +30 -0
  42. package/node_modules/@aspectcode/core/dist/analysis/importParsers.d.ts.map +1 -0
  43. package/node_modules/@aspectcode/core/dist/analysis/importParsers.js +92 -0
  44. package/node_modules/@aspectcode/core/dist/analysis/importParsers.js.map +1 -0
  45. package/node_modules/@aspectcode/core/dist/analysis/index.d.ts +9 -0
  46. package/node_modules/@aspectcode/core/dist/analysis/index.d.ts.map +1 -0
  47. package/node_modules/@aspectcode/core/dist/analysis/index.js +9 -0
  48. package/node_modules/@aspectcode/core/dist/analysis/index.js.map +1 -0
  49. package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.d.ts +34 -0
  50. package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.d.ts.map +1 -0
  51. package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.js +240 -0
  52. package/node_modules/@aspectcode/core/dist/analysis/moduleResolver.js.map +1 -0
  53. package/node_modules/@aspectcode/core/dist/analysis/repo.d.ts +33 -0
  54. package/node_modules/@aspectcode/core/dist/analysis/repo.d.ts.map +1 -0
  55. package/node_modules/@aspectcode/core/dist/analysis/repo.js +246 -0
  56. package/node_modules/@aspectcode/core/dist/analysis/repo.js.map +1 -0
  57. package/node_modules/@aspectcode/core/dist/classifiers.d.ts +24 -0
  58. package/node_modules/@aspectcode/core/dist/classifiers.d.ts.map +1 -0
  59. package/node_modules/@aspectcode/core/dist/classifiers.js +119 -0
  60. package/node_modules/@aspectcode/core/dist/classifiers.js.map +1 -0
  61. package/node_modules/@aspectcode/core/dist/fs/exclusions.d.ts +26 -0
  62. package/node_modules/@aspectcode/core/dist/fs/exclusions.d.ts.map +1 -0
  63. package/node_modules/@aspectcode/core/dist/fs/exclusions.js +130 -0
  64. package/node_modules/@aspectcode/core/dist/fs/exclusions.js.map +1 -0
  65. package/node_modules/@aspectcode/core/dist/fs/fingerprint.d.ts +42 -0
  66. package/node_modules/@aspectcode/core/dist/fs/fingerprint.d.ts.map +1 -0
  67. package/node_modules/@aspectcode/core/dist/fs/fingerprint.js +125 -0
  68. package/node_modules/@aspectcode/core/dist/fs/fingerprint.js.map +1 -0
  69. package/node_modules/@aspectcode/core/dist/fs/index.d.ts +9 -0
  70. package/node_modules/@aspectcode/core/dist/fs/index.d.ts.map +1 -0
  71. package/node_modules/@aspectcode/core/dist/fs/index.js +26 -0
  72. package/node_modules/@aspectcode/core/dist/fs/index.js.map +1 -0
  73. package/node_modules/@aspectcode/core/dist/fs/walker.d.ts +23 -0
  74. package/node_modules/@aspectcode/core/dist/fs/walker.d.ts.map +1 -0
  75. package/node_modules/@aspectcode/core/dist/fs/walker.js +94 -0
  76. package/node_modules/@aspectcode/core/dist/fs/walker.js.map +1 -0
  77. package/node_modules/@aspectcode/core/dist/host.d.ts +38 -0
  78. package/node_modules/@aspectcode/core/dist/host.d.ts.map +1 -0
  79. package/node_modules/@aspectcode/core/dist/host.js +110 -0
  80. package/node_modules/@aspectcode/core/dist/host.js.map +1 -0
  81. package/node_modules/@aspectcode/core/dist/index.d.ts +23 -0
  82. package/node_modules/@aspectcode/core/dist/index.d.ts.map +1 -0
  83. package/node_modules/@aspectcode/core/dist/index.js +59 -0
  84. package/node_modules/@aspectcode/core/dist/index.js.map +1 -0
  85. package/node_modules/@aspectcode/core/dist/model.d.ts +90 -0
  86. package/node_modules/@aspectcode/core/dist/model.d.ts.map +1 -0
  87. package/node_modules/@aspectcode/core/dist/model.js +9 -0
  88. package/node_modules/@aspectcode/core/dist/model.js.map +1 -0
  89. package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.d.ts +17 -0
  90. package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.d.ts.map +1 -0
  91. package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.js +225 -0
  92. package/node_modules/@aspectcode/core/dist/parsers/csharpExtractors.js.map +1 -0
  93. package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.d.ts +30 -0
  94. package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.d.ts.map +1 -0
  95. package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.js +71 -0
  96. package/node_modules/@aspectcode/core/dist/parsers/grammarLoader.js.map +1 -0
  97. package/node_modules/@aspectcode/core/dist/parsers/index.d.ts +13 -0
  98. package/node_modules/@aspectcode/core/dist/parsers/index.d.ts.map +1 -0
  99. package/node_modules/@aspectcode/core/dist/parsers/index.js +32 -0
  100. package/node_modules/@aspectcode/core/dist/parsers/index.js.map +1 -0
  101. package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.d.ts +17 -0
  102. package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.d.ts.map +1 -0
  103. package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.js +182 -0
  104. package/node_modules/@aspectcode/core/dist/parsers/javaExtractors.js.map +1 -0
  105. package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts +44 -0
  106. package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts.map +1 -0
  107. package/node_modules/@aspectcode/core/dist/parsers/languages.js +64 -0
  108. package/node_modules/@aspectcode/core/dist/parsers/languages.js.map +1 -0
  109. package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.d.ts +18 -0
  110. package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.d.ts.map +1 -0
  111. package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.js +139 -0
  112. package/node_modules/@aspectcode/core/dist/parsers/pythonExtractors.js.map +1 -0
  113. package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.d.ts +22 -0
  114. package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.d.ts.map +1 -0
  115. package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js +240 -0
  116. package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js.map +1 -0
  117. package/node_modules/@aspectcode/core/dist/parsers/utils.d.ts +7 -0
  118. package/node_modules/@aspectcode/core/dist/parsers/utils.d.ts.map +1 -0
  119. package/node_modules/@aspectcode/core/dist/parsers/utils.js +11 -0
  120. package/node_modules/@aspectcode/core/dist/parsers/utils.js.map +1 -0
  121. package/node_modules/@aspectcode/core/dist/paths.d.ts +27 -0
  122. package/node_modules/@aspectcode/core/dist/paths.d.ts.map +1 -0
  123. package/node_modules/@aspectcode/core/dist/paths.js +45 -0
  124. package/node_modules/@aspectcode/core/dist/paths.js.map +1 -0
  125. package/node_modules/@aspectcode/core/dist/stats.d.ts +41 -0
  126. package/node_modules/@aspectcode/core/dist/stats.d.ts.map +1 -0
  127. package/node_modules/@aspectcode/core/dist/stats.js +88 -0
  128. package/node_modules/@aspectcode/core/dist/stats.js.map +1 -0
  129. package/node_modules/@aspectcode/core/package.json +41 -0
  130. package/node_modules/@aspectcode/core/parsers/c_sharp.wasm +0 -0
  131. package/node_modules/@aspectcode/core/parsers/java.wasm +0 -0
  132. package/node_modules/@aspectcode/core/parsers/javascript.wasm +0 -0
  133. package/node_modules/@aspectcode/core/parsers/python.wasm +0 -0
  134. package/node_modules/@aspectcode/core/parsers/tree-sitter.wasm +0 -0
  135. package/node_modules/@aspectcode/core/parsers/tsx.wasm +0 -0
  136. package/node_modules/@aspectcode/core/parsers/typescript.wasm +0 -0
  137. package/node_modules/@aspectcode/emitters/dist/emitter.d.ts +72 -0
  138. package/node_modules/@aspectcode/emitters/dist/emitter.d.ts.map +1 -0
  139. package/node_modules/@aspectcode/emitters/dist/emitter.js +10 -0
  140. package/node_modules/@aspectcode/emitters/dist/emitter.js.map +1 -0
  141. package/node_modules/@aspectcode/emitters/dist/host.d.ts +31 -0
  142. package/node_modules/@aspectcode/emitters/dist/host.d.ts.map +1 -0
  143. package/node_modules/@aspectcode/emitters/dist/host.js +86 -0
  144. package/node_modules/@aspectcode/emitters/dist/host.js.map +1 -0
  145. package/node_modules/@aspectcode/emitters/dist/index.d.ts +27 -0
  146. package/node_modules/@aspectcode/emitters/dist/index.d.ts.map +1 -0
  147. package/node_modules/@aspectcode/emitters/dist/index.js +116 -0
  148. package/node_modules/@aspectcode/emitters/dist/index.js.map +1 -0
  149. package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts +15 -0
  150. package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts.map +1 -0
  151. package/node_modules/@aspectcode/emitters/dist/instructions/content.js +289 -0
  152. package/node_modules/@aspectcode/emitters/dist/instructions/content.js.map +1 -0
  153. package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts +13 -0
  154. package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts.map +1 -0
  155. package/node_modules/@aspectcode/emitters/dist/instructions/detection.js +55 -0
  156. package/node_modules/@aspectcode/emitters/dist/instructions/detection.js.map +1 -0
  157. package/node_modules/@aspectcode/emitters/dist/instructions/formats.d.ts +17 -0
  158. package/node_modules/@aspectcode/emitters/dist/instructions/formats.d.ts.map +1 -0
  159. package/node_modules/@aspectcode/emitters/dist/instructions/formats.js +23 -0
  160. package/node_modules/@aspectcode/emitters/dist/instructions/formats.js.map +1 -0
  161. package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts +5 -0
  162. package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts.map +1 -0
  163. package/node_modules/@aspectcode/emitters/dist/instructions/index.js +12 -0
  164. package/node_modules/@aspectcode/emitters/dist/instructions/index.js.map +1 -0
  165. package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts +9 -0
  166. package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts.map +1 -0
  167. package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js +30 -0
  168. package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js.map +1 -0
  169. package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts +64 -0
  170. package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts.map +1 -0
  171. package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js +504 -0
  172. package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js.map +1 -0
  173. package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.d.ts +24 -0
  174. package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.d.ts.map +1 -0
  175. package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.js +238 -0
  176. package/node_modules/@aspectcode/emitters/dist/kb/architectureEmitter.js.map +1 -0
  177. package/node_modules/@aspectcode/emitters/dist/kb/classifiers.d.ts +8 -0
  178. package/node_modules/@aspectcode/emitters/dist/kb/classifiers.d.ts.map +1 -0
  179. package/node_modules/@aspectcode/emitters/dist/kb/classifiers.js +14 -0
  180. package/node_modules/@aspectcode/emitters/dist/kb/classifiers.js.map +1 -0
  181. package/node_modules/@aspectcode/emitters/dist/kb/constants.d.ts +35 -0
  182. package/node_modules/@aspectcode/emitters/dist/kb/constants.d.ts.map +1 -0
  183. package/node_modules/@aspectcode/emitters/dist/kb/constants.js +38 -0
  184. package/node_modules/@aspectcode/emitters/dist/kb/constants.js.map +1 -0
  185. package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.d.ts +20 -0
  186. package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.d.ts.map +1 -0
  187. package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.js +155 -0
  188. package/node_modules/@aspectcode/emitters/dist/kb/contextEmitter.js.map +1 -0
  189. package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts +52 -0
  190. package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts.map +1 -0
  191. package/node_modules/@aspectcode/emitters/dist/kb/conventions.js +391 -0
  192. package/node_modules/@aspectcode/emitters/dist/kb/conventions.js.map +1 -0
  193. package/node_modules/@aspectcode/emitters/dist/kb/depData.d.ts +18 -0
  194. package/node_modules/@aspectcode/emitters/dist/kb/depData.d.ts.map +1 -0
  195. package/node_modules/@aspectcode/emitters/dist/kb/depData.js +31 -0
  196. package/node_modules/@aspectcode/emitters/dist/kb/depData.js.map +1 -0
  197. package/node_modules/@aspectcode/emitters/dist/kb/detectors.d.ts +18 -0
  198. package/node_modules/@aspectcode/emitters/dist/kb/detectors.d.ts.map +1 -0
  199. package/node_modules/@aspectcode/emitters/dist/kb/detectors.js +317 -0
  200. package/node_modules/@aspectcode/emitters/dist/kb/detectors.js.map +1 -0
  201. package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.d.ts +33 -0
  202. package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.d.ts.map +1 -0
  203. package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.js +323 -0
  204. package/node_modules/@aspectcode/emitters/dist/kb/entryPoints.js.map +1 -0
  205. package/node_modules/@aspectcode/emitters/dist/kb/helpers.d.ts +27 -0
  206. package/node_modules/@aspectcode/emitters/dist/kb/helpers.d.ts.map +1 -0
  207. package/node_modules/@aspectcode/emitters/dist/kb/helpers.js +63 -0
  208. package/node_modules/@aspectcode/emitters/dist/kb/helpers.js.map +1 -0
  209. package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts +27 -0
  210. package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts.map +1 -0
  211. package/node_modules/@aspectcode/emitters/dist/kb/index.js +72 -0
  212. package/node_modules/@aspectcode/emitters/dist/kb/index.js.map +1 -0
  213. package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts +21 -0
  214. package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts.map +1 -0
  215. package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js +125 -0
  216. package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js.map +1 -0
  217. package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.d.ts +26 -0
  218. package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.d.ts.map +1 -0
  219. package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.js +255 -0
  220. package/node_modules/@aspectcode/emitters/dist/kb/mapEmitter.js.map +1 -0
  221. package/node_modules/@aspectcode/emitters/dist/kb/policy.d.ts +12 -0
  222. package/node_modules/@aspectcode/emitters/dist/kb/policy.d.ts.map +1 -0
  223. package/node_modules/@aspectcode/emitters/dist/kb/policy.js +29 -0
  224. package/node_modules/@aspectcode/emitters/dist/kb/policy.js.map +1 -0
  225. package/node_modules/@aspectcode/emitters/dist/kb/symbols.d.ts +43 -0
  226. package/node_modules/@aspectcode/emitters/dist/kb/symbols.d.ts.map +1 -0
  227. package/node_modules/@aspectcode/emitters/dist/kb/symbols.js +343 -0
  228. package/node_modules/@aspectcode/emitters/dist/kb/symbols.js.map +1 -0
  229. package/node_modules/@aspectcode/emitters/dist/manifest.d.ts +37 -0
  230. package/node_modules/@aspectcode/emitters/dist/manifest.d.ts.map +1 -0
  231. package/node_modules/@aspectcode/emitters/dist/manifest.js +50 -0
  232. package/node_modules/@aspectcode/emitters/dist/manifest.js.map +1 -0
  233. package/node_modules/@aspectcode/emitters/dist/report.d.ts +22 -0
  234. package/node_modules/@aspectcode/emitters/dist/report.d.ts.map +1 -0
  235. package/node_modules/@aspectcode/emitters/dist/report.js +3 -0
  236. package/node_modules/@aspectcode/emitters/dist/report.js.map +1 -0
  237. package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts +14 -0
  238. package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts.map +1 -0
  239. package/node_modules/@aspectcode/emitters/dist/stableJson.js +40 -0
  240. package/node_modules/@aspectcode/emitters/dist/stableJson.js.map +1 -0
  241. package/node_modules/@aspectcode/emitters/dist/transaction.d.ts +29 -0
  242. package/node_modules/@aspectcode/emitters/dist/transaction.d.ts.map +1 -0
  243. package/node_modules/@aspectcode/emitters/dist/transaction.js +104 -0
  244. package/node_modules/@aspectcode/emitters/dist/transaction.js.map +1 -0
  245. package/node_modules/@aspectcode/emitters/package.json +39 -0
  246. package/node_modules/@aspectcode/optimizer/dist/agent.d.ts +18 -0
  247. package/node_modules/@aspectcode/optimizer/dist/agent.d.ts.map +1 -0
  248. package/node_modules/@aspectcode/optimizer/dist/agent.js +123 -0
  249. package/node_modules/@aspectcode/optimizer/dist/agent.js.map +1 -0
  250. package/node_modules/@aspectcode/optimizer/dist/index.d.ts +15 -0
  251. package/node_modules/@aspectcode/optimizer/dist/index.d.ts.map +1 -0
  252. package/node_modules/@aspectcode/optimizer/dist/index.js +31 -0
  253. package/node_modules/@aspectcode/optimizer/dist/index.js.map +1 -0
  254. package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts +39 -0
  255. package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts.map +1 -0
  256. package/node_modules/@aspectcode/optimizer/dist/prompts.js +156 -0
  257. package/node_modules/@aspectcode/optimizer/dist/prompts.js.map +1 -0
  258. package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.d.ts +20 -0
  259. package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.d.ts.map +1 -0
  260. package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js +126 -0
  261. package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js.map +1 -0
  262. package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts +28 -0
  263. package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts.map +1 -0
  264. package/node_modules/@aspectcode/optimizer/dist/providers/index.js +142 -0
  265. package/node_modules/@aspectcode/optimizer/dist/providers/index.js.map +1 -0
  266. package/node_modules/@aspectcode/optimizer/dist/providers/openai.d.ts +19 -0
  267. package/node_modules/@aspectcode/optimizer/dist/providers/openai.d.ts.map +1 -0
  268. package/node_modules/@aspectcode/optimizer/dist/providers/openai.js +98 -0
  269. package/node_modules/@aspectcode/optimizer/dist/providers/openai.js.map +1 -0
  270. package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts +19 -0
  271. package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts.map +1 -0
  272. package/node_modules/@aspectcode/optimizer/dist/providers/retry.js +87 -0
  273. package/node_modules/@aspectcode/optimizer/dist/providers/retry.js.map +1 -0
  274. package/node_modules/@aspectcode/optimizer/dist/types.d.ts +93 -0
  275. package/node_modules/@aspectcode/optimizer/dist/types.d.ts.map +1 -0
  276. package/node_modules/@aspectcode/optimizer/dist/types.js +20 -0
  277. package/node_modules/@aspectcode/optimizer/dist/types.js.map +1 -0
  278. package/node_modules/@aspectcode/optimizer/package.json +41 -0
  279. package/package.json +11 -3
  280. package/dist/commands/deps.d.ts +0 -11
  281. package/dist/commands/deps.d.ts.map +0 -1
  282. package/dist/commands/deps.js +0 -197
  283. package/dist/commands/deps.js.map +0 -1
  284. package/dist/commands/generate.d.ts +0 -8
  285. package/dist/commands/generate.d.ts.map +0 -1
  286. package/dist/commands/generate.js +0 -162
  287. package/dist/commands/generate.js.map +0 -1
  288. package/dist/commands/settings.d.ts +0 -9
  289. package/dist/commands/settings.d.ts.map +0 -1
  290. package/dist/commands/settings.js +0 -165
  291. package/dist/commands/settings.js.map +0 -1
  292. package/dist/commands/watch.d.ts +0 -6
  293. package/dist/commands/watch.d.ts.map +0 -1
  294. package/dist/commands/watch.js +0 -180
  295. package/dist/commands/watch.js.map +0 -1
  296. package/dist/connections.d.ts +0 -24
  297. package/dist/connections.d.ts.map +0 -1
  298. package/dist/connections.js +0 -89
  299. package/dist/connections.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /**
3
+ * Anthropic provider — implements LlmProvider using the Anthropic SDK.
4
+ *
5
+ * Features:
6
+ * - Cached client instance (created once per provider, not per call)
7
+ * - Configurable model, temperature, and max_tokens via ProviderOptions
8
+ * - Retry with exponential backoff on transient errors
9
+ * - Truncation detection (warns when stop_reason is 'max_tokens')
10
+ * - Proper system prompt handling (Anthropic uses a separate `system` field)
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.createAnthropicProvider = createAnthropicProvider;
47
+ const retry_1 = require("./retry");
48
+ const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
49
+ const DEFAULT_TEMPERATURE = 0.4;
50
+ const DEFAULT_MAX_TOKENS = 4096;
51
+ /**
52
+ * Create an Anthropic-backed LlmProvider.
53
+ *
54
+ * Uses dynamic import so the `@anthropic-ai/sdk` package is only loaded
55
+ * when this provider is actually used. The client is created once
56
+ * and reused across all calls.
57
+ */
58
+ function createAnthropicProvider(apiKey, options) {
59
+ const modelId = options?.model ?? DEFAULT_MODEL;
60
+ const temperature = options?.temperature ?? DEFAULT_TEMPERATURE;
61
+ const maxTokens = options?.maxTokens ?? DEFAULT_MAX_TOKENS;
62
+ // Lazily-initialized, cached client
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ let clientPromise;
65
+ async function getClient() {
66
+ if (!clientPromise) {
67
+ clientPromise = Promise.resolve().then(() => __importStar(require('@anthropic-ai/sdk'))).then(({ default: Anthropic }) => new Anthropic({ apiKey }));
68
+ }
69
+ return clientPromise;
70
+ }
71
+ return {
72
+ name: 'anthropic',
73
+ async chat(messages) {
74
+ return (0, retry_1.withRetry)(async () => {
75
+ const client = await getClient();
76
+ // Anthropic handles system prompts as a separate field,
77
+ // not as a message with role 'system'.
78
+ let systemPrompt;
79
+ const anthropicMessages = [];
80
+ for (const msg of messages) {
81
+ if (msg.role === 'system') {
82
+ // Concatenate multiple system messages if present
83
+ systemPrompt = systemPrompt
84
+ ? `${systemPrompt}\n\n${msg.content}`
85
+ : msg.content;
86
+ }
87
+ else {
88
+ anthropicMessages.push({
89
+ role: msg.role,
90
+ content: msg.content,
91
+ });
92
+ }
93
+ }
94
+ // Anthropic requires at least one user message
95
+ if (anthropicMessages.length === 0) {
96
+ throw new Error('Anthropic requires at least one user message');
97
+ }
98
+ const requestParams = {
99
+ model: modelId,
100
+ messages: anthropicMessages,
101
+ temperature,
102
+ max_tokens: maxTokens,
103
+ };
104
+ if (systemPrompt) {
105
+ requestParams.system = systemPrompt;
106
+ }
107
+ const response = await client.messages.create(requestParams);
108
+ // Extract text from content blocks
109
+ const textBlocks = response.content?.filter((block) => block.type === 'text');
110
+ const content = textBlocks
111
+ ?.map((block) => block.text)
112
+ .join('');
113
+ if (!content) {
114
+ throw new Error('Anthropic returned an empty response');
115
+ }
116
+ // Warn on truncated output
117
+ if (response.stop_reason === 'max_tokens') {
118
+ console.warn(`[optimizer] Anthropic response truncated (stop_reason=max_tokens). ` +
119
+ `Consider increasing maxTokens (currently ${maxTokens}).`);
120
+ }
121
+ return content;
122
+ });
123
+ },
124
+ };
125
+ }
126
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Provider resolution — loads API keys from environment / .env file
3
+ * and returns the appropriate LlmProvider implementation.
4
+ */
5
+ import type { LlmProvider, ProviderOptions } from '../types';
6
+ /**
7
+ * Parse a `.env` file into key=value pairs.
8
+ * Handles comments, blank lines, and optional quoting.
9
+ */
10
+ export declare function parseDotenv(content: string): Record<string, string>;
11
+ /**
12
+ * Load environment variables from a `.env` file at the workspace root,
13
+ * merged with `process.env` (process.env wins on conflicts).
14
+ */
15
+ export declare function loadEnvFile(root: string): Record<string, string>;
16
+ /**
17
+ * Resolve an LlmProvider from environment variables.
18
+ *
19
+ * Resolution order:
20
+ * 1. If `LLM_PROVIDER` is set, use that provider (error if key missing).
21
+ * 2. Otherwise try providers in order: openai → anthropic.
22
+ * 3. If no key is found, throw with setup instructions.
23
+ *
24
+ * @param env - Merged environment (from .env + process.env)
25
+ * @param providerOptions - Optional model/temperature/maxTokens overrides
26
+ */
27
+ export declare function resolveProvider(env: Record<string, string>, providerOptions?: ProviderOptions): LlmProvider;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBhE;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,eAAe,CAAC,EAAE,eAAe,GAChC,WAAW,CAyCb"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * Provider resolution — loads API keys from environment / .env file
4
+ * and returns the appropriate LlmProvider implementation.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.parseDotenv = parseDotenv;
41
+ exports.loadEnvFile = loadEnvFile;
42
+ exports.resolveProvider = resolveProvider;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const types_1 = require("../types");
46
+ const openai_1 = require("./openai");
47
+ const anthropic_1 = require("./anthropic");
48
+ /**
49
+ * Parse a `.env` file into key=value pairs.
50
+ * Handles comments, blank lines, and optional quoting.
51
+ */
52
+ function parseDotenv(content) {
53
+ const result = {};
54
+ for (const line of content.split('\n')) {
55
+ const trimmed = line.trim();
56
+ if (!trimmed || trimmed.startsWith('#'))
57
+ continue;
58
+ const eqIdx = trimmed.indexOf('=');
59
+ if (eqIdx === -1)
60
+ continue;
61
+ const key = trimmed.slice(0, eqIdx).trim();
62
+ let value = trimmed.slice(eqIdx + 1).trim();
63
+ // Strip surrounding quotes
64
+ if ((value.startsWith('"') && value.endsWith('"')) ||
65
+ (value.startsWith("'") && value.endsWith("'"))) {
66
+ value = value.slice(1, -1);
67
+ }
68
+ result[key] = value;
69
+ }
70
+ return result;
71
+ }
72
+ /**
73
+ * Load environment variables from a `.env` file at the workspace root,
74
+ * merged with `process.env` (process.env wins on conflicts).
75
+ */
76
+ function loadEnvFile(root) {
77
+ const envPath = path.join(root, '.env');
78
+ const env = {};
79
+ if (fs.existsSync(envPath)) {
80
+ const content = fs.readFileSync(envPath, 'utf-8');
81
+ Object.assign(env, parseDotenv(content));
82
+ }
83
+ // process.env values take precedence
84
+ for (const [key, value] of Object.entries(process.env)) {
85
+ if (value !== undefined) {
86
+ env[key] = value;
87
+ }
88
+ }
89
+ return env;
90
+ }
91
+ /**
92
+ * Build the provider name → factory mapping.
93
+ */
94
+ const PROVIDER_FACTORIES = {
95
+ openai: openai_1.createOpenAiProvider,
96
+ anthropic: anthropic_1.createAnthropicProvider,
97
+ };
98
+ /**
99
+ * Resolve an LlmProvider from environment variables.
100
+ *
101
+ * Resolution order:
102
+ * 1. If `LLM_PROVIDER` is set, use that provider (error if key missing).
103
+ * 2. Otherwise try providers in order: openai → anthropic.
104
+ * 3. If no key is found, throw with setup instructions.
105
+ *
106
+ * @param env - Merged environment (from .env + process.env)
107
+ * @param providerOptions - Optional model/temperature/maxTokens overrides
108
+ */
109
+ function resolveProvider(env, providerOptions) {
110
+ const forcedProvider = env[types_1.LLM_PROVIDER_ENV];
111
+ const model = providerOptions?.model ?? env['LLM_MODEL'];
112
+ const opts = {
113
+ ...providerOptions,
114
+ model,
115
+ };
116
+ if (forcedProvider) {
117
+ const envKey = types_1.PROVIDER_ENV_KEYS[forcedProvider];
118
+ if (!envKey) {
119
+ throw new Error(`Unknown LLM_PROVIDER "${forcedProvider}". Supported: ${Object.keys(types_1.PROVIDER_ENV_KEYS).join(', ')}`);
120
+ }
121
+ const apiKey = env[envKey];
122
+ if (!apiKey) {
123
+ throw new Error(`LLM_PROVIDER is set to "${forcedProvider}" but ${envKey} is not defined.\n` +
124
+ `Add ${envKey}=sk-... to your .env file.`);
125
+ }
126
+ return PROVIDER_FACTORIES[forcedProvider](apiKey, opts);
127
+ }
128
+ // Auto-detect: try each provider in order
129
+ const providerOrder = ['openai', 'anthropic'];
130
+ for (const name of providerOrder) {
131
+ const envKey = types_1.PROVIDER_ENV_KEYS[name];
132
+ const apiKey = env[envKey];
133
+ if (apiKey) {
134
+ return PROVIDER_FACTORIES[name](apiKey, opts);
135
+ }
136
+ }
137
+ throw new Error('No LLM API key found. To use `aspectcode optimize`, add one of:\n' +
138
+ ' OPENAI_API_KEY=sk-...\n' +
139
+ ' ANTHROPIC_API_KEY=sk-ant-...\n' +
140
+ 'to a .env file in your workspace root.');
141
+ }
142
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * OpenAI provider — implements LlmProvider using the OpenAI SDK.
3
+ *
4
+ * Features:
5
+ * - Cached client instance (created once per provider, not per call)
6
+ * - Configurable model, temperature, and max_tokens via ProviderOptions
7
+ * - Retry with exponential backoff on transient errors
8
+ * - Truncation detection (warns when finish_reason is 'length')
9
+ */
10
+ import type { LlmProvider, ProviderOptions } from '../types';
11
+ /**
12
+ * Create an OpenAI-backed LlmProvider.
13
+ *
14
+ * Uses dynamic import so the `openai` package is only loaded
15
+ * when this provider is actually used. The client is created once
16
+ * and reused across all calls.
17
+ */
18
+ export declare function createOpenAiProvider(apiKey: string, options?: ProviderOptions): LlmProvider;
19
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAO1E;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAkD3F"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * OpenAI provider — implements LlmProvider using the OpenAI SDK.
4
+ *
5
+ * Features:
6
+ * - Cached client instance (created once per provider, not per call)
7
+ * - Configurable model, temperature, and max_tokens via ProviderOptions
8
+ * - Retry with exponential backoff on transient errors
9
+ * - Truncation detection (warns when finish_reason is 'length')
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.createOpenAiProvider = createOpenAiProvider;
46
+ const retry_1 = require("./retry");
47
+ const DEFAULT_MODEL = 'gpt-4o';
48
+ const DEFAULT_TEMPERATURE = 0.4;
49
+ const DEFAULT_MAX_TOKENS = 4096;
50
+ /**
51
+ * Create an OpenAI-backed LlmProvider.
52
+ *
53
+ * Uses dynamic import so the `openai` package is only loaded
54
+ * when this provider is actually used. The client is created once
55
+ * and reused across all calls.
56
+ */
57
+ function createOpenAiProvider(apiKey, options) {
58
+ const modelId = options?.model ?? DEFAULT_MODEL;
59
+ const temperature = options?.temperature ?? DEFAULT_TEMPERATURE;
60
+ const maxTokens = options?.maxTokens ?? DEFAULT_MAX_TOKENS;
61
+ // Lazily-initialized, cached client
62
+ let clientPromise;
63
+ async function getClient() {
64
+ if (!clientPromise) {
65
+ clientPromise = Promise.resolve().then(() => __importStar(require('openai'))).then(({ default: OpenAI }) => new OpenAI({ apiKey }));
66
+ }
67
+ return clientPromise;
68
+ }
69
+ return {
70
+ name: 'openai',
71
+ async chat(messages) {
72
+ return (0, retry_1.withRetry)(async () => {
73
+ const client = await getClient();
74
+ const response = await client.chat.completions.create({
75
+ model: modelId,
76
+ messages: messages.map((m) => ({
77
+ role: m.role,
78
+ content: m.content,
79
+ })),
80
+ temperature,
81
+ max_tokens: maxTokens,
82
+ });
83
+ const choice = response.choices[0];
84
+ const content = choice?.message?.content;
85
+ if (!content) {
86
+ throw new Error('OpenAI returned an empty response');
87
+ }
88
+ // Warn on truncated output
89
+ if (choice.finish_reason === 'length') {
90
+ console.warn(`[optimizer] OpenAI response truncated (finish_reason=length). ` +
91
+ `Consider increasing maxTokens (currently ${maxTokens}).`);
92
+ }
93
+ return content;
94
+ });
95
+ },
96
+ };
97
+ }
98
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,oDAkDC;AA/DD,mCAAoC;AAEpC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC/B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,MAAc,EAAE,OAAyB;IAC5E,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,IAAI,aAAa,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,mBAAmB,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAE3D,oCAAoC;IACpC,IAAI,aAAiF,CAAC;IAEtF,KAAK,UAAU,SAAS;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,kDAAO,QAAQ,IAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QAEd,KAAK,CAAC,IAAI,CAAC,QAAuB;YAChC,OAAO,IAAA,iBAAS,EAAC,KAAK,IAAI,EAAE;gBAC1B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBAEjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;oBACpD,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;qBACnB,CAAC,CAAC;oBACH,WAAW;oBACX,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;gBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACvD,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO,CAAC,IAAI,CACV,gEAAgE;wBAChE,4CAA4C,SAAS,IAAI,CAC1D,CAAC;gBACJ,CAAC;gBAED,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Retry utility with exponential backoff for LLM API calls.
3
+ *
4
+ * Retries on transient errors (rate limits, server errors, network failures)
5
+ * while immediately failing on permanent errors (auth, bad request).
6
+ */
7
+ export interface RetryOptions {
8
+ /** Maximum number of retry attempts (default: 3). */
9
+ maxRetries?: number;
10
+ /** Base delay in ms before first retry (default: 1000). Doubles each retry. */
11
+ baseDelayMs?: number;
12
+ /** Maximum delay in ms between retries (default: 16000). */
13
+ maxDelayMs?: number;
14
+ }
15
+ /**
16
+ * Execute `fn` with exponential backoff retries on transient errors.
17
+ */
18
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
19
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsDD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAwBZ"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * Retry utility with exponential backoff for LLM API calls.
4
+ *
5
+ * Retries on transient errors (rate limits, server errors, network failures)
6
+ * while immediately failing on permanent errors (auth, bad request).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.withRetry = withRetry;
10
+ /** Default retry configuration. */
11
+ const DEFAULT_MAX_RETRIES = 3;
12
+ const DEFAULT_BASE_DELAY_MS = 1000;
13
+ const DEFAULT_MAX_DELAY_MS = 16000;
14
+ /**
15
+ * Determine whether an error is transient and should be retried.
16
+ *
17
+ * Retries on:
18
+ * - HTTP 429 (rate limit)
19
+ * - HTTP 5xx (server errors)
20
+ * - Network/timeout errors
21
+ *
22
+ * Does NOT retry:
23
+ * - HTTP 401/403 (auth errors)
24
+ * - HTTP 400 (bad request)
25
+ * - Other client errors
26
+ */
27
+ function isTransientError(err) {
28
+ if (!(err instanceof Error))
29
+ return false;
30
+ const msg = err.message.toLowerCase();
31
+ // Network / timeout errors
32
+ if (msg.includes('econnreset') ||
33
+ msg.includes('econnrefused') ||
34
+ msg.includes('etimedout') ||
35
+ msg.includes('socket hang up') ||
36
+ msg.includes('network') ||
37
+ msg.includes('timeout')) {
38
+ return true;
39
+ }
40
+ // Check for HTTP status codes in error
41
+ const statusMatch = msg.match(/\b(4\d{2}|5\d{2})\b/);
42
+ if (statusMatch) {
43
+ const status = parseInt(statusMatch[1], 10);
44
+ // Rate limit or server error → retry
45
+ if (status === 429 || status >= 500)
46
+ return true;
47
+ // Other 4xx → permanent
48
+ return false;
49
+ }
50
+ // OpenAI SDK may expose a `status` property
51
+ const errWithStatus = err;
52
+ if (typeof errWithStatus.status === 'number') {
53
+ const s = errWithStatus.status;
54
+ if (s === 429 || s >= 500)
55
+ return true;
56
+ if (s >= 400)
57
+ return false;
58
+ }
59
+ // Unknown error shape — don't retry by default
60
+ return false;
61
+ }
62
+ /**
63
+ * Execute `fn` with exponential backoff retries on transient errors.
64
+ */
65
+ async function withRetry(fn, options) {
66
+ const maxRetries = options?.maxRetries ?? DEFAULT_MAX_RETRIES;
67
+ const baseDelay = options?.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;
68
+ const maxDelay = options?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;
69
+ let attempt = 0;
70
+ // eslint-disable-next-line no-constant-condition
71
+ while (true) {
72
+ try {
73
+ return await fn();
74
+ }
75
+ catch (err) {
76
+ attempt++;
77
+ if (attempt > maxRetries || !isTransientError(err)) {
78
+ throw err;
79
+ }
80
+ // Exponential backoff with jitter
81
+ const delay = Math.min(baseDelay * Math.pow(2, attempt - 1), maxDelay);
82
+ const jitter = delay * (0.5 + Math.random() * 0.5);
83
+ await new Promise((resolve) => setTimeout(resolve, jitter));
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @aspectcode/optimizer — core types.
3
+ *
4
+ * Provider-agnostic interfaces for LLM integration, agent loop
5
+ * configuration, and optimization results.
6
+ */
7
+ /** A single message in a chat conversation. */
8
+ export interface ChatMessage {
9
+ role: 'system' | 'user' | 'assistant';
10
+ content: string;
11
+ }
12
+ /**
13
+ * Provider-agnostic LLM interface.
14
+ *
15
+ * Implementations call a specific API (OpenAI, Anthropic, etc.)
16
+ * and return the assistant's text response.
17
+ */
18
+ export interface LlmProvider {
19
+ /** Human-readable provider name (e.g. "openai", "anthropic"). */
20
+ readonly name: string;
21
+ /** Send a chat completion request and return the assistant reply. */
22
+ chat(messages: ChatMessage[]): Promise<string>;
23
+ }
24
+ /** Options passed to provider factory functions. */
25
+ export interface ProviderOptions {
26
+ /** Model identifier (e.g. "gpt-4o", "claude-sonnet-4-20250514"). */
27
+ model?: string;
28
+ /** Sampling temperature (0–2). */
29
+ temperature?: number;
30
+ /** Max tokens for the response. */
31
+ maxTokens?: number;
32
+ }
33
+ /** Logger interface matching the CLI logger shape. */
34
+ export interface OptLogger {
35
+ info(msg: string): void;
36
+ warn(msg: string): void;
37
+ error(msg: string): void;
38
+ debug(msg: string): void;
39
+ }
40
+ /** Options for a single optimization run. */
41
+ export interface OptimizeOptions {
42
+ /** Current AGENTS.md content. */
43
+ currentInstructions: string;
44
+ /** Full KB content (architecture + map + context). */
45
+ kb: string;
46
+ /** Line-level diff of KB changes (undefined on first run). */
47
+ kbDiff?: string;
48
+ /** Concatenated content from other AI tool instruction files (read-only context). */
49
+ toolInstructions?: string;
50
+ /** Maximum agent iterations (optimize → eval → refine). */
51
+ maxIterations: number;
52
+ /** LLM provider to use. */
53
+ provider: LlmProvider;
54
+ /** Optional logger for progress reporting. */
55
+ log?: OptLogger;
56
+ /** Minimum eval score (1–10) to accept a candidate without further iteration. Default: 8. */
57
+ acceptThreshold?: number;
58
+ /** AbortSignal for cooperative cancellation. */
59
+ signal?: AbortSignal;
60
+ /** Delay in ms between iterations to avoid rate limiting. Default: 0. */
61
+ iterationDelayMs?: number;
62
+ /** Character budget for KB content in prompts. Default: 60000. */
63
+ kbCharBudget?: number;
64
+ }
65
+ /** Self-evaluation result from one iteration. */
66
+ export interface EvalResult {
67
+ /** Quality score 1–10. */
68
+ score: number;
69
+ /** Free-text feedback on the candidate. */
70
+ feedback: string;
71
+ /** Concrete improvement suggestions. */
72
+ suggestions: string[];
73
+ }
74
+ /** Final result of the optimization agent. */
75
+ export interface OptimizeResult {
76
+ /** The optimized instructions content (to be placed between markers). */
77
+ optimizedInstructions: string;
78
+ /** Number of iterations actually executed. */
79
+ iterations: number;
80
+ /** Per-iteration reasoning / eval feedback. */
81
+ reasoning: string[];
82
+ }
83
+ /** Supported provider keys looked up in the environment. */
84
+ export declare const PROVIDER_ENV_KEYS: {
85
+ readonly openai: "OPENAI_API_KEY";
86
+ readonly anthropic: "ANTHROPIC_API_KEY";
87
+ };
88
+ export type ProviderName = keyof typeof PROVIDER_ENV_KEYS;
89
+ /** Optional env-var to force a specific provider. */
90
+ export declare const LLM_PROVIDER_ENV = "LLM_PROVIDER";
91
+ /** Optional env-var to override the default model. */
92
+ export declare const LLM_MODEL_ENV = "LLM_MODEL";
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,qEAAqE;IACrE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,sDAAsD;AACtD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IAEX,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IAEtB,2BAA2B;IAC3B,QAAQ,EAAE,WAAW,CAAC;IAEtB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAC;IAEhB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gDAAgD;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,qBAAqB,EAAE,MAAM,CAAC;IAE9B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAID,4DAA4D;AAC5D,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE1D,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,sDAAsD;AACtD,eAAO,MAAM,aAAa,cAAc,CAAC"}