@cursor/bdk 0.2.8 → 0.2.10

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 (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -0,0 +1,24 @@
1
+ import type { EvalSendOptions } from "../evals.js";
2
+ import type { SessionEvent } from "../types.js";
3
+ import type { RequestAuth } from "./request-headers.js";
4
+ import { type RunSessionResult } from "./run-client.js";
5
+ export type EvalTransportTurn = Pick<RunSessionResult, "sessionId" | "continuationToken" | "events" | "trajectory" | "ok" | "nextEventIndex">;
6
+ /** Where eval cases run their agent work. The runner owns everything else. */
7
+ export interface EvalTransport {
8
+ send(input: {
9
+ message: string;
10
+ sessionId?: string;
11
+ continuationToken?: string;
12
+ startIndex: number;
13
+ options: EvalSendOptions;
14
+ timeoutMs: number;
15
+ signal?: AbortSignal;
16
+ onEvent?: (event: SessionEvent) => void;
17
+ }): Promise<EvalTransportTurn>;
18
+ }
19
+ /** An agent served over HTTP: the local eval server, a `--url`, or the playground host. */
20
+ export declare function localHttpEvalTransport(input: {
21
+ baseUrl: string;
22
+ auth: RequestAuth;
23
+ }): EvalTransport;
24
+ //# sourceMappingURL=eval-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-transport.d.ts","sourceRoot":"","sources":["../../src/internal/eval-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,iBAAiB,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,gBAAgB,EAChB,WAAW,GAAG,mBAAmB,GAAG,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,gBAAgB,CACtF,CAAC;AAEF,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,eAAe,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;KACzC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAED,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;CACnB,GAAG,aAAa,CAoBhB"}
@@ -0,0 +1,22 @@
1
+ import { runSession } from "./run-client.js";
2
+ /** An agent served over HTTP: the local eval server, a `--url`, or the playground host. */
3
+ export function localHttpEvalTransport(input) {
4
+ return {
5
+ send: turn => runSession({
6
+ baseUrl: input.baseUrl,
7
+ messages: [turn.message],
8
+ sessionId: turn.sessionId,
9
+ continuationToken: turn.continuationToken,
10
+ startIndex: turn.startIndex,
11
+ purpose: "eval",
12
+ bearerToken: input.auth.bearerToken,
13
+ headers: input.auth.headers,
14
+ workspaceDir: turn.options.workspaceDir,
15
+ workspaceFiles: turn.options.workspaceFiles,
16
+ cloud: turn.options.cloud,
17
+ timeoutMs: turn.timeoutMs,
18
+ signal: turn.signal,
19
+ onEvent: turn.onEvent,
20
+ }),
21
+ };
22
+ }
@@ -6,18 +6,9 @@
6
6
  * configured. Without those flags, eval keeps the in-process ephemeral path
7
7
  * in `cli-ax.ts`.
8
8
  */
9
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
- return new (P || (P = Promise))(function (resolve, reject) {
12
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
- step((generator = generator.apply(thisArg, _arguments || [])).next());
16
- });
17
- };
18
9
  import { expandSummarySuiteSelection, isEvalSummaryCase, matchesEvalIdFilter } from "../evals.js";
19
10
  import { mergeRequestHeaders } from "./request-headers.js";
