agentstudio 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/config/engineConfig.d.ts +15 -0
  2. package/config/engineConfig.d.ts.map +1 -1
  3. package/config/engineConfig.js +30 -0
  4. package/config/engineConfig.js.map +1 -1
  5. package/config/index.d.ts.map +1 -1
  6. package/config/index.js +14 -0
  7. package/config/index.js.map +1 -1
  8. package/config/paths.d.ts +5 -0
  9. package/config/paths.d.ts.map +1 -1
  10. package/config/paths.js +6 -1
  11. package/config/paths.js.map +1 -1
  12. package/engines/claude/__tests__/supportedModels.test.d.ts +6 -4
  13. package/engines/claude/__tests__/supportedModels.test.d.ts.map +1 -1
  14. package/engines/claude/__tests__/supportedModels.test.js +55 -13
  15. package/engines/claude/__tests__/supportedModels.test.js.map +1 -1
  16. package/engines/claude/aguiAdapter.d.ts.map +1 -1
  17. package/engines/claude/aguiAdapter.js +8 -0
  18. package/engines/claude/aguiAdapter.js.map +1 -1
  19. package/engines/claude/claudeEngine.d.ts +36 -3
  20. package/engines/claude/claudeEngine.d.ts.map +1 -1
  21. package/engines/claude/claudeEngine.js +132 -13
  22. package/engines/claude/claudeEngine.js.map +1 -1
  23. package/index.d.ts.map +1 -1
  24. package/index.js +29 -2
  25. package/index.js.map +1 -1
  26. package/middleware/callChain.d.ts +10 -0
  27. package/middleware/callChain.d.ts.map +1 -0
  28. package/middleware/callChain.js +24 -0
  29. package/middleware/callChain.js.map +1 -0
  30. package/middleware/requestId.d.ts +8 -0
  31. package/middleware/requestId.d.ts.map +1 -0
  32. package/middleware/requestId.js +18 -0
  33. package/middleware/requestId.js.map +1 -0
  34. package/package.json +1 -1
  35. package/prompts/gameDevSystemPrompt.d.ts +15 -0
  36. package/prompts/gameDevSystemPrompt.d.ts.map +1 -0
  37. package/prompts/gameDevSystemPrompt.js +37 -0
  38. package/prompts/gameDevSystemPrompt.js.map +1 -0
  39. package/prompts/vibeGamingPrompt.d.ts +13 -0
  40. package/prompts/vibeGamingPrompt.d.ts.map +1 -0
  41. package/prompts/vibeGamingPrompt.js +125 -0
  42. package/prompts/vibeGamingPrompt.js.map +1 -0
  43. package/public/assets/{AgentsPage-BsZdkqzM.js → AgentsPage-CHee5mUh.js} +1 -1
  44. package/public/assets/{Button-CMTSYiKV.js → Button-D5qiS7CR.js} +1 -1
  45. package/public/assets/ChatPage-B7-rn9mH.js +478 -0
  46. package/public/assets/{CommandForm-DwGvE9A_.js → CommandForm-CMfgHNm5.js} +1 -1
  47. package/public/assets/{CommandsPage-qDWzq8xp.js → CommandsPage-B4rjtVWk.js} +1 -1
  48. package/public/assets/{CursorConfigPage-DpUdJzRi.js → CursorConfigPage-DQ-3b3ti.js} +1 -1
  49. package/public/assets/{DashboardPage-BhqKOzob.js → DashboardPage-BowdW2Xj.js} +1 -1
  50. package/public/assets/{EngineGate-BjHJu955.js → EngineGate-DYNvEEbW.js} +1 -1
  51. package/public/assets/{FileBrowser-DboOOM_v.js → FileBrowser-DHyCacM6.js} +1 -1
  52. package/public/assets/{FileExplorer-x5R0Tcmk.js → FileExplorer-BprfeAH_.js} +1 -1
  53. package/public/assets/GeneralSettingsPage-C6hJ_zTw.js +1 -0
  54. package/public/assets/{HooksPage-DDGc0GGV.js → HooksPage-BwE2Zm3X.js} +1 -1
  55. package/public/assets/{LandingPage-CvY4n9Rh.js → LandingPage-DKvwbGX1.js} +1 -1
  56. package/public/assets/{LoginPage-C-PZfjYC.js → LoginPage-BpZhqRAN.js} +1 -1
  57. package/public/assets/{McpAdminSettingsPage-CIILVzB8.js → McpAdminSettingsPage-DuvsM5TX.js} +1 -1
  58. package/public/assets/{McpPage-B4nQUJag.js → McpPage-Hu8vyMhX.js} +1 -1
  59. package/public/assets/{MemorySettingsPage-eu6tsuUh.js → MemorySettingsPage-gIWSsrES.js} +1 -1
  60. package/public/assets/{ModelsPage-Bb5vSsuc.js → ModelsPage-Cosb3hHI.js} +1 -1
  61. package/public/assets/PluginsPage-CuNui9NV.js +12 -0
  62. package/public/assets/{ProjectSelector-CybrDbBY.js → ProjectSelector-CyBlHb2H.js} +1 -1
  63. package/public/assets/{ProjectsPage-DRl-0B4G.js → ProjectsPage-DYhCvH07.js} +1 -1
  64. package/public/assets/{RulesPage-DUt33RkX.js → RulesPage-C32P_Aqz.js} +1 -1
  65. package/public/assets/{ScheduledTasksPage-CTDYYRIN.js → ScheduledTasksPage-ixn5qoiD.js} +1 -1
  66. package/public/assets/SettingsLayout-C_7jR0Te.js +1 -0
  67. package/public/assets/{SkillsPage-Lzw8I9vR.js → SkillsPage-C-WS4N1Y.js} +1 -1
  68. package/public/assets/{SubagentForm-BzzeWg0W.js → SubagentForm-BbxljQUp.js} +1 -1
  69. package/public/assets/{SubagentsPage-bX2XWdJ0.js → SubagentsPage-D66TBaeN.js} +1 -1
  70. package/public/assets/{SystemInfoPage-nEIQbtwG.js → SystemInfoPage-DXVUncTe.js} +1 -1
  71. package/public/assets/{TelemetrySettingsPage-q167I4G9.js → TelemetrySettingsPage-Cp3vOu7X.js} +1 -1
  72. package/public/assets/{ToastTestPage-j224d3QR.js → ToastTestPage-03up9yZR.js} +1 -1
  73. package/public/assets/{ToolsList-CTsQr53G.js → ToolsList-BZFBEuvQ.js} +1 -1
  74. package/public/assets/UnifiedToolSelector-DJN7ASu1.js +1 -0
  75. package/public/assets/{VersionSettingsPage-BwpwiLyl.js → VersionSettingsPage-DppWaX--.js} +1 -1
  76. package/public/assets/{VoiceSettingsPage-d3l9AWBn.js → VoiceSettingsPage-BWJLeedX.js} +1 -1
  77. package/public/assets/{WebSocketTunnelPage-BqEUE7mr.js → WebSocketTunnelPage-BPeSTgEZ.js} +1 -1
  78. package/public/assets/{_basePickBy-DHabY031.js → _basePickBy-0UeYrifO.js} +1 -1
  79. package/public/assets/{_baseUniq-B1lmu3qr.js → _baseUniq-Q0NUbuSr.js} +1 -1
  80. package/public/assets/{agents-KlPdWQ8K.js → agents-DR9EZMs5.js} +1 -1
  81. package/public/assets/{arc-6sRLTBcr.js → arc-BV8erW1-.js} +1 -1
  82. package/public/assets/{architectureDiagram-VXUJARFQ-kwdTmjuB.js → architectureDiagram-VXUJARFQ-BIodTu6s.js} +1 -1
  83. package/public/assets/{blockDiagram-VD42YOAC-CYO9EYkJ.js → blockDiagram-VD42YOAC-4H3KjsGf.js} +1 -1
  84. package/public/assets/{c4Diagram-YG6GDRKO-gAp3--Ee.js → c4Diagram-YG6GDRKO-J2ovCYEr.js} +1 -1
  85. package/public/assets/channel-gveiJv4S.js +1 -0
  86. package/public/assets/{chunk-4BX2VUAB-DQVsL-J6.js → chunk-4BX2VUAB-D7Mc44O6.js} +1 -1
  87. package/public/assets/{chunk-55IACEB6-DVsfnY5X.js → chunk-55IACEB6-CMASo37Z.js} +1 -1
  88. package/public/assets/{chunk-B4BG7PRW-BNmOvuIn.js → chunk-B4BG7PRW-2T3W2IB6.js} +1 -1
  89. package/public/assets/{chunk-DI55MBZ5-BkucWe8Y.js → chunk-DI55MBZ5-FR9qswmO.js} +1 -1
  90. package/public/assets/{chunk-FMBD7UC4-BsvfEdnB.js → chunk-FMBD7UC4-Bz2LO9q3.js} +1 -1
  91. package/public/assets/{chunk-QN33PNHL-DSecsNtM.js → chunk-QN33PNHL-D7mfK9Pm.js} +1 -1
  92. package/public/assets/{chunk-QZHKN3VN-DhvrZSqy.js → chunk-QZHKN3VN-AkuNbqQU.js} +1 -1
  93. package/public/assets/{chunk-TZMSLE5B-BqQ674GC.js → chunk-TZMSLE5B-DtY3rhWy.js} +1 -1
  94. package/public/assets/classDiagram-2ON5EDUG-f-lJUj27.js +1 -0
  95. package/public/assets/classDiagram-v2-WZHVMYZB-f-lJUj27.js +1 -0
  96. package/public/assets/clone-D5-Tsf9e.js +1 -0
  97. package/public/assets/{cose-bilkent-S5V4N54A-D9ZC6LmB.js → cose-bilkent-S5V4N54A-BuEw-qDX.js} +1 -1
  98. package/public/assets/{dagre-6UL2VRFP-s7YD2ZcY.js → dagre-6UL2VRFP-D-NrLBGh.js} +1 -1
  99. package/public/assets/{diagram-PSM6KHXK-C7jhP5tx.js → diagram-PSM6KHXK-BFjWOHNz.js} +1 -1
  100. package/public/assets/{diagram-QEK2KX5R-B348GmS1.js → diagram-QEK2KX5R-C0YlDb8t.js} +1 -1
  101. package/public/assets/{diagram-S2PKOQOG-Cu-zjwc9.js → diagram-S2PKOQOG-BLKbR12g.js} +1 -1
  102. package/public/assets/{erDiagram-Q2GNP2WA-tM4HKBpy.js → erDiagram-Q2GNP2WA-Cov6xnUk.js} +1 -1
  103. package/public/assets/{flowDiagram-NV44I4VS-DjCIshpi.js → flowDiagram-NV44I4VS-DTMKSJI1.js} +1 -1
  104. package/public/assets/{ganttDiagram-LVOFAZNH-Q6plkI5G.js → ganttDiagram-LVOFAZNH-DR0bcfHY.js} +1 -1
  105. package/public/assets/{gitGraphDiagram-NY62KEGX-B3Uw90Yt.js → gitGraphDiagram-NY62KEGX-CvxYSabY.js} +1 -1
  106. package/public/assets/{graph-Bp0jlxBT.js → graph-BYXvelIL.js} +1 -1
  107. package/public/assets/{index-f67nhEoX.js → index-BIGPvi1D.js} +44 -44
  108. package/public/assets/infoDiagram-F6ZHWCRC-CL9g-UgS.js +2 -0
  109. package/public/assets/{journeyDiagram-XKPGCS4Q-CgQogtHU.js → journeyDiagram-XKPGCS4Q-Df8G0pW8.js} +1 -1
  110. package/public/assets/{kanban-definition-3W4ZIXB7-Cv7kVxyy.js → kanban-definition-3W4ZIXB7-DhoP7TG_.js} +1 -1
  111. package/public/assets/{layout-6bkH32V1.js → layout-CgO4Vp_y.js} +1 -1
  112. package/public/assets/{linear-DWoZ6Tbm.js → linear-CaY74pOB.js} +1 -1
  113. package/public/assets/{mindmap-definition-VGOIOE7T-D5wd9HsH.js → mindmap-definition-VGOIOE7T-CVK2y0WQ.js} +1 -1
  114. package/public/assets/{pieDiagram-ADFJNKIX-8vPxErLm.js → pieDiagram-ADFJNKIX-BQt_waQk.js} +1 -1
  115. package/public/assets/{quadrantDiagram-AYHSOK5B-Pn0NZ9k7.js → quadrantDiagram-AYHSOK5B-DvLFoDeH.js} +1 -1
  116. package/public/assets/{requirementDiagram-UZGBJVZJ-C7u8MiN1.js → requirementDiagram-UZGBJVZJ-C4lqjEUP.js} +1 -1
  117. package/public/assets/{sankeyDiagram-TZEHDZUN-C660O4mw.js → sankeyDiagram-TZEHDZUN-BKIDyl6M.js} +1 -1
  118. package/public/assets/{sequenceDiagram-WL72ISMW-pXBA2_3B.js → sequenceDiagram-WL72ISMW-BeyhJ61U.js} +1 -1
  119. package/public/assets/{stateDiagram-FKZM4ZOC-CxZMM1Lf.js → stateDiagram-FKZM4ZOC-CKyn6eKl.js} +1 -1
  120. package/public/assets/stateDiagram-v2-4FDKWEC3-DogBVcJE.js +1 -0
  121. package/public/assets/{table-Clz57edU.js → table-BgVewkB5.js} +1 -1
  122. package/public/assets/{timeline-definition-IT6M3QCI-Crg44TaP.js → timeline-definition-IT6M3QCI-Cm5SIAmT.js} +1 -1
  123. package/public/assets/tools-crrPnehB.js +1 -0
  124. package/public/assets/{treemap-KMMF4GRG-bFxwBWXw.js → treemap-KMMF4GRG-CUMeoVWM.js} +1 -1
  125. package/public/assets/{ui-components-DjgDPiqV.js → ui-components-D1pZO0y-.js} +1 -1
  126. package/public/assets/{useAgents-8KXN6U61.js → useAgents-M4lcWvy0.js} +1 -1
  127. package/public/assets/{useClaudeVersions-DicHLV6A.js → useClaudeVersions-CKT_fq1t.js} +1 -1
  128. package/public/assets/{useCommands-DbSH48ba.js → useCommands-vaoVPEDI.js} +1 -1
  129. package/public/assets/{useProjects-Bbh6hJMM.js → useProjects-D1ElB-WS.js} +1 -1
  130. package/public/assets/{useSessions-DOa4-xiB.js → useSessions-Dp1kUl43.js} +1 -1
  131. package/public/assets/{xychartDiagram-PRI3JC2R-DG3KmjD-.js → xychartDiagram-PRI3JC2R-Cy-SHDyX.js} +1 -1
  132. package/public/index.html +4 -4
  133. package/routes/a2a.d.ts.map +1 -1
  134. package/routes/a2a.js +27 -7
  135. package/routes/a2a.js.map +1 -1
  136. package/routes/agents.d.ts.map +1 -1
  137. package/routes/agents.js +234 -38
  138. package/routes/agents.js.map +1 -1
  139. package/routes/agui.d.ts.map +1 -1
  140. package/routes/agui.js +44 -1
  141. package/routes/agui.js.map +1 -1
  142. package/routes/gitVersions.d.ts.map +1 -1
  143. package/routes/gitVersions.js +80 -1
  144. package/routes/gitVersions.js.map +1 -1
  145. package/routes/marketplaceSkills.d.ts +18 -0
  146. package/routes/marketplaceSkills.d.ts.map +1 -0
  147. package/routes/marketplaceSkills.js +190 -0
  148. package/routes/marketplaceSkills.js.map +1 -0
  149. package/routes/plugins.d.ts.map +1 -1
  150. package/routes/plugins.js +48 -7
  151. package/routes/plugins.js.map +1 -1
  152. package/routes/projects.d.ts.map +1 -1
  153. package/routes/projects.js +34 -0
  154. package/routes/projects.js.map +1 -1
  155. package/schemas/a2a.d.ts +35 -4
  156. package/schemas/a2a.d.ts.map +1 -1
  157. package/schemas/a2a.js +9 -1
  158. package/schemas/a2a.js.map +1 -1
  159. package/services/__tests__/agentImporter.test.js +197 -0
  160. package/services/__tests__/agentImporter.test.js.map +1 -1
  161. package/services/__tests__/pluginInstaller.test.js +2 -1
  162. package/services/__tests__/pluginInstaller.test.js.map +1 -1
  163. package/services/agentImporter.d.ts +7 -0
  164. package/services/agentImporter.d.ts.map +1 -1
  165. package/services/agentImporter.js +57 -4
  166. package/services/agentImporter.js.map +1 -1
  167. package/services/builtinMarketplaceService.d.ts +56 -0
  168. package/services/builtinMarketplaceService.d.ts.map +1 -0
  169. package/services/builtinMarketplaceService.js +328 -0
  170. package/services/builtinMarketplaceService.js.map +1 -0
  171. package/services/claudeSession.d.ts.map +1 -1
  172. package/services/claudeSession.js +15 -4
  173. package/services/claudeSession.js.map +1 -1
  174. package/services/claudeVersionStorage.js +6 -6
  175. package/services/claudeVersionStorage.js.map +1 -1
  176. package/services/gitVersionService.d.ts +22 -0
  177. package/services/gitVersionService.d.ts.map +1 -1
  178. package/services/gitVersionService.js +117 -19
  179. package/services/gitVersionService.js.map +1 -1
  180. package/services/marketplaceSkillService.d.ts +129 -0
  181. package/services/marketplaceSkillService.d.ts.map +1 -0
  182. package/services/marketplaceSkillService.js +358 -0
  183. package/services/marketplaceSkillService.js.map +1 -0
  184. package/services/marketplaceUpdateService.d.ts.map +1 -1
  185. package/services/marketplaceUpdateService.js +29 -2
  186. package/services/marketplaceUpdateService.js.map +1 -1
  187. package/services/pluginCopyInstall.d.ts +60 -0
  188. package/services/pluginCopyInstall.d.ts.map +1 -0
  189. package/services/pluginCopyInstall.js +290 -0
  190. package/services/pluginCopyInstall.js.map +1 -0
  191. package/services/pluginInstallStrategy.d.ts +39 -0
  192. package/services/pluginInstallStrategy.d.ts.map +1 -0
  193. package/services/pluginInstallStrategy.js +50 -0
  194. package/services/pluginInstallStrategy.js.map +1 -0
  195. package/services/pluginInstaller.d.ts +10 -0
  196. package/services/pluginInstaller.d.ts.map +1 -1
  197. package/services/pluginInstaller.js +70 -20
  198. package/services/pluginInstaller.js.map +1 -1
  199. package/services/pluginParser.d.ts +17 -1
  200. package/services/pluginParser.d.ts.map +1 -1
  201. package/services/pluginParser.js +161 -84
  202. package/services/pluginParser.js.map +1 -1
  203. package/services/pluginPaths.d.ts +3 -3
  204. package/services/pluginPaths.d.ts.map +1 -1
  205. package/services/pluginPaths.js +33 -14
  206. package/services/pluginPaths.js.map +1 -1
  207. package/services/pluginScanner.js +2 -2
  208. package/services/pluginScanner.js.map +1 -1
  209. package/services/pluginSymlink.d.ts +10 -0
  210. package/services/pluginSymlink.d.ts.map +1 -1
  211. package/services/pluginSymlink.js +117 -1
  212. package/services/pluginSymlink.js.map +1 -1
  213. package/services/preSendGuard/__tests__/preSendGuard.test.d.ts +2 -0
  214. package/services/preSendGuard/__tests__/preSendGuard.test.d.ts.map +1 -0
  215. package/services/preSendGuard/__tests__/preSendGuard.test.js +102 -0
  216. package/services/preSendGuard/__tests__/preSendGuard.test.js.map +1 -0
  217. package/services/preSendGuard/configResolver.d.ts +8 -0
  218. package/services/preSendGuard/configResolver.d.ts.map +1 -0
  219. package/services/preSendGuard/configResolver.js +181 -0
  220. package/services/preSendGuard/configResolver.js.map +1 -0
  221. package/services/preSendGuard/index.d.ts +9 -0
  222. package/services/preSendGuard/index.d.ts.map +1 -0
  223. package/services/preSendGuard/index.js +165 -0
  224. package/services/preSendGuard/index.js.map +1 -0
  225. package/services/preSendGuard/providers/httpAuditProvider.d.ts +3 -0
  226. package/services/preSendGuard/providers/httpAuditProvider.d.ts.map +1 -0
  227. package/services/preSendGuard/providers/httpAuditProvider.js +98 -0
  228. package/services/preSendGuard/providers/httpAuditProvider.js.map +1 -0
  229. package/services/preSendGuard/providers/noopProvider.d.ts +3 -0
  230. package/services/preSendGuard/providers/noopProvider.d.ts.map +1 -0
  231. package/services/preSendGuard/providers/noopProvider.js +13 -0
  232. package/services/preSendGuard/providers/noopProvider.js.map +1 -0
  233. package/services/runFinishedHooks.d.ts +29 -0
  234. package/services/runFinishedHooks.d.ts.map +1 -0
  235. package/services/runFinishedHooks.js +57 -0
  236. package/services/runFinishedHooks.js.map +1 -0
  237. package/testing/index.d.ts +18 -0
  238. package/testing/index.d.ts.map +1 -0
  239. package/testing/index.js +25 -0
  240. package/testing/index.js.map +1 -0
  241. package/testing/mockSdkQuery.d.ts +49 -0
  242. package/testing/mockSdkQuery.d.ts.map +1 -0
  243. package/testing/mockSdkQuery.js +209 -0
  244. package/testing/mockSdkQuery.js.map +1 -0
  245. package/testing/scenarioLoader.d.ts +71 -0
  246. package/testing/scenarioLoader.d.ts.map +1 -0
  247. package/testing/scenarioLoader.js +224 -0
  248. package/testing/scenarioLoader.js.map +1 -0
  249. package/types/a2a.d.ts +5 -0
  250. package/types/a2a.d.ts.map +1 -1
  251. package/types/agents.d.ts +32 -0
  252. package/types/agents.d.ts.map +1 -1
  253. package/types/agents.js +1 -0
  254. package/types/agents.js.map +1 -1
  255. package/types/engine.d.ts +6 -0
  256. package/types/engine.d.ts.map +1 -1
  257. package/types/plugins.d.ts +12 -2
  258. package/types/plugins.d.ts.map +1 -1
  259. package/types/preSendGuard.d.ts +51 -0
  260. package/types/preSendGuard.d.ts.map +1 -0
  261. package/types/preSendGuard.js +3 -0
  262. package/types/preSendGuard.js.map +1 -0
  263. package/utils/__tests__/claudeUtils.test.js +89 -1
  264. package/utils/__tests__/claudeUtils.test.js.map +1 -1
  265. package/utils/claudeUtils.d.ts +1 -1
  266. package/utils/claudeUtils.d.ts.map +1 -1
  267. package/utils/claudeUtils.js +92 -37
  268. package/utils/claudeUtils.js.map +1 -1
  269. package/public/assets/ChatPage-D8buVhfb.js +0 -478
  270. package/public/assets/GeneralSettingsPage-DYdwai51.js +0 -1
  271. package/public/assets/PluginsPage-DD92Xk6X.js +0 -12
  272. package/public/assets/SettingsLayout-LGC-0pQl.js +0 -1
  273. package/public/assets/UnifiedToolSelector-BP6fuyzG.js +0 -1
  274. package/public/assets/channel-D9wyZF1L.js +0 -1
  275. package/public/assets/classDiagram-2ON5EDUG-DwEqkkEb.js +0 -1
  276. package/public/assets/classDiagram-v2-WZHVMYZB-DwEqkkEb.js +0 -1
  277. package/public/assets/clone-3wFPaI2j.js +0 -1
  278. package/public/assets/infoDiagram-F6ZHWCRC-HUfwv_JT.js +0 -2
  279. package/public/assets/stateDiagram-v2-4FDKWEC3-CmurzrWf.js +0 -1
  280. package/public/assets/tools-BZTR2NP1.js +0 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * SDK Mock Testing Framework
