@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
@@ -0,0 +1,47 @@
1
+ import { isSecretRef } from "../types.js";
2
+ /**
3
+ * The omitted-`webhookSecret` fallback: a {@link SecretRef} naming `envName`,
4
+ * present only while that env var is non-empty at channel construction.
5
+ * Named rather than read so the fallback keeps the same route policy (and
6
+ * the same control-plane catch declaration) as an authored
7
+ * `{ secretName: envName }`.
8
+ */
9
+ export function envSecretRef(envName) {
10
+ const value = process.env[envName]?.trim();
11
+ return value === undefined || value === "" ? undefined : { secretName: envName };
12
+ }
13
+ /**
14
+ * The secret's value for the handler's own check. A named secret resolves
15
+ * from the environment: locally the shell's, hosted the bound deployment
16
+ * secrets. Empty and whitespace-only values count as unset.
17
+ */
18
+ export function resolveWebhookSecretValue(value) {
19
+ if (value === undefined) {
20
+ return undefined;
21
+ }
22
+ const resolved = typeof value === "function"
23
+ ? value()
24
+ : isSecretRef(value)
25
+ ? process.env[value.secretName]
26
+ : value;
27
+ const trimmed = resolved?.trim();
28
+ return trimmed === undefined || trimmed === "" ? undefined : trimmed;
29
+ }
30
+ /**
31
+ * Why an SCM channel cannot deploy onto architecture v2 as authored, or
32
+ * `undefined` when it can. v2 terminates the provider's webhook check on
33
+ * the control plane, which can only do that for a secret it can name: a
34
+ * literal or getter value never reaches the manifest, so the check would
35
+ * run inside the guest only — after compute was spent and after the SCM
36
+ * already got its 202. Omitting the field (the env fallback) is allowed.
37
+ */
38
+ export function namedWebhookSecretArchitectureError(args) {
39
+ if (args.webhookSecret === undefined || isSecretRef(args.webhookSecret)) {
40
+ return undefined;
41
+ }
42
+ const authored = typeof args.webhookSecret === "function" ? "a function" : "a literal value";
43
+ return (`${args.option} is ${authored}; architecture "v2" requires a named secret: ` +
44
+ `{ secretName: "${args.envName}" }. The control plane verifies ${args.verifies} with ` +
45
+ `the deployment secret of that name before any compute starts; a literal or function value is ` +
46
+ `only checkable inside the guest. Set the value with \`secrets set <slug> ${args.envName}\`.`);
47
+ }
@@ -4,12 +4,11 @@
4
4
  import { spawn } from "node:child_process";
5
5
  import { join } from "node:path";
