@vforsh/argus 0.1.16 → 0.1.19

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 (375) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +14994 -10474
  3. package/dist/cli/defineCommand.d.ts +3 -0
  4. package/dist/cli/defineCommand.d.ts.map +1 -1
  5. package/dist/cli/defineCommand.js +11 -0
  6. package/dist/cli/defineCommand.js.map +1 -1
  7. package/dist/cli/plugins/pluginHost.d.ts.map +1 -1
  8. package/dist/cli/plugins/pluginHost.js +1 -0
  9. package/dist/cli/plugins/pluginHost.js.map +1 -1
  10. package/dist/cli/plugins/registerPlugins.d.ts +3 -1
  11. package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
  12. package/dist/cli/plugins/registerPlugins.js +31 -12
  13. package/dist/cli/plugins/registerPlugins.js.map +1 -1
  14. package/dist/cli/register/authCommands.d.ts +3 -0
  15. package/dist/cli/register/authCommands.d.ts.map +1 -0
  16. package/dist/cli/register/authCommands.js +230 -0
  17. package/dist/cli/register/authCommands.js.map +1 -0
  18. package/dist/cli/register/chromeCommands.d.ts +3 -0
  19. package/dist/cli/register/chromeCommands.d.ts.map +1 -0
  20. package/dist/cli/register/chromeCommands.js +153 -0
  21. package/dist/cli/register/chromeCommands.js.map +1 -0
  22. package/dist/cli/register/codeCommands.d.ts +3 -0
  23. package/dist/cli/register/codeCommands.d.ts.map +1 -0
  24. package/dist/cli/register/codeCommands.js +116 -0
  25. package/dist/cli/register/codeCommands.js.map +1 -0
  26. package/dist/cli/register/configCommands.d.ts +3 -0
  27. package/dist/cli/register/configCommands.d.ts.map +1 -0
  28. package/dist/cli/register/configCommands.js +23 -0
  29. package/dist/cli/register/configCommands.js.map +1 -0
  30. package/dist/cli/register/dialogCommands.d.ts +3 -0
  31. package/dist/cli/register/dialogCommands.d.ts.map +1 -0
  32. package/dist/cli/register/dialogCommands.js +52 -0
  33. package/dist/cli/register/dialogCommands.js.map +1 -0
  34. package/dist/cli/register/domCommandBuilder.d.ts +7 -5
  35. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
  36. package/dist/cli/register/domCommandBuilder.js +28 -23
  37. package/dist/cli/register/domCommandBuilder.js.map +1 -1
  38. package/dist/cli/register/domCommands.d.ts +3 -0
  39. package/dist/cli/register/domCommands.d.ts.map +1 -0
  40. package/dist/cli/register/domCommands.js +318 -0
  41. package/dist/cli/register/domCommands.js.map +1 -0
  42. package/dist/cli/register/evalCommands.d.ts +3 -0
  43. package/dist/cli/register/evalCommands.d.ts.map +1 -0
  44. package/dist/cli/register/evalCommands.js +173 -0
  45. package/dist/cli/register/evalCommands.js.map +1 -0
  46. package/dist/cli/register/extensionCommands.d.ts +3 -0
  47. package/dist/cli/register/extensionCommands.d.ts.map +1 -0
  48. package/dist/cli/register/extensionCommands.js +215 -0
  49. package/dist/cli/register/extensionCommands.js.map +1 -0
  50. package/dist/cli/register/fillCommand.d.ts +3 -0
  51. package/dist/cli/register/fillCommand.d.ts.map +1 -0
  52. package/dist/cli/register/fillCommand.js +44 -0
  53. package/dist/cli/register/fillCommand.js.map +1 -0
  54. package/dist/cli/register/hoverCommand.d.ts +3 -0
  55. package/dist/cli/register/hoverCommand.d.ts.map +1 -0
  56. package/dist/cli/register/hoverCommand.js +27 -0
  57. package/dist/cli/register/hoverCommand.js.map +1 -0
  58. package/dist/cli/register/index.d.ts.map +1 -1
  59. package/dist/cli/register/index.js +57 -52
  60. package/dist/cli/register/index.js.map +1 -1
  61. package/dist/cli/register/keydownCommand.d.ts +3 -0
  62. package/dist/cli/register/keydownCommand.d.ts.map +1 -0
  63. package/dist/cli/register/keydownCommand.js +21 -0
  64. package/dist/cli/register/keydownCommand.js.map +1 -0
  65. package/dist/cli/register/locateCommands.d.ts +3 -0
  66. package/dist/cli/register/locateCommands.d.ts.map +1 -0
  67. package/dist/cli/register/locateCommands.js +60 -0
  68. package/dist/cli/register/locateCommands.js.map +1 -0
  69. package/dist/cli/register/logsCommands.d.ts +3 -0
  70. package/dist/cli/register/logsCommands.d.ts.map +1 -0
  71. package/dist/cli/register/logsCommands.js +67 -0
  72. package/dist/cli/register/logsCommands.js.map +1 -0
  73. package/dist/cli/register/netCommands.d.ts +3 -0
  74. package/dist/cli/register/netCommands.d.ts.map +1 -0
  75. package/dist/cli/register/netCommands.js +442 -0
  76. package/dist/cli/register/netCommands.js.map +1 -0
  77. package/dist/cli/register/pageCommands.d.ts +3 -0
  78. package/dist/cli/register/pageCommands.d.ts.map +1 -0
  79. package/dist/cli/register/pageCommands.js +188 -0
  80. package/dist/cli/register/pageCommands.js.map +1 -0
  81. package/dist/cli/register/pluginCommands.d.ts +3 -0
  82. package/dist/cli/register/pluginCommands.d.ts.map +1 -0
  83. package/dist/cli/register/pluginCommands.js +51 -0
  84. package/dist/cli/register/pluginCommands.js.map +1 -0
  85. package/dist/cli/register/quickAccessCommands.d.ts +3 -0
  86. package/dist/cli/register/quickAccessCommands.d.ts.map +1 -0
  87. package/dist/cli/register/quickAccessCommands.js +138 -0
  88. package/dist/cli/register/quickAccessCommands.js.map +1 -0
  89. package/dist/cli/register/recordCommands.d.ts +3 -0
  90. package/dist/cli/register/recordCommands.d.ts.map +1 -0
  91. package/dist/cli/register/recordCommands.js +90 -0
  92. package/dist/cli/register/recordCommands.js.map +1 -0
  93. package/dist/cli/register/scrollToCommand.d.ts +3 -0
  94. package/dist/cli/register/scrollToCommand.d.ts.map +1 -0
  95. package/dist/cli/register/scrollToCommand.js +30 -0
  96. package/dist/cli/register/scrollToCommand.js.map +1 -0
  97. package/dist/cli/register/skillCommands.d.ts +3 -0
  98. package/dist/cli/register/skillCommands.d.ts.map +1 -0
  99. package/dist/cli/register/skillCommands.js +13 -0
  100. package/dist/cli/register/skillCommands.js.map +1 -0
  101. package/dist/cli/register/snapshotCommands.d.ts +3 -0
  102. package/dist/cli/register/snapshotCommands.d.ts.map +1 -0
  103. package/dist/cli/register/snapshotCommands.js +57 -0
  104. package/dist/cli/register/snapshotCommands.js.map +1 -0
  105. package/dist/cli/register/storageCommands.d.ts +3 -0
  106. package/dist/cli/register/storageCommands.d.ts.map +1 -0
  107. package/dist/cli/register/storageCommands.js +78 -0
  108. package/dist/cli/register/storageCommands.js.map +1 -0
  109. package/dist/cli/register/throttleCommands.d.ts +3 -0
  110. package/dist/cli/register/throttleCommands.d.ts.map +1 -0
  111. package/dist/cli/register/throttleCommands.js +48 -0
  112. package/dist/cli/register/throttleCommands.js.map +1 -0
  113. package/dist/cli/register/traceCommands.d.ts +3 -0
  114. package/dist/cli/register/traceCommands.d.ts.map +1 -0
  115. package/dist/cli/register/traceCommands.js +72 -0
  116. package/dist/cli/register/traceCommands.js.map +1 -0
  117. package/dist/cli/register/watcherCommands.d.ts +3 -0
  118. package/dist/cli/register/watcherCommands.d.ts.map +1 -0
  119. package/dist/cli/register/watcherCommands.js +180 -0
  120. package/dist/cli/register/watcherCommands.js.map +1 -0
  121. package/dist/commands/auth.d.ts.map +1 -1
  122. package/dist/commands/auth.js.map +1 -1
  123. package/dist/commands/code.d.ts +2 -2
  124. package/dist/commands/code.d.ts.map +1 -1
  125. package/dist/commands/code.js +42 -45
  126. package/dist/commands/code.js.map +1 -1
  127. package/dist/commands/codeEdit.d.ts.map +1 -1
  128. package/dist/commands/codeEdit.js.map +1 -1
  129. package/dist/commands/domDrag.d.ts +21 -0
  130. package/dist/commands/domDrag.d.ts.map +1 -0
  131. package/dist/commands/domDrag.js +179 -0
  132. package/dist/commands/domDrag.js.map +1 -0
  133. package/dist/commands/eval.d.ts +9 -1
  134. package/dist/commands/eval.d.ts.map +1 -1
  135. package/dist/commands/eval.js +20 -10
  136. package/dist/commands/eval.js.map +1 -1
  137. package/dist/commands/evalArgs.d.ts +31 -0
  138. package/dist/commands/evalArgs.d.ts.map +1 -0
  139. package/dist/commands/evalArgs.js +103 -0
  140. package/dist/commands/evalArgs.js.map +1 -0
  141. package/dist/commands/evalBundle.d.ts +4 -5
  142. package/dist/commands/evalBundle.d.ts.map +1 -1
  143. package/dist/commands/evalBundle.js +88 -69
  144. package/dist/commands/evalBundle.js.map +1 -1
  145. package/dist/commands/evalModuleSyntax.d.ts +6 -0
  146. package/dist/commands/evalModuleSyntax.d.ts.map +1 -0
  147. package/dist/commands/evalModuleSyntax.js +33 -0
  148. package/dist/commands/evalModuleSyntax.js.map +1 -0
  149. package/dist/commands/evalPolling.d.ts +1 -1
  150. package/dist/commands/evalPolling.d.ts.map +1 -1
  151. package/dist/commands/evalPolling.js +1 -1
  152. package/dist/commands/evalPolling.js.map +1 -1
  153. package/dist/commands/evalResultOutput.d.ts +25 -0
  154. package/dist/commands/evalResultOutput.d.ts.map +1 -0
  155. package/dist/commands/evalResultOutput.js +85 -0
  156. package/dist/commands/evalResultOutput.js.map +1 -0
  157. package/dist/commands/evalShared.d.ts +42 -17
  158. package/dist/commands/evalShared.d.ts.map +1 -1
  159. package/dist/commands/evalShared.js +96 -53
  160. package/dist/commands/evalShared.js.map +1 -1
  161. package/dist/commands/evalUntil.d.ts +7 -1
  162. package/dist/commands/evalUntil.d.ts.map +1 -1
  163. package/dist/commands/evalUntil.js +16 -27
  164. package/dist/commands/evalUntil.js.map +1 -1
  165. package/dist/commands/extension/attach.d.ts +5 -1
  166. package/dist/commands/extension/attach.d.ts.map +1 -1
  167. package/dist/commands/extension/attach.js +44 -84
  168. package/dist/commands/extension/attach.js.map +1 -1
  169. package/dist/commands/extension/doctor.d.ts +6 -0
  170. package/dist/commands/extension/doctor.d.ts.map +1 -0
  171. package/dist/commands/extension/doctor.js +185 -0
  172. package/dist/commands/extension/doctor.js.map +1 -0
  173. package/dist/commands/extension/select.d.ts +7 -0
  174. package/dist/commands/extension/select.d.ts.map +1 -0
  175. package/dist/commands/extension/select.js +73 -0
  176. package/dist/commands/extension/select.js.map +1 -0
  177. package/dist/commands/extension/show.d.ts +16 -0
  178. package/dist/commands/extension/show.d.ts.map +1 -0
  179. package/dist/commands/extension/show.js +132 -0
  180. package/dist/commands/extension/show.js.map +1 -0
  181. package/dist/commands/extension/tabAttach.d.ts +28 -0
  182. package/dist/commands/extension/tabAttach.d.ts.map +1 -0
  183. package/dist/commands/extension/tabAttach.js +106 -0
  184. package/dist/commands/extension/tabAttach.js.map +1 -0
  185. package/dist/commands/extension/tabSelection.d.ts +45 -0
  186. package/dist/commands/extension/tabSelection.d.ts.map +1 -0
  187. package/dist/commands/extension/tabSelection.js +76 -0
  188. package/dist/commands/extension/tabSelection.js.map +1 -0
  189. package/dist/commands/extension/tabWatcher.d.ts +22 -0
  190. package/dist/commands/extension/tabWatcher.d.ts.map +1 -0
  191. package/dist/commands/extension/tabWatcher.js +89 -0
  192. package/dist/commands/extension/tabWatcher.js.map +1 -0
  193. package/dist/commands/extension/targetSelection.d.ts +62 -0
  194. package/dist/commands/extension/targetSelection.d.ts.map +1 -0
  195. package/dist/commands/extension/targetSelection.js +210 -0
  196. package/dist/commands/extension/targetSelection.js.map +1 -0
  197. package/dist/commands/extension/targets.d.ts +7 -0
  198. package/dist/commands/extension/targets.d.ts.map +1 -0
  199. package/dist/commands/extension/targets.js +73 -0
  200. package/dist/commands/extension/targets.js.map +1 -0
  201. package/dist/commands/extension/use.d.ts +13 -0
  202. package/dist/commands/extension/use.d.ts.map +1 -0
  203. package/dist/commands/extension/use.js +66 -0
  204. package/dist/commands/extension/use.js.map +1 -0
  205. package/dist/commands/locate.d.ts.map +1 -1
  206. package/dist/commands/locate.js.map +1 -1
  207. package/dist/commands/netMock.d.ts +34 -0
  208. package/dist/commands/netMock.d.ts.map +1 -0
  209. package/dist/commands/netMock.js +323 -0
  210. package/dist/commands/netMock.js.map +1 -0
  211. package/dist/commands/netSse.d.ts +1 -1
  212. package/dist/commands/netSse.d.ts.map +1 -1
  213. package/dist/commands/netSse.js +19 -23
  214. package/dist/commands/netSse.js.map +1 -1
  215. package/dist/commands/netWebSocket.d.ts +2 -2
  216. package/dist/commands/netWebSocket.d.ts.map +1 -1
  217. package/dist/commands/netWebSocket.js +42 -55
  218. package/dist/commands/netWebSocket.js.map +1 -1
  219. package/dist/commands/pluginConfig.d.ts +1 -0
  220. package/dist/commands/pluginConfig.d.ts.map +1 -1
  221. package/dist/commands/pluginConfig.js +12 -2
  222. package/dist/commands/pluginConfig.js.map +1 -1
  223. package/dist/commands/record.d.ts +35 -0
  224. package/dist/commands/record.d.ts.map +1 -0
  225. package/dist/commands/record.js +210 -0
  226. package/dist/commands/record.js.map +1 -0
  227. package/dist/commands/skill.d.ts +6 -0
  228. package/dist/commands/skill.d.ts.map +1 -0
  229. package/dist/commands/skill.js +42 -0
  230. package/dist/commands/skill.js.map +1 -0
  231. package/dist/commands/start.d.ts +2 -2
  232. package/dist/commands/start.d.ts.map +1 -1
  233. package/dist/commands/startShared.d.ts +1 -1
  234. package/dist/commands/startShared.d.ts.map +1 -1
  235. package/dist/commands/watcherNativeHost.js +48 -1
  236. package/dist/commands/watcherNativeHost.js.map +1 -1
  237. package/dist/commands/watcherSession.d.ts +3 -3
  238. package/dist/commands/watcherSession.d.ts.map +1 -1
  239. package/dist/commands/watcherSession.js.map +1 -1
  240. package/dist/commands/watcherStart.d.ts +2 -2
  241. package/dist/commands/watcherStart.d.ts.map +1 -1
  242. package/dist/config/argusHome.d.ts +3 -0
  243. package/dist/config/argusHome.d.ts.map +1 -0
  244. package/dist/config/argusHome.js +11 -0
  245. package/dist/config/argusHome.js.map +1 -0
  246. package/dist/config/loadConfig.d.ts +13 -0
  247. package/dist/config/loadConfig.d.ts.map +1 -0
  248. package/dist/config/loadConfig.js +59 -0
  249. package/dist/config/loadConfig.js.map +1 -0
  250. package/dist/config/mergeConfig.d.ts +34 -0
  251. package/dist/config/mergeConfig.d.ts.map +1 -0
  252. package/dist/config/mergeConfig.js +57 -0
  253. package/dist/config/mergeConfig.js.map +1 -0
  254. package/dist/config/types.d.ts +51 -0
  255. package/dist/config/types.d.ts.map +1 -0
  256. package/dist/config/types.js +2 -0
  257. package/dist/config/types.js.map +1 -0
  258. package/dist/config/validateConfig.d.ts +14 -0
  259. package/dist/config/validateConfig.d.ts.map +1 -0
  260. package/dist/config/{argusConfig.js → validateConfig.js} +136 -244
  261. package/dist/config/validateConfig.js.map +1 -0
  262. package/dist/eval/evalClient.d.ts +2 -0
  263. package/dist/eval/evalClient.d.ts.map +1 -1
  264. package/dist/eval/evalClient.js +26 -2
  265. package/dist/eval/evalClient.js.map +1 -1
  266. package/dist/skill/argus/SKILL.md +200 -0
  267. package/dist/skill/argus/reference/CAPTURE.md +77 -0
  268. package/dist/skill/argus/reference/DIALOG.md +31 -0
  269. package/dist/skill/argus/reference/EVAL.md +137 -0
  270. package/dist/skill/argus/reference/EXTENSION.md +38 -0
  271. package/dist/skill/argus/reference/EXTENSION_IFRAME_EVAL.md +58 -0
  272. package/dist/skill/argus/reference/IFRAMES.md +46 -0
  273. package/dist/skill/argus/reference/INJECT.md +145 -0
  274. package/dist/skill/argus/reference/INSPECT.md +175 -0
  275. package/dist/skill/argus/reference/NET.md +108 -0
  276. package/dist/skill/argus/reference/PLUGINS.md +172 -0
  277. package/dist/skill/argus/reference/RUNTIME_CODE.md +42 -0
  278. package/dist/skill/argus/reference/START.md +120 -0
  279. package/dist/skill/argus/start-watcher.ts +108 -0
  280. package/package.json +4 -2
  281. package/dist/cli/register/registerAuth.d.ts +0 -3
  282. package/dist/cli/register/registerAuth.d.ts.map +0 -1
  283. package/dist/cli/register/registerAuth.js +0 -133
  284. package/dist/cli/register/registerAuth.js.map +0 -1
  285. package/dist/cli/register/registerChrome.d.ts +0 -3
  286. package/dist/cli/register/registerChrome.d.ts.map +0 -1
  287. package/dist/cli/register/registerChrome.js +0 -118
  288. package/dist/cli/register/registerChrome.js.map +0 -1
  289. package/dist/cli/register/registerCode.d.ts +0 -3
  290. package/dist/cli/register/registerCode.d.ts.map +0 -1
  291. package/dist/cli/register/registerCode.js +0 -74
  292. package/dist/cli/register/registerCode.js.map +0 -1
  293. package/dist/cli/register/registerConfig.d.ts +0 -3
  294. package/dist/cli/register/registerConfig.d.ts.map +0 -1
  295. package/dist/cli/register/registerConfig.js +0 -14
  296. package/dist/cli/register/registerConfig.js.map +0 -1
  297. package/dist/cli/register/registerDialog.d.ts +0 -3
  298. package/dist/cli/register/registerDialog.d.ts.map +0 -1
  299. package/dist/cli/register/registerDialog.js +0 -45
  300. package/dist/cli/register/registerDialog.js.map +0 -1
  301. package/dist/cli/register/registerDom.d.ts +0 -3
  302. package/dist/cli/register/registerDom.d.ts.map +0 -1
  303. package/dist/cli/register/registerDom.js +0 -284
  304. package/dist/cli/register/registerDom.js.map +0 -1
  305. package/dist/cli/register/registerEval.d.ts +0 -3
  306. package/dist/cli/register/registerEval.d.ts.map +0 -1
  307. package/dist/cli/register/registerEval.js +0 -149
  308. package/dist/cli/register/registerEval.js.map +0 -1
  309. package/dist/cli/register/registerExtension.d.ts +0 -3
  310. package/dist/cli/register/registerExtension.d.ts.map +0 -1
  311. package/dist/cli/register/registerExtension.js +0 -72
  312. package/dist/cli/register/registerExtension.js.map +0 -1
  313. package/dist/cli/register/registerFill.d.ts +0 -3
  314. package/dist/cli/register/registerFill.d.ts.map +0 -1
  315. package/dist/cli/register/registerFill.js +0 -31
  316. package/dist/cli/register/registerFill.js.map +0 -1
  317. package/dist/cli/register/registerHover.d.ts +0 -3
  318. package/dist/cli/register/registerHover.d.ts.map +0 -1
  319. package/dist/cli/register/registerHover.js +0 -21
  320. package/dist/cli/register/registerHover.js.map +0 -1
  321. package/dist/cli/register/registerKeydown.d.ts +0 -3
  322. package/dist/cli/register/registerKeydown.d.ts.map +0 -1
  323. package/dist/cli/register/registerKeydown.js +0 -20
  324. package/dist/cli/register/registerKeydown.js.map +0 -1
  325. package/dist/cli/register/registerLocate.d.ts +0 -3
  326. package/dist/cli/register/registerLocate.d.ts.map +0 -1
  327. package/dist/cli/register/registerLocate.js +0 -48
  328. package/dist/cli/register/registerLocate.js.map +0 -1
  329. package/dist/cli/register/registerLogs.d.ts +0 -3
  330. package/dist/cli/register/registerLogs.d.ts.map +0 -1
  331. package/dist/cli/register/registerLogs.js +0 -64
  332. package/dist/cli/register/registerLogs.js.map +0 -1
  333. package/dist/cli/register/registerNet.d.ts +0 -3
  334. package/dist/cli/register/registerNet.d.ts.map +0 -1
  335. package/dist/cli/register/registerNet.js +0 -287
  336. package/dist/cli/register/registerNet.js.map +0 -1
  337. package/dist/cli/register/registerPage.d.ts +0 -3
  338. package/dist/cli/register/registerPage.d.ts.map +0 -1
  339. package/dist/cli/register/registerPage.js +0 -123
  340. package/dist/cli/register/registerPage.js.map +0 -1
  341. package/dist/cli/register/registerPlugin.d.ts +0 -3
  342. package/dist/cli/register/registerPlugin.d.ts.map +0 -1
  343. package/dist/cli/register/registerPlugin.js +0 -34
  344. package/dist/cli/register/registerPlugin.js.map +0 -1
  345. package/dist/cli/register/registerQuickAccess.d.ts +0 -3
  346. package/dist/cli/register/registerQuickAccess.d.ts.map +0 -1
  347. package/dist/cli/register/registerQuickAccess.js +0 -112
  348. package/dist/cli/register/registerQuickAccess.js.map +0 -1
  349. package/dist/cli/register/registerScrollTo.d.ts +0 -3
  350. package/dist/cli/register/registerScrollTo.d.ts.map +0 -1
  351. package/dist/cli/register/registerScrollTo.js +0 -22
  352. package/dist/cli/register/registerScrollTo.js.map +0 -1
  353. package/dist/cli/register/registerSnapshot.d.ts +0 -3
  354. package/dist/cli/register/registerSnapshot.d.ts.map +0 -1
  355. package/dist/cli/register/registerSnapshot.js +0 -38
  356. package/dist/cli/register/registerSnapshot.js.map +0 -1
  357. package/dist/cli/register/registerStorage.d.ts +0 -3
  358. package/dist/cli/register/registerStorage.d.ts.map +0 -1
  359. package/dist/cli/register/registerStorage.js +0 -61
  360. package/dist/cli/register/registerStorage.js.map +0 -1
  361. package/dist/cli/register/registerThrottle.d.ts +0 -3
  362. package/dist/cli/register/registerThrottle.d.ts.map +0 -1
  363. package/dist/cli/register/registerThrottle.js +0 -33
  364. package/dist/cli/register/registerThrottle.js.map +0 -1
  365. package/dist/cli/register/registerTrace.d.ts +0 -3
  366. package/dist/cli/register/registerTrace.d.ts.map +0 -1
  367. package/dist/cli/register/registerTrace.js +0 -57
  368. package/dist/cli/register/registerTrace.js.map +0 -1
  369. package/dist/cli/register/registerWatcher.d.ts +0 -3
  370. package/dist/cli/register/registerWatcher.d.ts.map +0 -1
  371. package/dist/cli/register/registerWatcher.js +0 -135
  372. package/dist/cli/register/registerWatcher.js.map +0 -1
  373. package/dist/config/argusConfig.d.ts +0 -76
  374. package/dist/config/argusConfig.d.ts.map +0 -1
  375. package/dist/config/argusConfig.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { formatError } from '../cli/parse.js';