20
- const DEFAULT_POLL_MS = 1000;
11
+ const DEFAULT_POLL_MS = 1_000;
21
12
  export class RemoteEvalError extends Error {
22
13
  constructor(message, status, code, activeRunId) {
23
14
  super(message);
@@ -31,273 +22,278 @@ export class RemoteEvalError extends Error {
31
22
  * Start a batch on the target serve via `POST /v1/dev/evals/runs`, poll until
32
23
  * terminal, and return CLI-shaped case results.
33
24
  */
34
- export function runRemoteEvals(options) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- var _a;
37
- var _b, _c;
38
- const baseUrl = options.baseUrl.replace(/\/$/, "");
39
- const fetchImpl = (_b = options.fetchImpl) !== null && _b !== void 0 ? _b : fetch;
40
- const auth = {
41
- bearerToken: options.bearerToken,
42
- headers: options.headers,
43
- };
44
- const started = yield startRemoteEvalRun({
45
- baseUrl,
46
- auth,
47
- fetchImpl,
48
- filterIds: options.filterIds,
49
- tags: options.tags,
50
- timeoutMs: options.timeoutMs,
51
- verbose: options.verbose,
52
- signal: options.signal,
53
- });
54
- (_a = options.onSnapshot) === null || _a === void 0 ? void 0 : _a.call(options, started);
55
- const snapshot = yield pollRemoteEvalRun({
56
- baseUrl,
57
- runId: started.runId,
58
- auth,
59
- fetchImpl,
60
- pollMs: (_c = options.pollMs) !== null && _c !== void 0 ? _c : DEFAULT_POLL_MS,
61
- signal: options.signal,
62
- onSnapshot: options.onSnapshot,
63
- });
64
- return { snapshot, results: snapshotToEvalRunResults(snapshot) };
25
+ export async function runRemoteEvals(options) {
26
+ const baseUrl = options.baseUrl.replace(/\/$/, "");
27
+ const fetchImpl = options.fetchImpl ?? fetch;
28
+ const auth = {
29
+ bearerToken: options.bearerToken,
30
+ headers: options.headers,
31
+ };
32
+ const started = await startRemoteEvalRun({
33
+ baseUrl,
34
+ auth,
35
+ fetchImpl,
36
+ filterIds: options.filterIds,
37
+ tags: options.tags,
38
+ timeoutMs: options.timeoutMs,
39
+ verbose: options.verbose,
40
+ signal: options.signal,
41
+ });
42
+ options.onSnapshot?.(started);
43
+ const snapshot = await pollRemoteEvalRun({
44
+ baseUrl,
45
+ runId: started.runId,
46
+ auth,
47
+ fetchImpl,
48
+ pollMs: options.pollMs ?? DEFAULT_POLL_MS,
49
+ signal: options.signal,
50
+ onSnapshot: options.onSnapshot,
65
51
  });
52
+ return { snapshot, results: snapshotToEvalRunResults(snapshot) };
66
53
  }
67
54
  /** List datapoints from `GET /v1/dev/evals` (same surface a remote run uses). */
68
- export function listRemoteEvals(args) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- var _a, _b;
71
- const baseUrl = args.baseUrl.replace(/\/$/, "");
72
- const fetchImpl = (_a = args.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
73
- let resp;
74
- try {
75
- resp = yield fetchImpl(`${baseUrl}/v1/dev/evals`, {
76
- headers: mergeRequestHeaders(args.auth),
77
- signal: args.signal,
78
- });
79
- }
80
- catch (error) {
81
- throw new RemoteEvalError(error instanceof Error ? error.message : "Could not list evals.", undefined, "start_failed");
82
- }
83
- if (!resp.ok) {
84
- throw new RemoteEvalError(`Could not list evals (HTTP ${resp.status}).`, resp.status, "start_failed");
85
- }
86
- const body = (yield resp.json());
87
- const listed = [];
88
- for (const row of (_b = body.evals) !== null && _b !== void 0 ? _b : []) {
89
- if (typeof row.id !== "string" || row.id === "") {
90
- continue;
91
- }
92
- if (typeof row.fileId !== "string" || row.fileId === "") {
93
- continue;
94
- }
95
- const tags = Array.isArray(row.tags)
96
- ? row.tags.filter((t) => typeof t === "string")
97
- : undefined;
98
- listed.push(Object.assign(Object.assign({ id: row.id, fileId: row.fileId }, (typeof row.description === "string" ? { description: row.description } : {})), (tags === undefined || tags.length === 0 ? {} : { tags })));
99
- }
100
- let selected = listed;
101
- if (args.filterIds !== undefined && args.filterIds.length > 0) {
102
- selected = selected.filter(e => args.filterIds.some(f => matchesEvalIdFilter(e.id, f)));
55
+ export async function listRemoteEvals(args) {
56
+ const baseUrl = args.baseUrl.replace(/\/$/, "");
57
+ const fetchImpl = args.fetchImpl ?? fetch;
58
+ let resp;
59
+ try {
60
+ resp = await fetchImpl(`${baseUrl}/v1/dev/evals`, {
61
+ headers: mergeRequestHeaders(args.auth),
62
+ signal: args.signal,
63
+ });
64
+ }
65
+ catch (error) {
66
+ throw new RemoteEvalError(error instanceof Error ? error.message : "Could not list evals.", undefined, "start_failed");
67
+ }
68
+ if (!resp.ok) {
69
+ throw new RemoteEvalError(`Could not list evals (HTTP ${resp.status}).`, resp.status, "start_failed");
70
+ }
71
+ const body = (await resp.json());
72
+ const listed = [];
73
+ for (const row of body.evals ?? []) {
74
+ if (typeof row.id !== "string" || row.id === "") {
75
+ continue;
103
76
  }
104
- if (args.tags !== undefined && args.tags.length > 0) {
105
- selected = selected.filter(e => { var _a; return ((_a = e.tags) !== null && _a !== void 0 ? _a : []).some(t => args.tags.includes(t)); });
77
+ if (typeof row.fileId !== "string" || row.fileId === "") {
78
+ continue;
106
79
  }
107
- // Match server-side filterDiscoveredEvals: summary → whole file.
108
- return expandSummarySuiteSelection(listed, selected, e => isEvalSummaryCase(e.tags));
109
- });
80
+ const tags = Array.isArray(row.tags)
81
+ ? row.tags.filter((t) => typeof t === "string")
82
+ : undefined;
83
+ listed.push({
84
+ id: row.id,
85
+ fileId: row.fileId,
86
+ ...(typeof row.description === "string" ? { description: row.description } : {}),
87
+ ...(tags === undefined || tags.length === 0 ? {} : { tags }),
88
+ });
89
+ }
90
+ let selected = listed;
91
+ if (args.filterIds !== undefined && args.filterIds.length > 0) {
92
+ selected = selected.filter(e => args.filterIds.some(f => matchesEvalIdFilter(e.id, f)));
93
+ }
94
+ if (args.tags !== undefined && args.tags.length > 0) {
95
+ selected = selected.filter(e => (e.tags ?? []).some(t => args.tags.includes(t)));
96
+ }
97
+ // Match server-side filterDiscoveredEvals: summary → whole file.
98
+ return expandSummarySuiteSelection(listed, selected, e => isEvalSummaryCase(e.tags));
110
99
  }
111
- export function startRemoteEvalRun(args) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- var _a;
114
- const baseUrl = args.baseUrl.replace(/\/$/, "");
115
- const fetchImpl = (_a = args.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
116
- const body = {};
117
- if (args.filterIds !== undefined && args.filterIds.length > 0) {
118
- body.filterIds = args.filterIds;
119
- }
120
- if (args.tags !== undefined && args.tags.length > 0) {
121
- body.tags = args.tags;
122
- }
123
- if (args.timeoutMs !== undefined) {
124
- body.timeoutMs = args.timeoutMs;
125
- }
126
- if (args.verbose === true) {
127
- body.verbose = true;
128
- }
129
- let resp;
130
- try {
131
- resp = yield fetchImpl(`${baseUrl}/v1/dev/evals/runs`, {
132
- method: "POST",
133
- headers: Object.assign({ "content-type": "application/json" }, mergeRequestHeaders(args.auth)),
134
- body: JSON.stringify(body),
135
- signal: args.signal,
136
- });
137
- }
138
- catch (error) {
139
- throw new RemoteEvalError(error instanceof Error ? error.message : "Could not start eval run.", undefined, "start_failed");
140
- }
141
- const json = (yield resp.json().catch(() => ({})));
142
- if (json.error === "no_matching_evals") {
143
- throw new RemoteEvalError("No matching evals found.", 404, "no_matching_evals");
144
- }
145
- if (resp.status === 409 || json.error === "eval_run_in_progress") {
146
- throw new RemoteEvalError(json.activeRunId !== undefined && json.activeRunId !== ""
147
- ? `An eval run is already in progress (${json.activeRunId}).`
148
- : "An eval run is already in progress.", 409, "eval_run_in_progress", typeof json.activeRunId === "string" ? json.activeRunId : undefined);
149
- }
150
- if (!resp.ok) {
151
- const detail = typeof json.message === "string" && json.message !== ""
152
- ? json.message
153
- : typeof json.error === "string" && json.error !== ""
154
- ? json.error
155
- : `HTTP ${resp.status}`;
156
- throw new RemoteEvalError(`Could not start eval run: ${detail}`, resp.status, "start_failed");
157
- }
158
- if (typeof json.runId !== "string" || json.runId === "") {
159
- throw new RemoteEvalError("Eval start response missing runId.", undefined, "start_failed");
160
- }
161
- return json;
162
- });
100
+ export async function startRemoteEvalRun(args) {
101
+ const baseUrl = args.baseUrl.replace(/\/$/, "");
102
+ const fetchImpl = args.fetchImpl ?? fetch;
103
+ const body = {};
104
+ if (args.filterIds !== undefined && args.filterIds.length > 0) {
105
+ body.filterIds = args.filterIds;
106
+ }
107
+ if (args.tags !== undefined && args.tags.length > 0) {
108
+ body.tags = args.tags;
109
+ }
110
+ if (args.timeoutMs !== undefined) {
111
+ body.timeoutMs = args.timeoutMs;
112
+ }
113
+ if (args.verbose === true) {
114
+ body.verbose = true;
115
+ }
116
+ let resp;
117
+ try {
118
+ resp = await fetchImpl(`${baseUrl}/v1/dev/evals/runs`, {
119
+ method: "POST",
120
+ headers: {
121
+ "content-type": "application/json",
122
+ ...mergeRequestHeaders(args.auth),
123
+ },
124
+ body: JSON.stringify(body),
125
+ signal: args.signal,
126
+ });
127
+ }
128
+ catch (error) {
129
+ throw new RemoteEvalError(error instanceof Error ? error.message : "Could not start eval run.", undefined, "start_failed");
130
+ }
131
+ const json = (await resp.json().catch(() => ({})));
132
+ if (json.error === "no_matching_evals") {
133
+ throw new RemoteEvalError("No matching evals found.", 404, "no_matching_evals");
134
+ }
135
+ if (resp.status === 409 || json.error === "eval_run_in_progress") {
136
+ throw new RemoteEvalError(json.activeRunId !== undefined && json.activeRunId !== ""
137
+ ? `An eval run is already in progress (${json.activeRunId}).`
138
+ : "An eval run is already in progress.", 409, "eval_run_in_progress", typeof json.activeRunId === "string" ? json.activeRunId : undefined);
139
+ }
140
+ if (!resp.ok) {
141
+ const detail = typeof json.message === "string" && json.message !== ""
142
+ ? json.message
143
+ : typeof json.error === "string" && json.error !== ""
144
+ ? json.error
145
+ : `HTTP ${resp.status}`;
146
+ throw new RemoteEvalError(`Could not start eval run: ${detail}`, resp.status, "start_failed");
147
+ }
148
+ if (typeof json.runId !== "string" || json.runId === "") {
149
+ throw new RemoteEvalError("Eval start response missing runId.", undefined, "start_failed");
150
+ }
151
+ return json;
163
152
  }
164
153
  /** Cancel a running batch via `POST /v1/dev/evals/runs/:runId/cancel`. */
165
- export function cancelRemoteEvalRun(args) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- var _a;
168
- const baseUrl = args.baseUrl.replace(/\/$/, "");
169
- const fetchImpl = (_a = args.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
170
- let resp;
171
- try {
172
- resp = yield fetchImpl(`${baseUrl}/v1/dev/evals/runs/${encodeURIComponent(args.runId)}/cancel`, {
173
- method: "POST",
174
- headers: mergeRequestHeaders(args.auth),
175
- signal: args.signal,
176
- });
177
- }
178
- catch (error) {
179
- throw new RemoteEvalError(error instanceof Error ? error.message : "Could not cancel eval run.", undefined, "cancel_failed");
180
- }
181
- const json = (yield resp.json().catch(() => ({})));
182
- if (resp.status === 404 || json.error === "unknown_eval_run") {
183
- throw new RemoteEvalError(`Unknown eval run ${args.runId}.`, 404, "unknown_eval_run");
184
- }
185
- if (resp.status === 409 || json.error === "eval_run_not_running") {
186
- const status = typeof json.status === "string" && json.status !== "" ? json.status : "unknown";
187
- throw new RemoteEvalError(typeof json.message === "string" && json.message !== ""
188
- ? json.message
189
- : `Eval run ${args.runId} is not running (status: ${status}).`, 409, "eval_run_not_running");
190
- }
191
- if (!resp.ok) {
192
- const detail = typeof json.message === "string" && json.message !== ""
193
- ? json.message
194
- : typeof json.error === "string" && json.error !== ""
195
- ? json.error
196
- : `HTTP ${resp.status}`;
197
- throw new RemoteEvalError(`Could not cancel eval run: ${detail}`, resp.status, "cancel_failed");
198
- }
199
- if (typeof json.runId !== "string" || json.runId === "") {
200
- throw new RemoteEvalError("Eval cancel response missing runId.", undefined, "cancel_failed");
201
- }
202
- return json;
203
- });
154
+ export async function cancelRemoteEvalRun(args) {
155
+ const baseUrl = args.baseUrl.replace(/\/$/, "");
156
+ const fetchImpl = args.fetchImpl ?? fetch;
157
+ let resp;
158
+ try {
159
+ resp = await fetchImpl(`${baseUrl}/v1/dev/evals/runs/${encodeURIComponent(args.runId)}/cancel`, {
160
+ method: "POST",
161
+ headers: mergeRequestHeaders(args.auth),
162
+ signal: args.signal,
163
+ });
164
+ }
165
+ catch (error) {
166
+ throw new RemoteEvalError(error instanceof Error ? error.message : "Could not cancel eval run.", undefined, "cancel_failed");
167
+ }
168
+ const json = (await resp.json().catch(() => ({})));
169
+ if (resp.status === 404 || json.error === "unknown_eval_run") {
170
+ throw new RemoteEvalError(`Unknown eval run ${args.runId}.`, 404, "unknown_eval_run");
171
+ }
172
+ if (resp.status === 409 || json.error === "eval_run_not_running") {
173
+ const status = typeof json.status === "string" && json.status !== "" ? json.status : "unknown";
174
+ throw new RemoteEvalError(typeof json.message === "string" && json.message !== ""
175
+ ? json.message
176
+ : `Eval run ${args.runId} is not running (status: ${status}).`, 409, "eval_run_not_running");
177
+ }
178
+ if (!resp.ok) {
179
+ const detail = typeof json.message === "string" && json.message !== ""
180
+ ? json.message
181
+ : typeof json.error === "string" && json.error !== ""
182
+ ? json.error
183
+ : `HTTP ${resp.status}`;
184
+ throw new RemoteEvalError(`Could not cancel eval run: ${detail}`, resp.status, "cancel_failed");
185
+ }
186
+ if (typeof json.runId !== "string" || json.runId === "") {
187
+ throw new RemoteEvalError("Eval cancel response missing runId.", undefined, "cancel_failed");
188
+ }
189
+ return json;
204
190
  }
205
191
  /** One-shot `GET /v1/dev/evals/runs/:runId` (no polling). */
206
- export function getRemoteEvalRun(args) {
207
- return __awaiter(this, void 0, void 0, function* () {
208
- var _a;
209
- const baseUrl = args.baseUrl.replace(/\/$/, "");
210
- const fetchImpl = (_a = args.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
211
- let resp;
212
- try {
213
- resp = yield fetchImpl(`${baseUrl}/v1/dev/evals/runs/${encodeURIComponent(args.runId)}`, {
214
- headers: mergeRequestHeaders(args.auth),
215
- signal: args.signal,
216
- });
217
- }
218
- catch (error) {
219
- throw new RemoteEvalError(error instanceof Error ? error.message : "Could not fetch eval run.", undefined, "poll_failed");
220
- }
221
- if (resp.status === 404) {
222
- throw new RemoteEvalError(`Unknown eval run ${args.runId}.`, 404, "unknown_eval_run");
223
- }
224
- if (!resp.ok) {
225
- throw new RemoteEvalError(`Could not fetch eval run (HTTP ${resp.status}).`, resp.status, "poll_failed");
226
- }
227
- return (yield resp.json());
228
- });
192
+ export async function getRemoteEvalRun(args) {
193
+ const baseUrl = args.baseUrl.replace(/\/$/, "");
194
+ const fetchImpl = args.fetchImpl ?? fetch;
195
+ let resp;
196
+ try {
197
+ resp = await fetchImpl(`${baseUrl}/v1/dev/evals/runs/${encodeURIComponent(args.runId)}`, {
198
+ headers: mergeRequestHeaders(args.auth),
199
+ signal: args.signal,
200
+ });
201
+ }
202
+ catch (error) {
203
+ throw new RemoteEvalError(error instanceof Error ? error.message : "Could not fetch eval run.", undefined, "poll_failed");
204
+ }
205
+ if (resp.status === 404) {
206
+ throw new RemoteEvalError(`Unknown eval run ${args.runId}.`, 404, "unknown_eval_run");
207
+ }
208
+ if (!resp.ok) {
209
+ throw new RemoteEvalError(`Could not fetch eval run (HTTP ${resp.status}).`, resp.status, "poll_failed");
210
+ }
211
+ return (await resp.json());
229
212
  }
230
213
  /** Recent batches from `GET /v1/dev/evals/runs`. */
231
- export function listRemoteEvalRuns(args) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- var _a;
234
- const baseUrl = args.baseUrl.replace(/\/$/, "");
235
- const fetchImpl = (_a = args.fetchImpl) !== null && _a !== void 0 ? _a : fetch;
236
- let resp;
237
- try {
238
- resp = yield fetchImpl(`${baseUrl}/v1/dev/evals/runs`, {
239
- headers: mergeRequestHeaders(args.auth),
240
- signal: args.signal,
241
- });
242
- }
243
- catch (error) {
244
- throw new RemoteEvalError(error instanceof Error ? error.message : "Could not list eval runs.", undefined, "poll_failed");
245
- }
246
- if (!resp.ok) {
247
- throw new RemoteEvalError(`Could not list eval runs (HTTP ${resp.status}).`, resp.status, "poll_failed");
248
- }
249
- const body = (yield resp.json());
250
- const runs = Array.isArray(body.runs)
251
- ? body.runs.filter((r) => r !== null && typeof r === "object" && typeof r.runId === "string")
252
- : [];
253
- return Object.assign({ runs }, (typeof body.activeRunId === "string" && body.activeRunId !== ""
214
+ export async function listRemoteEvalRuns(args) {
215
+ const baseUrl = args.baseUrl.replace(/\/$/, "");
216
+ const fetchImpl = args.fetchImpl ?? fetch;
217
+ let resp;
218
+ try {
219
+ resp = await fetchImpl(`${baseUrl}/v1/dev/evals/runs`, {
220
+ headers: mergeRequestHeaders(args.auth),
221
+ signal: args.signal,
222
+ });
223
+ }
224
+ catch (error) {
225
+ throw new RemoteEvalError(error instanceof Error ? error.message : "Could not list eval runs.", undefined, "poll_failed");
226
+ }
227
+ if (!resp.ok) {
228
+ throw new RemoteEvalError(`Could not list eval runs (HTTP ${resp.status}).`, resp.status, "poll_failed");
229
+ }
230
+ const body = (await resp.json());
231
+ const runs = Array.isArray(body.runs)
232
+ ? body.runs.filter((r) => r !== null && typeof r === "object" && typeof r.runId === "string")
233
+ : [];
234
+ return {
235
+ runs,
236
+ ...(typeof body.activeRunId === "string" && body.activeRunId !== ""
254
237
  ? { activeRunId: body.activeRunId }
255
- : {}));
256
- });
238
+ : {}),
239
+ };
257
240
  }
258
- export function pollRemoteEvalRun(args) {
259
- return __awaiter(this, void 0, void 0, function* () {
260
- var _a, _b;
261
- var _c;
262
- const pollMs = (_c = args.pollMs) !== null && _c !== void 0 ? _c : DEFAULT_POLL_MS;
263
- let lastJson = "";
264
- for (;;) {
265
- if (((_a = args.signal) === null || _a === void 0 ? void 0 : _a.aborted) === true) {
266
- throw new RemoteEvalError("Eval wait aborted.", undefined, "aborted");
267
- }
268
- const snap = yield getRemoteEvalRun(args);
269
- const serialized = JSON.stringify(snap);
270
- if (serialized !== lastJson) {
271
- lastJson = serialized;
272
- (_b = args.onSnapshot) === null || _b === void 0 ? void 0 : _b.call(args, snap);
273
- }
274
- if (snap.status !== "running") {
275
- return snap;
276
- }
277
- yield sleep(pollMs, args.signal);
241
+ export async function pollRemoteEvalRun(args) {
242
+ const pollMs = args.pollMs ?? DEFAULT_POLL_MS;
243
+ let lastJson = "";
244
+ for (;;) {
245
+ if (args.signal?.aborted === true) {
246
+ throw new RemoteEvalError("Eval wait aborted.", undefined, "aborted");
278
247
  }
279
- });
248
+ const snap = await getRemoteEvalRun(args);
249
+ const serialized = JSON.stringify(snap);
250
+ if (serialized !== lastJson) {
251
+ lastJson = serialized;
252
+ args.onSnapshot?.(snap);
253
+ }
254
+ if (snap.status !== "running") {
255
+ return snap;
256
+ }
257
+ await sleep(pollMs, args.signal);
258
+ }
280
259
  }
281
260
  export function snapshotToEvalRunResults(snapshot) {
282
- return snapshot.cases.map(c => { var _a, _b, _c, _d, _e, _f; return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: c.id, path: c.fileId }, (c.description === undefined ? {} : { description: c.description })), { ok: c.ok === true,
261
+ return snapshot.cases.map(c => ({
262
+ id: c.id,
263
+ path: c.fileId,
264
+ ...(c.description === undefined ? {} : { description: c.description }),
265
+ ok: c.ok === true,
283
266
  // Older serve processes send no verdict; infer it from `ok` so a remote
284
267
  // batch still prints and reports consistently.
285
- verdict: (_a = c.verdict) !== null && _a !== void 0 ? _a : (c.ok === true ? "passed" : "failed") }), (c.skipReason === undefined ? {} : { skipReason: c.skipReason })), (c.metadata === undefined ? {} : { metadata: c.metadata })), { assertions: (_b = c.assertions) !== null && _b !== void 0 ? _b : [] }), (c.sessionId === undefined ? {} : { sessionId: c.sessionId })), { inputs: (_c = c.inputs) !== null && _c !== void 0 ? _c : [] }), (c.finalText === undefined ? {} : { finalText: c.finalText })), (c.tools === undefined ? {} : { tools: c.tools })), (c.toolCalls === undefined ? {} : { toolCalls: c.toolCalls })), (c.error === undefined ? {} : { error: c.error })), { logs: (_d = c.logs) !== null && _d !== void 0 ? _d : [], metrics: (_e = c.metrics) !== null && _e !== void 0 ? _e : {}, durationMs: (_f = c.durationMs) !== null && _f !== void 0 ? _f : 0 })); });
268
+ verdict: c.verdict ?? (c.ok === true ? "passed" : "failed"),
269
+ ...(c.skipReason === undefined ? {} : { skipReason: c.skipReason }),
270
+ ...(c.metadata === undefined ? {} : { metadata: c.metadata }),
271
+ assertions: c.assertions ?? [],
272
+ ...(c.sessionId === undefined ? {} : { sessionId: c.sessionId }),
273
+ inputs: c.inputs ?? [],
274
+ ...(c.finalText === undefined ? {} : { finalText: c.finalText }),
275
+ ...(c.tools === undefined ? {} : { tools: c.tools }),
276
+ ...(c.toolCalls === undefined ? {} : { toolCalls: c.toolCalls }),
277
+ ...(c.error === undefined ? {} : { error: c.error }),
278
+ logs: c.logs ?? [],
279
+ metrics: c.metrics ?? {},
280
+ durationMs: c.durationMs ?? 0,
281
+ }));
286
282
  }
287
283
  function sleep(ms, signal) {
288
284
  return new Promise((resolve, reject) => {
289
- if ((signal === null || signal === void 0 ? void 0 : signal.aborted) === true) {
285
+ if (signal?.aborted === true) {
290
286
  reject(new RemoteEvalError("Eval wait aborted.", undefined, "aborted"));
291
287
  return;
292
288
  }
293
289
  const timer = setTimeout(() => {
294
- signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", onAbort);
290
+ signal?.removeEventListener("abort", onAbort);
295
291
  resolve();
296
292
  }, ms);
297
293
  const onAbort = () => {
298
294
  clearTimeout(timer);
299
295
  reject(new RemoteEvalError("Eval wait aborted.", undefined, "aborted"));
300
296
  };
301
- signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", onAbort, { once: true });
297
+ signal?.addEventListener("abort", onAbort, { once: true });
302
298
  });
303
299
  }