@cursor/bdk 0.2.9 → 0.2.11

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 (569) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.js +803 -812
  3. package/dist/channels/bitbucket/api.js +305 -321
  4. package/dist/channels/bitbucket/binding.js +97 -61
  5. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  6. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  7. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  11. package/dist/channels/bitbucket/checks.js +9 -21
  12. package/dist/channels/bitbucket/cursor-account.js +1 -1
  13. package/dist/channels/bitbucket/defaults.js +14 -4
  14. package/dist/channels/bitbucket/events.js +1 -2
  15. package/dist/channels/bitbucket/index.d.ts +6 -2
  16. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  17. package/dist/channels/bitbucket/index.js +6 -2
  18. package/dist/channels/bitbucket/replay.js +80 -56
  19. package/dist/channels/bitbucket/state.js +16 -7
  20. package/dist/channels/bitbucket/types.d.ts +11 -2
  21. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  22. package/dist/channels/checks.js +18 -28
  23. package/dist/channels/deployments/deployments-channel.js +26 -34
  24. package/dist/channels/github/api.js +216 -210
  25. package/dist/channels/github/auth.d.ts +5 -1
  26. package/dist/channels/github/auth.d.ts.map +1 -1
  27. package/dist/channels/github/auth.js +157 -174
  28. package/dist/channels/github/binding.js +48 -39
  29. package/dist/channels/github/checks.js +9 -14
  30. package/dist/channels/github/cursor-account.js +6 -11
  31. package/dist/channels/github/defaults.js +105 -130
  32. package/dist/channels/github/forward.js +13 -17
  33. package/dist/channels/github/github-channel.d.ts +43 -2
  34. package/dist/channels/github/github-channel.d.ts.map +1 -1
  35. package/dist/channels/github/github-channel.js +1228 -958
  36. package/dist/channels/github/progress.js +145 -146
  37. package/dist/channels/github/replay.js +30 -39
  38. package/dist/channels/github/state.js +40 -16
  39. package/dist/channels/github/types.d.ts +30 -6
  40. package/dist/channels/github/types.d.ts.map +1 -1
  41. package/dist/channels/gitlab/api.js +100 -114
  42. package/dist/channels/gitlab/binding.js +52 -33
  43. package/dist/channels/gitlab/checks.js +28 -29
  44. package/dist/channels/gitlab/cursor-account.js +1 -1
  45. package/dist/channels/gitlab/defaults.js +9 -3
  46. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  47. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  48. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  49. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  50. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  51. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  52. package/dist/channels/gitlab/index.d.ts +6 -2
  53. package/dist/channels/gitlab/index.d.ts.map +1 -1
  54. package/dist/channels/gitlab/index.js +6 -2
  55. package/dist/channels/gitlab/replay.js +50 -27
  56. package/dist/channels/gitlab/state.js +14 -6
  57. package/dist/channels/gitlab/types.d.ts +13 -2
  58. package/dist/channels/gitlab/types.d.ts.map +1 -1
  59. package/dist/channels/origin/api.js +100 -116
  60. package/dist/channels/origin/binding.js +15 -16
  61. package/dist/channels/origin/checks.js +30 -28
  62. package/dist/channels/origin/defaults.js +50 -65
  63. package/dist/channels/origin/origin-channel.js +266 -272
  64. package/dist/channels/origin/origin-webhook.js +70 -88
  65. package/dist/channels/origin/reactions.js +9 -21
  66. package/dist/channels/origin/state.js +13 -5
  67. package/dist/channels/slack/agentic-delivery.js +426 -478
  68. package/dist/channels/slack/agentic-posted.js +9 -10
  69. package/dist/channels/slack/agentic-signals.js +2 -3
  70. package/dist/channels/slack/api.js +417 -427
  71. package/dist/channels/slack/approvals.js +1 -1
  72. package/dist/channels/slack/assistant.js +37 -47
  73. package/dist/channels/slack/attachments.js +188 -206
  74. package/dist/channels/slack/auth.js +8 -6
  75. package/dist/channels/slack/bot-mentions.js +31 -45
  76. package/dist/channels/slack/channel-watch.js +42 -48
  77. package/dist/channels/slack/cli-project.js +112 -137
  78. package/dist/channels/slack/code-fences.js +3 -5
  79. package/dist/channels/slack/constants.js +2 -2
  80. package/dist/channels/slack/credentials.js +23 -38
  81. package/dist/channels/slack/defaults.js +292 -331
  82. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  83. package/dist/channels/slack/dispatch.js +533 -460
  84. package/dist/channels/slack/doctor.js +200 -214
  85. package/dist/channels/slack/eval-directive.js +79 -96
  86. package/dist/channels/slack/event-id-dedupe.js +1 -1
  87. package/dist/channels/slack/external-policy.js +26 -39
  88. package/dist/channels/slack/footer.js +28 -41
  89. package/dist/channels/slack/inbound.d.ts +1 -0
  90. package/dist/channels/slack/inbound.d.ts.map +1 -1
  91. package/dist/channels/slack/inbound.js +50 -31
  92. package/dist/channels/slack/init.d.ts +1 -5
  93. package/dist/channels/slack/init.d.ts.map +1 -1
  94. package/dist/channels/slack/init.js +42 -59
  95. package/dist/channels/slack/interactive.d.ts +9 -3
  96. package/dist/channels/slack/interactive.d.ts.map +1 -1
  97. package/dist/channels/slack/interactive.js +160 -162
  98. package/dist/channels/slack/links.js +1 -2
  99. package/dist/channels/slack/live-delivery.js +172 -190
  100. package/dist/channels/slack/manifest.d.ts.map +1 -1
  101. package/dist/channels/slack/manifest.js +44 -23
  102. package/dist/channels/slack/message-body.js +2 -2
  103. package/dist/channels/slack/nudge-carrier.js +30 -42
  104. package/dist/channels/slack/nudge-store.js +164 -191
  105. package/dist/channels/slack/paint-start.js +66 -81
  106. package/dist/channels/slack/placeholder.js +123 -152
  107. package/dist/channels/slack/pr-ref.js +1 -1
  108. package/dist/channels/slack/progress-delivery.js +65 -78
  109. package/dist/channels/slack/reasoning-card.js +36 -49
  110. package/dist/channels/slack/recording-sink.js +12 -24
  111. package/dist/channels/slack/reply-options.js +7 -12
  112. package/dist/channels/slack/self-identity.js +27 -35
  113. package/dist/channels/slack/sender-name.d.ts +12 -3
  114. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  115. package/dist/channels/slack/sender-name.js +57 -61
  116. package/dist/channels/slack/setup.js +2 -4
  117. package/dist/channels/slack/slack-channel.d.ts +6 -4
  118. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  119. package/dist/channels/slack/slack-channel.js +441 -308
  120. package/dist/channels/slack/socket-mode.js +38 -52
  121. package/dist/channels/slack/thread-context.js +143 -160
  122. package/dist/channels/slack/tool-approval-events.js +149 -166
  123. package/dist/channels/slack/tool-cards.js +6 -11
  124. package/dist/channels/slack/tool-chip.js +1 -2
  125. package/dist/channels/slack/types.d.ts +15 -17
  126. package/dist/channels/slack/types.d.ts.map +1 -1
  127. package/dist/channels/slack/upload.js +84 -97
  128. package/dist/channels/slack/user-info.js +27 -41
  129. package/dist/channels.js +9 -20
  130. package/dist/dashboard-session-url.js +3 -4
  131. package/dist/docs/404.html +2 -2
  132. package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
  133. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  134. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  135. package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  136. package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
  137. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  138. package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
  139. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  140. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  141. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  142. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  143. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  144. package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  150. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  151. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  152. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  153. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  154. package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  155. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  156. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  159. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  160. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  161. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  162. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  163. package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
  164. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  165. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  166. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  167. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  168. package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
  169. package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
  170. package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
  171. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  172. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  173. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  174. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  175. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  176. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  177. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  178. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  179. package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
  180. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  181. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  182. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
  183. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  184. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  185. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  186. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  187. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  188. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  189. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  191. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  192. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  193. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  194. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  195. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  196. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  197. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  198. package/dist/docs/building-with-agents.html +37 -37
  199. package/dist/docs/building-with-agents.md +2 -0
  200. package/dist/docs/deployment.html +38 -38
  201. package/dist/docs/deployment.md +7 -0
  202. package/dist/docs/evals.html +36 -36
  203. package/dist/docs/guides/agent-to-agent.html +35 -35
  204. package/dist/docs/guides/bitbucket.html +38 -38
  205. package/dist/docs/guides/bitbucket.md +9 -1
  206. package/dist/docs/guides/cloud-agents.html +35 -35
  207. package/dist/docs/guides/convert-automation.html +35 -35
  208. package/dist/docs/guides/github.html +39 -39
  209. package/dist/docs/guides/github.md +20 -4
  210. package/dist/docs/guides/gitlab.html +38 -38
  211. package/dist/docs/guides/gitlab.md +9 -1
  212. package/dist/docs/guides/grokbot-agents.html +35 -35
  213. package/dist/docs/guides/hooks.html +35 -35
  214. package/dist/docs/guides/improve.html +35 -35
  215. package/dist/docs/guides/jev.html +35 -35
  216. package/dist/docs/guides/mcp-oauth.html +35 -35
  217. package/dist/docs/guides/migrate.html +66 -0
  218. package/dist/docs/guides/migrate.md +122 -0
  219. package/dist/docs/guides/opentelemetry.html +35 -35
  220. package/dist/docs/guides/slack.html +35 -35
  221. package/dist/docs/guides/webhooks.html +35 -35
  222. package/dist/docs/hashmap.json +1 -1
  223. package/dist/docs/hillclimbing.html +35 -35
  224. package/dist/docs/index.html +35 -35
  225. package/dist/docs/llms-full.txt +214 -6
  226. package/dist/docs/llms.txt +1 -0
  227. package/dist/docs/quickstart.html +35 -35
  228. package/dist/docs/reference/agent-config.html +35 -35
  229. package/dist/docs/reference/artifacts.html +35 -35
  230. package/dist/docs/reference/channels.html +35 -35
  231. package/dist/docs/reference/cli.html +39 -38
  232. package/dist/docs/reference/cli.md +39 -0
  233. package/dist/docs/reference/connections.html +35 -35
  234. package/dist/docs/reference/evals.html +35 -35
  235. package/dist/docs/reference/extensions.html +35 -35
  236. package/dist/docs/reference/hooks.html +35 -35
  237. package/dist/docs/reference/http-api.html +35 -35
  238. package/dist/docs/reference/instructions.html +35 -35
  239. package/dist/docs/reference/playground.html +35 -35
  240. package/dist/docs/reference/project-layout.html +35 -35
  241. package/dist/docs/reference/prompt.html +35 -35
  242. package/dist/docs/reference/schedules.html +35 -35
  243. package/dist/docs/reference/sessions.html +35 -35
  244. package/dist/docs/reference/skills.html +35 -35
  245. package/dist/docs/reference/subagents.html +35 -35
  246. package/dist/docs/reference/tools.html +35 -35
  247. package/dist/docs/templates/agentic-owners.html +35 -35
  248. package/dist/docs/templates/grokbot-agents.html +35 -35
  249. package/dist/docs/templates/security-reviewer.html +35 -35
  250. package/dist/docs/templates/thermo-quality-review.html +35 -35
  251. package/dist/docs/templates/thermo-review.html +35 -35
  252. package/dist/docs/templates/triage.html +35 -35
  253. package/dist/docs/troubleshooting.html +36 -36
  254. package/dist/docs/troubleshooting.md +1 -0
  255. package/dist/evals/assertions.js +20 -34
  256. package/dist/evals/expect.js +3 -6
  257. package/dist/evals/judge.js +5 -8
  258. package/dist/evals/loaders.js +45 -62
  259. package/dist/evals/matchers.js +2 -3
  260. package/dist/evals/reporters.js +43 -67
  261. package/dist/evals/results.js +1 -1
  262. package/dist/evals/run-facts.js +5 -6
  263. package/dist/evals.js +27 -15
  264. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  265. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  266. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  267. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  268. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  269. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  270. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  271. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  272. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  273. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  274. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  275. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  276. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  277. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  278. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  279. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  280. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  281. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  282. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  283. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  284. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  285. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  286. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  287. package/dist/extensions/jev/extension.js +3 -3
  288. package/dist/extensions/jev/lib/evaluate.js +43 -60
  289. package/dist/extensions/jev/tools/evaluate.js +6 -17
  290. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  291. package/dist/extensions.js +3 -5
  292. package/dist/files-backends/cursor-hosted.js +504 -523
  293. package/dist/files-backends/local-fs.js +72 -134
  294. package/dist/files.js +3 -3
  295. package/dist/filesystem.js +562 -861
  296. package/dist/index.js +16 -35
  297. package/dist/internal/advertise-tools.js +74 -86
  298. package/dist/internal/artifacts-store.js +298 -361
  299. package/dist/internal/as-of.js +2 -4
  300. package/dist/internal/authored-alias-hooks.js +6 -4
  301. package/dist/internal/authored-loaders.js +37 -52
  302. package/dist/internal/bounded-int.js +1 -2
  303. package/dist/internal/bounded.js +13 -24
  304. package/dist/internal/brand.js +1 -1
  305. package/dist/internal/browser-origin-guard.js +4 -4
  306. package/dist/internal/builtin-tools/artifacts.js +15 -27
  307. package/dist/internal/builtin-tools/index.js +2 -3
  308. package/dist/internal/builtin-tools/reminders.js +33 -52
  309. package/dist/internal/channel-architecture.d.ts +21 -0
  310. package/dist/internal/channel-architecture.d.ts.map +1 -0
  311. package/dist/internal/channel-architecture.js +41 -0
  312. package/dist/internal/channel-dispatch.js +3 -4
  313. package/dist/internal/channel-route-dispatch.js +40 -51
  314. package/dist/internal/channel-state.js +1 -1
  315. package/dist/internal/chat-client.js +319 -340
  316. package/dist/internal/cli-ax.js +1262 -1294
  317. package/dist/internal/cli-bitbucket.js +244 -272
  318. package/dist/internal/cli-convert-automation.js +137 -151
  319. package/dist/internal/cli-cursor.js +126 -147
  320. package/dist/internal/cli-deploy.d.ts.map +1 -1
  321. package/dist/internal/cli-deploy.js +1457 -1507
  322. package/dist/internal/cli-docs.js +130 -147
  323. package/dist/internal/cli-github.js +437 -476
  324. package/dist/internal/cli-gitlab.js +259 -288
  325. package/dist/internal/cli-images.js +266 -334
  326. package/dist/internal/cli-manifest.js +25 -37
  327. package/dist/internal/cli-mcp-oauth.js +228 -247
  328. package/dist/internal/cli-mcp.js +358 -383
  329. package/dist/internal/cli-migrate.js +73 -90
  330. package/dist/internal/cli-skills.js +35 -47
  331. package/dist/internal/cli-slack-manual.d.ts +0 -1
  332. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  333. package/dist/internal/cli-slack-manual.js +175 -204
  334. package/dist/internal/cli-slack.d.ts +1 -1
  335. package/dist/internal/cli-slack.d.ts.map +1 -1
  336. package/dist/internal/cli-slack.js +416 -456
  337. package/dist/internal/cloud-merge.js +7 -3
  338. package/dist/internal/cloud-turn-cost.js +8 -1
  339. package/dist/internal/connection-env.js +5 -6
  340. package/dist/internal/continuation-channel.js +10 -7
  341. package/dist/internal/continuation-identity.js +85 -67
  342. package/dist/internal/conversation-mirror.js +112 -131
  343. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  344. package/dist/internal/cron.js +3 -3
  345. package/dist/internal/cursor/account-mcp.js +147 -146
  346. package/dist/internal/cursor/backend-client.js +290 -320
  347. package/dist/internal/cursor/bound-secret-file.js +3 -3
  348. package/dist/internal/cursor/credentials.js +127 -142
  349. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  350. package/dist/internal/cursor/github-credentials.js +91 -108
  351. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  352. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  353. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  354. package/dist/internal/cursor/session-token.js +36 -48
  355. package/dist/internal/cursor/store-api-client.js +77 -92
  356. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  357. package/dist/internal/cursor-agent-template.js +1 -1
  358. package/dist/internal/cursor-deployment-relay.js +33 -54
  359. package/dist/internal/cursor-event-relay.js +65 -59
  360. package/dist/internal/cursor-relay-core.js +258 -286
  361. package/dist/internal/deferred-channel-session.js +3 -12
  362. package/dist/internal/deploy-client.d.ts.map +1 -1
  363. package/dist/internal/deploy-client.js +413 -475
  364. package/dist/internal/deploy-manifest.d.ts +17 -0
  365. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  366. package/dist/internal/deploy-manifest.js +71 -21
  367. package/dist/internal/deploy-source.js +31 -43
  368. package/dist/internal/discovery/agent-config.js +45 -59
  369. package/dist/internal/discovery/agent.js +276 -280
  370. package/dist/internal/discovery/channels.js +67 -80
  371. package/dist/internal/discovery/connections.js +286 -296
  372. package/dist/internal/discovery/context.js +2 -13
  373. package/dist/internal/discovery/cursor-plugin.js +223 -259
  374. package/dist/internal/discovery/extension-overlay.js +104 -131
  375. package/dist/internal/discovery/extensions.js +276 -281
  376. package/dist/internal/discovery/fs.js +56 -79
  377. package/dist/internal/discovery/hooks.js +39 -50
  378. package/dist/internal/discovery/info.js +17 -19
  379. package/dist/internal/discovery/instructions.js +58 -71
  380. package/dist/internal/discovery/modules.js +45 -58
  381. package/dist/internal/discovery/project.d.ts.map +1 -1
  382. package/dist/internal/discovery/project.js +192 -215
  383. package/dist/internal/discovery/reminders.js +41 -52
  384. package/dist/internal/discovery/runtime.js +1 -1
  385. package/dist/internal/discovery/schedules.js +71 -82
  386. package/dist/internal/discovery/seed-files.js +21 -32
  387. package/dist/internal/discovery/services.js +74 -96
  388. package/dist/internal/discovery/skills.js +77 -94
  389. package/dist/internal/discovery/subagent.js +79 -95
  390. package/dist/internal/discovery/tools.js +12 -23
  391. package/dist/internal/distribution.js +2 -2
  392. package/dist/internal/docs-site.js +30 -45
  393. package/dist/internal/duration.js +1 -1
  394. package/dist/internal/env-file.js +48 -64
  395. package/dist/internal/eval-judge-model.js +17 -28
  396. package/dist/internal/eval-run-store.js +265 -254
  397. package/dist/internal/eval-runner.d.ts +8 -0
  398. package/dist/internal/eval-runner.d.ts.map +1 -1
  399. package/dist/internal/eval-runner.js +406 -408
  400. package/dist/internal/eval-transport.d.ts +24 -0
  401. package/dist/internal/eval-transport.d.ts.map +1 -0
  402. package/dist/internal/eval-transport.js +22 -0
  403. package/dist/internal/evals-client.js +242 -246
  404. package/dist/internal/event-log.js +72 -120
  405. package/dist/internal/event-mapper.js +30 -31
  406. package/dist/internal/factory-resource-channel.js +16 -30
  407. package/dist/internal/filesystem/errors.js +6 -6
  408. package/dist/internal/filesystem/format.js +10 -13
  409. package/dist/internal/filesystem/merge.js +52 -94
  410. package/dist/internal/filesystem/nearest.js +15 -27
  411. package/dist/internal/filesystem/scratch.js +65 -85
  412. package/dist/internal/filesystem/tools.js +221 -241
  413. package/dist/internal/filesystem/walk.js +76 -143
  414. package/dist/internal/framework-file-storage.js +118 -139
  415. package/dist/internal/framework-storage-selection.js +21 -13
  416. package/dist/internal/frontmatter.js +4 -6
  417. package/dist/internal/github-fanout.js +50 -64
  418. package/dist/internal/guest-network.js +96 -109
  419. package/dist/internal/handleAgentServeTrigger.js +121 -126
  420. package/dist/internal/host-files.js +73 -88
  421. package/dist/internal/host-kv.js +21 -36
  422. package/dist/internal/host-otel.js +22 -19
  423. package/dist/internal/host-platforms.js +49 -63
  424. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  425. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  426. package/dist/internal/hosted-catch-protocol.js +1 -0
  427. package/dist/internal/hosted-catch.d.ts +5 -3
  428. package/dist/internal/hosted-catch.d.ts.map +1 -1
  429. package/dist/internal/hosted-catch.js +84 -93
  430. package/dist/internal/hosted-delivery-protocol.js +32 -8
  431. package/dist/internal/hosted-delivery.d.ts +13 -1
  432. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  433. package/dist/internal/hosted-delivery.js +614 -584
  434. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  435. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  436. package/dist/internal/hosted-eval-cases.js +162 -0
  437. package/dist/internal/hosted-execution-diag.js +38 -30
  438. package/dist/internal/hosted-execution-flush.js +75 -66
  439. package/dist/internal/hosted-execution-latency.js +16 -8
  440. package/dist/internal/hosted-managed-automation.js +2 -2
  441. package/dist/internal/hosting.js +2 -3
  442. package/dist/internal/http-channel-define.js +4 -1
  443. package/dist/internal/http-channel.js +101 -112
  444. package/dist/internal/http-control-plane-session.d.ts +18 -1
  445. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  446. package/dist/internal/http-control-plane-session.js +66 -32
  447. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  448. package/dist/internal/init-interview.js +73 -93
  449. package/dist/internal/init-project.js +182 -214
  450. package/dist/internal/init-scaffold.js +10 -21
  451. package/dist/internal/inline-stdio-mcp.js +80 -86
  452. package/dist/internal/install-cursor-skills.js +231 -273
  453. package/dist/internal/legacy-command-guard.js +18 -31
  454. package/dist/internal/listen-port.js +34 -45
  455. package/dist/internal/local-control-plane.js +293 -307
  456. package/dist/internal/local-env.js +1 -1
  457. package/dist/internal/local-ingress.js +15 -9
  458. package/dist/internal/log-ring.js +1 -2
  459. package/dist/internal/logs-client.js +207 -227
  460. package/dist/internal/map-pool.js +24 -38
  461. package/dist/internal/mcp-endpoint.js +204 -180
  462. package/dist/internal/mcp-host.js +165 -168
  463. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  464. package/dist/internal/mcp-oauth-persist.js +15 -29
  465. package/dist/internal/mcp-oauth.js +209 -266
  466. package/dist/internal/named-webhook-secret.d.ts +39 -0
  467. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  468. package/dist/internal/named-webhook-secret.js +47 -0
  469. package/dist/internal/open-browser.js +2 -3
  470. package/dist/internal/otel/collector.js +104 -68
  471. package/dist/internal/otel/config.js +24 -37
  472. package/dist/internal/otel/http.js +5 -7
  473. package/dist/internal/otel/mcp.js +3 -12
  474. package/dist/internal/otel/runtime.js +69 -83
  475. package/dist/internal/package-inline-stdio.js +57 -65
  476. package/dist/internal/peer-connections.js +9 -5
  477. package/dist/internal/platform-schedule-sync.js +39 -54
  478. package/dist/internal/platform-timers.js +176 -210
  479. package/dist/internal/playground/static.js +1 -2
  480. package/dist/internal/playground/toolchain.js +37 -53
  481. package/dist/internal/playground-proxy.js +230 -270
  482. package/dist/internal/process-memory-telemetry.js +33 -51
  483. package/dist/internal/prompt-context.js +3 -6
  484. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  485. package/dist/internal/reminder-runner.js +770 -785
  486. package/dist/internal/reminder-schedule.js +1 -1
  487. package/dist/internal/reminder-store.js +57 -78
  488. package/dist/internal/request-error-status.js +1 -3
  489. package/dist/internal/request-headers.js +2 -2
  490. package/dist/internal/resolve-prod-target.js +119 -135
  491. package/dist/internal/resolved-connections.js +16 -6
  492. package/dist/internal/run-client.js +221 -229
  493. package/dist/internal/runtime-dispatch-runner.js +18 -43
  494. package/dist/internal/schedule-runner.js +49 -58
  495. package/dist/internal/scm/pr-url.js +7 -6
  496. package/dist/internal/sdk-runner.js +388 -363
  497. package/dist/internal/serve-restart.js +26 -39
  498. package/dist/internal/server.d.ts.map +1 -1
  499. package/dist/internal/server.js +1283 -1244
  500. package/dist/internal/session-cost.js +7 -9
  501. package/dist/internal/session-engine.d.ts +3 -1
  502. package/dist/internal/session-engine.d.ts.map +1 -1
  503. package/dist/internal/session-engine.js +2801 -2777
  504. package/dist/internal/session-links.js +12 -16
  505. package/dist/internal/session-run-log.js +134 -82
  506. package/dist/internal/session-store.js +133 -164
  507. package/dist/internal/sessions-client.js +97 -118
  508. package/dist/internal/skill-catalog.js +18 -23
  509. package/dist/internal/skills-sync.js +16 -30
  510. package/dist/internal/slack-provision-client.js +90 -116
  511. package/dist/internal/start-log-store.js +48 -67
  512. package/dist/internal/steering.js +1 -2
  513. package/dist/internal/storage-coordinator.js +160 -196
  514. package/dist/internal/store-mirror.js +16 -30
  515. package/dist/internal/stream-progress.js +6 -8
  516. package/dist/internal/terminal-style.js +3 -4
  517. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  518. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  519. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  520. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  521. package/dist/internal/tool-catalog.js +11 -5
  522. package/dist/internal/tool-result.js +1 -1
  523. package/dist/internal/trajectory.js +19 -22
  524. package/dist/internal/turn-cost.js +52 -62
  525. package/dist/internal/turn-governor.js +5 -8
  526. package/dist/internal/turn-lease-store.js +85 -105
  527. package/dist/internal/turn-outbox.js +28 -43
  528. package/dist/internal/update-check.js +231 -259
  529. package/dist/internal/v2-hosting.js +1 -2
  530. package/dist/internal/workspace-sync.js +25 -41
  531. package/dist/internal/workspace.js +111 -139
  532. package/dist/kv/memory-kv.js +27 -51
  533. package/dist/memory.js +106 -148
  534. package/dist/otel.js +5 -8
  535. package/dist/playground/assets/{index-Co4CUVTQ.js → index-Be0-1hw2.js} +45 -45
  536. package/dist/playground/assets/index-Clz6uHj9.css +1 -0
  537. package/dist/playground/index.html +2 -2
  538. package/dist/prompt.js +2 -4
  539. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  540. package/dist/storage-backends/cursor-hosted.js +105 -145
  541. package/dist/storage-backends/file-kv.js +100 -128
  542. package/dist/storage-protocol.js +3 -5
  543. package/dist/storage.js +17 -26
  544. package/dist/types.d.ts +68 -0
  545. package/dist/types.d.ts.map +1 -1
  546. package/dist/types.js +20 -18
  547. package/docs/building-with-agents.md +2 -0
  548. package/docs/deployment.md +7 -0
  549. package/docs/guides/bitbucket.md +9 -1
  550. package/docs/guides/github.md +20 -4
  551. package/docs/guides/gitlab.md +9 -1
  552. package/docs/guides/migrate.md +127 -0
  553. package/docs/reference/cli.md +39 -0
  554. package/docs/troubleshooting.md +1 -0
  555. package/package.json +1 -1
  556. package/skills/debug/SKILL.md +1 -0
  557. package/skills/github/SKILL.md +23 -0
  558. package/skills/migrate-v2/SKILL.md +51 -10
  559. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
  560. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
  561. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
  562. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
  563. package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
  564. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
  565. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  566. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  567. package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
  568. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  569. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