3
+ import { resolvePath } from '../utils/paths.js';
4
+ /**
5
+ * Parse repeated `--arg key=value` flags.
6
+ * Later values override earlier ones for the same key.
7
+ */
8
+ export const parseEvalArgFlags = (values) => {
9
+ const args = {};
10
+ for (const value of values ?? []) {
11
+ const separatorIndex = value.indexOf('=');
12
+ if (separatorIndex < 0 || separatorIndex === 0) {
13
+ return { value: args, error: `Invalid --arg value ${JSON.stringify(value)}: expected key=value.` };
14
+ }
15
+ args[value.slice(0, separatorIndex)] = value.slice(separatorIndex + 1);
16
+ }
17
+ return { value: args };
18
+ };
19
+ /** True when the parsed arg map should be sent or injected. */
20
+ export const hasEvalArgs = (args) => Object.keys(args).length > 0;
21
+ /**
22
+ * Load `--args` JSON and merge with `--arg` overrides.
23
+ * Precedence: file base map, then CLI flags (later `--arg` wins on duplicates).
24
+ */
25
+ export const resolveEvalArgs = async (options, output) => {
26
+ let merged = {};
27
+ if (options.args != null) {
28
+ const loaded = await loadEvalArgsFile(options.args, output);
29
+ if (loaded == null) {
30
+ return null;
31
+ }
32
+ merged = loaded;
33
+ }
34
+ const flagArgs = parseEvalArgFlags(options.arg);
35
+ if (flagArgs.error) {
36
+ output.writeWarn(flagArgs.error);
37
+ return null;
38
+ }
39
+ return { ...merged, ...flagArgs.value };
40
+ };
41
+ /**
42
+ * Read and validate a JSON args file.
43
+ * Values must be JSON primitives; they are coerced to strings for the watcher protocol.
44
+ */
45
+ export const loadEvalArgsFile = async (filePath, output) => {
46
+ const resolvedPath = resolvePath(filePath);
47
+ let raw;
48
+ try {
49
+ raw = await readFile(resolvedPath, 'utf8');
50
+ }
51
+ catch (error) {
52
+ output.writeWarn(`Failed to read --args file: ${formatError(error)}`);
53
+ return null;
54
+ }
55
+ if (!raw.trim()) {
56
+ output.writeWarn(`Args file is empty: ${filePath}`);
57
+ return null;
58
+ }
59
+ let parsed;
60
+ try {
61
+ parsed = JSON.parse(raw);
62
+ }
63
+ catch (error) {
64
+ output.writeWarn(`Invalid --args file ${filePath}: ${formatError(error)}`);
65
+ return null;
66
+ }
67
+ const coerced = coerceEvalArgsObject(parsed, filePath);
68
+ if (typeof coerced === 'string') {
69
+ output.writeWarn(coerced);
70
+ return null;
71
+ }
72
+ return coerced;
73
+ };
74
+ const coerceEvalArgsObject = (value, filePath) => {
75
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
76
+ return `Invalid --args file ${filePath}: expected a JSON object.`;
77
+ }
78
+ const args = {};
79
+ for (const [key, entryValue] of Object.entries(value)) {
80
+ if (!key) {
81
+ return `Invalid --args file ${filePath}: empty object key.`;
82
+ }
83
+ const coerced = coerceEvalArgValue(entryValue);
84
+ if (coerced == null) {
85
+ return `Invalid --args file ${filePath}: value for ${JSON.stringify(key)} must be a string, number, boolean, or null.`;
86
+ }
87
+ args[key] = coerced;
88
+ }
89
+ return args;
90
+ };
91
+ const coerceEvalArgValue = (value) => {
92
+ if (value === null) {
93
+ return 'null';
94
+ }
95
+ if (typeof value === 'string') {
96
+ return value;
97
+ }
98
+ if (typeof value === 'number' || typeof value === 'boolean') {
99
+ return String(value);
100
+ }
101
+ return null;
102
+ };
103
+ //# sourceMappingURL=evalArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalArgs.js","sourceRoot":"","sources":["../../src/commands/evalArgs.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,11 @@ export type BundleEvalEntryResult = {
6
6
  error: string;