4
+ *
5
+ * Provides a drop-in replacement for Claude Agent SDK's query() function,
6
+ * enabling full-stack testing without a real Claude Code CLI or API key.
7
+ *
8
+ * Modes:
9
+ * MOCK_SDK=true - Use mock scenarios (JSONL replay)
10
+ * MOCK_SDK=record - Use real SDK + record to JSONL (future)
11
+ * (not set) - Normal operation
12
+ *
13
+ * Scenarios are .jsonl files in testing/scenarios/.
14
+ * See README or individual scenario files for format documentation.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.getScenarioLoader = exports.ScenarioLoader = exports.isRecordEnabled = exports.isMockEnabled = exports.createMockQuery = void 0;
18
+ var mockSdkQuery_js_1 = require("./mockSdkQuery.js");
19
+ Object.defineProperty(exports, "createMockQuery", { enumerable: true, get: function () { return mockSdkQuery_js_1.createMockQuery; } });
20
+ Object.defineProperty(exports, "isMockEnabled", { enumerable: true, get: function () { return mockSdkQuery_js_1.isMockEnabled; } });
21
+ Object.defineProperty(exports, "isRecordEnabled", { enumerable: true, get: function () { return mockSdkQuery_js_1.isRecordEnabled; } });
22
+ var scenarioLoader_js_1 = require("./scenarioLoader.js");
23
+ Object.defineProperty(exports, "ScenarioLoader", { enumerable: true, get: function () { return scenarioLoader_js_1.ScenarioLoader; } });
24
+ Object.defineProperty(exports, "getScenarioLoader", { enumerable: true, get: function () { return scenarioLoader_js_1.getScenarioLoader; } });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,qDAAoF;AAA3E,kHAAA,eAAe,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,kHAAA,eAAe,OAAA;AACxD,yDAAwE;AAA/D,mHAAA,cAAc,OAAA;AAAE,sHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Mock SDK Query - Drop-in replacement for Claude Agent SDK's query() function
3
+ *
4
+ * When MOCK_SDK=true, this replaces the real `query()` from @anthropic-ai/claude-agent-sdk.
5
+ * The returned object matches the SDK's interface:
6
+ * - AsyncIterable<SDKMessage> (for iterating over messages)
7
+ * - interrupt() method
8
+ * - supportedModels() method
9
+ *
10
+ * Scenarios are loaded from JSONL files in testing/scenarios/.
11
+ * Message content determines which scenario is used.
12
+ *
13
+ * Usage:
14
+ * import { createMockQuery, isMockEnabled } from '../testing/mockSdkQuery.js';
15
+ *
16
+ * const q = isMockEnabled()
17
+ * ? createMockQuery({ prompt: messageQueue, options: queryOptions })
18
+ * : query({ prompt: messageQueue, options: queryOptions });
19
+ */
20
+ export declare function isMockEnabled(): boolean;
21
+ export declare function isRecordEnabled(): boolean;
22
+ /**
23
+ * Mock query result type - matches the SDK's query() return type.
24
+ *
25
+ * SDK's query() returns an object that is:
26
+ * 1. AsyncIterable<SDKMessage>
27
+ * 2. Has .interrupt() method
28
+ * 3. Has .supportedModels() method
29
+ */
30
+ export interface MockQueryResult {
31
+ [Symbol.asyncIterator](): AsyncIterator<Record<string, any>>;
32
+ interrupt: () => Promise<void>;
33
+ supportedModels: () => Promise<Array<{
34
+ value: string;
35
+ displayName: string;
36
+ description?: string;
37
+ }>>;
38
+ }
39
+ /**
40
+ * Create a mock query that replays scenarios based on input messages.
41
+ *
42
+ * The `prompt` parameter is an AsyncIterable that yields user messages.
43
+ * For each message, we match a scenario and replay its SDK messages.
44
+ */
45
+ export declare function createMockQuery(params: {
46
+ prompt: AsyncIterable<string | object>;
47
+ options: Record<string, any>;
48
+ }): MockQueryResult;
49
+ //# sourceMappingURL=mockSdkQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockSdkQuery.d.ts","sourceRoot":"","sources":["../../src/testing/mockSdkQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACrG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,GAAG,eAAe,CAoElB"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /**
3
+ * Mock SDK Query - Drop-in replacement for Claude Agent SDK's query() function
4
+ *
5
+ * When MOCK_SDK=true, this replaces the real `query()` from @anthropic-ai/claude-agent-sdk.
6
+ * The returned object matches the SDK's interface:
7
+ * - AsyncIterable<SDKMessage> (for iterating over messages)
8
+ * - interrupt() method
9
+ * - supportedModels() method
10
+ *
11
+ * Scenarios are loaded from JSONL files in testing/scenarios/.
12
+ * Message content determines which scenario is used.
13
+ *
14
+ * Usage:
15
+ * import { createMockQuery, isMockEnabled } from '../testing/mockSdkQuery.js';
16
+ *
17
+ * const q = isMockEnabled()
18
+ * ? createMockQuery({ prompt: messageQueue, options: queryOptions })
19
+ * : query({ prompt: messageQueue, options: queryOptions });
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.isMockEnabled = isMockEnabled;
23
+ exports.isRecordEnabled = isRecordEnabled;
24
+ exports.createMockQuery = createMockQuery;
25
+ const scenarioLoader_js_1 = require("./scenarioLoader.js");
26
+ // Re-export the check function
27
+ function isMockEnabled() {
28
+ return process.env.MOCK_SDK === 'true';
29
+ }
30
+ function isRecordEnabled() {
31
+ return process.env.MOCK_SDK === 'record';
32
+ }
33
+ /**
34
+ * Create a mock query that replays scenarios based on input messages.
35
+ *
36
+ * The `prompt` parameter is an AsyncIterable that yields user messages.
37
+ * For each message, we match a scenario and replay its SDK messages.
38
+ */
39
+ function createMockQuery(params) {
40
+ const loader = (0, scenarioLoader_js_1.getScenarioLoader)();
41
+ const sessionId = `mock-session-${Date.now()}`;
42
+ let aborted = false;
43
+ let currentReplay = null;
44
+ const generator = async function* () {
45
+ console.log(`[MockSDK] Mock query started, sessionId: ${sessionId}`);
46
+ console.log(`[MockSDK] Options:`, {
47
+ cwd: params.options.cwd,
48
+ model: params.options.model,
49
+ permissionMode: params.options.permissionMode,
50
+ });
51
+ // Iterate over incoming user messages
52
+ for await (const input of params.prompt) {
53
+ if (aborted) {
54
+ console.log(`[MockSDK] Aborted, stopping`);
55
+ return;
56
+ }
57
+ // Extract text content from various input formats
58
+ const message = extractMessageText(input);
59
+ console.log(`[MockSDK] Received message: "${message}"`);
60
+ // Match scenario
61
+ const scenario = loader.matchScenario(message);
62
+ if (!scenario) {
63
+ console.warn(`[MockSDK] No scenario matched, using inline fallback`);
64
+ yield* inlineFallbackScenario(sessionId);
65
+ continue;
66
+ }
67
+ // Replay the matched scenario
68
+ console.log(`[MockSDK] Replaying scenario: "${scenario.meta.name}"`);
69
+ currentReplay = loader.replay(scenario, sessionId);
70
+ for await (const msg of currentReplay) {
71
+ if (aborted) {
72
+ console.log(`[MockSDK] Aborted during replay`);
73
+ return;
74
+ }
75
+ yield msg;
76
+ }
77
+ currentReplay = null;
78
+ }
79
+ console.log(`[MockSDK] Mock query completed (input stream ended)`);
80
+ };
81
+ const iterable = generator();
82
+ return {
83
+ [Symbol.asyncIterator]() {
84
+ return iterable[Symbol.asyncIterator]();
85
+ },
86
+ interrupt: async () => {
87
+ console.log(`[MockSDK] Interrupt requested`);
88
+ aborted = true;
89
+ },
90
+ supportedModels: async () => {
91
+ return [
92
+ { value: 'claude-sonnet-4-20250514', displayName: 'Claude Sonnet 4 (Mock)', description: 'Mock model for testing' },
93
+ { value: 'claude-opus-4-20250514', displayName: 'Claude Opus 4 (Mock)', description: 'Mock model for testing' },
94
+ ];
95
+ },
96
+ };
97
+ }
98
+ /**
99
+ * Extract plain text from various message input formats.
100
+ * The SDK accepts different input types through the prompt AsyncIterable.
101
+ */
102
+ function extractMessageText(input) {
103
+ if (typeof input === 'string') {
104
+ return input;
105
+ }
106
+ // Handle Anthropic-style message objects: { content: [{ type: 'text', text: '...' }] }
107
+ const inputObj = input;
108
+ if (Array.isArray(inputObj.content)) {
109
+ const textBlock = inputObj.content.find((block) => block.type === 'text');
110
+ if (textBlock?.text)
111
+ return textBlock.text;
112
+ }
113
+ if (typeof inputObj.content === 'string') {
114
+ return inputObj.content;
115
+ }
116
+ if (typeof inputObj.text === 'string') {
117
+ return inputObj.text;
118
+ }
119
+ if (typeof inputObj.message === 'string') {
120
+ return inputObj.message;
121
+ }
122
+ // Last resort: stringify
123
+ return JSON.stringify(input).slice(0, 200);
124
+ }
125
+ /**
126
+ * Inline fallback scenario when no JSONL file matches.
127
+ * Returns a minimal valid conversation.
128
+ */
129
+ async function* inlineFallbackScenario(sessionId) {
130
+ yield {
131
+ type: 'system',
132
+ subtype: 'init',
133
+ session_id: sessionId,
134
+ tools: ['Read', 'Write'],
135
+ mcp_servers: [],
136
+ model: 'claude-sonnet-4-20250514',
137
+ permissionMode: 'bypassPermissions',
138
+ };
139
+ const text = '[Mock] 这是一个模拟响应。要触发特定场景,请使用以下关键词:auto-compact, /compact, use-tool';
140
+ yield {
141
+ type: 'stream_event',
142
+ session_id: sessionId,
143
+ event: {
144
+ type: 'message_start',
145
+ message: { id: `msg_fallback_${Date.now()}`, role: 'assistant', content: [] },
146
+ },
147
+ };
148
+ yield {
149
+ type: 'stream_event',
150
+ session_id: sessionId,
151
+ event: {
152
+ type: 'content_block_start',
153
+ index: 0,
154
+ content_block: { type: 'text', text: '' },
155
+ },
156
+ };
157
+ yield {
158
+ type: 'stream_event',
159
+ session_id: sessionId,
160
+ event: {
161
+ type: 'content_block_delta',
162
+ index: 0,
163
+ delta: { type: 'text_delta', text },
164
+ },
165
+ };
166
+ yield {
167
+ type: 'stream_event',
168
+ session_id: sessionId,
169
+ event: { type: 'content_block_stop', index: 0 },
170
+ };
171
+ yield {
172
+ type: 'stream_event',
173
+ session_id: sessionId,
174
+ event: { type: 'message_delta', delta: { stop_reason: 'end_turn' } },
175
+ };
176
+ yield {
177
+ type: 'stream_event',
178
+ session_id: sessionId,
179
+ event: { type: 'message_stop' },
180
+ };
181
+ yield {
182
+ type: 'assistant',
183
+ session_id: sessionId,
184
+ message: {
185
+ id: `msg_fallback_${Date.now()}`,
186
+ role: 'assistant',
187
+ content: [{ type: 'text', text }],
188
+ },
189
+ parent_tool_use_id: null,
190
+ };
191
+ yield {
192
+ type: 'result',
193
+ subtype: 'success',
194
+ session_id: sessionId,
195
+ duration_ms: 500,
196
+ duration_api_ms: 300,
197
+ is_error: false,
198
+ num_turns: 1,
199
+ result: 'Mock fallback completed.',
200
+ total_cost_usd: 0,
201
+ usage: {
202
+ input_tokens: 100,
203
+ output_tokens: 50,
204
+ cache_creation_input_tokens: 0,
205
+ cache_read_input_tokens: 0,
206
+ },
207
+ };
208
+ }
209
+ //# sourceMappingURL=mockSdkQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockSdkQuery.js","sourceRoot":"","sources":["../../src/testing/mockSdkQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * ScenarioLoader - Load and replay JSONL-based SDK mock scenarios
3
+ *
4
+ * Scenarios are stored as .jsonl files where each line is a JSON object
5
+ * representing an SDK message with optional metadata.
6
+ *
7
+ * File format:
8
+ * Line 1: {"_meta": {"name": "...", "description": "...", "trigger": "..."}}
9
+ * Line 2+: {"_delay": 100, "type": "system", "subtype": "init", ...}
10
+ *
11
+ * Template variables:
12
+ * {{SESSION_ID}} - Replaced with actual session ID at replay time
13
+ *
14
+ * Usage:
15
+ * const loader = new ScenarioLoader();
16
+ * const scenario = loader.matchScenario('trigger-auto-compact');
17
+ * for await (const msg of loader.replay(scenario, 'session-123')) {
18
+ * // msg is an SDKMessage
19
+ * }
20
+ */
21
+ export interface ScenarioMeta {
22
+ name: string;
23
+ description: string;
24
+ trigger: string;
25
+ version?: string;
26
+ }
27
+ export interface ScenarioStep {
28
+ delay: number;
29
+ data: Record<string, any>;
30
+ }
31
+ export interface ScenarioConfig {
32
+ meta: ScenarioMeta;
33
+ steps: ScenarioStep[];
34
+ filePath: string;
35
+ }
36
+ export declare class ScenarioLoader {
37
+ private scenarioDir;
38
+ private scenarios;
39
+ private triggerIndex;
40
+ private loaded;
41
+ constructor(scenarioDir?: string);
42
+ /**
43
+ * Load all .jsonl scenario files from the scenarios directory.
44
+ * Called lazily on first use.
45
+ */
46
+ loadAll(): void;
47
+ /**
48
+ * Parse a single .jsonl scenario file.
49
+ */
50
+ private parseFile;
51
+ /**
52
+ * Match a scenario based on user message content.
53
+ * Returns the matching scenario or the default "normal" scenario.
54
+ */
55
+ matchScenario(message: string): ScenarioConfig | null;
56
+ /**
57
+ * Get a scenario by name.
58
+ */
59
+ getScenario(name: string): ScenarioConfig | null;
60
+ /**
61
+ * List all available scenarios.
62
+ */
63
+ listScenarios(): ScenarioMeta[];
64
+ /**
65
+ * Replay a scenario as an async generator, yielding SDK messages.
66
+ * Replaces template variables (e.g., {{SESSION_ID}}) in each message.
67
+ */
68
+ replay(scenario: ScenarioConfig, sessionId: string, variables?: Record<string, string>): AsyncGenerator<Record<string, any>>;
69
+ }
70
+ export declare function getScenarioLoader(scenarioDir?: string): ScenarioLoader;
71
+ //# sourceMappingURL=scenarioLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarioLoader.d.ts","sourceRoot":"","sources":["../../src/testing/scenarioLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,CAAC,EAAE,MAAM;IAIhC;;;OAGG;IACH,OAAO,IAAI,IAAI;IA2Df;;OAEG;IACH,OAAO,CAAC,SAAS;IA8BjB;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAsBrD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAKhD;;OAEG;IACH,aAAa,IAAI,YAAY,EAAE;IAK/B;;;OAGG;IACI,MAAM,CACX,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CA0BvC;AAKD,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAKtE"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * ScenarioLoader - Load and replay JSONL-based SDK mock scenarios
4
+ *
5
+ * Scenarios are stored as .jsonl files where each line is a JSON object
6
+ * representing an SDK message with optional metadata.
7
+ *
8
+ * File format:
9
+ * Line 1: {"_meta": {"name": "...", "description": "...", "trigger": "..."}}
10
+ * Line 2+: {"_delay": 100, "type": "system", "subtype": "init", ...}
11
+ *
12
+ * Template variables:
13
+ * {{SESSION_ID}} - Replaced with actual session ID at replay time
14
+ *
15
+ * Usage:
16
+ * const loader = new ScenarioLoader();
17
+ * const scenario = loader.matchScenario('trigger-auto-compact');
18
+ * for await (const msg of loader.replay(scenario, 'session-123')) {
19
+ * // msg is an SDKMessage
20
+ * }
21
+ */
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || (function () {
39
+ var ownKeys = function(o) {
40
+ ownKeys = Object.getOwnPropertyNames || function (o) {
41
+ var ar = [];
42
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
43
+ return ar;
44
+ };
45
+ return ownKeys(o);
46
+ };
47
+ return function (mod) {
48
+ if (mod && mod.__esModule) return mod;
49
+ var result = {};
50
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
51
+ __setModuleDefault(result, mod);
52
+ return result;
53
+ };
54
+ })();
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.ScenarioLoader = void 0;
57
+ exports.getScenarioLoader = getScenarioLoader;
58
+ const fs = __importStar(require("fs"));
59
+ const path = __importStar(require("path"));
60
+ function sleep(ms) {
61
+ return new Promise(resolve => setTimeout(resolve, ms));
62
+ }
63
+ class ScenarioLoader {
64
+ scenarioDir;
65
+ scenarios = new Map();
66
+ triggerIndex = new Map();
67
+ loaded = false;
68
+ constructor(scenarioDir) {
69
+ this.scenarioDir = scenarioDir || path.join(__dirname, 'scenarios');
70
+ }
71
+ /**
72
+ * Load all .jsonl scenario files from the scenarios directory.
73
+ * Called lazily on first use.
74
+ */
75
+ loadAll() {
76
+ if (this.loaded)
77
+ return;
78
+ if (!fs.existsSync(this.scenarioDir)) {
79
+ console.warn(`[ScenarioLoader] Scenario directory not found: ${this.scenarioDir}`);
80
+ this.loaded = true;
81
+ return;
82
+ }
83
+ const files = fs.readdirSync(this.scenarioDir)
84
+ .filter(f => f.endsWith('.jsonl') && !f.startsWith('_'));
85
+ for (const file of files) {
86
+ try {
87
+ const filePath = path.join(this.scenarioDir, file);
88
+ const scenario = this.parseFile(filePath);
89
+ // Index by name
90
+ this.scenarios.set(scenario.meta.name, scenario);
91
+ // Index by trigger keyword (for message matching)
92
+ if (scenario.meta.trigger && scenario.meta.trigger !== '__default__') {
93
+ this.triggerIndex.set(scenario.meta.trigger, scenario);
94
+ }
95
+ console.log(`[ScenarioLoader] Loaded scenario: ${scenario.meta.name} (trigger: "${scenario.meta.trigger}", ${scenario.steps.length} steps)`);
96
+ }
97
+ catch (err) {
98
+ console.error(`[ScenarioLoader] Failed to parse ${file}:`, err);
99
+ }
100
+ }
101
+ // Also scan _recorded/ subdirectory
102
+ const recordedDir = path.join(this.scenarioDir, '_recorded');
103
+ if (fs.existsSync(recordedDir)) {
104
+ const recordedFiles = fs.readdirSync(recordedDir)
105
+ .filter(f => f.endsWith('.jsonl'));
106
+ for (const file of recordedFiles) {
107
+ try {
108
+ const filePath = path.join(recordedDir, file);
109
+ const scenario = this.parseFile(filePath);
110
+ const name = `recorded:${scenario.meta.name}`;
111
+ this.scenarios.set(name, scenario);
112
+ if (scenario.meta.trigger && scenario.meta.trigger !== '__default__') {
113
+ this.triggerIndex.set(scenario.meta.trigger, scenario);
114
+ }
115
+ console.log(`[ScenarioLoader] Loaded recorded scenario: ${name}`);
116
+ }
117
+ catch (err) {
118
+ console.error(`[ScenarioLoader] Failed to parse recorded/${file}:`, err);
119
+ }
120
+ }
121
+ }
122
+ this.loaded = true;
123
+ console.log(`[ScenarioLoader] Total scenarios loaded: ${this.scenarios.size}`);
124
+ }
125
+ /**
126
+ * Parse a single .jsonl scenario file.
127
+ */
128
+ parseFile(filePath) {
129
+ const content = fs.readFileSync(filePath, 'utf-8').trim();
130
+ const lines = content.split('\n').filter(line => line.trim());
131
+ let meta = {
132
+ name: path.basename(filePath, '.jsonl'),
133
+ description: '',
134
+ trigger: '__default__',
135
+ };
136
+ const steps = [];
137
+ for (const line of lines) {
138
+ const parsed = JSON.parse(line);
139
+ if (parsed._meta) {
140
+ // First line: metadata
141
+ meta = { ...meta, ...parsed._meta };
142
+ }
143
+ else {
144
+ // Subsequent lines: SDK messages
145
+ const delay = parsed._delay || 0;
146
+ const data = { ...parsed };
147
+ delete data._delay; // Remove meta field from the actual message
148
+ steps.push({ delay, data });
149
+ }
150
+ }
151
+ return { meta, steps, filePath };
152
+ }
153
+ /**
154
+ * Match a scenario based on user message content.
155
+ * Returns the matching scenario or the default "normal" scenario.
156
+ */
157
+ matchScenario(message) {
158
+ this.loadAll();
159
+ // 1. Exact trigger match
160
+ for (const [trigger, scenario] of this.triggerIndex) {
161
+ if (message === trigger || message.includes(trigger)) {
162
+ console.log(`[ScenarioLoader] Matched scenario "${scenario.meta.name}" for message "${message}" (trigger: "${trigger}")`);
163
+ return scenario;
164
+ }
165
+ }
166
+ // 2. Fallback to "normal" scenario
167
+ const defaultScenario = this.scenarios.get('normal');
168
+ if (defaultScenario) {
169
+ console.log(`[ScenarioLoader] Using default scenario "normal" for message "${message}"`);
170
+ return defaultScenario;
171
+ }
172
+ console.warn(`[ScenarioLoader] No scenario found for message "${message}"`);
173
+ return null;
174
+ }
175
+ /**
176
+ * Get a scenario by name.
177
+ */
178
+ getScenario(name) {
179
+ this.loadAll();
180
+ return this.scenarios.get(name) || null;
181
+ }
182
+ /**
183
+ * List all available scenarios.
184
+ */
185
+ listScenarios() {
186
+ this.loadAll();
187
+ return Array.from(this.scenarios.values()).map(s => s.meta);
188
+ }
189
+ /**
190
+ * Replay a scenario as an async generator, yielding SDK messages.
191
+ * Replaces template variables (e.g., {{SESSION_ID}}) in each message.
192
+ */
193
+ async *replay(scenario, sessionId, variables) {
194
+ const vars = {
195
+ SESSION_ID: sessionId,
196
+ ...variables,
197
+ };
198
+ console.log(`[ScenarioLoader] Replaying scenario "${scenario.meta.name}" with sessionId=${sessionId} (${scenario.steps.length} steps)`);
199
+ for (const step of scenario.steps) {
200
+ // Apply delay
201
+ if (step.delay > 0) {
202
+ await sleep(step.delay);
203
+ }
204
+ // Deep clone and replace template variables
205
+ let jsonStr = JSON.stringify(step.data);
206
+ for (const [key, value] of Object.entries(vars)) {
207
+ jsonStr = jsonStr.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value);
208
+ }
209
+ const message = JSON.parse(jsonStr);
210
+ yield message;
211
+ }
212
+ console.log(`[ScenarioLoader] Scenario "${scenario.meta.name}" replay completed`);
213
+ }
214
+ }
215
+ exports.ScenarioLoader = ScenarioLoader;
216
+ // Singleton instance
217
+ let _instance = null;
218
+ function getScenarioLoader(scenarioDir) {
219
+ if (!_instance) {
220
+ _instance = new ScenarioLoader(scenarioDir);
221
+ }
222
+ return _instance;
223
+ }
224
+ //# sourceMappingURL=scenarioLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarioLoader.js","sourceRoot":"","sources":["../../src/testing/scenarioLoader.ts"],"names":[],"mappings":"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"}
package/types/a2a.d.ts CHANGED
@@ -203,6 +203,11 @@ export interface AgentMappingRegistry {
203
203
  */
204
204
  export interface A2AMessageRequest {
205
205
  message: string;
206
+ /** Optional images for multimodal messages */
207
+ images?: Array<{
208
+ data: string;
209
+ mediaType: string;
210
+ }>;
206
211
  context?: Record<string, unknown>;
207
212
  sessionId?: string;
208
213
  /** Model to use (optional, engine-specific) */
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/types/a2a.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/types/a2a.ts"],"names":[],"mappings":"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"}