@cursor/bdk 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -0,0 +1,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) {