7
7
  };
8
8
  /**
9
- * Bundle a local `--file` entry and its relative imports into one browser-evaluable script.
9
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
10
10
  *
11
- * - Only files under the entry file's directory are allowed (no package or Node imports).
12
- * - TypeScript is transpiled without typechecking.
13
- * - Output is REPL-compatible: one script, no top-level `export`.
14
- * - Static and dynamic `import()` of local files are inlined into one script.
11
+ * Resolution is permissive: esbuild resolves from `process.cwd()` (any path or package
12
+ * under `node_modules`). Only `node:` built-ins are blocked. TypeScript is transpiled
13
+ * without typechecking. The final script must not contain top-level `export` (REPL eval).
15
14
  */
16
15
  export declare const bundleEvalEntry: (entryPath: string) => Promise<BundleEvalEntryResult>;
17
16
  //# sourceMappingURL=evalBundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evalBundle.d.ts","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAW7F;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAoCtF,CAAA"}
1
+ {"version":3,"file":"evalBundle.d.ts","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAS7F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAiCtF,CAAA"}
@@ -1,16 +1,14 @@
1
- import { realpath } from 'node:fs/promises';
1
+ import { readFile, realpath } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  let esbuildModulePromise;
4
- const nodeModulesSegment = `${path.sep}node_modules${path.sep}`;
5
- /** Load esbuild on demand so non-eval CLI commands avoid the native binary startup cost. */
6
4
  const loadEsbuild = () => (esbuildModulePromise ??= import('esbuild'));
