@vforsh/argus 0.1.15 → 0.1.18

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 (332) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +19359 -16671
  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/registerPlugins.d.ts +3 -1
  8. package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
  9. package/dist/cli/plugins/registerPlugins.js +31 -12
  10. package/dist/cli/plugins/registerPlugins.js.map +1 -1
  11. package/dist/cli/register/authCommands.d.ts +3 -0
  12. package/dist/cli/register/authCommands.d.ts.map +1 -0
  13. package/dist/cli/register/authCommands.js +230 -0
  14. package/dist/cli/register/authCommands.js.map +1 -0
  15. package/dist/cli/register/chromeCommands.d.ts +3 -0
  16. package/dist/cli/register/chromeCommands.d.ts.map +1 -0
  17. package/dist/cli/register/chromeCommands.js +153 -0
  18. package/dist/cli/register/chromeCommands.js.map +1 -0
  19. package/dist/cli/register/codeCommands.d.ts +3 -0
  20. package/dist/cli/register/codeCommands.d.ts.map +1 -0
  21. package/dist/cli/register/codeCommands.js +116 -0
  22. package/dist/cli/register/codeCommands.js.map +1 -0
  23. package/dist/cli/register/configCommands.d.ts +3 -0
  24. package/dist/cli/register/configCommands.d.ts.map +1 -0
  25. package/dist/cli/register/configCommands.js +23 -0
  26. package/dist/cli/register/configCommands.js.map +1 -0
  27. package/dist/cli/register/dialogCommands.d.ts +3 -0
  28. package/dist/cli/register/dialogCommands.d.ts.map +1 -0
  29. package/dist/cli/register/dialogCommands.js +52 -0
  30. package/dist/cli/register/dialogCommands.js.map +1 -0
  31. package/dist/cli/register/domCommandBuilder.d.ts +7 -5
  32. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
  33. package/dist/cli/register/domCommandBuilder.js +28 -23
  34. package/dist/cli/register/domCommandBuilder.js.map +1 -1
  35. package/dist/cli/register/domCommands.d.ts +3 -0
  36. package/dist/cli/register/domCommands.d.ts.map +1 -0
  37. package/dist/cli/register/domCommands.js +318 -0
  38. package/dist/cli/register/domCommands.js.map +1 -0
  39. package/dist/cli/register/evalCommands.d.ts +3 -0
  40. package/dist/cli/register/evalCommands.d.ts.map +1 -0
  41. package/dist/cli/register/evalCommands.js +173 -0
  42. package/dist/cli/register/evalCommands.js.map +1 -0
  43. package/dist/cli/register/extensionCommands.d.ts +3 -0
  44. package/dist/cli/register/extensionCommands.d.ts.map +1 -0
  45. package/dist/cli/register/extensionCommands.js +115 -0
  46. package/dist/cli/register/extensionCommands.js.map +1 -0
  47. package/dist/cli/register/fillCommand.d.ts +3 -0
  48. package/dist/cli/register/fillCommand.d.ts.map +1 -0
  49. package/dist/cli/register/fillCommand.js +44 -0
  50. package/dist/cli/register/fillCommand.js.map +1 -0
  51. package/dist/cli/register/hoverCommand.d.ts +3 -0
  52. package/dist/cli/register/hoverCommand.d.ts.map +1 -0
  53. package/dist/cli/register/hoverCommand.js +27 -0
  54. package/dist/cli/register/hoverCommand.js.map +1 -0
  55. package/dist/cli/register/index.d.ts.map +1 -1
  56. package/dist/cli/register/index.js +51 -52
  57. package/dist/cli/register/index.js.map +1 -1
  58. package/dist/cli/register/keydownCommand.d.ts +3 -0
  59. package/dist/cli/register/keydownCommand.d.ts.map +1 -0
  60. package/dist/cli/register/keydownCommand.js +21 -0
  61. package/dist/cli/register/keydownCommand.js.map +1 -0
  62. package/dist/cli/register/locateCommands.d.ts +3 -0
  63. package/dist/cli/register/locateCommands.d.ts.map +1 -0
  64. package/dist/cli/register/locateCommands.js +60 -0
  65. package/dist/cli/register/locateCommands.js.map +1 -0
  66. package/dist/cli/register/logsCommands.d.ts +3 -0
  67. package/dist/cli/register/logsCommands.d.ts.map +1 -0
  68. package/dist/cli/register/logsCommands.js +67 -0
  69. package/dist/cli/register/logsCommands.js.map +1 -0
  70. package/dist/cli/register/netCommands.d.ts +3 -0
  71. package/dist/cli/register/netCommands.d.ts.map +1 -0
  72. package/dist/cli/register/netCommands.js +442 -0
  73. package/dist/cli/register/netCommands.js.map +1 -0
  74. package/dist/cli/register/pageCommands.d.ts +3 -0
  75. package/dist/cli/register/pageCommands.d.ts.map +1 -0
  76. package/dist/cli/register/pageCommands.js +188 -0
  77. package/dist/cli/register/pageCommands.js.map +1 -0
  78. package/dist/cli/register/pluginCommands.d.ts +3 -0
  79. package/dist/cli/register/pluginCommands.d.ts.map +1 -0
  80. package/dist/cli/register/pluginCommands.js +51 -0
  81. package/dist/cli/register/pluginCommands.js.map +1 -0
  82. package/dist/cli/register/quickAccessCommands.d.ts +3 -0
  83. package/dist/cli/register/quickAccessCommands.d.ts.map +1 -0
  84. package/dist/cli/register/quickAccessCommands.js +138 -0
  85. package/dist/cli/register/quickAccessCommands.js.map +1 -0
  86. package/dist/cli/register/scrollToCommand.d.ts +3 -0
  87. package/dist/cli/register/scrollToCommand.d.ts.map +1 -0
  88. package/dist/cli/register/scrollToCommand.js +30 -0
  89. package/dist/cli/register/scrollToCommand.js.map +1 -0
  90. package/dist/cli/register/snapshotCommands.d.ts +3 -0
  91. package/dist/cli/register/snapshotCommands.d.ts.map +1 -0
  92. package/dist/cli/register/snapshotCommands.js +57 -0
  93. package/dist/cli/register/snapshotCommands.js.map +1 -0
  94. package/dist/cli/register/storageCommands.d.ts +3 -0
  95. package/dist/cli/register/storageCommands.d.ts.map +1 -0
  96. package/dist/cli/register/storageCommands.js +78 -0
  97. package/dist/cli/register/storageCommands.js.map +1 -0
  98. package/dist/cli/register/throttleCommands.d.ts +3 -0
  99. package/dist/cli/register/throttleCommands.d.ts.map +1 -0
  100. package/dist/cli/register/throttleCommands.js +48 -0
  101. package/dist/cli/register/throttleCommands.js.map +1 -0
  102. package/dist/cli/register/traceCommands.d.ts +3 -0
  103. package/dist/cli/register/traceCommands.d.ts.map +1 -0
  104. package/dist/cli/register/traceCommands.js +72 -0
  105. package/dist/cli/register/traceCommands.js.map +1 -0
  106. package/dist/cli/register/watcherCommands.d.ts +3 -0
  107. package/dist/cli/register/watcherCommands.d.ts.map +1 -0
  108. package/dist/cli/register/watcherCommands.js +180 -0
  109. package/dist/cli/register/watcherCommands.js.map +1 -0
  110. package/dist/commands/auth.d.ts.map +1 -1
  111. package/dist/commands/auth.js.map +1 -1
  112. package/dist/commands/code.d.ts +2 -2
  113. package/dist/commands/code.d.ts.map +1 -1
  114. package/dist/commands/code.js +42 -45
  115. package/dist/commands/code.js.map +1 -1
  116. package/dist/commands/codeEdit.d.ts.map +1 -1
  117. package/dist/commands/codeEdit.js.map +1 -1
  118. package/dist/commands/eval.d.ts +11 -1
  119. package/dist/commands/eval.d.ts.map +1 -1
  120. package/dist/commands/eval.js +20 -10
  121. package/dist/commands/eval.js.map +1 -1
  122. package/dist/commands/evalArgs.d.ts +31 -0
  123. package/dist/commands/evalArgs.d.ts.map +1 -0
  124. package/dist/commands/evalArgs.js +103 -0
  125. package/dist/commands/evalArgs.js.map +1 -0
  126. package/dist/commands/evalBundle.d.ts +16 -0
  127. package/dist/commands/evalBundle.d.ts.map +1 -0
  128. package/dist/commands/evalBundle.js +138 -0
  129. package/dist/commands/evalBundle.js.map +1 -0
  130. package/dist/commands/evalModuleSyntax.d.ts +6 -0
  131. package/dist/commands/evalModuleSyntax.d.ts.map +1 -0
  132. package/dist/commands/evalModuleSyntax.js +33 -0
  133. package/dist/commands/evalModuleSyntax.js.map +1 -0
  134. package/dist/commands/evalPolling.d.ts +1 -1
  135. package/dist/commands/evalPolling.d.ts.map +1 -1
  136. package/dist/commands/evalPolling.js +1 -1
  137. package/dist/commands/evalPolling.js.map +1 -1
  138. package/dist/commands/evalResultOutput.d.ts +25 -0
  139. package/dist/commands/evalResultOutput.d.ts.map +1 -0
  140. package/dist/commands/evalResultOutput.js +85 -0
  141. package/dist/commands/evalResultOutput.js.map +1 -0
  142. package/dist/commands/evalShared.d.ts +43 -17
  143. package/dist/commands/evalShared.d.ts.map +1 -1
  144. package/dist/commands/evalShared.js +103 -42
  145. package/dist/commands/evalShared.js.map +1 -1
  146. package/dist/commands/evalUntil.d.ts +9 -1
  147. package/dist/commands/evalUntil.d.ts.map +1 -1
  148. package/dist/commands/evalUntil.js +16 -27
  149. package/dist/commands/evalUntil.js.map +1 -1
  150. package/dist/commands/extension/attach.d.ts +14 -0
  151. package/dist/commands/extension/attach.d.ts.map +1 -0
  152. package/dist/commands/extension/attach.js +110 -0
  153. package/dist/commands/extension/attach.js.map +1 -0
  154. package/dist/commands/extension/info.d.ts.map +1 -1
  155. package/dist/commands/extension/info.js +13 -33
  156. package/dist/commands/extension/info.js.map +1 -1
  157. package/dist/commands/extension/nativeHost.d.ts +35 -5
  158. package/dist/commands/extension/nativeHost.d.ts.map +1 -1
  159. package/dist/commands/extension/nativeHost.js +95 -12
  160. package/dist/commands/extension/nativeHost.js.map +1 -1
  161. package/dist/commands/extension/remove.d.ts.map +1 -1
  162. package/dist/commands/extension/remove.js +18 -38
  163. package/dist/commands/extension/remove.js.map +1 -1
  164. package/dist/commands/extension/resolveExtensionWatcher.d.ts +1 -1
  165. package/dist/commands/extension/resolveExtensionWatcher.d.ts.map +1 -1
  166. package/dist/commands/extension/resolveExtensionWatcher.js +15 -29
  167. package/dist/commands/extension/resolveExtensionWatcher.js.map +1 -1
  168. package/dist/commands/extension/setup.d.ts.map +1 -1
  169. package/dist/commands/extension/setup.js +20 -35
  170. package/dist/commands/extension/setup.js.map +1 -1
  171. package/dist/commands/extension/show.d.ts +12 -0
  172. package/dist/commands/extension/show.d.ts.map +1 -0
  173. package/dist/commands/extension/show.js +208 -0
  174. package/dist/commands/extension/show.js.map +1 -0
  175. package/dist/commands/extension/status.d.ts.map +1 -1
  176. package/dist/commands/extension/status.js +12 -38
  177. package/dist/commands/extension/status.js.map +1 -1
  178. package/dist/commands/extension/tabSelection.d.ts +45 -0
  179. package/dist/commands/extension/tabSelection.d.ts.map +1 -0
  180. package/dist/commands/extension/tabSelection.js +76 -0
  181. package/dist/commands/extension/tabSelection.js.map +1 -0
  182. package/dist/commands/locate.d.ts.map +1 -1
  183. package/dist/commands/locate.js.map +1 -1
  184. package/dist/commands/netMock.d.ts +34 -0
  185. package/dist/commands/netMock.d.ts.map +1 -0
  186. package/dist/commands/netMock.js +323 -0
  187. package/dist/commands/netMock.js.map +1 -0
  188. package/dist/commands/netSse.d.ts +1 -1
  189. package/dist/commands/netSse.d.ts.map +1 -1
  190. package/dist/commands/netSse.js +19 -23
  191. package/dist/commands/netSse.js.map +1 -1
  192. package/dist/commands/netWebSocket.d.ts +2 -2
  193. package/dist/commands/netWebSocket.d.ts.map +1 -1
  194. package/dist/commands/netWebSocket.js +42 -55
  195. package/dist/commands/netWebSocket.js.map +1 -1
  196. package/dist/commands/pluginConfig.d.ts +1 -0
  197. package/dist/commands/pluginConfig.d.ts.map +1 -1
  198. package/dist/commands/pluginConfig.js +12 -2
  199. package/dist/commands/pluginConfig.js.map +1 -1
  200. package/dist/commands/start.d.ts +2 -2
  201. package/dist/commands/start.d.ts.map +1 -1
  202. package/dist/commands/startShared.d.ts +1 -1
  203. package/dist/commands/startShared.d.ts.map +1 -1
  204. package/dist/commands/watcherNativeHost.d.ts +1 -0
  205. package/dist/commands/watcherNativeHost.d.ts.map +1 -1
  206. package/dist/commands/watcherNativeHost.js +8 -2
  207. package/dist/commands/watcherNativeHost.js.map +1 -1
  208. package/dist/commands/watcherSession.d.ts +3 -3
  209. package/dist/commands/watcherSession.d.ts.map +1 -1
  210. package/dist/commands/watcherSession.js.map +1 -1
  211. package/dist/commands/watcherStart.d.ts +2 -2
  212. package/dist/commands/watcherStart.d.ts.map +1 -1
  213. package/dist/config/argusHome.d.ts +3 -0
  214. package/dist/config/argusHome.d.ts.map +1 -0
  215. package/dist/config/argusHome.js +11 -0
  216. package/dist/config/argusHome.js.map +1 -0
  217. package/dist/config/loadConfig.d.ts +13 -0
  218. package/dist/config/loadConfig.d.ts.map +1 -0
  219. package/dist/config/loadConfig.js +59 -0
  220. package/dist/config/loadConfig.js.map +1 -0
  221. package/dist/config/mergeConfig.d.ts +34 -0
  222. package/dist/config/mergeConfig.d.ts.map +1 -0
  223. package/dist/config/mergeConfig.js +57 -0
  224. package/dist/config/mergeConfig.js.map +1 -0
  225. package/dist/config/types.d.ts +51 -0
  226. package/dist/config/types.d.ts.map +1 -0
  227. package/dist/config/types.js +2 -0
  228. package/dist/config/types.js.map +1 -0
  229. package/dist/config/validateConfig.d.ts +14 -0
  230. package/dist/config/validateConfig.d.ts.map +1 -0
  231. package/dist/config/{argusConfig.js → validateConfig.js} +136 -244
  232. package/dist/config/validateConfig.js.map +1 -0
  233. package/dist/eval/evalClient.d.ts +2 -0
  234. package/dist/eval/evalClient.d.ts.map +1 -1
  235. package/dist/eval/evalClient.js +26 -2
  236. package/dist/eval/evalClient.js.map +1 -1
  237. package/package.json +5 -2
  238. package/dist/cli/register/registerAuth.d.ts +0 -3
  239. package/dist/cli/register/registerAuth.d.ts.map +0 -1
  240. package/dist/cli/register/registerAuth.js +0 -133
  241. package/dist/cli/register/registerAuth.js.map +0 -1
  242. package/dist/cli/register/registerChrome.d.ts +0 -3
  243. package/dist/cli/register/registerChrome.d.ts.map +0 -1
  244. package/dist/cli/register/registerChrome.js +0 -118
  245. package/dist/cli/register/registerChrome.js.map +0 -1
  246. package/dist/cli/register/registerCode.d.ts +0 -3
  247. package/dist/cli/register/registerCode.d.ts.map +0 -1
  248. package/dist/cli/register/registerCode.js +0 -74
  249. package/dist/cli/register/registerCode.js.map +0 -1
  250. package/dist/cli/register/registerConfig.d.ts +0 -3
  251. package/dist/cli/register/registerConfig.d.ts.map +0 -1
  252. package/dist/cli/register/registerConfig.js +0 -14
  253. package/dist/cli/register/registerConfig.js.map +0 -1
  254. package/dist/cli/register/registerDialog.d.ts +0 -3
  255. package/dist/cli/register/registerDialog.d.ts.map +0 -1
  256. package/dist/cli/register/registerDialog.js +0 -45
  257. package/dist/cli/register/registerDialog.js.map +0 -1
  258. package/dist/cli/register/registerDom.d.ts +0 -3
  259. package/dist/cli/register/registerDom.d.ts.map +0 -1
  260. package/dist/cli/register/registerDom.js +0 -284
  261. package/dist/cli/register/registerDom.js.map +0 -1
  262. package/dist/cli/register/registerEval.d.ts +0 -3
  263. package/dist/cli/register/registerEval.d.ts.map +0 -1
  264. package/dist/cli/register/registerEval.js +0 -143
  265. package/dist/cli/register/registerEval.js.map +0 -1
  266. package/dist/cli/register/registerExtension.d.ts +0 -3
  267. package/dist/cli/register/registerExtension.d.ts.map +0 -1
  268. package/dist/cli/register/registerExtension.js +0 -49
  269. package/dist/cli/register/registerExtension.js.map +0 -1
  270. package/dist/cli/register/registerFill.d.ts +0 -3
  271. package/dist/cli/register/registerFill.d.ts.map +0 -1
  272. package/dist/cli/register/registerFill.js +0 -31
  273. package/dist/cli/register/registerFill.js.map +0 -1
  274. package/dist/cli/register/registerHover.d.ts +0 -3
  275. package/dist/cli/register/registerHover.d.ts.map +0 -1
  276. package/dist/cli/register/registerHover.js +0 -21
  277. package/dist/cli/register/registerHover.js.map +0 -1
  278. package/dist/cli/register/registerKeydown.d.ts +0 -3
  279. package/dist/cli/register/registerKeydown.d.ts.map +0 -1
  280. package/dist/cli/register/registerKeydown.js +0 -20
  281. package/dist/cli/register/registerKeydown.js.map +0 -1
  282. package/dist/cli/register/registerLocate.d.ts +0 -3
  283. package/dist/cli/register/registerLocate.d.ts.map +0 -1
  284. package/dist/cli/register/registerLocate.js +0 -48
  285. package/dist/cli/register/registerLocate.js.map +0 -1
  286. package/dist/cli/register/registerLogs.d.ts +0 -3
  287. package/dist/cli/register/registerLogs.d.ts.map +0 -1
  288. package/dist/cli/register/registerLogs.js +0 -64
  289. package/dist/cli/register/registerLogs.js.map +0 -1
  290. package/dist/cli/register/registerNet.d.ts +0 -3
  291. package/dist/cli/register/registerNet.d.ts.map +0 -1
  292. package/dist/cli/register/registerNet.js +0 -287
  293. package/dist/cli/register/registerNet.js.map +0 -1
  294. package/dist/cli/register/registerPage.d.ts +0 -3
  295. package/dist/cli/register/registerPage.d.ts.map +0 -1
  296. package/dist/cli/register/registerPage.js +0 -123
  297. package/dist/cli/register/registerPage.js.map +0 -1
  298. package/dist/cli/register/registerPlugin.d.ts +0 -3
  299. package/dist/cli/register/registerPlugin.d.ts.map +0 -1
  300. package/dist/cli/register/registerPlugin.js +0 -34
  301. package/dist/cli/register/registerPlugin.js.map +0 -1
  302. package/dist/cli/register/registerQuickAccess.d.ts +0 -3
  303. package/dist/cli/register/registerQuickAccess.d.ts.map +0 -1
  304. package/dist/cli/register/registerQuickAccess.js +0 -112
  305. package/dist/cli/register/registerQuickAccess.js.map +0 -1
  306. package/dist/cli/register/registerScrollTo.d.ts +0 -3
  307. package/dist/cli/register/registerScrollTo.d.ts.map +0 -1
  308. package/dist/cli/register/registerScrollTo.js +0 -22
  309. package/dist/cli/register/registerScrollTo.js.map +0 -1
  310. package/dist/cli/register/registerSnapshot.d.ts +0 -3
  311. package/dist/cli/register/registerSnapshot.d.ts.map +0 -1
  312. package/dist/cli/register/registerSnapshot.js +0 -38
  313. package/dist/cli/register/registerSnapshot.js.map +0 -1
  314. package/dist/cli/register/registerStorage.d.ts +0 -3
  315. package/dist/cli/register/registerStorage.d.ts.map +0 -1
  316. package/dist/cli/register/registerStorage.js +0 -61
  317. package/dist/cli/register/registerStorage.js.map +0 -1
  318. package/dist/cli/register/registerThrottle.d.ts +0 -3
  319. package/dist/cli/register/registerThrottle.d.ts.map +0 -1
  320. package/dist/cli/register/registerThrottle.js +0 -33
  321. package/dist/cli/register/registerThrottle.js.map +0 -1
  322. package/dist/cli/register/registerTrace.d.ts +0 -3
  323. package/dist/cli/register/registerTrace.d.ts.map +0 -1
  324. package/dist/cli/register/registerTrace.js +0 -57
  325. package/dist/cli/register/registerTrace.js.map +0 -1
  326. package/dist/cli/register/registerWatcher.d.ts +0 -3
  327. package/dist/cli/register/registerWatcher.d.ts.map +0 -1
  328. package/dist/cli/register/registerWatcher.js +0 -134
  329. package/dist/cli/register/registerWatcher.js.map +0 -1
  330. package/dist/config/argusConfig.d.ts +0 -76
  331. package/dist/config/argusConfig.d.ts.map +0 -1
  332. package/dist/config/argusConfig.js.map +0 -1