@@ -79,8 +79,7 @@ function coerceToString(value) {
79
79
  * folded back into the message.
80
80
  */
81
81
  function formatIssue(issue) {
82
- var _a;
83
- const path = ((_a = issue.path) !== null && _a !== void 0 ? _a : [])
82
+ const path = (issue.path ?? [])
84
83
  .map(segment => typeof segment === "object" && segment !== null && "key" in segment
85
84
  ? String(segment.key)
86
85
  : String(segment))
@@ -88,7 +87,6 @@ function formatIssue(issue) {
88
87
  return path === "" ? issue.message : `${path}: ${issue.message}`;
89
88
  }
90
89
  function validateSchema(schema, value) {
91
- var _a;
92
90
  if ("~standard" in schema) {
93
91
  const result = schema["~standard"].validate(value);
94
92
  if (result instanceof Promise) {
@@ -101,11 +99,10 @@ function validateSchema(schema, value) {
101
99
  return { passed: false, message: issues.map(formatIssue).join("; ") };
102
100
  }
103
101
  const parsed = schema.safeParse(value);
104
- return parsed.success ? { passed: true } : { passed: false, message: (_a = parsed.error) === null || _a === void 0 ? void 0 : _a.message };
102
+ return parsed.success ? { passed: true } : { passed: false, message: parsed.error?.message };
105
103
  }
106
104
  /** Grade `value` against `assertion`. */
107
105
  export function evaluateExpectation(value, assertion) {
108
- var _a;
109
106
  switch (assertion.kind) {
110
107
  case "includes": {
111
108
  const text = coerceToString(value);
@@ -128,7 +125,7 @@ export function evaluateExpectation(value, assertion) {
128
125
  const outcome = validateSchema(assertion.schema, value);
129
126
  return {
130
127
  passed: outcome.passed,
131
- detail: outcome.passed ? undefined : ((_a = outcome.message) !== null && _a !== void 0 ? _a : "schema validation failed"),
128
+ detail: outcome.passed ? undefined : (outcome.message ?? "schema validation failed"),
132
129
  };
133
130
  }
134
131
  case "similarity": {
@@ -61,21 +61,19 @@ function randomBoundary() {
61
61
  * fall back to the first bare allowed token before giving up.
62
62
  */
63
63
  export function parseJudgeReply(reply, allowed) {
64
- var _a, _b, _c;
65
- var _d;
66
64
  const text = reply.trim();
67
65
  if (text === "") {
68
66
  throw new Error("judge returned an empty reply");
69
67
  }
70
- const rationale = (_b = (_a = /^\s*REASON:\s*(.+)$/im.exec(text)) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.trim();
71
- const tagged = (_c = /^\s*CHOICE:\s*([A-Za-z0-9]+)/im.exec(text)) === null || _c === void 0 ? void 0 : _c[1];
68
+ const rationale = /^\s*REASON:\s*(.+)$/im.exec(text)?.[1]?.trim();
69
+ const tagged = /^\s*CHOICE:\s*([A-Za-z0-9]+)/im.exec(text)?.[1];
72
70
  if (tagged !== undefined) {
73
71
  const normalized = normalizeChoice(tagged, allowed);
74
72
  if (normalized !== undefined) {
75
73
  return { choice: normalized, rationale };
76
74
  }
77
75
  }
78
- for (const token of (_d = text.match(/[A-Za-z0-9]+/g)) !== null && _d !== void 0 ? _d : []) {
76
+ for (const token of text.match(/[A-Za-z0-9]+/g) ?? []) {
79
77
  const normalized = normalizeChoice(token, allowed);
80
78
  if (normalized !== undefined) {
81
79
  return { choice: normalized, rationale };
@@ -208,7 +206,6 @@ export class EvalJudgeUnavailableError extends Error {
208
206
  }
209
207
  /** Render the graded value for a judge prompt. */
210
208
  export function renderSubmission(value) {
211
- var _a;
212
209
  if (typeof value === "string") {
213
210
  return value;
214
211
  }
@@ -216,9 +213,9 @@ export function renderSubmission(value) {
216
213
  return "";
217
214
  }
218
215
  try {
219
- return (_a = JSON.stringify(value, null, 2)) !== null && _a !== void 0 ? _a : String(value);
216
+ return JSON.stringify(value, null, 2) ?? String(value);
220
217
  }
221
- catch (_b) {
218
+ catch {
222
219
  return String(value);
223
220
  }
224
221
  }
@@ -31,15 +31,6 @@
31
31
  * deep the eval sits. These loaders are for fixtures — do not use them for
32
32
  * runtime agent code.
33
33
  */
34
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
35
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36
- return new (P || (P = Promise))(function (resolve, reject) {
37
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
38
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
39
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
40
- step((generator = generator.apply(thisArg, _arguments || [])).next());
41
- });
42
- };
43
34
  import { readFile } from "node:fs/promises";
44
35
  import { isAbsolute, resolve } from "node:path";
45
36
  /**
@@ -58,67 +49,59 @@ export function evalFixtureRoot() {
58
49
  export function resolveFixturePath(path) {
59
50
  return isAbsolute(path) ? path : resolve(evalFixtureRoot(), path);
60
51
  }
61
- function readFixture(path) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- const absolute = resolveFixturePath(path);
64
- try {
65
- return yield readFile(absolute, "utf8");
66
- }
67
- catch (error) {
68
- const detail = error instanceof Error ? error.message : String(error);
69
- throw new Error(`failed to load eval fixture ${absolute}: ${detail}`);
70
- }
71
- });
52
+ async function readFixture(path) {
53
+ const absolute = resolveFixturePath(path);
54
+ try {
55
+ return await readFile(absolute, "utf8");
56
+ }
57
+ catch (error) {
58
+ const detail = error instanceof Error ? error.message : String(error);
59
+ throw new Error(`failed to load eval fixture ${absolute}: ${detail}`);
60
+ }
72
61
  }
73
62
  /** Load a JSON fixture. */
74
- export function loadJson(path) {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- const text = yield readFixture(path);
77
- try {
78
- return JSON.parse(text);
79
- }
80
- catch (error) {
81
- const detail = error instanceof Error ? error.message : String(error);
82
- throw new Error(`${resolveFixturePath(path)} is not valid JSON: ${detail}`);
83
- }
84
- });
63
+ export async function loadJson(path) {
64
+ const text = await readFixture(path);
65
+ try {
66
+ return JSON.parse(text);
67
+ }
68
+ catch (error) {
69
+ const detail = error instanceof Error ? error.message : String(error);
70
+ throw new Error(`${resolveFixturePath(path)} is not valid JSON: ${detail}`);
71
+ }
85
72
  }
86
73
  /** Load a newline-delimited JSON fixture, skipping blank lines. */
87
- export function loadJsonl(path) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const text = yield readFixture(path);
90
- const rows = [];
91
- let lineNumber = 0;
92
- for (const line of text.split("\n")) {
93
- lineNumber++;
94
- const trimmed = line.trim();
95
- if (trimmed === "") {
96
- continue;
97
- }
98
- try {
99
- rows.push(JSON.parse(trimmed));
100
- }
101
- catch (error) {
102
- const detail = error instanceof Error ? error.message : String(error);
103
- throw new Error(`${resolveFixturePath(path)}:${lineNumber} is not valid JSON: ${detail}`);
104
- }
74
+ export async function loadJsonl(path) {
75
+ const text = await readFixture(path);
76
+ const rows = [];
77
+ let lineNumber = 0;
78
+ for (const line of text.split("\n")) {
79
+ lineNumber++;
80
+ const trimmed = line.trim();
81
+ if (trimmed === "") {
82
+ continue;
105
83
  }
106
- return rows;
107
- });
108
- }
109
- /** Load a YAML fixture. */
110
- export function loadYaml(path) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- const text = yield readFixture(path);
113
- // Imported lazily so a project that only uses JSON fixtures never pays for
114
- // the YAML parser at eval-discovery time.
115
- const { load } = yield import("js-yaml");
116
84
  try {
117
- return load(text);
85
+ rows.push(JSON.parse(trimmed));
118
86
  }
119
87
  catch (error) {
120
88
  const detail = error instanceof Error ? error.message : String(error);
121
- throw new Error(`${resolveFixturePath(path)} is not valid YAML: ${detail}`);
89
+ throw new Error(`${resolveFixturePath(path)}:${lineNumber} is not valid JSON: ${detail}`);
122
90
  }
123
- });
91
+ }
92
+ return rows;
93
+ }
94
+ /** Load a YAML fixture. */
95
+ export async function loadYaml(path) {
96
+ const text = await readFixture(path);
97
+ // Imported lazily so a project that only uses JSON fixtures never pays for
98
+ // the YAML parser at eval-discovery time.
99
+ const { load } = await import("js-yaml");
100
+ try {
101
+ return load(text);
102
+ }
103
+ catch (error) {
104
+ const detail = error instanceof Error ? error.message : String(error);
105
+ throw new Error(`${resolveFixturePath(path)} is not valid YAML: ${detail}`);
106
+ }
124
107
  }
@@ -22,7 +22,6 @@ function isPlainObject(value) {
22
22
  }
23
23
  /** Stable string form used when a RegExp is tested against a non-string. */
24
24
  export function stringifyForMatch(value) {
25
- var _a;
26
25
  if (typeof value === "string") {
27
26
  return value;
28
27
  }
@@ -34,9 +33,9 @@ export function stringifyForMatch(value) {
34
33
  }
35
34
  if (typeof value === "object") {
36
35
  try {
37
- return (_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : "";
36
+ return JSON.stringify(value) ?? "";
38
37
  }
39
- catch (_b) {
38
+ catch {
40
39
  return String(value);
41
40
  }
42
41
  }
@@ -20,26 +20,6 @@
20
20
  * reporters without touching the eval files, which is usually the better fit:
21
21
  * CI owns the output paths, not the eval author.
22
22
  */
23
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
24
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25
- return new (P || (P = Promise))(function (resolve, reject) {
26
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
27
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
28
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
29
- step((generator = generator.apply(thisArg, _arguments || [])).next());
30
- });
31
- };
32
- var __rest = (this && this.__rest) || function (s, e) {
33
- var t = {};
34
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
- t[p] = s[p];
36
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
- t[p[i]] = s[p[i]];
40
- }
41
- return t;
42
- };
43
23
  import { mkdir, writeFile } from "node:fs/promises";
44
24
  import { dirname, join, resolve } from "node:path";
45
25
  /**
@@ -52,37 +32,35 @@ import { dirname, join, resolve } from "node:path";
52
32
  */
53
33
  export function JUnit(options) {
54
34
  return {
55
- onRunComplete(summary) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- var _a;
58
- const xml = renderJUnitXml(summary, (_a = options.suiteName) !== null && _a !== void 0 ? _a : "agentkit-evals");
59
- const target = resolve(options.filePath);
60
- yield mkdir(dirname(target), { recursive: true });
61
- yield writeFile(target, xml, "utf8");
62
- });
35
+ async onRunComplete(summary) {
36
+ const xml = renderJUnitXml(summary, options.suiteName ?? "agentkit-evals");
37
+ const target = resolve(options.filePath);
38
+ await mkdir(dirname(target), { recursive: true });
39
+ await writeFile(target, xml, "utf8");
63
40
  },
64
41
  };
65
42
  }
66
43
  /** Render a {@link EvalRunSummary} as JUnit XML. Exported for tests. */
67
44
  export function renderJUnitXml(summary, suiteName) {
68
- var _a, _b, _c, _d;
69
45
  const lines = [
70
46
  '<?xml version="1.0" encoding="UTF-8"?>',
71
47
  `<testsuites name="${escapeXml(suiteName)}" tests="${summary.total}" failures="${summary.failed + (summary.strict ? summary.scored : 0)}" skipped="${summary.skipped}" time="${(summary.durationMs / 1000).toFixed(3)}">`,
72
48
  ` <testsuite name="${escapeXml(suiteName)}" tests="${summary.total}" failures="${summary.failed + (summary.strict ? summary.scored : 0)}" skipped="${summary.skipped}" time="${(summary.durationMs / 1000).toFixed(3)}">`,
73
49
  ];
74
50
  for (const result of summary.results) {
75
- const verdict = (_a = result.verdict) !== null && _a !== void 0 ? _a : (result.ok ? "passed" : "failed");
51
+ const verdict = result.verdict ?? (result.ok ? "passed" : "failed");
76
52
  const time = (result.durationMs / 1000).toFixed(3);
77
53
  lines.push(` <testcase name="${escapeXml(result.id)}" classname="${escapeXml(suiteName)}" time="${time}">`);
78
54
  if (verdict === "skipped") {
79
- lines.push(` <skipped message="${escapeXml((_b = result.skipReason) !== null && _b !== void 0 ? _b : "skipped")}"/>`);
55
+ lines.push(` <skipped message="${escapeXml(result.skipReason ?? "skipped")}"/>`);
80
56
  }
81
57
  else if (verdict === "failed" || (verdict === "scored" && summary.strict)) {
82
58
  const failures = result.assertions.filter(a => !a.passed);
83
- const message = (_d = (_c = result.error) !== null && _c !== void 0 ? _c : failures
84
- .map(a => `${a.name}${a.detail === undefined ? "" : ` (${a.detail})`}`)
85
- .join("; ")) !== null && _d !== void 0 ? _d : verdict;
59
+ const message = result.error ??
60
+ failures
61
+ .map(a => `${a.name}${a.detail === undefined ? "" : ` (${a.detail})`}`)
62
+ .join("; ") ??
63
+ verdict;
86
64
  lines.push(` <failure message="${escapeXml(message === "" ? verdict : message)}" type="${escapeXml(verdict)}"/>`);
87
65
  }
88
66
  const systemOut = renderSystemOut(result);
@@ -154,34 +132,32 @@ export function Artifacts(options) {
154
132
  let target;
155
133
  let discovered = [];
156
134
  return {
157
- onRunStart(evals, runTarget) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- discovered = evals;
160
- target = runTarget;
161
- yield mkdir(join(root, "evals"), { recursive: true });
162
- });
135
+ async onRunStart(evals, runTarget) {
136
+ discovered = evals;
137
+ target = runTarget;
138
+ await mkdir(join(root, "evals"), { recursive: true });
163
139
  },
164
- onEvalComplete(result) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- var _a;
167
- lines.push(JSON.stringify({
168
- id: result.id,
169
- verdict: (_a = result.verdict) !== null && _a !== void 0 ? _a : (result.ok ? "passed" : "failed"),
170
- ok: result.ok,
171
- durationMs: result.durationMs,
172
- }));
173
- const file = join(root, "evals", `${sanitizeCaseId(result.id)}.json`);
174
- yield mkdir(dirname(file), { recursive: true });
175
- yield writeFile(file, `${JSON.stringify(result, null, 2)}\n`, "utf8");
176
- yield writeFile(jsonlPath, `${lines.join("\n")}\n`, "utf8");
177
- });
140
+ async onEvalComplete(result) {
141
+ lines.push(JSON.stringify({
142
+ id: result.id,
143
+ verdict: result.verdict ?? (result.ok ? "passed" : "failed"),
144
+ ok: result.ok,
145
+ durationMs: result.durationMs,
146
+ }));
147
+ const file = join(root, "evals", `${sanitizeCaseId(result.id)}.json`);
148
+ await mkdir(dirname(file), { recursive: true });
149
+ await writeFile(file, `${JSON.stringify(result, null, 2)}\n`, "utf8");
150
+ await writeFile(jsonlPath, `${lines.join("\n")}\n`, "utf8");
178
151
  },
179
- onRunComplete(summary) {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- yield mkdir(root, { recursive: true });
182
- const { results } = summary, totals = __rest(summary, ["results"]);
183
- yield writeFile(join(root, "summary.json"), `${JSON.stringify(Object.assign(Object.assign({}, totals), { caseCount: results.length, target, discovered: discovered.map(e => e.id) }), null, 2)}\n`, "utf8");
184
- });
152
+ async onRunComplete(summary) {
153
+ await mkdir(root, { recursive: true });
154
+ const { results, ...totals } = summary;
155
+ await writeFile(join(root, "summary.json"), `${JSON.stringify({
156
+ ...totals,
157
+ caseCount: results.length,
158
+ target,
159
+ discovered: discovered.map(e => e.id),
160
+ }, null, 2)}\n`, "utf8");
185
161
  },
186
162
  };
187
163
  }
@@ -201,20 +177,20 @@ export function sanitizeCaseId(id) {
201
177
  }
202
178
  /** Fan one lifecycle call out to several reporters, isolating failures. */
203
179
  export function combineReporters(reporters, onError) {
204
- const forEach = (run) => __awaiter(this, void 0, void 0, function* () {
180
+ const forEach = async (run) => {
205
181
  for (const reporter of reporters) {
206
182
  try {
207
- yield run(reporter);
183
+ await run(reporter);
208
184
  }
209
185
  catch (error) {
210
186
  // A broken destination must not fail the eval run itself.
211
- onError === null || onError === void 0 ? void 0 : onError(error);
187
+ onError?.(error);
212
188
  }
213
189
  }
214
- });
190
+ };
215
191
  return {
216
- onRunStart: (evals, target) => forEach(r => { var _a; return (_a = r.onRunStart) === null || _a === void 0 ? void 0 : _a.call(r, evals, target); }),
217
- onEvalComplete: result => forEach(r => { var _a; return (_a = r.onEvalComplete) === null || _a === void 0 ? void 0 : _a.call(r, result); }),
218
- onRunComplete: summary => forEach(r => { var _a; return (_a = r.onRunComplete) === null || _a === void 0 ? void 0 : _a.call(r, summary); }),
192
+ onRunStart: (evals, target) => forEach(r => r.onRunStart?.(evals, target)),
193
+ onEvalComplete: result => forEach(r => r.onEvalComplete?.(result)),
194
+ onRunComplete: summary => forEach(r => r.onRunComplete?.(summary)),
219
195
  };
220
196
  }
@@ -7,7 +7,7 @@
7
7
  */
8
8
  /** Tally verdicts for {@link EvalRunSummary}. */
9
9
  export function summarizeEvalResults(results, options) {
10
- const verdictOf = (result) => { var _a; return (_a = result.verdict) !== null && _a !== void 0 ? _a : (result.ok ? "passed" : "failed"); };
10
+ const verdictOf = (result) => result.verdict ?? (result.ok ? "passed" : "failed");
11
11
  const counts = { passed: 0, failed: 0, scored: 0, skipped: 0 };
12
12
  for (const result of results) {
13
13
  counts[verdictOf(result)]++;
@@ -14,7 +14,6 @@
14
14
  * against transports that drop the request event.
15
15
  */
16
16
  export function deriveRunFacts(events) {
17
- var _a, _b, _c, _d;
18
17
  const toolCalls = [];
19
18
  const byCallId = new Map();
20
19
  const subagents = [];
@@ -50,7 +49,7 @@ export function deriveRunFacts(events) {
50
49
  switch (event.type) {
51
50
  case "actions.requested": {
52
51
  for (const call of event.data.calls) {
53
- const fact = ensureCall(call.callId, call.toolName, event.turnId, (_a = call.parentCallId) !== null && _a !== void 0 ? _a : event.data.parentCallId);
52
+ const fact = ensureCall(call.callId, call.toolName, event.turnId, call.parentCallId ?? event.data.parentCallId);
54
53
  fact.input = call.args;
55
54
  }
56
55
  break;
@@ -137,8 +136,8 @@ export function deriveRunFacts(events) {
137
136
  subagentsByCallId.set(event.data.callId, fact);
138
137
  }
139
138
  else {
140
- existing.name = (_b = event.data.name) !== null && _b !== void 0 ? _b : existing.name;
141
- existing.description = (_c = event.data.description) !== null && _c !== void 0 ? _c : existing.description;
139
+ existing.name = event.data.name ?? existing.name;
140
+ existing.description = event.data.description ?? existing.description;
142
141
  }
143
142
  break;
144
143
  }
@@ -157,7 +156,7 @@ export function deriveRunFacts(events) {
157
156
  }
158
157
  else {
159
158
  fact.status = "completed";
160
- fact.name = (_d = fact.name) !== null && _d !== void 0 ? _d : event.data.name;
159
+ fact.name = fact.name ?? event.data.name;
161
160
  }
162
161
  break;
163
162
  }
@@ -186,7 +185,7 @@ export function deriveRunFacts(events) {
186
185
  // leave `turnsFailed` at 0 and read as a healthy run.
187
186
  sessionFailed = true;
188
187
  }
189
- failureMessage = failureMessage !== null && failureMessage !== void 0 ? failureMessage : event.data.message;
188
+ failureMessage = failureMessage ?? event.data.message;
190
189
  break;
191
190
  }
192
191
  default:
package/dist/evals.js CHANGED
@@ -134,24 +134,22 @@ function validateDatapointId(id) {
134
134
  * expand to `<fileId>/1` … `<fileId>/<n>`).
135
135
  */
136
136
  export function expandEvalDefinition(fileId, definition) {
137
- var _a;
138
137
  if (definition.cases !== undefined) {
139
138
  return definition.cases.flatMap(datapoint => {
140
- var _a, _b, _c, _d, _e, _f;
141
- const description = (_a = datapoint.description) !== null && _a !== void 0 ? _a : definition.description;
142
- const timeoutMs = (_b = datapoint.timeoutMs) !== null && _b !== void 0 ? _b : definition.timeoutMs;
143
- const iterations = normalizeEvalIterations((_d = (_c = datapoint.iterations) !== null && _c !== void 0 ? _c : definition.iterations) !== null && _d !== void 0 ? _d : 1);
139
+ const description = datapoint.description ?? definition.description;
140
+ const timeoutMs = datapoint.timeoutMs ?? definition.timeoutMs;
141
+ const iterations = normalizeEvalIterations(datapoint.iterations ?? definition.iterations ?? 1);
144
142
  const metadata = datapoint.metadata === undefined && definition.metadata === undefined
145
143
  ? undefined
146
- : Object.assign(Object.assign({}, definition.metadata), datapoint.metadata);
144
+ : { ...definition.metadata, ...datapoint.metadata };
147
145
  return expandIterations({
148
146
  baseId: `${fileId}/${datapoint.id}`,
149
147
  description,
150
- tags: (_e = datapoint.tags) !== null && _e !== void 0 ? _e : definition.tags,
148
+ tags: datapoint.tags ?? definition.tags,
151
149
  timeoutMs,
152
150
  iterations,
153
151
  metadata,
154
- judge: (_f = datapoint.judge) !== null && _f !== void 0 ? _f : definition.judge,
152
+ judge: datapoint.judge ?? definition.judge,
155
153
  reporters: mergeReporters(definition.reporters, datapoint.reporters),
156
154
  test: datapoint.test,
157
155
  });
@@ -160,7 +158,7 @@ export function expandEvalDefinition(fileId, definition) {
160
158
  if (typeof definition.test !== "function") {
161
159
  throw new Error(`defineEval(${fileId}): missing test(t)`);
162
160
  }
163
- const iterations = normalizeEvalIterations((_a = definition.iterations) !== null && _a !== void 0 ? _a : 1);
161
+ const iterations = normalizeEvalIterations(definition.iterations ?? 1);
164
162
  return expandIterations({
165
163
  baseId: fileId,
166
164
  description: definition.description,
@@ -192,7 +190,17 @@ function expandIterations(args) {
192
190
  : `${args.description} (iteration ${iteration}/${args.iterations})`;
193
191
  out.push({
194
192
  id,
195
- definition: brandDefinition("eval", Object.assign(Object.assign(Object.assign(Object.assign({}, (description !== undefined ? { description } : {})), (args.tags !== undefined ? { tags: args.tags } : {})), (args.timeoutMs !== undefined ? { timeoutMs: args.timeoutMs } : {})), { metadata: args.metadata, judge: args.judge, reporters: args.reporters, iterations: args.iterations, iteration, test: args.test })),
193
+ definition: brandDefinition("eval", {
194
+ ...(description !== undefined ? { description } : {}),
195
+ ...(args.tags !== undefined ? { tags: args.tags } : {}),
196
+ ...(args.timeoutMs !== undefined ? { timeoutMs: args.timeoutMs } : {}),
197
+ metadata: args.metadata,
198
+ judge: args.judge,
199
+ reporters: args.reporters,
200
+ iterations: args.iterations,
201
+ iteration,
202
+ test: args.test,
203
+ }),
196
204
  });
197
205
  }
198
206
  return out;
@@ -215,8 +223,7 @@ export function matchesEvalIdFilter(caseId, filter) {
215
223
  export const EVAL_SUMMARY_TAG = "summary";
216
224
  /** True when `tags` marks a suite-aggregator case. */
217
225
  export function isEvalSummaryCase(tags) {
218
- var _a;
219
- return (_a = tags === null || tags === void 0 ? void 0 : tags.includes(EVAL_SUMMARY_TAG)) !== null && _a !== void 0 ? _a : false;
226
+ return tags?.includes(EVAL_SUMMARY_TAG) ?? false;
220
227
  }
221
228
  /**
222
229
  * If `selected` includes any summary-tagged suite aggregator, pull in every
@@ -255,8 +262,13 @@ export const EVAL_MAX_PLAYGROUND_RUNS = 500;
255
262
  * table in `agent/storage.ts` (`defineStorage`) to survive serve restart.
256
263
  */
257
264
  export function defineEvalConfig(config) {
258
- var _a;
259
- return Object.assign(Object.assign({}, (config.timeoutMs === undefined ? {} : { timeoutMs: config.timeoutMs })), { maxConcurrency: normalizeEvalMaxConcurrency(config.maxConcurrency), maxPlaygroundRuns: normalizeEvalMaxPlaygroundRuns((_a = config.maxPlaygroundRuns) !== null && _a !== void 0 ? _a : EVAL_DEFAULT_MAX_PLAYGROUND_RUNS), judge: config.judge, reporters: config.reporters });
265
+ return {
266
+ ...(config.timeoutMs === undefined ? {} : { timeoutMs: config.timeoutMs }),
267
+ maxConcurrency: normalizeEvalMaxConcurrency(config.maxConcurrency),
268
+ maxPlaygroundRuns: normalizeEvalMaxPlaygroundRuns(config.maxPlaygroundRuns ?? EVAL_DEFAULT_MAX_PLAYGROUND_RUNS),
269
+ judge: config.judge,
270
+ reporters: config.reporters,
271
+ };
260
272
  }
261
273
  /**
262
274
  * Validate and enforce the hard concurrency ceiling.
@@ -286,7 +298,7 @@ export function resolveEvalMaxPlaygroundRuns(value) {
286
298
  try {
287
299
  return normalizeEvalMaxPlaygroundRuns(value);
288
300
  }
289
- catch (_a) {
301
+ catch {
290
302
  return EVAL_DEFAULT_MAX_PLAYGROUND_RUNS;
291
303
  }
292
304
  }
@@ -66,7 +66,10 @@ const config = z
66
66
  watchStops: z.boolean().default(true),
67
67
  })
68
68
  .default({})
69
- .transform(options => { var _a; return (Object.assign(Object.assign({}, options), { needsApproval: (_a = options.needsApproval) !== null && _a !== void 0 ? _a : options.cloud.repos === undefined })); });
69
+ .transform(options => ({
70
+ ...options,
71
+ needsApproval: options.needsApproval ?? options.cloud.repos === undefined,
72
+ }));
70
73
  const cursorCloudAgents = defineExtension({
71
74
  root: import.meta.dirname,
72
75
  description: "Launch, steer, and monitor Cursor cloud agents.",