5
+ const RESULT_BINDING = '__argusEvalBundleResult';
7
6
  /**
8
- * Bundle a local `--file` entry and its relative imports into one browser-evaluable script.
7
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
9
8
  *
10
- * - Only files under the entry file's directory are allowed (no package or Node imports).
11
- * - TypeScript is transpiled without typechecking.
12
- * - Output is REPL-compatible: one script, no top-level `export`.
13
- * - Static and dynamic `import()` of local files are inlined into one script.
9
+ * Resolution is permissive: esbuild resolves from `process.cwd()` (any path or package
10
+ * under `node_modules`). Only `node:` built-ins are blocked. TypeScript is transpiled
11
+ * without typechecking. The final script must not contain top-level `export` (REPL eval).
14
12
  */
15
13
  export const bundleEvalEntry = async (entryPath) => {
16
14
  let entryPoint;
@@ -20,11 +18,10 @@ export const bundleEvalEntry = async (entryPath) => {
20
18
  catch {
21
19
  return { ok: false, error: `Failed to read entry file: ${entryPath}` };
22
20
  }
23
- const bundleRoot = path.dirname(entryPoint);
24
21
  try {
25
22
  const esbuild = await loadEsbuild();
26
23
  const result = await esbuild.build({
27
- absWorkingDir: bundleRoot,
24
+ absWorkingDir: process.cwd(),
28
25
  entryPoints: [entryPoint],
29
26
  bundle: true,
30
27
  write: false,
@@ -34,83 +31,105 @@ export const bundleEvalEntry = async (entryPath) => {
34
31
  target: 'es2022',
35
32
  sourcemap: false,
36
33
  logLevel: 'silent',
37
- plugins: [createLocalFilesPlugin(bundleRoot)],
34
+ plugins: [createPageEvalBundlePlugin(entryPoint)],
38
35
  });
39
36
  const output = result.outputFiles[0];
40
37
  if (output == null) {
41
38
  return { ok: false, error: 'Bundle produced no output.' };
42
39
  }
43
- const code = `${output.text.trimEnd()}\n//# sourceURL=argus-file://${entryPoint}\n`;
44
- return { ok: true, code };
40
+ return { ok: true, code: wrapBundledEval(output.text, entryPoint) };
45
41
  }
46
42
  catch (error) {
47
43
  return { ok: false, error: formatBundleFailure(error) };
48
44
  }
49
45
  };
50
- /** Restrict imports to the entry directory and ensure the bundle is REPL-safe. */
51
- const createLocalFilesPlugin = (bundleRoot) => {
52
- const bundleRootPrefix = bundleRoot.endsWith(path.sep) ? bundleRoot : `${bundleRoot}${path.sep}`;
53
- return {
54
- name: 'argus-eval-bundle',
55
- setup(build) {
56
- build.onResolve({ filter: /.*/ }, (args) => {
57
- if (args.kind === 'entry-point') {
58
- return undefined;
59
- }
60
- if (args.path.startsWith('node:')) {
61
- return bundleError(`Node built-in import ${JSON.stringify(args.path)} is not allowed in page eval.`);
62
- }
63
- if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
64
- return bundleError(`Import ${JSON.stringify(args.path)} is not allowed. Use relative local files under ${bundleRoot}.`);
65
- }
66
- return undefined;
67
- });
68
- build.onLoad({ filter: /.*/ }, async (args) => {
69
- let resolvedPath;
70
- try {
71
- resolvedPath = await realpath(args.path);
72
- }
73
- catch {
74
- return bundleError(`Failed to read file: ${args.path}`);
75
- }
76
- if (resolvedPath !== bundleRoot && !resolvedPath.startsWith(bundleRootPrefix)) {
77
- return bundleError(`Import escapes the entry directory: ${args.path}`);
78
- }
79
- if (resolvedPath.includes(nodeModulesSegment)) {
80
- return bundleError(`Import from node_modules is not allowed: ${args.path}`);
81
- }
82
- return undefined;
83
- });
84
- build.onEnd((result) => {
85
- if (result.errors.length > 0) {
86
- return;
87
- }
88
- const outputs = result.outputFiles ?? [];
89
- if (outputs.length !== 1) {
90
- return bundleError(`Bundle produced ${outputs.length} outputs; expected exactly one script.`);
91
- }
92
- if (/\bexport\b/.test(outputs[0]?.text ?? '')) {
93
- return bundleError('Bundled script contains top-level export statements, which page eval cannot run. ' +
94
- 'Remove exports from the entry file (helpers may still export symbols for import).');
95
- }
96
- });
97
- },
98
- };
46
+ const createPageEvalBundlePlugin = (entryPoint) => ({
47
+ name: 'argus-eval-bundle',
48
+ setup(build) {
49
+ build.onResolve({ filter: /^node:/ }, (args) => bundleError(`Node built-in import ${JSON.stringify(args.path)} is not allowed in page eval.`));
50
+ build.onLoad({ filter: /.*/ }, async (args) => {
51
+ if ((await realpath(args.path)) !== entryPoint) {
52
+ return null;
53
+ }
54
+ const source = await readFile(args.path, 'utf8');
55
+ return {
56
+ contents: captureFinalExpression(source),
57
+ loader: loaderForPath(args.path),
58
+ };
59
+ });
60
+ build.onEnd((result) => {
61
+ if (result.errors.length > 0) {
62
+ return;
63
+ }
64
+ const outputs = result.outputFiles ?? [];
65
+ if (outputs.length !== 1) {
66
+ return bundleError(`Bundle produced ${outputs.length} outputs; expected exactly one script.`);
67
+ }
68
+ if (/\bexport\b/.test(outputs[0]?.text ?? '')) {
69
+ return bundleError('Bundled script contains top-level export statements, which page eval cannot run. ' +
70
+ 'Remove exports from the entry file (helpers may still export symbols for import).');
71
+ }
72
+ });
73
+ },
74
+ });
75
+ const captureFinalExpression = (source) => {
76
+ const lines = source.split(/\r?\n/);
77
+ const index = findFinalCodeLine(lines);
78
+ if (index == null) {
79
+ return source;
80
+ }
81
+ const line = lines[index];
82
+ const expression = line.trim().replace(/;$/, '');
83
+ if (!expression || isStatementLike(expression)) {
84
+ return source;
85
+ }
86
+ const indent = line.match(/^\s*/)?.[0] ?? '';
87
+ lines[index] = `${indent}${RESULT_BINDING} = (${expression});`;
88
+ return lines.join('\n');
89
+ };
90
+ const findFinalCodeLine = (lines) => {
91
+ for (let index = lines.length - 1; index >= 0; index -= 1) {
92
+ const trimmed = lines[index].trim();
93
+ if (trimmed && !trimmed.startsWith('//')) {
94
+ return index;
95
+ }
96
+ }
97
+ return null;
98
+ };
99
+ const isStatementLike = (source) => /^(?:import|export|const|let|var|function|class|if|for|while|switch|try|catch|finally|return|throw|break|continue)\b/.test(source);
100
+ const loaderForPath = (filePath) => {
101
+ const extension = path.extname(filePath).toLowerCase();
102
+ if (extension === '.ts')
103
+ return 'ts';
104
+ if (extension === '.tsx')
105
+ return 'tsx';
106
+ if (extension === '.jsx')
107
+ return 'jsx';
108
+ if (extension === '.json')
109
+ return 'json';
110
+ return 'js';
99
111
  };
112
+ const wrapBundledEval = (source, entryPoint) => `(async () => {
113
+ let ${RESULT_BINDING};
114
+ ${source.trimEnd()}
115
+ return ${RESULT_BINDING};
116
+ })()
117
+ //# sourceURL=argus-file://${entryPoint}
118
+ `;
100
119
  const bundleError = (text) => ({ errors: [{ text }] });
101
120
  const formatBundleFailure = (error) => {
102
- if (isEsbuildFailure(error)) {
103
- return error.errors.map(formatEsbuildMessage).join('\n');
121
+ const issues = error instanceof Error && 'errors' in error ? error.errors : null;
122
+ if (issues?.length) {
123
+ return issues.map(formatEsbuildMessage).join('\n');
104
124
  }
105
125
  return error instanceof Error ? error.message : String(error);
106
126
  };
107
- const isEsbuildFailure = (error) => error instanceof Error && 'errors' in error && Array.isArray(error.errors) && error.errors.length > 0;
108
- const formatEsbuildMessage = (issue) => {
109
- const message = issue.text || 'Bundle failed.';
110
- const { file, line, column } = issue.location ?? {};
111
- if (!file) {
127
+ const formatEsbuildMessage = ({ text, location }) => {
128
+ const message = text || 'Bundle failed.';
129
+ if (!location?.file) {
112
130
  return message;
113
131
  }
132
+ const { file, line, column } = location;
114
133
  if (line == null || column == null) {
115
134
  return `${file}: ${message}`;
116
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evalBundle.js","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAM5B,IAAI,oBAAwD,CAAA;AAE5D,MAAM,kBAAkB,GAAG,GAAG,IAAI,CAAC,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,CAAA;AAE/D,4FAA4F;AAC5F,MAAM,WAAW,GAAG,GAA2B,EAAE,CAAC,CAAC,oBAAoB,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAE9F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAkC,EAAE;IAC1F,IAAI,UAAkB,CAAA;IACtB,IAAI,CAAC;QACJ,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAA;IACvE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE3C,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;YAClC,aAAa,EAAE,UAAU;YACzB,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAA;QAC1D,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,UAAU,IAAI,CAAA;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAA;IACxD,CAAC;AACF,CAAC,CAAA;AAED,kFAAkF;AAClF,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC7D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEhG,OAAO;QACN,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,KAAK;YACV,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,OAAO,SAAS,CAAA;gBACjB,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,OAAO,WAAW,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;gBACrG,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/D,OAAO,WAAW,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,UAAU,GAAG,CAAC,CAAA;gBACxH,CAAC;gBAED,OAAO,SAAS,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC7C,IAAI,YAAoB,CAAA;gBACxB,IAAI,CAAC;oBACJ,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,WAAW,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACxD,CAAC;gBAED,IAAI,YAAY,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/E,OAAO,WAAW,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvE,CAAC;gBAED,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC/C,OAAO,WAAW,CAAC,4CAA4C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC5E,CAAC;gBAED,OAAO,SAAS,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAM;gBACP,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAA;gBACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,WAAW,CAAC,mBAAmB,OAAO,CAAC,MAAM,wCAAwC,CAAC,CAAA;gBAC9F,CAAC;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC/C,OAAO,WAAW,CACjB,mFAAmF;wBAClF,mFAAmF,CACpF,CAAA;gBACF,CAAC;YACF,CAAC,CAAC,CAAA;QACH,CAAC;KACD,CAAA;AACF,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAc,EAAE,CAAC,CAAA;AAE3E,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAU,EAAE;IACtD,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAkC,EAAE,CAC3E,KAAK,YAAY,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAEtG,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAU,EAAE;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAA;IAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,OAAO,CAAA;IACf,CAAC;IAED,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,KAAK,OAAO,EAAE,CAAA;AAC/C,CAAC,CAAA"}
1
+ {"version":3,"file":"evalBundle.js","sourceRoot":"","sources":["../../src/commands/evalBundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Detect ESM `import` / `export` in leading script text (after comments and whitespace).
3
+ * Used to auto-enable `--bundle` for `--file` inputs.
4
+ */
5
+ export declare const fileUsesModuleSyntax: (source: string) => boolean;
6
+ //# sourceMappingURL=evalModuleSyntax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalModuleSyntax.d.ts","sourceRoot":"","sources":["../../src/commands/evalModuleSyntax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,OAAiF,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Detect ESM `import` / `export` in leading script text (after comments and whitespace).
3
+ * Used to auto-enable `--bundle` for `--file` inputs.
4
+ */
5
+ export const fileUsesModuleSyntax = (source) => /^(?:import|export)\b/.test(stripLeadingCommentsAndWhitespace(source));
6
+ /** Skip leading whitespace and comments so detection matches the first executable line. */
7
+ const stripLeadingCommentsAndWhitespace = (source) => {
8
+ let index = 0;
9
+ while (index < source.length) {
10
+ const rest = source.slice(index);
11
+ const whitespace = /^\s+/.exec(rest);
12
+ if (whitespace != null) {
13
+ index += whitespace[0].length;
14
+ continue;
15
+ }
16
+ if (rest.startsWith('//')) {
17
+ const lineEnd = rest.indexOf('\n');
18
+ index += lineEnd === -1 ? rest.length : lineEnd + 1;
19
+ continue;
20
+ }
21
+ if (rest.startsWith('/*')) {
22
+ const blockEnd = rest.indexOf('*/');
23
+ if (blockEnd === -1) {
24
+ break;
25
+ }
26
+ index += blockEnd + 2;
27
+ continue;
28
+ }
29
+ break;
30
+ }
31
+ return source.slice(index);
32
+ };
33
+ //# sourceMappingURL=evalModuleSyntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalModuleSyntax.js","sourceRoot":"","sources":["../../src/commands/evalModuleSyntax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEvI,2FAA2F;AAC3F,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAU,EAAE;IACpE,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACxB,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7B,SAAQ;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAA;YACnD,SAAQ;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,MAAK;YACN,CAAC;YACD,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAA;YACrB,SAAQ;QACT,CAAC;QAED,MAAK;IACN,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA"}
@@ -25,7 +25,7 @@ export type EvalPollInput = {
25
25
  count?: number;
26
26
  totalTimeoutMs?: number;
27
27
  shouldStop?: (context: PollStopContext) => PollStopResult;
28
- onResult?: (response: EvalResponse, context: PollStopContext) => void;
28
+ onResult?: (response: EvalResponse, context: PollStopContext) => void | Promise<void>;
29
29
  };
30
30
  export type EvalPollOutcome = {
31
31
  kind: 'matched';
@@ -1 +1 @@
1
- {"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAG/E,KAAK,eAAe,GAAG;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAA;IACzD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CA+D5E,CAAA"}
1
+ {"version":3,"file":"evalPolling.d.ts","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAG/E,KAAK,eAAe,GAAG;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,cAAc,CAAA;IACzD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF,CAAA;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,QAAQ,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,eAAe,CA+D5E,CAAA"}
@@ -34,7 +34,7 @@ export const pollEval = async (input) => {
34
34
  }
35
35
  const context = { response: result.response, iteration, attempt: result.attempt };
36
36
  // Streaming commands print the matched iteration too, so emit before checking stop conditions.
37
- input.onResult?.(result.response, context);
37
+ await input.onResult?.(result.response, context);
38
38
  const stopResult = input.shouldStop?.(context);
39
39
  if (stopResult) {
40
40
  if (!stopResult.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"evalPolling.js","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evalPolling.js","sourceRoot":"","sources":["../../src/commands/evalPolling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { EvalResponse } from '@vforsh/argus-core';
2
+ import type { Output } from '../output/io.js';
3
+ /** Options for writing eval results to `--out`. */
4
+ export type EvalResultFileOptions = {
5
+ out?: string;
6
+ rotate?: boolean;
7
+ json?: boolean;
8
+ };
9
+ /** Sink that persists eval responses to disk. */
10
+ export type EvalResultFileSink = {
11
+ write: (response: EvalResponse, streaming: boolean) => Promise<void>;
12
+ displayPath: string;
13
+ };
14
+ /**
15
+ * Validate `--out` / `--rotate` usage for eval commands.
16
+ * Returns `false` and sets exit code 2 when invalid.
17
+ */
18
+ export declare const validateEvalResultFileOptions: (options: EvalResultFileOptions & {
19
+ interval?: string;
20
+ }, output: Output) => boolean;
21
+ /** Create a file sink when `--out` is set; otherwise `null`. */
22
+ export declare const createEvalResultFileSink: (options: EvalResultFileOptions) => EvalResultFileSink | null;
23
+ /** Insert a zero-padded counter before the file extension (`result.json` → `result.0001.json`). */
24
+ export declare const formatRotatedPath: (outPath: string, index: number) => string;
25
+ //# sourceMappingURL=evalResultOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalResultOutput.d.ts","sourceRoot":"","sources":["../../src/commands/evalResultOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAItD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAG7C,mDAAmD;AACnD,MAAM,MAAM,qBAAqB,GAAG;IACnC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,iDAAiD;AACjD,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpE,WAAW,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,SAAS,qBAAqB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,MAAM,KAAG,OActH,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,GAAI,SAAS,qBAAqB,KAAG,kBAAkB,GAAG,IAM9F,CAAA;AAqCD,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,MAKlE,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { previewStringify } from '@vforsh/argus-core';
2
+ import { appendFile, mkdir, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { resolvePath } from '../utils/paths.js';
5
+ /**
6
+ * Validate `--out` / `--rotate` usage for eval commands.
7
+ * Returns `false` and sets exit code 2 when invalid.
8
+ */
9
+ export const validateEvalResultFileOptions = (options, output) => {
10
+ if (options.rotate && !options.out) {
11
+ output.writeWarn('Invalid --rotate usage: requires --out');
12
+ process.exitCode = 2;
13
+ return false;
14
+ }
15
+ if (options.rotate && options.interval == null) {
16
+ output.writeWarn('Invalid --rotate usage: requires --interval');
17
+ process.exitCode = 2;
18
+ return false;
19
+ }
20
+ return true;
21
+ };
22
+ /** Create a file sink when `--out` is set; otherwise `null`. */
23
+ export const createEvalResultFileSink = (options) => {
24
+ if (!options.out) {
25
+ return null;
26
+ }
27
+ return createEvalResultFileSinkAtPath(resolvePath(options.out), options.json === true, options.rotate === true);
28
+ };
29
+ const createEvalResultFileSinkAtPath = (outPath, json, rotate) => {
30
+ let appendReady = false;
31
+ let rotateIndex = 0;
32
+ const prepareAppendTarget = async () => {
33
+ if (appendReady) {
34
+ return;
35
+ }
36
+ await ensureParentDir(outPath);
37
+ await writeFile(outPath, '', 'utf8');
38
+ appendReady = true;
39
+ };
40
+ return {
41
+ displayPath: outPath,
42
+ write: async (response, streaming) => {
43
+ if (streaming && rotate) {
44
+ rotateIndex += 1;
45
+ const iterationPath = formatRotatedPath(outPath, rotateIndex);
46
+ await writeResultFile(iterationPath, formatResultPayload(response, json));
47
+ return;
48
+ }
49
+ if (streaming) {
50
+ await prepareAppendTarget();
51
+ await appendFile(outPath, `${JSON.stringify(response)}\n`, 'utf8');
52
+ return;
53
+ }
54
+ await writeResultFile(outPath, formatResultPayload(response, json));
55
+ },
56
+ };
57
+ };
58
+ /** Insert a zero-padded counter before the file extension (`result.json` → `result.0001.json`). */
59
+ export const formatRotatedPath = (outPath, index) => {
60
+ const parsed = path.parse(outPath);
61
+ const suffix = String(index).padStart(4, '0');
62
+ const extension = parsed.ext || '.json';
63
+ return path.join(parsed.dir, `${parsed.name}.${suffix}${extension}`);
64
+ };
65
+ const formatResultPayload = (response, json) => {
66
+ if (json) {
67
+ return `${JSON.stringify(response, null, 2)}\n`;
68
+ }
69
+ if (response.exception) {
70
+ const details = response.exception.details ? `\n${previewStringify(response.exception.details)}` : '';
71
+ return `Exception: ${response.exception.text}${details}\n`;
72
+ }
73
+ return `${previewStringify(response.result)}\n`;
74
+ };
75
+ const writeResultFile = async (filePath, payload) => {
76
+ await ensureParentDir(filePath);
77
+ await writeFile(filePath, payload, 'utf8');
78
+ };
79
+ const ensureParentDir = async (filePath) => {
80
+ const parent = path.dirname(filePath);
81
+ if (parent && parent !== '.') {
82
+ await mkdir(parent, { recursive: true });
83
+ }
84
+ };
85
+ //# sourceMappingURL=evalResultOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalResultOutput.js","sourceRoot":"","sources":["../../src/commands/evalResultOutput.ts"],"names":[],"mappings":"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"}