6
6
  export function openBrowser(url) {
7
- var _a;
8
7
  const command = process.platform === "darwin"
9
8
  ? { cmd: "open", args: [url] }
10
9
  : process.platform === "win32"
11
10
  ? {
12
- cmd: join((_a = process.env.SYSTEMROOT) !== null && _a !== void 0 ? _a : "C:\\Windows", "System32", "WindowsPowerShell", "v1.0", "powershell.exe"),
11
+ cmd: join(process.env.SYSTEMROOT ?? "C:\\Windows", "System32", "WindowsPowerShell", "v1.0", "powershell.exe"),
13
12
  args: [
14
13
  "-NoProfile",
15
14
  "-NonInteractive",
@@ -28,7 +27,7 @@ export function openBrowser(url) {
28
27
  child.on("error", () => { });
29
28
  child.unref();
30
29
  }
31
- catch (_b) {
30
+ catch {
32
31
  // Printed URL is the fallback.
33
32
  }
34
33
  }
@@ -10,7 +10,7 @@ import { context, ROOT_CONTEXT, SpanKind, SpanStatusCode, trace, } from "@opente
10
10
  import { SeverityNumber } from "@opentelemetry/api-logs";
11
11
  import { classifyExpectedDeliveryFailure } from "../expected-delivery-failure.js";
12
12
  import { attrs } from "./attrs.js";
13
- const CONTENT_MAX = 2048;
13
+ const CONTENT_MAX = 2_048;
14
14
  export function createOtelCollector(runtime, agentName, log) {
15
15
  const sessions = new Map();
16
16
  const extraBySession = new Map();
@@ -37,15 +37,14 @@ export function createOtelCollector(runtime, agentName, log) {
37
37
  extraBySession.clear();
38
38
  },
39
39
  setSessionAttributes(sessionId, attributes) {
40
- var _a;
41
- const bag = (_a = extraBySession.get(sessionId)) !== null && _a !== void 0 ? _a : {};
40
+ const bag = extraBySession.get(sessionId) ?? {};
42
41
  Object.assign(bag, attributes);
43
42
  extraBySession.set(sessionId, bag);
44
43
  paintOpenSpans(sessionId, attributes);
45
44
  },
46
45
  getSessionAttributes(sessionId) {
47
46
  const bag = extraBySession.get(sessionId);
48
- return bag === undefined ? undefined : Object.assign({}, bag);
47
+ return bag === undefined ? undefined : { ...bag };
49
48
  },
50
49
  runInTurn(args, fn) {
51
50
  const span = ensureTurnSpan(args);
@@ -57,8 +56,6 @@ export function createOtelCollector(runtime, agentName, log) {
57
56
  },
58
57
  };
59
58
  function handle(event, session) {
60
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
61
- var _q, _r, _s, _t;
62
59
  const at = Date.parse(event.at);
63
60
  const startTime = Number.isFinite(at) ? at : undefined;
64
61
  switch (event.type) {
@@ -67,7 +64,7 @@ export function createOtelCollector(runtime, agentName, log) {
67
64
  return;
68
65
  }
69
66
  sessionState(event.sessionId);
70
- metrics === null || metrics === void 0 ? void 0 : metrics.sessions.add(1, join(event.sessionId, {
67
+ metrics?.sessions.add(1, join(event.sessionId, {
71
68
  "agent_sdk.agent": agentName,
72
69
  "agent_sdk.channel": event.data.channelId,
73
70
  }));
@@ -76,19 +73,22 @@ export function createOtelCollector(runtime, agentName, log) {
76
73
  case "agent.bound": {
77
74
  const painted = attrs({
78
75
  "agent_sdk.sdk_agent_id": event.data.sdkAgentId,
79
- "agent_sdk.sdk_agent_url": (logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) === true ? event.data.url : undefined,
76
+ "agent_sdk.sdk_agent_url": logOpts?.toolContent === true ? event.data.url : undefined,
80
77
  });
81
78
  if (Object.keys(painted).length === 0) {
82
79
  return;
83
80
  }
84
- const bag = (_q = extraBySession.get(event.sessionId)) !== null && _q !== void 0 ? _q : {};
81
+ const bag = extraBySession.get(event.sessionId) ?? {};
85
82
  Object.assign(bag, painted);
86
83
  extraBySession.set(event.sessionId, bag);
87
84
  paintOpenSpans(event.sessionId, painted);
88
85
  return;
89
86
  }
90
87
  case "message.received": {
91
- emitLog("message.received", SeverityNumber.INFO, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "agent_sdk.user_prompt": (logOpts === null || logOpts === void 0 ? void 0 : logOpts.userPrompts) === true ? truncate(event.data.text) : undefined })));
88
+ emitLog("message.received", SeverityNumber.INFO, attrs({
89
+ ...baseLog(event, session),
90
+ "agent_sdk.user_prompt": logOpts?.userPrompts === true ? truncate(event.data.text) : undefined,
91
+ }));
92
92
  return;
93
93
  }
94
94
  case "turn.started": {
@@ -117,21 +117,21 @@ export function createOtelCollector(runtime, agentName, log) {
117
117
  }
118
118
  case "step.started":
119
119
  case "step.completed": {
120
- (_a = ensureTurn(event, session, startTime)) === null || _a === void 0 ? void 0 : _a.span.addEvent(event.type, attrs({
120
+ ensureTurn(event, session, startTime)?.span.addEvent(event.type, attrs({
121
121
  "agent_sdk.step_id": event.data.stepId,
122
122
  "agent_sdk.duration_ms": event.type === "step.completed" ? event.data.durationMs : undefined,
123
123
  }), startTime);
124
124
  return;
125
125
  }
126
126
  case "reasoning.completed": {
127
- (_b = ensureTurn(event, session, startTime)) === null || _b === void 0 ? void 0 : _b.span.addEvent("reasoning.completed", attrs({
127
+ ensureTurn(event, session, startTime)?.span.addEvent("reasoning.completed", attrs({
128
128
  "agent_sdk.duration_ms": event.data.durationMs,
129
129
  "agent_sdk.parent_call_id": event.data.parentCallId,
130
130
  }), startTime);
131
131
  return;
132
132
  }
133
133
  case "message.completed": {
134
- (_c = ensureTurn(event, session, startTime)) === null || _c === void 0 ? void 0 : _c.span.addEvent("message.completed", attrs({
134
+ ensureTurn(event, session, startTime)?.span.addEvent("message.completed", attrs({
135
135
  "agent_sdk.finish_reason": event.data.finishReason,
136
136
  "agent_sdk.parent_call_id": event.data.parentCallId,
137
137
  }), startTime);
@@ -148,31 +148,48 @@ export function createOtelCollector(runtime, agentName, log) {
148
148
  sessionId: event.sessionId,
149
149
  turnId: event.turnId,
150
150
  call,
151
- parentCallId: (_r = event.data.parentCallId) !== null && _r !== void 0 ? _r : call.parentCallId,
151
+ parentCallId: event.data.parentCallId ?? call.parentCallId,
152
152
  startTime,
153
153
  });
154
154
  }
155
155
  return;
156
156
  }
157
157
  case "action.approval_requested": {
158
- (_e = (_d = ensureTurn(event, session, startTime)) === null || _d === void 0 ? void 0 : _d.tools.get(event.data.callId)) === null || _e === void 0 ? void 0 : _e.addEvent("approval_requested", undefined, startTime);
159
- emitLog("action.approval_requested", SeverityNumber.INFO, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "cursor.tool.name": event.data.toolName, "agent_sdk.call_id": event.data.callId })));
158
+ ensureTurn(event, session, startTime)
159
+ ?.tools.get(event.data.callId)
160
+ ?.addEvent("approval_requested", undefined, startTime);
161
+ emitLog("action.approval_requested", SeverityNumber.INFO, attrs({
162
+ ...baseLog(event, session),
163
+ "cursor.tool.name": event.data.toolName,
164
+ "agent_sdk.call_id": event.data.callId,
165
+ }));
160
166
  return;
161
167
  }
162
168
  case "action.approval_resolved": {
163
- (_g = (_f = ensureTurn(event, session, startTime)) === null || _f === void 0 ? void 0 : _f.tools.get(event.data.callId)) === null || _g === void 0 ? void 0 : _g.addEvent("approval_resolved", attrs({
169
+ ensureTurn(event, session, startTime)
170
+ ?.tools.get(event.data.callId)
171
+ ?.addEvent("approval_resolved", attrs({
164
172
  "agent_sdk.decision": event.data.decision,
165
173
  "agent_sdk.decision_by": event.data.by,
166
174
  }), startTime);
167
175
  return;
168
176
  }
169
177
  case "action.auth_requested": {
170
- (_j = (_h = ensureTurn(event, session, startTime)) === null || _h === void 0 ? void 0 : _h.tools.get(event.data.callId)) === null || _j === void 0 ? void 0 : _j.addEvent("auth_requested", undefined, startTime);
171
- emitLog("action.auth_requested", SeverityNumber.INFO, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "cursor.tool.name": event.data.toolName, "agent_sdk.call_id": event.data.callId, "agent_sdk.mcp_connection": event.data.connection })));
178
+ ensureTurn(event, session, startTime)
179
+ ?.tools.get(event.data.callId)
180
+ ?.addEvent("auth_requested", undefined, startTime);
181
+ emitLog("action.auth_requested", SeverityNumber.INFO, attrs({
182
+ ...baseLog(event, session),
183
+ "cursor.tool.name": event.data.toolName,
184
+ "agent_sdk.call_id": event.data.callId,
185
+ "agent_sdk.mcp_connection": event.data.connection,
186
+ }));
172
187
  return;
173
188
  }
174
189
  case "action.auth_resolved": {
175
- (_l = (_k = ensureTurn(event, session, startTime)) === null || _k === void 0 ? void 0 : _k.tools.get(event.data.callId)) === null || _l === void 0 ? void 0 : _l.addEvent("auth_resolved", attrs({
190
+ ensureTurn(event, session, startTime)
191
+ ?.tools.get(event.data.callId)
192
+ ?.addEvent("auth_resolved", attrs({
176
193
  "agent_sdk.decision": event.data.decision,
177
194
  "agent_sdk.decision_by": event.data.by,
178
195
  "agent_sdk.mcp_connection": event.data.connection,
@@ -181,11 +198,11 @@ export function createOtelCollector(runtime, agentName, log) {
181
198
  }
182
199
  case "action.result": {
183
200
  const turn = ensureTurn(event, session, startTime);
184
- const span = turn === null || turn === void 0 ? void 0 : turn.tools.get(event.data.callId);
201
+ const span = turn?.tools.get(event.data.callId);
185
202
  const status = event.data.isError ? "failure" : "success";
186
203
  if (span !== undefined) {
187
204
  span.setAttribute("cursor.tool.status", status);
188
- if ((logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) === true && event.data.output !== undefined) {
205
+ if (logOpts?.toolContent === true && event.data.output !== undefined) {
189
206
  span.setAttribute("agent_sdk.tool_output", truncate(json(event.data.output)));
190
207
  }
191
208
  if (event.data.isError) {
@@ -195,15 +212,20 @@ export function createOtelCollector(runtime, agentName, log) {
195
212
  });
196
213
  }
197
214
  span.end(startTime);
198
- turn === null || turn === void 0 ? void 0 : turn.tools.delete(event.data.callId);
215
+ turn?.tools.delete(event.data.callId);
199
216
  }
200
- metrics === null || metrics === void 0 ? void 0 : metrics.toolCalls.add(1, join(event.sessionId, {
217
+ metrics?.toolCalls.add(1, join(event.sessionId, {
201
218
  "cursor.tool.name": event.data.toolName,
202
219
  "cursor.tool.kind": "builtin",
203
220
  "cursor.tool.status": status,
204
221
  "agent_sdk.agent": agentName,
205
222
  }));
206
- emitLog("action.result", event.data.isError ? SeverityNumber.ERROR : SeverityNumber.INFO, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "cursor.tool.name": event.data.toolName, "cursor.tool.status": status, "agent_sdk.call_id": event.data.callId })));
223
+ emitLog("action.result", event.data.isError ? SeverityNumber.ERROR : SeverityNumber.INFO, attrs({
224
+ ...baseLog(event, session),
225
+ "cursor.tool.name": event.data.toolName,
226
+ "cursor.tool.status": status,
227
+ "agent_sdk.call_id": event.data.callId,
228
+ }));
207
229
  // Direct callTool never emits turn.completed — close when idle.
208
230
  if (turn !== undefined &&
209
231
  turn.synthetic &&
@@ -212,7 +234,7 @@ export function createOtelCollector(runtime, agentName, log) {
212
234
  event.turnId !== undefined) {
213
235
  turn.span.setStatus({ code: SpanStatusCode.OK });
214
236
  turn.span.end(startTime);
215
- (_m = sessions.get(event.sessionId)) === null || _m === void 0 ? void 0 : _m.turns.delete(event.turnId);
237
+ sessions.get(event.sessionId)?.turns.delete(event.turnId);
216
238
  }
217
239
  return;
218
240
  }
@@ -230,24 +252,24 @@ export function createOtelCollector(runtime, agentName, log) {
230
252
  "agent_sdk.turn_id": event.turnId,
231
253
  "agent_sdk.call_id": event.data.callId,
232
254
  "agent_sdk.subagent_name": event.data.name,
233
- "agent_sdk.subagent_description": (logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) === true && event.data.description !== undefined
255
+ "agent_sdk.subagent_description": logOpts?.toolContent === true && event.data.description !== undefined
234
256
  ? truncate(event.data.description)
235
257
  : undefined,
236
258
  }),
237
259
  }, trace.setSpan(context.active(), turn.span));
238
260
  turn.subagents.set(event.data.callId, span);
239
- metrics === null || metrics === void 0 ? void 0 : metrics.subagents.add(1, join(event.sessionId, {
261
+ metrics?.subagents.add(1, join(event.sessionId, {
240
262
  "agent_sdk.agent": agentName,
241
- "agent_sdk.subagent_name": (_s = event.data.name) !== null && _s !== void 0 ? _s : "unknown",
263
+ "agent_sdk.subagent_name": event.data.name ?? "unknown",
242
264
  }));
243
265
  return;
244
266
  }
245
267
  case "subagent.completed": {
246
268
  const turn = ensureTurn(event, session, startTime);
247
- const span = turn === null || turn === void 0 ? void 0 : turn.subagents.get(event.data.callId);
269
+ const span = turn?.subagents.get(event.data.callId);
248
270
  if (span !== undefined) {
249
271
  span.end(startTime);
250
- turn === null || turn === void 0 ? void 0 : turn.subagents.delete(event.data.callId);
272
+ turn?.subagents.delete(event.data.callId);
251
273
  }
252
274
  return;
253
275
  }
@@ -291,19 +313,25 @@ export function createOtelCollector(runtime, agentName, log) {
291
313
  "agent_sdk.cost_usd": cost.totalUsd,
292
314
  "agent_sdk.cost_source": cost.source,
293
315
  }));
294
- metrics === null || metrics === void 0 ? void 0 : metrics.cost.add(cost.totalUsd, join(event.sessionId, {
316
+ metrics?.cost.add(cost.totalUsd, join(event.sessionId, {
295
317
  "cursor.model.name": cost.model,
296
318
  "agent_sdk.agent": agentName,
297
319
  }));
298
320
  }
299
321
  turn.span.setStatus({ code: SpanStatusCode.OK });
300
322
  turn.span.end(startTime);
301
- (_o = sessions.get(event.sessionId)) === null || _o === void 0 ? void 0 : _o.turns.delete(event.turnId);
302
- metrics === null || metrics === void 0 ? void 0 : metrics.turns.add(1, join(event.sessionId, {
323
+ sessions.get(event.sessionId)?.turns.delete(event.turnId);
324
+ metrics?.turns.add(1, join(event.sessionId, {
303
325
  "agent_sdk.agent": agentName,
304
326
  "agent_sdk.turn_status": "completed",
305
327
  }));
306
- emitLog("turn.completed", SeverityNumber.INFO, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "agent_sdk.usage.input_tokens": usage === null || usage === void 0 ? void 0 : usage.inputTokens, "agent_sdk.usage.output_tokens": usage === null || usage === void 0 ? void 0 : usage.outputTokens, "agent_sdk.cost_usd": cost === null || cost === void 0 ? void 0 : cost.totalUsd, "cursor.model.name": cost === null || cost === void 0 ? void 0 : cost.model })));
328
+ emitLog("turn.completed", SeverityNumber.INFO, attrs({
329
+ ...baseLog(event, session),
330
+ "agent_sdk.usage.input_tokens": usage?.inputTokens,
331
+ "agent_sdk.usage.output_tokens": usage?.outputTokens,
332
+ "agent_sdk.cost_usd": cost?.totalUsd,
333
+ "cursor.model.name": cost?.model,
334
+ }));
307
335
  return;
308
336
  }
309
337
  case "turn.failed": {
@@ -326,19 +354,23 @@ export function createOtelCollector(runtime, agentName, log) {
326
354
  else {
327
355
  turn.span.setStatus({
328
356
  code: SpanStatusCode.ERROR,
329
- message: failureText !== null && failureText !== void 0 ? failureText : "turn failed",
357
+ message: failureText ?? "turn failed",
330
358
  });
331
359
  if (failureText !== undefined) {
332
360
  turn.span.recordException(new Error(failureText));
333
361
  }
334
362
  }
335
363
  turn.span.end(startTime);
336
- (_p = sessions.get(event.sessionId)) === null || _p === void 0 ? void 0 : _p.turns.delete(event.turnId);
337
- metrics === null || metrics === void 0 ? void 0 : metrics.turns.add(1, join(event.sessionId, {
364
+ sessions.get(event.sessionId)?.turns.delete(event.turnId);
365
+ metrics?.turns.add(1, join(event.sessionId, {
338
366
  "agent_sdk.agent": agentName,
339
- "agent_sdk.turn_status": expected !== null && expected !== void 0 ? expected : "failed",
367
+ "agent_sdk.turn_status": expected ?? "failed",
368
+ }));
369
+ emitLog("turn.failed", expected === undefined ? SeverityNumber.ERROR : SeverityNumber.WARN, attrs({
370
+ ...baseLog(event, session),
371
+ "agent_sdk.error_message": failureText,
372
+ "agent_sdk.expected_error": expected,
340
373
  }));
341
- emitLog("turn.failed", expected === undefined ? SeverityNumber.ERROR : SeverityNumber.WARN, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "agent_sdk.error_message": failureText, "agent_sdk.expected_error": expected })));
342
374
  return;
343
375
  }
344
376
  case "session.completed": {
@@ -355,17 +387,21 @@ export function createOtelCollector(runtime, agentName, log) {
355
387
  const failureText = gatedContent(event.data.message);
356
388
  if (expected !== undefined) {
357
389
  const state = sessions.get(event.sessionId);
358
- for (const turn of (_t = state === null || state === void 0 ? void 0 : state.turns.values()) !== null && _t !== void 0 ? _t : []) {
390
+ for (const turn of state?.turns.values() ?? []) {
359
391
  turn.span.setAttribute("agent_sdk.expected_error", expected);
360
392
  }
361
393
  }
362
394
  endSession({
363
395
  sessionId: event.sessionId,
364
396
  code: expected === undefined ? SpanStatusCode.ERROR : SpanStatusCode.OK,
365
- message: expected === undefined ? (failureText !== null && failureText !== void 0 ? failureText : "session failed") : undefined,
397
+ message: expected === undefined ? (failureText ?? "session failed") : undefined,
366
398
  endTime: startTime,
367
399
  });
368
- emitLog("session.failed", expected === undefined ? SeverityNumber.ERROR : SeverityNumber.WARN, attrs(Object.assign(Object.assign({}, baseLog(event, session)), { "agent_sdk.error_message": failureText, "agent_sdk.expected_error": expected })));
400
+ emitLog("session.failed", expected === undefined ? SeverityNumber.ERROR : SeverityNumber.WARN, attrs({
401
+ ...baseLog(event, session),
402
+ "agent_sdk.error_message": failureText,
403
+ "agent_sdk.expected_error": expected,
404
+ }));
369
405
  return;
370
406
  }
371
407
  default:
@@ -404,7 +440,6 @@ export function createOtelCollector(runtime, agentName, log) {
404
440
  });
405
441
  }
406
442
  function openTurn(args) {
407
- var _a;
408
443
  const span = runtime.tracer.startSpan("agent_sdk.turn", {
409
444
  kind: SpanKind.INTERNAL,
410
445
  startTime: args.startTime,
@@ -414,7 +449,7 @@ export function createOtelCollector(runtime, agentName, log) {
414
449
  "agent_sdk.turn_id": args.turnId,
415
450
  "agent_sdk.channel": args.session.channelId,
416
451
  "agent_sdk.session_mode": args.session.mode,
417
- "agent_sdk.session_purpose": (_a = args.session.purpose) !== null && _a !== void 0 ? _a : "live",
452
+ "agent_sdk.session_purpose": args.session.purpose ?? "live",
418
453
  "agent_sdk.turn_synthetic": args.synthetic ? true : undefined,
419
454
  }),
420
455
  }, ROOT_CONTEXT);
@@ -437,7 +472,6 @@ export function createOtelCollector(runtime, agentName, log) {
437
472
  return trace.setSpan(context.active(), turn.span);
438
473
  }
439
474
  function openToolSpan(args) {
440
- var _a, _b;
441
475
  const existing = args.turn.tools.get(args.call.callId);
442
476
  if (existing !== undefined) {
443
477
  // Early `runInCall` opens with callId/toolName only. Fill in
@@ -445,8 +479,8 @@ export function createOtelCollector(runtime, agentName, log) {
445
479
  // The OTel parent is fixed at start; `parent_call_id` still records
446
480
  // the event-stream hierarchy for nested/subagent calls.
447
481
  existing.setAttributes(join(args.sessionId, {
448
- "agent_sdk.parent_call_id": (_a = args.parentCallId) !== null && _a !== void 0 ? _a : args.call.parentCallId,
449
- "agent_sdk.tool_args": (logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) === true && args.call.args !== undefined
482
+ "agent_sdk.parent_call_id": args.parentCallId ?? args.call.parentCallId,
483
+ "agent_sdk.tool_args": logOpts?.toolContent === true && args.call.args !== undefined
450
484
  ? truncate(json(args.call.args))
451
485
  : undefined,
452
486
  }));
@@ -463,26 +497,26 @@ export function createOtelCollector(runtime, agentName, log) {
463
497
  "agent_sdk.turn_id": args.turnId,
464
498
  "agent_sdk.call_id": args.call.callId,
465
499
  "agent_sdk.parent_call_id": args.call.parentCallId,
466
- "agent_sdk.tool_args": (logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) === true && args.call.args !== undefined
500
+ "agent_sdk.tool_args": logOpts?.toolContent === true && args.call.args !== undefined
467
501
  ? truncate(json(args.call.args))
468
502
  : undefined,
469
503
  }),
470
- }, parentCtxFor(args.turn, (_b = args.parentCallId) !== null && _b !== void 0 ? _b : args.call.parentCallId));
504
+ }, parentCtxFor(args.turn, args.parentCallId ?? args.call.parentCallId));
471
505
  args.turn.tools.set(args.call.callId, span);
472
506
  return span;
473
507
  }
474
508
  function ensureTurnState(args) {
475
- var _a;
476
509
  const startTime = Date.now();
477
510
  const state = sessionState(args.sessionId);
478
- return ((_a = state.turns.get(args.turnId)) !== null && _a !== void 0 ? _a : openTurn({
479
- state,
480
- sessionId: args.sessionId,
481
- turnId: args.turnId,
482
- session: args.session,
483
- startTime,
484
- synthetic: true,
485
- }));
511
+ return (state.turns.get(args.turnId) ??
512
+ openTurn({
513
+ state,
514
+ sessionId: args.sessionId,
515
+ turnId: args.turnId,
516
+ session: args.session,
517
+ startTime,
518
+ synthetic: true,
519
+ }));
486
520
  }
487
521
  function ensureTurnSpan(args) {
488
522
  return ensureTurnState(args).span;
@@ -527,11 +561,15 @@ export function createOtelCollector(runtime, agentName, log) {
527
561
  extraBySession.delete(args.sessionId);
528
562
  }
529
563
  function extra(sessionId) {
530
- var _a;
531
- return (_a = extraBySession.get(sessionId)) !== null && _a !== void 0 ? _a : {};
564
+ return extraBySession.get(sessionId) ?? {};
532
565
  }
533
566
  function join(sessionId, rest) {
534
- return attrs(Object.assign(Object.assign(Object.assign({}, extra(sessionId)), { "cursor.conversation.id": sessionId, "agent_sdk.session_id": sessionId }), rest));
567
+ return attrs({
568
+ ...extra(sessionId),
569
+ "cursor.conversation.id": sessionId,
570
+ "agent_sdk.session_id": sessionId,
571
+ ...rest,
572
+ });
535
573
  }
536
574
  function paintOpenSpans(sessionId, incoming) {
537
575
  const state = sessions.get(sessionId);
@@ -581,7 +619,7 @@ export function createOtelCollector(runtime, agentName, log) {
581
619
  }
582
620
  /** Content opt-in for failure text (same gate as tool payloads). */
583
621
  function gatedContent(value) {
584
- if ((logOpts === null || logOpts === void 0 ? void 0 : logOpts.toolContent) !== true) {
622
+ if (logOpts?.toolContent !== true) {
585
623
  return undefined;
586
624
  }
587
625
  return truncate(value);
@@ -596,8 +634,7 @@ export function createOtelCollector(runtime, agentName, log) {
596
634
  };
597
635
  }
598
636
  function emitLog(eventName, severity, attributes) {
599
- var _a;
600
- (_a = runtime.logger) === null || _a === void 0 ? void 0 : _a.emit({
637
+ runtime.logger?.emit({
601
638
  body: eventName,
602
639
  severityNumber: severity,
603
640
  attributes,
@@ -640,11 +677,10 @@ function truncate(value) {
640
677
  return `${value.slice(0, CONTENT_MAX)}…`;
641
678
  }
642
679
  function json(value) {
643
- var _a;
644
680
  try {
645
- return (_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : String(value);
681
+ return JSON.stringify(value) ?? String(value);
646
682
  }
647
- catch (_b) {
683
+ catch {
648
684
  return String(value);
649
685
  }
650
686
  }
@@ -1,17 +1,6 @@
1
1
  /**
2
2
  * Merge authored `defineOtel`, `serve({ otel })`, and standard OTel env.
3
3
  */
4
- var __rest = (this && this.__rest) || function (s, e) {
5
- var t = {};
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
7
- t[p] = s[p];
8
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
9
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11
- t[p[i]] = s[p[i]];
12
- }
13
- return t;
14
- };
15
4
  import { resolveOtelDefinition } from "../../otel.js";
16
5
  /**
17
6
  * Process-global authored config. OTel SDK is one per serve process — if
@@ -40,21 +29,23 @@ export function pickAuthoredOtel(mounts) {
40
29
  * `serve({ otel })` over `defineOtel` over env defaults.
41
30
  */
42
31
  export function resolveOtelConfig(input) {
43
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
44
- const env = (_a = input.env) !== null && _a !== void 0 ? _a : process.env;
32
+ const env = input.env ?? process.env;
45
33
  if (input.serve === false) {
46
34
  return disabled();
47
35
  }
48
36
  const authored = input.authored === undefined ? {} : resolveOtelDefinition(input.authored);
49
37
  const serve = input.serve === undefined ? {} : input.serve;
50
38
  const merged = {
51
- serviceName: (_b = serve.serviceName) !== null && _b !== void 0 ? _b : authored.serviceName,
52
- serviceVersion: (_c = serve.serviceVersion) !== null && _c !== void 0 ? _c : authored.serviceVersion,
53
- resourceAttributes: Object.assign(Object.assign({}, authored.resourceAttributes), serve.resourceAttributes),
54
- exporters: (_d = serve.exporters) !== null && _d !== void 0 ? _d : authored.exporters,
55
- traces: (_e = serve.traces) !== null && _e !== void 0 ? _e : authored.traces,
56
- metrics: (_f = serve.metrics) !== null && _f !== void 0 ? _f : authored.metrics,
57
- logs: (_g = serve.logs) !== null && _g !== void 0 ? _g : authored.logs,
39
+ serviceName: serve.serviceName ?? authored.serviceName,
40
+ serviceVersion: serve.serviceVersion ?? authored.serviceVersion,
41
+ resourceAttributes: {
42
+ ...authored.resourceAttributes,
43
+ ...serve.resourceAttributes,
44
+ },
45
+ exporters: serve.exporters ?? authored.exporters,
46
+ traces: serve.traces ?? authored.traces,
47
+ metrics: serve.metrics ?? authored.metrics,
48
+ logs: serve.logs ?? authored.logs,
58
49
  };
59
50
  const envExporters = exportersFromEnv(env);
60
51
  const exporters = merged.exporters !== undefined && merged.exporters.length > 0
@@ -72,9 +63,9 @@ export function resolveOtelConfig(input) {
72
63
  }
73
64
  return {
74
65
  enabled: traces !== false || metrics !== false || logs !== false,
75
- serviceName: (_j = (_h = merged.serviceName) !== null && _h !== void 0 ? _h : env.OTEL_SERVICE_NAME) !== null && _j !== void 0 ? _j : "cursor",
66
+ serviceName: merged.serviceName ?? env.OTEL_SERVICE_NAME ?? "cursor",
76
67
  serviceVersion: merged.serviceVersion,
77
- resourceAttributes: (_k = merged.resourceAttributes) !== null && _k !== void 0 ? _k : {},
68
+ resourceAttributes: merged.resourceAttributes ?? {},
78
69
  exporters,
79
70
  traces,
80
71
  metrics,
@@ -126,11 +117,10 @@ function disabled() {
126
117
  * signal (OTel env spec).
127
118
  */
128
119
  function exportersFromEnv(env) {
129
- var _a, _b, _c, _d;
130
- const base = (_a = env.OTEL_EXPORTER_OTLP_ENDPOINT) === null || _a === void 0 ? void 0 : _a.trim();
131
- const traces = (_b = env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) === null || _b === void 0 ? void 0 : _b.trim();
132
- const metrics = (_c = env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT) === null || _c === void 0 ? void 0 : _c.trim();
133
- const logs = (_d = env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) === null || _d === void 0 ? void 0 : _d.trim();
120
+ const base = env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
121
+ const traces = env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT?.trim();
122
+ const metrics = env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT?.trim();
123
+ const logs = env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT?.trim();
134
124
  const protocol = protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL);
135
125
  const headers = parseOtelHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
136
126
  if (nonEmpty(base)) {
@@ -154,17 +144,16 @@ function pushSignalExporter(out, raw, signal, headers, protocol) {
154
144
  });
155
145
  }
156
146
  function withEnvHeaders(exporter, env) {
157
- var _a;
158
147
  const envHeaders = parseOtelHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
159
148
  return {
160
149
  url: stripSignalPath(exporter.url),
161
- headers: Object.assign(Object.assign({}, envHeaders), exporter.headers),
162
- protocol: (_a = exporter.protocol) !== null && _a !== void 0 ? _a : protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL),
150
+ headers: { ...envHeaders, ...exporter.headers },
151
+ protocol: exporter.protocol ?? protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL),
163
152
  signals: exporter.signals,
164
153
  };
165
154
  }
166
155
  function protocolFromEnv(raw) {
167
- const v = raw === null || raw === void 0 ? void 0 : raw.trim().toLowerCase();
156
+ const v = raw?.trim().toLowerCase();
168
157
  if (v === "http/json" || v === "json") {
169
158
  return "http/json";
170
159
  }
@@ -181,7 +170,6 @@ function resolveSignal(value) {
181
170
  return value;
182
171
  }
183
172
  function resolveLogs(value, env) {
184
- var _a, _b;
185
173
  if (value === false) {
186
174
  return false;
187
175
  }
@@ -199,18 +187,17 @@ function resolveLogs(value, env) {
199
187
  return { userPrompts: envPrompts, toolContent: envTools };
200
188
  }
201
189
  return {
202
- userPrompts: (_a = value.userPrompts) !== null && _a !== void 0 ? _a : envPrompts,
203
- toolContent: (_b = value.toolContent) !== null && _b !== void 0 ? _b : envTools,
190
+ userPrompts: value.userPrompts ?? envPrompts,
191
+ toolContent: value.toolContent ?? envTools,
204
192
  };
205
193
  }
206
194
  /** `OTEL_LOGS_EXPORTER=none` (or unset) must not enable log export. */
207
195
  function logsExporterOptIn(env) {
208
- var _a;
209
- const raw = (_a = env.OTEL_LOGS_EXPORTER) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase();
196
+ const raw = env.OTEL_LOGS_EXPORTER?.trim().toLowerCase();
210
197
  return raw !== undefined && raw.length > 0 && raw !== "none";
211
198
  }
212
199
  function stableConfigKey(def) {
213
- const { __agentServe: _brand } = def, rest = __rest(def, ["__agentServe"]);
200
+ const { __agentServe: _brand, ...rest } = def;
214
201
  return stable(rest);
215
202
  }
216
203
  function stable(value) {