@@ -12,6 +12,10 @@ export type EvalOptions = {
12
12
  until?: string;
13
13
  /** Read expression from a file path. */
14
14
  file?: string;
15
+ /** Bundle local imports from `--file` before eval. */
16
+ bundle?: boolean;
17
+ /** Do not bundle `--file` (disables auto-bundle for import/export). */
18
+ noBundle?: boolean;
15
19
  /** Read expression from stdin. Also activated when expression is `-`. */
16
20
  stdin?: boolean;
17
21
  /** Read setup code from a file and run it before the expression. */
@@ -20,10 +24,16 @@ export type EvalOptions = {
20
24
  iframe?: string;
21
25
  /** Message type prefix for iframe eval (default: argus). */
22
26
  iframeNamespace?: string;
23
- /** Timeout for iframe postMessage response in ms (default: 5000). */
27
+ /** Timeout for iframe postMessage response (default: 5000; accepts duration syntax). */
24
28
  iframeTimeout?: string;
25
29
  /** Repeated key=value arguments exposed to scripts as `args`. */
26
30
  arg?: string[];
31
+ /** Load args from a JSON object file. */
32
+ args?: string;
33
+ /** Write the eval result to a file. */
34
+ out?: string;
35
+ /** With --interval, write one file per iteration instead of appending NDJSON. */
36
+ rotate?: boolean;
27
37
  };
28
38
  /** Execute the eval command for a watcher id. */
29
39
  export declare const runEval: (id: string | undefined, rawExpression: string | undefined, options: EvalOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAgBA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CA0H3H,CAAA"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAQA,oCAAoC;AACpC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,OAAO,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,eAAe,MAAM,GAAG,SAAS,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAqI3H,CAAA"}
@@ -2,7 +2,8 @@ import { evalWithRetries } from '../eval/evalClient.js';
2
2
  import { createOutput } from '../output/io.js';
3
3
  import { resolveWatcherOrExit } from '../watchers/requestWatcher.js';
4
4
  import { pollEval } from './evalPolling.js';
5
- import { formatError, parseCount, parseIntervalMs, parseNumber, parseRetryCount, prepareEvalExpression, printError, printSuccess, } from './evalShared.js';
5
+ import { createEvalEmitter, formatError, parseCount, parseIntervalMs, parseRetryCount, parseTimeoutMs, prepareEvalExpression } from './evalShared.js';
6
+ import { validateEvalResultFileOptions } from './evalResultOutput.js';
6
7
  /** Execute the eval command for a watcher id. */
7
8
  export const runEval = async (id, rawExpression, options) => {
8
9
  const output = createOutput(options);
@@ -45,11 +46,20 @@ export const runEval = async (id, rawExpression, options) => {
45
46
  process.exitCode = 2;
46
47
  return;
47
48
  }
49
+ if (!validateEvalResultFileOptions(options, output)) {
50
+ return;
51
+ }
52
+ const timeoutMs = parseTimeoutMs(options.timeout);
53
+ if (timeoutMs.error) {
54
+ output.writeWarn(timeoutMs.error);
55
+ process.exitCode = 2;
56
+ return;
57
+ }
58
+ const emitter = createEvalEmitter(options, output);
48
59
  const resolved = await resolveWatcherOrExit({ id }, output);
49
60
  if (!resolved)
50
61
  return;
51
62
  const { watcher } = resolved;
52
- const timeoutMs = parseNumber(options.timeout);
53
63
  if (intervalMs.value == null) {
54
64
  const singleResult = await evalWithRetries({
55
65
  watcher,
@@ -57,16 +67,16 @@ export const runEval = async (id, rawExpression, options) => {
57
67
  args: prepared.args,
58
68
  awaitPromise: options.await ?? true,
59
69
  returnByValue: options.returnByValue ?? true,
60
- timeoutMs,
70
+ timeoutMs: timeoutMs.value,
61
71
  failOnException: options.failOnException ?? true,
62
72
  retryCount: retryCount.value,
63
73
  });
64
74
  if (!singleResult.ok) {
65
- printError(singleResult, options, output);
75
+ emitter.emitError(singleResult);
66
76
  process.exitCode = 1;
67
77
  return;
68
78
  }
69
- printSuccess(singleResult.response, options, output, false);
79
+ await emitter.emitSuccess(singleResult.response, false);
70
80
  return;
71
81
  }
72
82
  const pollResult = await pollEval({
@@ -75,13 +85,13 @@ export const runEval = async (id, rawExpression, options) => {
75
85
  args: prepared.args,
76
86
  awaitPromise: options.await ?? true,
77
87
  returnByValue: options.returnByValue ?? true,
78
- timeoutMs,
88
+ timeoutMs: timeoutMs.value,
79
89
  failOnException: options.failOnException ?? true,
80
90
  retryCount: retryCount.value,
81
91
  intervalMs: intervalMs.value,
82
92
  count: countValue.value,
83
- onResult: (response) => {
84
- printSuccess(response, options, output, true);
93
+ onResult: async (response) => {
94
+ await emitter.emitSuccess(response, true);
85
95
  },
86
96
  shouldStop: (context) => {
87
97
  if (!untilEvaluator.evaluator) {
@@ -97,12 +107,12 @@ export const runEval = async (id, rawExpression, options) => {
97
107
  },
98
108
  });
99
109
  if (pollResult.kind === 'eval-error') {
100
- printError(pollResult.failure, options, output);
110
+ emitter.emitError(pollResult.failure);
101
111
  process.exitCode = 1;
102
112
  return;
103
113
  }
104
114
  if (pollResult.kind === 'condition-error') {
105
- printError({ kind: 'until', error: pollResult.error }, options, output);
115
+ emitter.emitError({ kind: 'until', error: pollResult.error });
106
116
  process.exitCode = 1;
107
117
  return;
108
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Output } from '../output/io.js';
2
+ /** String-only argument map exposed to eval scripts as `args`. */
3
+ export type EvalArgMap = Record<string, string>;
4
+ /** CLI options that populate the eval `args` object. */
5
+ export type EvalArgSourceOptions = {
6
+ /** Load a JSON object of args from disk (`--args`). */
7
+ args?: string;
8
+ /** Repeated `key=value` overrides (`--arg`). */
9
+ arg?: string[];
10
+ };
11
+ /**
12
+ * Parse repeated `--arg key=value` flags.
13
+ * Later values override earlier ones for the same key.
14
+ */
15
+ export declare const parseEvalArgFlags: (values?: string[]) => {
16
+ value: EvalArgMap;
17
+ error?: string;
18
+ };
19
+ /** True when the parsed arg map should be sent or injected. */
20
+ export declare const hasEvalArgs: (args: EvalArgMap) => boolean;
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 declare const resolveEvalArgs: (options: EvalArgSourceOptions, output: Output) => Promise<EvalArgMap | null>;
26
+ /**
27
+ * Read and validate a JSON args file.
28
+ * Values must be JSON primitives; they are coerced to strings for the watcher protocol.
29
+ */
30
+ export declare const loadEvalArgsFile: (filePath: string, output: Output) => Promise<EvalArgMap | null>;
31
+ //# sourceMappingURL=evalArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evalArgs.d.ts","sourceRoot":"","sources":["../../src/commands/evalArgs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAG7C,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE/C,wDAAwD;AACxD,MAAM,MAAM,oBAAoB,GAAG;IAClC,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,KAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAaxF,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,OAAuC,CAAA;AAEtF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,oBAAoB,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAkB9G,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,UAAU,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CA+BlG,CAAA"}
@@ -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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"}
@@ -0,0 +1,16 @@
1
+ export type BundleEvalEntryResult = {
2
+ ok: true;
3
+ code: string;
4
+ } | {
5
+ ok: false;
6
+ error: string;
7
+ };
8
+ /**
9
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
10
+ *
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).
14
+ */
15
+ export declare const bundleEvalEntry: (entryPath: string) => Promise<BundleEvalEntryResult>;
16
+ //# sourceMappingURL=evalBundle.d.ts.map
@@ -0,0 +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;AAS7F;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAiCtF,CAAA"}
@@ -0,0 +1,138 @@
1
+ import { readFile, realpath } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ let esbuildModulePromise;
4
+ const loadEsbuild = () => (esbuildModulePromise ??= import('esbuild'));
5
+ const RESULT_BINDING = '__argusEvalBundleResult';
6
+ /**
7
+ * Bundle a `--file` entry and its import graph into one browser-evaluable script.
8
+ *
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).
12
+ */
13
+ export const bundleEvalEntry = async (entryPath) => {
14
+ let entryPoint;
15
+ try {
16
+ entryPoint = await realpath(path.resolve(entryPath));
17
+ }
18
+ catch {
19
+ return { ok: false, error: `Failed to read entry file: ${entryPath}` };
20
+ }
21
+ try {
22
+ const esbuild = await loadEsbuild();
23
+ const result = await esbuild.build({
24
+ absWorkingDir: process.cwd(),
25
+ entryPoints: [entryPoint],
26
+ bundle: true,
27
+ write: false,
28
+ splitting: false,
29
+ format: 'esm',
30
+ platform: 'browser',
31
+ target: 'es2022',
32
+ sourcemap: false,
33
+ logLevel: 'silent',
34
+ plugins: [createPageEvalBundlePlugin(entryPoint)],
35
+ });
36
+ const output = result.outputFiles[0];
37
+ if (output == null) {
38
+ return { ok: false, error: 'Bundle produced no output.' };
39
+ }
40
+ return { ok: true, code: wrapBundledEval(output.text, entryPoint) };
41
+ }
42
+ catch (error) {
43
+ return { ok: false, error: formatBundleFailure(error) };
44
+ }
45
+ };
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';
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
+ `;
119
+ const bundleError = (text) => ({ errors: [{ text }] });
120
+ const formatBundleFailure = (error) => {
121
+ const issues = error instanceof Error && 'errors' in error ? error.errors : null;
122
+ if (issues?.length) {
123
+ return issues.map(formatEsbuildMessage).join('\n');
124
+ }
125
+ return error instanceof Error ? error.message : String(error);
126
+ };
127
+ const formatEsbuildMessage = ({ text, location }) => {
128
+ const message = text || 'Bundle failed.';
129
+ if (!location?.file) {
130
+ return message;
131
+ }
132
+ const { file, line, column } = location;
133
+ if (line == null || column == null) {
134
+ return `${file}: ${message}`;
135
+ }
136
+ return `${file}:${line}:${column}: ${message}`;
137
+ };
138
+ //# sourceMappingURL=evalBundle.js.map
@@ -0,0 +1 @@
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":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAkCvC,qGAAqG;AACrG,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAoB,EAA4B,EAAE;IAChF,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,OAAO,GAAG,KAAK,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAE3B,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAA;QAEjB,OAAO,OAAO,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;gBACtC,IAAI,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;gBAC/C,CAAC;YACF,CAAC;YAED,SAAS,IAAI,CAAC,CAAA;YACd,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;YAC/C,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;YACjF,+FAA+F;YAC/F,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACpB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAA;gBAC5D,CAAC;gBACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;gBAC1F,CAAC;YACF,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACrD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;YACpD,CAAC;YAED,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;IAC/B,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;AACF,CAAC,CAAA"}
@@ -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"}