@ai-coders/context 0.4.0 → 0.5.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 (403) hide show
  1. package/README.md +260 -22
  2. package/dist/fragments/compose.d.ts +30 -0
  3. package/dist/fragments/compose.d.ts.map +1 -0
  4. package/dist/fragments/compose.js +274 -0
  5. package/dist/fragments/compose.js.map +1 -0
  6. package/dist/fragments/extractors/index.d.ts +26 -0
  7. package/dist/fragments/extractors/index.d.ts.map +1 -0
  8. package/dist/fragments/extractors/index.js +58 -0
  9. package/dist/fragments/extractors/index.js.map +1 -0
  10. package/dist/fragments/extractors/module.d.ts +12 -0
  11. package/dist/fragments/extractors/module.d.ts.map +1 -0
  12. package/dist/fragments/extractors/module.js +302 -0
  13. package/dist/fragments/extractors/module.js.map +1 -0
  14. package/dist/fragments/extractors/project.d.ts +12 -0
  15. package/dist/fragments/extractors/project.d.ts.map +1 -0
  16. package/dist/fragments/extractors/project.js +274 -0
  17. package/dist/fragments/extractors/project.js.map +1 -0
  18. package/dist/fragments/extractors/semantic.d.ts +12 -0
  19. package/dist/fragments/extractors/semantic.d.ts.map +1 -0
  20. package/dist/fragments/extractors/semantic.js +329 -0
  21. package/dist/fragments/extractors/semantic.js.map +1 -0
  22. package/dist/fragments/index.d.ts +47 -0
  23. package/dist/fragments/index.d.ts.map +1 -0
  24. package/dist/fragments/index.js +75 -0
  25. package/dist/fragments/index.js.map +1 -0
  26. package/dist/fragments/query.d.ts +101 -0
  27. package/dist/fragments/query.d.ts.map +1 -0
  28. package/dist/fragments/query.js +200 -0
  29. package/dist/fragments/query.js.map +1 -0
  30. package/dist/fragments/render/compact.d.ts +15 -0
  31. package/dist/fragments/render/compact.d.ts.map +1 -0
  32. package/dist/fragments/render/compact.js +209 -0
  33. package/dist/fragments/render/compact.js.map +1 -0
  34. package/dist/fragments/render/index.d.ts +17 -0
  35. package/dist/fragments/render/index.d.ts.map +1 -0
  36. package/dist/fragments/render/index.js +40 -0
  37. package/dist/fragments/render/index.js.map +1 -0
  38. package/dist/fragments/render/json.d.ts +9 -0
  39. package/dist/fragments/render/json.d.ts.map +1 -0
  40. package/dist/fragments/render/json.js +44 -0
  41. package/dist/fragments/render/json.js.map +1 -0
  42. package/dist/fragments/render/markdown.d.ts +9 -0
  43. package/dist/fragments/render/markdown.d.ts.map +1 -0
  44. package/dist/fragments/render/markdown.js +291 -0
  45. package/dist/fragments/render/markdown.js.map +1 -0
  46. package/dist/fragments/store.d.ts +49 -0
  47. package/dist/fragments/store.d.ts.map +1 -0
  48. package/dist/fragments/store.js +161 -0
  49. package/dist/fragments/store.js.map +1 -0
  50. package/dist/fragments/types.d.ts +241 -0
  51. package/dist/fragments/types.d.ts.map +1 -0
  52. package/dist/fragments/types.js +8 -0
  53. package/dist/fragments/types.js.map +1 -0
  54. package/dist/generators/agents/agentGenerator.d.ts +8 -1
  55. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  56. package/dist/generators/agents/agentGenerator.js +108 -10
  57. package/dist/generators/agents/agentGenerator.js.map +1 -1
  58. package/dist/generators/agents/templates/playbookTemplate.d.ts +3 -2
  59. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
  60. package/dist/generators/agents/templates/playbookTemplate.js +143 -45
  61. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
  62. package/dist/generators/agents/templates/types.d.ts +9 -1
  63. package/dist/generators/agents/templates/types.d.ts.map +1 -1
  64. package/dist/generators/documentation/documentationGenerator.d.ts +2 -0
  65. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  66. package/dist/generators/documentation/documentationGenerator.js +18 -3
  67. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  68. package/dist/generators/documentation/guideRegistry.d.ts.map +1 -1
  69. package/dist/generators/documentation/guideRegistry.js +0 -8
  70. package/dist/generators/documentation/guideRegistry.js.map +1 -1
  71. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -1
  72. package/dist/generators/documentation/templates/apiReferenceTemplate.js +1 -22
  73. package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -1
  74. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
  75. package/dist/generators/documentation/templates/architectureTemplate.js +160 -26
  76. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
  77. package/dist/generators/documentation/templates/common.d.ts +28 -1
  78. package/dist/generators/documentation/templates/common.d.ts.map +1 -1
  79. package/dist/generators/documentation/templates/common.js +130 -10
  80. package/dist/generators/documentation/templates/common.js.map +1 -1
  81. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
  82. package/dist/generators/documentation/templates/dataFlowTemplate.js +98 -18
  83. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
  84. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
  85. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +1 -18
  86. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
  87. package/dist/generators/documentation/templates/glossaryTemplate.d.ts +1 -1
  88. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
  89. package/dist/generators/documentation/templates/glossaryTemplate.js +51 -23
  90. package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
  91. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -1
  92. package/dist/generators/documentation/templates/indexTemplate.js +1 -18
  93. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -1
  94. package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -1
  95. package/dist/generators/documentation/templates/migrationTemplate.js +1 -23
  96. package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -1
  97. package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -1
  98. package/dist/generators/documentation/templates/onboardingTemplate.js +1 -23
  99. package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -1
  100. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
  101. package/dist/generators/documentation/templates/projectOverviewTemplate.js +81 -19
  102. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
  103. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
  104. package/dist/generators/documentation/templates/securityTemplate.js +1 -18
  105. package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
  106. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
  107. package/dist/generators/documentation/templates/testingTemplate.js +1 -19
  108. package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
  109. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
  110. package/dist/generators/documentation/templates/toolingTemplate.js +2 -19
  111. package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
  112. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -1
  113. package/dist/generators/documentation/templates/troubleshootingTemplate.js +1 -23
  114. package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -1
  115. package/dist/generators/documentation/templates/types.d.ts +2 -1
  116. package/dist/generators/documentation/templates/types.d.ts.map +1 -1
  117. package/dist/generators/plans/planGenerator.d.ts +4 -0
  118. package/dist/generators/plans/planGenerator.d.ts.map +1 -1
  119. package/dist/generators/plans/planGenerator.js +30 -2
  120. package/dist/generators/plans/planGenerator.js.map +1 -1
  121. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -1
  122. package/dist/generators/plans/templates/indexTemplate.js +3 -12
  123. package/dist/generators/plans/templates/indexTemplate.js.map +1 -1
  124. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
  125. package/dist/generators/plans/templates/planTemplate.js +54 -32
  126. package/dist/generators/plans/templates/planTemplate.js.map +1 -1
  127. package/dist/generators/plans/templates/types.d.ts +10 -0
  128. package/dist/generators/plans/templates/types.d.ts.map +1 -1
  129. package/dist/generators/shared/generatorUtils.d.ts.map +1 -1
  130. package/dist/generators/shared/generatorUtils.js +6 -9
  131. package/dist/generators/shared/generatorUtils.js.map +1 -1
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +430 -90
  134. package/dist/index.js.map +1 -1
  135. package/dist/prompts/defaults.d.ts +2 -2
  136. package/dist/prompts/defaults.d.ts.map +1 -1
  137. package/dist/prompts/defaults.js +26 -56
  138. package/dist/prompts/defaults.js.map +1 -1
  139. package/dist/services/ai/agentEvents.d.ts +45 -0
  140. package/dist/services/ai/agentEvents.d.ts.map +1 -0
  141. package/dist/services/ai/agentEvents.js +61 -0
  142. package/dist/services/ai/agentEvents.js.map +1 -0
  143. package/dist/services/ai/agents/documentationAgent.d.ts +53 -0
  144. package/dist/services/ai/agents/documentationAgent.d.ts.map +1 -0
  145. package/dist/services/ai/agents/documentationAgent.js +243 -0
  146. package/dist/services/ai/agents/documentationAgent.js.map +1 -0
  147. package/dist/services/ai/agents/index.d.ts +7 -0
  148. package/dist/services/ai/agents/index.d.ts.map +1 -0
  149. package/dist/services/ai/agents/index.js +10 -0
  150. package/dist/services/ai/agents/index.js.map +1 -0
  151. package/dist/services/ai/agents/planAgent.d.ts +68 -0
  152. package/dist/services/ai/agents/planAgent.d.ts.map +1 -0
  153. package/dist/services/ai/agents/planAgent.js +389 -0
  154. package/dist/services/ai/agents/planAgent.js.map +1 -0
  155. package/dist/services/ai/agents/playbookAgent.d.ts +54 -0
  156. package/dist/services/ai/agents/playbookAgent.d.ts.map +1 -0
  157. package/dist/services/ai/agents/playbookAgent.js +265 -0
  158. package/dist/services/ai/agents/playbookAgent.js.map +1 -0
  159. package/dist/services/ai/aiSdkClient.d.ts +67 -0
  160. package/dist/services/ai/aiSdkClient.d.ts.map +1 -0
  161. package/dist/services/ai/aiSdkClient.js +143 -0
  162. package/dist/services/ai/aiSdkClient.js.map +1 -0
  163. package/dist/services/ai/index.d.ts +7 -0
  164. package/dist/services/ai/index.d.ts.map +1 -0
  165. package/dist/services/ai/index.js +49 -0
  166. package/dist/services/ai/index.js.map +1 -0
  167. package/dist/services/ai/providerFactory.d.ts +35 -0
  168. package/dist/services/ai/providerFactory.d.ts.map +1 -0
  169. package/dist/services/ai/providerFactory.js +107 -0
  170. package/dist/services/ai/providerFactory.js.map +1 -0
  171. package/dist/services/ai/schemas.d.ts +331 -0
  172. package/dist/services/ai/schemas.d.ts.map +1 -0
  173. package/dist/services/ai/schemas.js +236 -0
  174. package/dist/services/ai/schemas.js.map +1 -0
  175. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts +33 -0
  176. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +1 -0
  177. package/dist/services/ai/tools/analyzeSymbolsTool.js +57 -0
  178. package/dist/services/ai/tools/analyzeSymbolsTool.js.map +1 -0
  179. package/dist/services/ai/tools/checkScaffoldingTool.d.ts +18 -0
  180. package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +1 -0
  181. package/dist/services/ai/tools/checkScaffoldingTool.js +86 -0
  182. package/dist/services/ai/tools/checkScaffoldingTool.js.map +1 -0
  183. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +38 -0
  184. package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -0
  185. package/dist/services/ai/tools/fillScaffoldingTool.js +259 -0
  186. package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -0
  187. package/dist/services/ai/tools/getFileStructureTool.d.ts +29 -0
  188. package/dist/services/ai/tools/getFileStructureTool.d.ts.map +1 -0
  189. package/dist/services/ai/tools/getFileStructureTool.js +48 -0
  190. package/dist/services/ai/tools/getFileStructureTool.js.map +1 -0
  191. package/dist/services/ai/tools/index.d.ts +20 -0
  192. package/dist/services/ai/tools/index.d.ts.map +1 -0
  193. package/dist/services/ai/tools/index.js +62 -0
  194. package/dist/services/ai/tools/index.js.map +1 -0
  195. package/dist/services/ai/tools/initializeContextTool.d.ts +25 -0
  196. package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -0
  197. package/dist/services/ai/tools/initializeContextTool.js +121 -0
  198. package/dist/services/ai/tools/initializeContextTool.js.map +1 -0
  199. package/dist/services/ai/tools/listFilesTool.d.ts +18 -0
  200. package/dist/services/ai/tools/listFilesTool.d.ts.map +1 -0
  201. package/dist/services/ai/tools/listFilesTool.js +34 -0
  202. package/dist/services/ai/tools/listFilesTool.js.map +1 -0
  203. package/dist/services/ai/tools/readFileTool.d.ts +17 -0
  204. package/dist/services/ai/tools/readFileTool.d.ts.map +1 -0
  205. package/dist/services/ai/tools/readFileTool.js +63 -0
  206. package/dist/services/ai/tools/readFileTool.js.map +1 -0
  207. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +19 -0
  208. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -0
  209. package/dist/services/ai/tools/scaffoldPlanTool.js +81 -0
  210. package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -0
  211. package/dist/services/ai/tools/searchCodeTool.d.ts +25 -0
  212. package/dist/services/ai/tools/searchCodeTool.d.ts.map +1 -0
  213. package/dist/services/ai/tools/searchCodeTool.js +96 -0
  214. package/dist/services/ai/tools/searchCodeTool.js.map +1 -0
  215. package/dist/services/fill/fillService.d.ts +11 -1
  216. package/dist/services/fill/fillService.d.ts.map +1 -1
  217. package/dist/services/fill/fillService.js +151 -39
  218. package/dist/services/fill/fillService.js.map +1 -1
  219. package/dist/services/init/initService.d.ts +1 -0
  220. package/dist/services/init/initService.d.ts.map +1 -1
  221. package/dist/services/init/initService.js +12 -7
  222. package/dist/services/init/initService.js.map +1 -1
  223. package/dist/services/llmClientFactory.d.ts +36 -2
  224. package/dist/services/llmClientFactory.d.ts.map +1 -1
  225. package/dist/services/llmClientFactory.js +57 -11
  226. package/dist/services/llmClientFactory.js.map +1 -1
  227. package/dist/services/mcp/index.d.ts +2 -0
  228. package/dist/services/mcp/index.d.ts.map +1 -0
  229. package/dist/services/mcp/index.js +7 -0
  230. package/dist/services/mcp/index.js.map +1 -0
  231. package/dist/services/mcp/mcpServer.d.ts +45 -0
  232. package/dist/services/mcp/mcpServer.d.ts.map +1 -0
  233. package/dist/services/mcp/mcpServer.js +371 -0
  234. package/dist/services/mcp/mcpServer.js.map +1 -0
  235. package/dist/services/openRouterClient.js +1 -1
  236. package/dist/services/openRouterClient.js.map +1 -1
  237. package/dist/services/passthrough/commandRouter.d.ts +53 -0
  238. package/dist/services/passthrough/commandRouter.d.ts.map +1 -0
  239. package/dist/services/passthrough/commandRouter.js +349 -0
  240. package/dist/services/passthrough/commandRouter.js.map +1 -0
  241. package/dist/services/passthrough/index.d.ts +7 -0
  242. package/dist/services/passthrough/index.d.ts.map +1 -0
  243. package/dist/services/passthrough/index.js +23 -0
  244. package/dist/services/passthrough/index.js.map +1 -0
  245. package/dist/services/passthrough/protocol.d.ts +269 -0
  246. package/dist/services/passthrough/protocol.d.ts.map +1 -0
  247. package/dist/services/passthrough/protocol.js +151 -0
  248. package/dist/services/passthrough/protocol.js.map +1 -0
  249. package/dist/services/passthrough/stdinReader.d.ts +42 -0
  250. package/dist/services/passthrough/stdinReader.d.ts.map +1 -0
  251. package/dist/services/passthrough/stdinReader.js +111 -0
  252. package/dist/services/passthrough/stdinReader.js.map +1 -0
  253. package/dist/services/plan/planService.d.ts +3 -1
  254. package/dist/services/plan/planService.d.ts.map +1 -1
  255. package/dist/services/plan/planService.js +49 -41
  256. package/dist/services/plan/planService.js.map +1 -1
  257. package/dist/services/semantic/codebaseAnalyzer.d.ts +40 -0
  258. package/dist/services/semantic/codebaseAnalyzer.d.ts.map +1 -0
  259. package/dist/services/semantic/codebaseAnalyzer.js +540 -0
  260. package/dist/services/semantic/codebaseAnalyzer.js.map +1 -0
  261. package/dist/services/semantic/contextBuilder.d.ts +79 -0
  262. package/dist/services/semantic/contextBuilder.d.ts.map +1 -0
  263. package/dist/services/semantic/contextBuilder.js +538 -0
  264. package/dist/services/semantic/contextBuilder.js.map +1 -0
  265. package/dist/services/semantic/index.d.ts +12 -0
  266. package/dist/services/semantic/index.d.ts.map +1 -0
  267. package/dist/services/semantic/index.js +33 -0
  268. package/dist/services/semantic/index.js.map +1 -0
  269. package/dist/services/semantic/lsp/index.d.ts +2 -0
  270. package/dist/services/semantic/lsp/index.d.ts.map +1 -0
  271. package/dist/services/semantic/lsp/index.js +6 -0
  272. package/dist/services/semantic/lsp/index.js.map +1 -0
  273. package/dist/services/semantic/lsp/lspLayer.d.ts +32 -0
  274. package/dist/services/semantic/lsp/lspLayer.d.ts.map +1 -0
  275. package/dist/services/semantic/lsp/lspLayer.js +378 -0
  276. package/dist/services/semantic/lsp/lspLayer.js.map +1 -0
  277. package/dist/services/semantic/treeSitter/index.d.ts +2 -0
  278. package/dist/services/semantic/treeSitter/index.d.ts.map +1 -0
  279. package/dist/services/semantic/treeSitter/index.js +6 -0
  280. package/dist/services/semantic/treeSitter/index.js.map +1 -0
  281. package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts +37 -0
  282. package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts.map +1 -0
  283. package/dist/services/semantic/treeSitter/treeSitterLayer.js +518 -0
  284. package/dist/services/semantic/treeSitter/treeSitterLayer.js.map +1 -0
  285. package/dist/services/semantic/types.d.ts +122 -0
  286. package/dist/services/semantic/types.d.ts.map +1 -0
  287. package/dist/services/semantic/types.js +31 -0
  288. package/dist/services/semantic/types.js.map +1 -0
  289. package/dist/services/serve/index.d.ts +2 -0
  290. package/dist/services/serve/index.d.ts.map +1 -0
  291. package/dist/services/serve/index.js +6 -0
  292. package/dist/services/serve/index.js.map +1 -0
  293. package/dist/services/serve/serveService.d.ts +38 -0
  294. package/dist/services/serve/serveService.d.ts.map +1 -0
  295. package/dist/services/serve/serveService.js +99 -0
  296. package/dist/services/serve/serveService.js.map +1 -0
  297. package/dist/services/shared/llmConfig.d.ts +19 -3
  298. package/dist/services/shared/llmConfig.d.ts.map +1 -1
  299. package/dist/services/shared/llmConfig.js +39 -10
  300. package/dist/services/shared/llmConfig.js.map +1 -1
  301. package/dist/services/sync/index.d.ts +6 -0
  302. package/dist/services/sync/index.d.ts.map +1 -0
  303. package/dist/services/sync/index.js +16 -0
  304. package/dist/services/sync/index.js.map +1 -0
  305. package/dist/services/sync/markdownReferenceHandler.d.ts +3 -0
  306. package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -0
  307. package/dist/services/sync/markdownReferenceHandler.js +133 -0
  308. package/dist/services/sync/markdownReferenceHandler.js.map +1 -0
  309. package/dist/services/sync/presets.d.ts +6 -0
  310. package/dist/services/sync/presets.d.ts.map +1 -0
  311. package/dist/services/sync/presets.js +49 -0
  312. package/dist/services/sync/presets.js.map +1 -0
  313. package/dist/services/sync/symlinkHandler.d.ts +7 -0
  314. package/dist/services/sync/symlinkHandler.d.ts.map +1 -0
  315. package/dist/services/sync/symlinkHandler.js +129 -0
  316. package/dist/services/sync/symlinkHandler.js.map +1 -0
  317. package/dist/services/sync/syncService.d.ts +15 -0
  318. package/dist/services/sync/syncService.d.ts.map +1 -0
  319. package/dist/services/sync/syncService.js +222 -0
  320. package/dist/services/sync/syncService.js.map +1 -0
  321. package/dist/services/sync/types.d.ts +62 -0
  322. package/dist/services/sync/types.d.ts.map +1 -0
  323. package/dist/services/sync/types.js +3 -0
  324. package/dist/services/sync/types.js.map +1 -0
  325. package/dist/types.d.ts +2 -1
  326. package/dist/types.d.ts.map +1 -1
  327. package/dist/utils/cliUI.d.ts +33 -0
  328. package/dist/utils/cliUI.d.ts.map +1 -1
  329. package/dist/utils/cliUI.js +157 -107
  330. package/dist/utils/cliUI.js.map +1 -1
  331. package/dist/utils/contentSanitizer.d.ts +42 -0
  332. package/dist/utils/contentSanitizer.d.ts.map +1 -0
  333. package/dist/utils/contentSanitizer.js +238 -0
  334. package/dist/utils/contentSanitizer.js.map +1 -0
  335. package/dist/utils/gitService.d.ts.map +1 -1
  336. package/dist/utils/gitService.js +12 -14
  337. package/dist/utils/gitService.js.map +1 -1
  338. package/dist/utils/i18n.d.ts +87 -13
  339. package/dist/utils/i18n.d.ts.map +1 -1
  340. package/dist/utils/i18n.js +176 -28
  341. package/dist/utils/i18n.js.map +1 -1
  342. package/dist/utils/prompts/configSummary.d.ts +7 -0
  343. package/dist/utils/prompts/configSummary.d.ts.map +1 -0
  344. package/dist/utils/prompts/configSummary.js +63 -0
  345. package/dist/utils/prompts/configSummary.js.map +1 -0
  346. package/dist/utils/prompts/index.d.ts +22 -0
  347. package/dist/utils/prompts/index.d.ts.map +1 -0
  348. package/dist/utils/prompts/index.js +122 -0
  349. package/dist/utils/prompts/index.js.map +1 -0
  350. package/dist/utils/prompts/llmPrompts.d.ts +11 -0
  351. package/dist/utils/prompts/llmPrompts.d.ts.map +1 -0
  352. package/dist/utils/prompts/llmPrompts.js +96 -0
  353. package/dist/utils/prompts/llmPrompts.js.map +1 -0
  354. package/dist/utils/prompts/smartDefaults.d.ts +15 -0
  355. package/dist/utils/prompts/smartDefaults.d.ts.map +1 -0
  356. package/dist/utils/prompts/smartDefaults.js +105 -0
  357. package/dist/utils/prompts/smartDefaults.js.map +1 -0
  358. package/dist/utils/prompts/types.d.ts +38 -0
  359. package/dist/utils/prompts/types.d.ts.map +1 -0
  360. package/dist/utils/prompts/types.js +3 -0
  361. package/dist/utils/prompts/types.js.map +1 -0
  362. package/dist/utils/theme.d.ts +66 -0
  363. package/dist/utils/theme.d.ts.map +1 -0
  364. package/dist/utils/theme.js +93 -0
  365. package/dist/utils/theme.js.map +1 -0
  366. package/dist/version.d.ts +8 -0
  367. package/dist/version.d.ts.map +1 -0
  368. package/dist/version.js +15 -0
  369. package/dist/version.js.map +1 -0
  370. package/package.json +12 -2
  371. package/prompts/update_scaffold_prompt.md +14 -34
  372. package/dist/commands/shared/agents.d.ts +0 -2
  373. package/dist/commands/shared/agents.d.ts.map +0 -1
  374. package/dist/commands/shared/agents.js +0 -15
  375. package/dist/commands/shared/agents.js.map +0 -1
  376. package/dist/commands/shared/selection.d.ts +0 -12
  377. package/dist/commands/shared/selection.d.ts.map +0 -1
  378. package/dist/commands/shared/selection.js +0 -95
  379. package/dist/commands/shared/selection.js.map +0 -1
  380. package/dist/generators/documentation/templates/frontMatter.d.ts +0 -11
  381. package/dist/generators/documentation/templates/frontMatter.d.ts.map +0 -1
  382. package/dist/generators/documentation/templates/frontMatter.js +0 -29
  383. package/dist/generators/documentation/templates/frontMatter.js.map +0 -1
  384. package/dist/services/anthropicClient.d.ts +0 -12
  385. package/dist/services/anthropicClient.d.ts.map +0 -1
  386. package/dist/services/anthropicClient.js +0 -98
  387. package/dist/services/anthropicClient.js.map +0 -1
  388. package/dist/services/geminiClient.d.ts +0 -12
  389. package/dist/services/geminiClient.d.ts.map +0 -1
  390. package/dist/services/geminiClient.js +0 -96
  391. package/dist/services/geminiClient.js.map +0 -1
  392. package/dist/services/grokClient.d.ts +0 -12
  393. package/dist/services/grokClient.d.ts.map +0 -1
  394. package/dist/services/grokClient.js +0 -101
  395. package/dist/services/grokClient.js.map +0 -1
  396. package/dist/services/openaiClient.d.ts +0 -12
  397. package/dist/services/openaiClient.d.ts.map +0 -1
  398. package/dist/services/openaiClient.js +0 -98
  399. package/dist/services/openaiClient.js.map +0 -1
  400. package/dist/utils/pricing.d.ts +0 -14
  401. package/dist/utils/pricing.d.ts.map +0 -1
  402. package/dist/utils/pricing.js +0 -115
  403. package/dist/utils/pricing.js.map +0 -1
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlaybookAgent = void 0;
4
+ const ai_1 = require("ai");
5
+ const providerFactory_1 = require("../providerFactory");
6
+ const tools_1 = require("../tools");
7
+ const schemas_1 = require("../schemas");
8
+ const agentEvents_1 = require("../agentEvents");
9
+ const semantic_1 = require("../../semantic");
10
+ const contentSanitizer_1 = require("../../../utils/contentSanitizer");
11
+ const SYSTEM_PROMPT = `You are an expert at creating AI agent playbooks for software development.
12
+
13
+ You have access to code analysis tools. Use them to understand the codebase before generating the playbook.
14
+
15
+ A good playbook includes:
16
+ 1. Clear understanding of what files/areas the agent should focus on
17
+ 2. Specific workflows and steps for common tasks
18
+ 3. Best practices derived from the actual codebase
19
+ 4. Relevant code patterns and conventions
20
+ 5. Key files and their purposes
21
+
22
+ Use the tools to discover:
23
+ - Relevant source files for the agent type
24
+ - Test files and testing patterns
25
+ - Configuration files
26
+ - Existing documentation
27
+ - Code patterns and conventions
28
+
29
+ IMPORTANT OUTPUT FORMAT:
30
+ - Output ONLY the final playbook content in Markdown format
31
+ - Do NOT include your reasoning, planning, or analysis process
32
+ - Do NOT start with phrases like "I will...", "Let me...", "First, I need to..."
33
+ - Begin directly with the playbook title or content structure
34
+ - Your response will be saved directly to a .md file`;
35
+ const AGENT_TYPE_FOCUS = {
36
+ 'code-reviewer': ['**/*.ts', '**/*.tsx', '.eslintrc*', 'tsconfig.json'],
37
+ 'bug-fixer': ['**/*.ts', '**/*.test.ts', '**/error*', '**/exception*'],
38
+ 'feature-developer': ['src/**/*', 'package.json', 'README.md'],
39
+ 'refactoring-specialist': ['src/**/*.ts', 'tsconfig.json', '.eslintrc*'],
40
+ 'test-writer': ['**/*.test.ts', '**/*.spec.ts', 'jest.config*', 'vitest.config*'],
41
+ 'documentation-writer': ['**/*.md', 'docs/**/*', 'README.md', 'src/**/*.ts'],
42
+ 'performance-optimizer': ['**/*.ts', 'webpack.config*', 'package.json'],
43
+ 'security-auditor': ['**/*.ts', '.env*', 'package.json', '**/auth*', '**/security*'],
44
+ 'backend-specialist': ['src/services/**/*', 'src/api/**/*', 'server/**/*'],
45
+ 'frontend-specialist': ['src/components/**/*', 'src/pages/**/*', '**/*.tsx', '**/*.css'],
46
+ 'architect-specialist': ['src/**/*', 'package.json', 'tsconfig.json', 'docs/**/*'],
47
+ 'devops-specialist': ['Dockerfile*', 'docker-compose*', '.github/**/*', 'ci/**/*'],
48
+ 'database-specialist': ['**/models/**/*', '**/migrations/**/*', '**/schema*', 'prisma/**/*'],
49
+ 'mobile-specialist': ['**/*.tsx', 'app/**/*', 'expo*', 'react-native*']
50
+ };
51
+ class PlaybookAgent {
52
+ constructor(config) {
53
+ this.config = config;
54
+ this.providerResult = (0, providerFactory_1.createProvider)(config);
55
+ this.tools = (0, tools_1.getCodeAnalysisTools)();
56
+ }
57
+ /**
58
+ * Generate a playbook using tools for context gathering
59
+ */
60
+ async generatePlaybook(options) {
61
+ const { repoPath, agentType, existingContext, maxSteps = 12, maxOutputTokens = 8000, callbacks, useSemanticContext = true, useLSP = false } = options;
62
+ // Emit agent start event
63
+ callbacks?.onAgentStart?.({ agent: 'playbook', target: agentType });
64
+ // Use semantic context mode for token efficiency
65
+ if (useSemanticContext) {
66
+ return this.generateWithSemanticContext(repoPath, agentType, existingContext, maxOutputTokens, callbacks, useLSP);
67
+ }
68
+ // Tool-based mode for thorough analysis
69
+ return this.generateWithTools(repoPath, agentType, existingContext, maxSteps, maxOutputTokens, callbacks);
70
+ }
71
+ /**
72
+ * Generate playbook using pre-computed semantic context (more token efficient)
73
+ */
74
+ async generateWithSemanticContext(repoPath, agentType, existingContext, maxOutputTokens, callbacks, useLSP = false) {
75
+ const toolName = useLSP ? 'semanticAnalysis+LSP' : 'semanticAnalysis';
76
+ callbacks?.onToolCall?.({
77
+ agent: 'playbook',
78
+ toolName,
79
+ args: { repoPath, agentType, useLSP }
80
+ });
81
+ // Create context builder with LSP option
82
+ const contextBuilder = new semantic_1.SemanticContextBuilder({ useLSP });
83
+ // Pre-compute semantic context
84
+ const semanticContext = await contextBuilder.buildPlaybookContext(repoPath, agentType);
85
+ // Cleanup LSP servers if enabled
86
+ await contextBuilder.shutdown();
87
+ callbacks?.onToolResult?.({
88
+ agent: 'playbook',
89
+ toolName,
90
+ success: true,
91
+ summary: `Analyzed codebase for ${agentType}${useLSP ? ' with LSP' : ''}: ${semanticContext.length} chars of context`
92
+ });
93
+ const userPrompt = `Generate a comprehensive playbook for a ${agentType} agent.
94
+
95
+ Repository: ${repoPath}
96
+
97
+ ${semanticContext}
98
+
99
+ ${existingContext ? `Existing context:\n${existingContext}` : ''}
100
+
101
+ Generate a detailed, actionable playbook with:
102
+ 1. Clear understanding of what files/areas the agent should focus on
103
+ 2. Specific workflows and steps for common tasks
104
+ 3. Best practices derived from the actual codebase
105
+ 4. Key files and their purposes`;
106
+ const { provider, modelId } = this.providerResult;
107
+ const result = await (0, ai_1.generateText)({
108
+ model: provider(modelId),
109
+ system: SYSTEM_PROMPT,
110
+ prompt: userPrompt,
111
+ maxOutputTokens
112
+ });
113
+ // Emit agent complete event
114
+ callbacks?.onAgentComplete?.({ agent: 'playbook', toolsUsed: [toolName], steps: 1 });
115
+ return {
116
+ text: (0, contentSanitizer_1.sanitizeAIResponse)(result.text, { preserveFrontMatter: true }),
117
+ toolsUsed: [toolName],
118
+ steps: 1
119
+ };
120
+ }
121
+ /**
122
+ * Generate playbook using multi-step tool-based exploration (more thorough)
123
+ */
124
+ async generateWithTools(repoPath, agentType, existingContext, maxSteps, maxOutputTokens, callbacks) {
125
+ const focusPatterns = AGENT_TYPE_FOCUS[agentType] || ['src/**/*'];
126
+ const userPrompt = `Generate a comprehensive playbook for a ${agentType} agent.
127
+
128
+ Repository: ${repoPath}
129
+ Focus patterns: ${focusPatterns.join(', ')}
130
+ ${existingContext ? `Existing context:\n${existingContext}` : ''}
131
+
132
+ Use the tools to analyze the codebase and identify:
133
+ - Relevant files for this agent type
134
+ - Patterns and conventions
135
+ - Testing strategies (if applicable)
136
+ - Key workflows
137
+
138
+ Then generate a detailed, actionable playbook.`;
139
+ const { provider, modelId } = this.providerResult;
140
+ let stepCount = 0;
141
+ const result = await (0, ai_1.generateText)({
142
+ model: provider(modelId),
143
+ system: SYSTEM_PROMPT,
144
+ prompt: userPrompt,
145
+ tools: this.tools,
146
+ stopWhen: (0, ai_1.stepCountIs)(maxSteps),
147
+ maxOutputTokens,
148
+ onStepFinish: (step) => {
149
+ stepCount++;
150
+ callbacks?.onAgentStep?.({ agent: 'playbook', step: stepCount });
151
+ for (const toolCall of step.toolCalls || []) {
152
+ callbacks?.onToolCall?.({
153
+ agent: 'playbook',
154
+ toolName: toolCall.toolName,
155
+ args: 'args' in toolCall ? toolCall.args : undefined
156
+ });
157
+ const toolResult = step.toolResults?.find((r) => 'toolCallId' in r && r.toolCallId === toolCall.toolCallId);
158
+ if (toolResult && 'result' in toolResult) {
159
+ callbacks?.onToolResult?.({
160
+ agent: 'playbook',
161
+ toolName: toolCall.toolName,
162
+ success: true,
163
+ summary: (0, agentEvents_1.summarizeToolResult)(toolCall.toolName, toolResult.result)
164
+ });
165
+ }
166
+ }
167
+ }
168
+ });
169
+ // Extract tool names used
170
+ const toolsUsed = new Set();
171
+ for (const step of result.steps || []) {
172
+ for (const toolCall of step.toolCalls || []) {
173
+ toolsUsed.add(toolCall.toolName);
174
+ }
175
+ }
176
+ const toolsUsedArray = Array.from(toolsUsed);
177
+ const totalSteps = result.steps?.length || 1;
178
+ // Emit agent complete event
179
+ callbacks?.onAgentComplete?.({ agent: 'playbook', toolsUsed: toolsUsedArray, steps: totalSteps });
180
+ return {
181
+ text: (0, contentSanitizer_1.sanitizeAIResponse)(result.text, { preserveFrontMatter: true }),
182
+ toolsUsed: toolsUsedArray,
183
+ steps: totalSteps
184
+ };
185
+ }
186
+ /**
187
+ * Generate structured playbook output
188
+ */
189
+ async generateStructuredPlaybook(options) {
190
+ const { repoPath, agentType, existingContext, maxSteps = 8, maxOutputTokens = 8000, callbacks } = options;
191
+ // Emit agent start event
192
+ callbacks?.onAgentStart?.({ agent: 'playbook', target: agentType });
193
+ const focusPatterns = AGENT_TYPE_FOCUS[agentType] || ['src/**/*'];
194
+ const analysisPrompt = `For a ${agentType} agent working in ${repoPath}, find:
195
+ 1. Relevant source files (focus on: ${focusPatterns.join(', ')})
196
+ 2. Test files and patterns
197
+ 3. Configuration files
198
+ 4. Documentation
199
+ ${existingContext ? `\nExisting context: ${existingContext}` : ''}`;
200
+ const { provider, modelId } = this.providerResult;
201
+ let stepCount = 0;
202
+ // First gather context using tools
203
+ const analysisResult = await (0, ai_1.generateText)({
204
+ model: provider(modelId),
205
+ system: 'Analyze the codebase for the specified agent type.',
206
+ prompt: analysisPrompt,
207
+ tools: this.tools,
208
+ stopWhen: (0, ai_1.stepCountIs)(maxSteps),
209
+ maxOutputTokens: Math.floor(maxOutputTokens / 2),
210
+ onStepFinish: (step) => {
211
+ stepCount++;
212
+ callbacks?.onAgentStep?.({ agent: 'playbook', step: stepCount });
213
+ for (const toolCall of step.toolCalls || []) {
214
+ callbacks?.onToolCall?.({
215
+ agent: 'playbook',
216
+ toolName: toolCall.toolName,
217
+ args: 'args' in toolCall ? toolCall.args : undefined
218
+ });
219
+ const toolResult = step.toolResults?.find((r) => 'toolCallId' in r && r.toolCallId === toolCall.toolCallId);
220
+ if (toolResult && 'result' in toolResult) {
221
+ callbacks?.onToolResult?.({
222
+ agent: 'playbook',
223
+ toolName: toolCall.toolName,
224
+ success: true,
225
+ summary: (0, agentEvents_1.summarizeToolResult)(toolCall.toolName, toolResult.result)
226
+ });
227
+ }
228
+ }
229
+ }
230
+ });
231
+ // Extract tool names used
232
+ const toolsUsed = new Set();
233
+ for (const step of analysisResult.steps || []) {
234
+ for (const toolCall of step.toolCalls || []) {
235
+ toolsUsed.add(toolCall.toolName);
236
+ }
237
+ }
238
+ // Then generate structured playbook
239
+ const playbook = await (0, ai_1.generateObject)({
240
+ model: provider(modelId),
241
+ schema: schemas_1.AgentPlaybookSchema,
242
+ system: 'Generate a structured agent playbook based on the analysis.',
243
+ prompt: `Analysis:\n${analysisResult.text}\n\nGenerate a structured playbook for: ${agentType}`,
244
+ maxOutputTokens: Math.floor(maxOutputTokens / 2)
245
+ });
246
+ const toolsUsedArray = Array.from(toolsUsed);
247
+ // Emit agent complete event
248
+ callbacks?.onAgentComplete?.({ agent: 'playbook', toolsUsed: toolsUsedArray, steps: stepCount });
249
+ return {
250
+ playbook: playbook.object,
251
+ toolsUsed: toolsUsedArray
252
+ };
253
+ }
254
+ /**
255
+ * Get the current configuration
256
+ */
257
+ getConfig() {
258
+ return {
259
+ provider: this.config.provider,
260
+ model: this.providerResult.modelId
261
+ };
262
+ }
263
+ }
264
+ exports.PlaybookAgent = PlaybookAgent;
265
+ //# sourceMappingURL=playbookAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbookAgent.js","sourceRoot":"","sources":["../../../../src/services/ai/agents/playbookAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { ToolSet } from 'ai';
2
+ import type { z } from 'zod';
3
+ import { BaseLLMClient } from '../baseLLMClient';
4
+ import type { LLMConfig } from '../../types';
5
+ export declare class AISdkClient extends BaseLLMClient {
6
+ private providerResult;
7
+ private config;
8
+ private tools;
9
+ constructor(config: LLMConfig);
10
+ /**
11
+ * Sets the tools available for tool-enabled generation
12
+ */
13
+ setTools(tools: ToolSet): void;
14
+ /**
15
+ * Gets the configured tools
16
+ */
17
+ getTools(): ToolSet;
18
+ /**
19
+ * Basic text generation (compatible with BaseLLMClient interface)
20
+ */
21
+ generateText(prompt: string, systemPrompt?: string): Promise<string>;
22
+ /**
23
+ * Text generation with tool usage enabled
24
+ */
25
+ generateWithTools(prompt: string, systemPrompt?: string, options?: {
26
+ enabledTools?: string[];
27
+ maxSteps?: number;
28
+ maxOutputTokens?: number;
29
+ }): Promise<{
30
+ text: string;
31
+ toolCalls: Array<{
32
+ toolName: string;
33
+ args: unknown;
34
+ result: unknown;
35
+ }>;
36
+ steps: number;
37
+ }>;
38
+ /**
39
+ * Generate structured output conforming to a Zod schema
40
+ */
41
+ generateStructured<T>(prompt: string, schema: z.ZodSchema<T>, systemPrompt?: string, options?: {
42
+ maxOutputTokens?: number;
43
+ }): Promise<T>;
44
+ /**
45
+ * Generate text with tools and then produce structured output
46
+ */
47
+ generateWithToolsAndStructure<T>(prompt: string, schema: z.ZodSchema<T>, systemPrompt?: string, options?: {
48
+ enabledTools?: string[];
49
+ maxSteps?: number;
50
+ maxOutputTokens?: number;
51
+ }): Promise<{
52
+ object: T;
53
+ toolCalls: Array<{
54
+ toolName: string;
55
+ args: unknown;
56
+ result: unknown;
57
+ }>;
58
+ }>;
59
+ /**
60
+ * Get the current provider configuration
61
+ */
62
+ getProviderConfig(): {
63
+ provider: string;
64
+ model: string;
65
+ };
66
+ }
67
+ //# sourceMappingURL=aiSdkClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiSdkClient.d.ts","sourceRoot":"","sources":["../../../src/services/ai/aiSdkClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAsB,OAAO,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,WAAY,SAAQ,aAAa;IAC5C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAe;gBAEhB,MAAM,EAAE,SAAS;IAM7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B1E;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACvE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAqDF;;OAEG;IACG,kBAAkB,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,CAAC,CAAC;IAqBb;;OAEG;IACG,6BAA6B,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC;QACT,MAAM,EAAE,CAAC,CAAC;QACV,SAAS,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACxE,CAAC;IAmBF;;OAEG;IACH,iBAAiB,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAMzD"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AISdkClient = void 0;
4
+ const ai_1 = require("ai");
5
+ const baseLLMClient_1 = require("../baseLLMClient");
6
+ const providerFactory_1 = require("./providerFactory");
7
+ class AISdkClient extends baseLLMClient_1.BaseLLMClient {
8
+ constructor(config) {
9
+ super(config.model);
10
+ this.tools = {};
11
+ this.config = config;
12
+ this.providerResult = (0, providerFactory_1.createProvider)(config);
13
+ }
14
+ /**
15
+ * Sets the tools available for tool-enabled generation
16
+ */
17
+ setTools(tools) {
18
+ this.tools = tools;
19
+ }
20
+ /**
21
+ * Gets the configured tools
22
+ */
23
+ getTools() {
24
+ return this.tools;
25
+ }
26
+ /**
27
+ * Basic text generation (compatible with BaseLLMClient interface)
28
+ */
29
+ async generateText(prompt, systemPrompt) {
30
+ const messages = [];
31
+ if (systemPrompt) {
32
+ messages.push({ role: 'system', content: systemPrompt });
33
+ }
34
+ messages.push({ role: 'user', content: prompt });
35
+ const { provider, modelId } = this.providerResult;
36
+ const result = await (0, ai_1.generateText)({
37
+ model: provider(modelId),
38
+ messages,
39
+ maxOutputTokens: 4000,
40
+ temperature: 0.7
41
+ });
42
+ this.trackUsage({
43
+ prompt_tokens: result.usage?.inputTokens || 0,
44
+ completion_tokens: result.usage?.outputTokens || 0,
45
+ total_tokens: (result.usage?.inputTokens || 0) + (result.usage?.outputTokens || 0)
46
+ });
47
+ return result.text;
48
+ }
49
+ /**
50
+ * Text generation with tool usage enabled
51
+ */
52
+ async generateWithTools(prompt, systemPrompt, options) {
53
+ const { enabledTools, maxSteps = 10, maxOutputTokens = 8000 } = options || {};
54
+ const activeTools = enabledTools
55
+ ? Object.fromEntries(Object.entries(this.tools).filter(([name]) => enabledTools.includes(name)))
56
+ : this.tools;
57
+ const messages = [];
58
+ if (systemPrompt) {
59
+ messages.push({ role: 'system', content: systemPrompt });
60
+ }
61
+ messages.push({ role: 'user', content: prompt });
62
+ const { provider, modelId } = this.providerResult;
63
+ const result = await (0, ai_1.generateText)({
64
+ model: provider(modelId),
65
+ messages,
66
+ tools: activeTools,
67
+ maxOutputTokens,
68
+ stopWhen: (0, ai_1.stepCountIs)(maxSteps)
69
+ });
70
+ this.trackUsage({
71
+ prompt_tokens: result.usage?.inputTokens || 0,
72
+ completion_tokens: result.usage?.outputTokens || 0,
73
+ total_tokens: (result.usage?.inputTokens || 0) + (result.usage?.outputTokens || 0)
74
+ });
75
+ // Extract tool calls from all steps
76
+ const toolCalls = [];
77
+ for (const step of result.steps || []) {
78
+ for (const toolCall of step.toolCalls || []) {
79
+ const toolResult = step.toolResults?.find((r) => 'toolCallId' in r && r.toolCallId === toolCall.toolCallId);
80
+ toolCalls.push({
81
+ toolName: toolCall.toolName,
82
+ args: 'args' in toolCall ? toolCall.args : undefined,
83
+ result: toolResult && 'result' in toolResult ? toolResult.result : undefined
84
+ });
85
+ }
86
+ }
87
+ return {
88
+ text: result.text,
89
+ toolCalls,
90
+ steps: result.steps?.length || 1
91
+ };
92
+ }
93
+ /**
94
+ * Generate structured output conforming to a Zod schema
95
+ */
96
+ async generateStructured(prompt, schema, systemPrompt, options) {
97
+ const { maxOutputTokens = 4000 } = options || {};
98
+ const { provider, modelId } = this.providerResult;
99
+ const result = await (0, ai_1.generateObject)({
100
+ model: provider(modelId),
101
+ schema,
102
+ system: systemPrompt,
103
+ prompt,
104
+ maxOutputTokens
105
+ });
106
+ this.trackUsage({
107
+ prompt_tokens: result.usage?.inputTokens || 0,
108
+ completion_tokens: result.usage?.outputTokens || 0,
109
+ total_tokens: (result.usage?.inputTokens || 0) + (result.usage?.outputTokens || 0)
110
+ });
111
+ return result.object;
112
+ }
113
+ /**
114
+ * Generate text with tools and then produce structured output
115
+ */
116
+ async generateWithToolsAndStructure(prompt, schema, systemPrompt, options) {
117
+ // First, gather context using tools
118
+ const toolResult = await this.generateWithTools(prompt, systemPrompt, {
119
+ ...options,
120
+ maxOutputTokens: (options?.maxOutputTokens || 8000) / 2
121
+ });
122
+ // Then generate structured output based on the analysis
123
+ const structuredPrompt = `Based on this analysis:\n\n${toolResult.text}\n\nGenerate the structured output.`;
124
+ const object = await this.generateStructured(structuredPrompt, schema, systemPrompt, {
125
+ maxOutputTokens: (options?.maxOutputTokens || 8000) / 2
126
+ });
127
+ return {
128
+ object,
129
+ toolCalls: toolResult.toolCalls
130
+ };
131
+ }
132
+ /**
133
+ * Get the current provider configuration
134
+ */
135
+ getProviderConfig() {
136
+ return {
137
+ provider: this.config.provider,
138
+ model: this.providerResult.modelId
139
+ };
140
+ }
141
+ }
142
+ exports.AISdkClient = AISdkClient;
143
+ //# sourceMappingURL=aiSdkClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiSdkClient.js","sourceRoot":"","sources":["../../../src/services/ai/aiSdkClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { AISdkClient } from './aiSdkClient';
2
+ export { createProvider, detectProviderFromEnv, getApiKeyFromEnv, getModelFromEnv, DEFAULT_MODELS, PROVIDER_ENV_VARS, type ProviderInstance, type ProviderResult } from './providerFactory';
3
+ export * from './schemas';
4
+ export { getCodeAnalysisTools, readFileTool, listFilesTool, analyzeSymbolsTool, getFileStructureTool, searchCodeTool, TOOL_NAMES, type ToolName } from './tools';
5
+ export { DocumentationAgent, PlaybookAgent, PlanAgent, type DocumentationAgentOptions, type DocumentationAgentResult, type PlaybookAgentOptions, type PlaybookAgentResult, type PlanAgentOptions, type PlanAgentResult } from './agents';
6
+ export { type AgentType, type AgentStartEvent, type AgentStepEvent, type ToolCallEvent, type ToolResultEvent, type AgentCompleteEvent, type AgentEventCallbacks, summarizeToolArgs, summarizeToolResult } from './agentEvents';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/ai/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,WAAW,CAAC;AAG1B,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,KAAK,QAAQ,EACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.summarizeToolResult = exports.summarizeToolArgs = exports.PlanAgent = exports.PlaybookAgent = exports.DocumentationAgent = exports.TOOL_NAMES = exports.searchCodeTool = exports.getFileStructureTool = exports.analyzeSymbolsTool = exports.listFilesTool = exports.readFileTool = exports.getCodeAnalysisTools = exports.PROVIDER_ENV_VARS = exports.DEFAULT_MODELS = exports.getModelFromEnv = exports.getApiKeyFromEnv = exports.detectProviderFromEnv = exports.createProvider = exports.AISdkClient = void 0;
18
+ // Main AI SDK client
19
+ var aiSdkClient_1 = require("./aiSdkClient");
20
+ Object.defineProperty(exports, "AISdkClient", { enumerable: true, get: function () { return aiSdkClient_1.AISdkClient; } });
21
+ // Provider factory
22
+ var providerFactory_1 = require("./providerFactory");
23
+ Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return providerFactory_1.createProvider; } });
24
+ Object.defineProperty(exports, "detectProviderFromEnv", { enumerable: true, get: function () { return providerFactory_1.detectProviderFromEnv; } });
25
+ Object.defineProperty(exports, "getApiKeyFromEnv", { enumerable: true, get: function () { return providerFactory_1.getApiKeyFromEnv; } });
26
+ Object.defineProperty(exports, "getModelFromEnv", { enumerable: true, get: function () { return providerFactory_1.getModelFromEnv; } });
27
+ Object.defineProperty(exports, "DEFAULT_MODELS", { enumerable: true, get: function () { return providerFactory_1.DEFAULT_MODELS; } });
28
+ Object.defineProperty(exports, "PROVIDER_ENV_VARS", { enumerable: true, get: function () { return providerFactory_1.PROVIDER_ENV_VARS; } });
29
+ // Schemas
30
+ __exportStar(require("./schemas"), exports);
31
+ // Tools
32
+ var tools_1 = require("./tools");
33
+ Object.defineProperty(exports, "getCodeAnalysisTools", { enumerable: true, get: function () { return tools_1.getCodeAnalysisTools; } });
34
+ Object.defineProperty(exports, "readFileTool", { enumerable: true, get: function () { return tools_1.readFileTool; } });
35
+ Object.defineProperty(exports, "listFilesTool", { enumerable: true, get: function () { return tools_1.listFilesTool; } });
36
+ Object.defineProperty(exports, "analyzeSymbolsTool", { enumerable: true, get: function () { return tools_1.analyzeSymbolsTool; } });
37
+ Object.defineProperty(exports, "getFileStructureTool", { enumerable: true, get: function () { return tools_1.getFileStructureTool; } });
38
+ Object.defineProperty(exports, "searchCodeTool", { enumerable: true, get: function () { return tools_1.searchCodeTool; } });
39
+ Object.defineProperty(exports, "TOOL_NAMES", { enumerable: true, get: function () { return tools_1.TOOL_NAMES; } });
40
+ // Agents
41
+ var agents_1 = require("./agents");
42
+ Object.defineProperty(exports, "DocumentationAgent", { enumerable: true, get: function () { return agents_1.DocumentationAgent; } });
43
+ Object.defineProperty(exports, "PlaybookAgent", { enumerable: true, get: function () { return agents_1.PlaybookAgent; } });
44
+ Object.defineProperty(exports, "PlanAgent", { enumerable: true, get: function () { return agents_1.PlanAgent; } });
45
+ // Agent Events
46
+ var agentEvents_1 = require("./agentEvents");
47
+ Object.defineProperty(exports, "summarizeToolArgs", { enumerable: true, get: function () { return agentEvents_1.summarizeToolArgs; } });
48
+ Object.defineProperty(exports, "summarizeToolResult", { enumerable: true, get: function () { return agentEvents_1.summarizeToolResult; } });
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qBAAqB;AACrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,mBAAmB;AACnB,qDAS2B;AARzB,iHAAA,cAAc,OAAA;AACd,wHAAA,qBAAqB,OAAA;AACrB,mHAAA,gBAAgB,OAAA;AAChB,kHAAA,eAAe,OAAA;AACf,iHAAA,cAAc,OAAA;AACd,oHAAA,iBAAiB,OAAA;AAKnB,UAAU;AACV,4CAA0B;AAE1B,QAAQ;AACR,iCASiB;AARf,6GAAA,oBAAoB,OAAA;AACpB,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,2GAAA,kBAAkB,OAAA;AAClB,6GAAA,oBAAoB,OAAA;AACpB,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AAIZ,SAAS;AACT,mCAUkB;AAThB,4GAAA,kBAAkB,OAAA;AAClB,uGAAA,aAAa,OAAA;AACb,mGAAA,SAAS,OAAA;AASX,eAAe;AACf,6CAUuB;AAFrB,gHAAA,iBAAiB,OAAA;AACjB,kHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,35 @@
1
+ import { createOpenAI } from '@ai-sdk/openai';
2
+ import { createAnthropic } from '@ai-sdk/anthropic';
3
+ import { createGoogleGenerativeAI } from '@ai-sdk/google';
4
+ import type { AIProvider, LLMConfig } from '../../types';
5
+ export type ProviderInstance = ReturnType<typeof createOpenAI> | ReturnType<typeof createAnthropic> | ReturnType<typeof createGoogleGenerativeAI>;
6
+ export interface ProviderResult {
7
+ provider: ProviderInstance;
8
+ modelId: string;
9
+ }
10
+ /**
11
+ * Default models for each provider
12
+ */
13
+ export declare const DEFAULT_MODELS: Record<AIProvider, string>;
14
+ /**
15
+ * Environment variable names for API keys
16
+ */
17
+ export declare const PROVIDER_ENV_VARS: Record<AIProvider, string[]>;
18
+ /**
19
+ * Creates a provider instance based on the configuration.
20
+ * OpenRouter uses OpenAI SDK with a custom base URL.
21
+ */
22
+ export declare function createProvider(config: LLMConfig): ProviderResult;
23
+ /**
24
+ * Detects the provider from available environment variables
25
+ */
26
+ export declare function detectProviderFromEnv(): AIProvider | null;
27
+ /**
28
+ * Gets the API key for a provider from environment variables
29
+ */
30
+ export declare function getApiKeyFromEnv(provider: AIProvider): string | undefined;
31
+ /**
32
+ * Gets the model override from environment for a provider
33
+ */
34
+ export declare function getModelFromEnv(provider: AIProvider): string | undefined;
35
+ //# sourceMappingURL=providerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../../src/services/ai/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,CAAC,OAAO,YAAY,CAAC,GAC/B,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAK1D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,CA4ChE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,GAAG,IAAI,CAMzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAGxE"}