@cursor/bdk 0.2.25 → 0.2.27

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 (449) hide show
  1. package/AGENTS.md +3 -18
  2. package/CHANGELOG.md +3 -0
  3. package/dist/artifacts.d.ts +1 -1
  4. package/dist/artifacts.js +1 -1
  5. package/dist/bin/agent-serve.js +25 -21
  6. package/dist/channels/bitbucket/api.d.ts +2 -2
  7. package/dist/channels/bitbucket/api.d.ts.map +1 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +2 -2
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  11. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  12. package/dist/channels/deployments/deployments-channel.js +1 -1
  13. package/dist/channels/github/cursor-account.d.ts +7 -0
  14. package/dist/channels/github/cursor-account.d.ts.map +1 -1
  15. package/dist/channels/github/cursor-account.js +22 -5
  16. package/dist/channels/github/github-channel.js +1 -1
  17. package/dist/channels/github/replay.d.ts +1 -1
  18. package/dist/channels/github/replay.d.ts.map +1 -1
  19. package/dist/channels/gitlab/api.d.ts +2 -2
  20. package/dist/channels/gitlab/api.d.ts.map +1 -1
  21. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  22. package/dist/channels/issues/issues-channel.js +1 -1
  23. package/dist/channels/origin/api.d.ts +4 -4
  24. package/dist/channels/origin/api.d.ts.map +1 -1
  25. package/dist/channels/origin/origin-channel.js +1 -1
  26. package/dist/channels/origin/origin-webhook.d.ts +3 -3
  27. package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
  28. package/dist/channels/pagerduty/pagerduty-webhook.d.ts +2 -2
  29. package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -1
  30. package/dist/channels/runs/runs-channel.js +1 -1
  31. package/dist/channels/slack/agentic-delivery.d.ts +2 -1
  32. package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
  33. package/dist/channels/slack/agentic-delivery.js +6 -10
  34. package/dist/channels/slack/agentic-signals.d.ts +2 -7
  35. package/dist/channels/slack/agentic-signals.d.ts.map +1 -1
  36. package/dist/channels/slack/agentic-signals.js +4 -3
  37. package/dist/channels/slack/api.d.ts +1 -0
  38. package/dist/channels/slack/api.d.ts.map +1 -1
  39. package/dist/channels/slack/api.js +3 -0
  40. package/dist/channels/slack/constants.d.ts +2 -0
  41. package/dist/channels/slack/constants.d.ts.map +1 -1
  42. package/dist/channels/slack/constants.js +2 -0
  43. package/dist/channels/slack/defaults.d.ts.map +1 -1
  44. package/dist/channels/slack/defaults.js +3 -2
  45. package/dist/channels/slack/dispatch.d.ts +9 -0
  46. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  47. package/dist/channels/slack/dispatch.js +3 -0
  48. package/dist/channels/slack/inbound.d.ts.map +1 -1
  49. package/dist/channels/slack/inbound.js +24 -20
  50. package/dist/channels/slack/interactive.d.ts +2 -0
  51. package/dist/channels/slack/interactive.d.ts.map +1 -1
  52. package/dist/channels/slack/interactive.js +1 -0
  53. package/dist/channels/slack/live-delivery.d.ts +3 -0
  54. package/dist/channels/slack/live-delivery.d.ts.map +1 -1
  55. package/dist/channels/slack/live-delivery.js +5 -0
  56. package/dist/channels/slack/reply-options.d.ts +9 -0
  57. package/dist/channels/slack/reply-options.d.ts.map +1 -1
  58. package/dist/channels/slack/reply-options.js +31 -1
  59. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  60. package/dist/channels/slack/slack-channel.js +7 -0
  61. package/dist/channels/slack/stream.d.ts +5 -1
  62. package/dist/channels/slack/stream.d.ts.map +1 -1
  63. package/dist/channels/slack/types.d.ts +29 -0
  64. package/dist/channels/slack/types.d.ts.map +1 -1
  65. package/dist/channels.d.ts +1 -1
  66. package/dist/channels.js +1 -1
  67. package/dist/docs/404.html +3 -3
  68. package/dist/docs/assets/{app.BjS1QEI4.js → app.wA5xBBcd.js} +4 -4
  69. package/dist/docs/assets/changelog.md.BvHRIiMH.js +1 -0
  70. package/dist/docs/assets/changelog.md.BvHRIiMH.lean.js +1 -0
  71. package/dist/docs/assets/chunks/@localSearchIndexroot.BoDEJQWv.js +1 -0
  72. package/dist/docs/assets/chunks/{VPLocalSearchBox.BOuvjb5Y.js → VPLocalSearchBox.C29HLCVL.js} +2 -2
  73. package/dist/docs/assets/chunks/{arc.3WR6Jf-y.js → arc.BOaoYWmh.js} +1 -1
  74. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Dtb6Dqh6.js → architectureDiagram-Q4EWVU46.MfG0itQh.js} +1 -1
  75. package/dist/docs/assets/chunks/{baseUniq.BUyrgrZE.js → baseUniq.CUeJciCF.js} +1 -1
  76. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BVLV_voZ.js → blockDiagram-DXYQGD6D.BrXMZRtK.js} +1 -1
  77. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.jXJ1q70M.js → c4Diagram-AHTNJAMY.DfkDHeB9.js} +1 -1
  78. package/dist/docs/assets/chunks/channel.D2BTz0L-.js +1 -0
  79. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.zz1SMBvK.js → chunk-4BX2VUAB.xKz8CiXK.js} +1 -1
  80. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.CzYKuv3I.js → chunk-4TB4RGXK.kkfBh4zk.js} +1 -1
  81. package/dist/docs/assets/chunks/{chunk-55IACEB6.C7_tcJZD.js → chunk-55IACEB6.BClJGb94.js} +1 -1
  82. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DeTwQPVO.js → chunk-EDXVE4YY.P9BpQ9L3.js} +1 -1
  83. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DhMTl7ut.js → chunk-FMBD7UC4.R4iYi58S.js} +1 -1
  84. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Me7f5hEp.js → chunk-OYMX7WX6.Cpn8L1dw.js} +1 -1
  85. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D0E0Bb6g.js → chunk-QZHKN3VN.BLftECqU.js} +1 -1
  86. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CdOOBFYL.js → chunk-YZCP3GAM.BWDV1AYt.js} +1 -1
  87. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DqByliAC.js +1 -0
  88. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DqByliAC.js +1 -0
  89. package/dist/docs/assets/chunks/clone.CldT1lbQ.js +1 -0
  90. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BNbGESzN.js → cose-bilkent-S5V4N54A.DGpAcJ55.js} +1 -1
  91. package/dist/docs/assets/chunks/{dagre-KV5264BT.zU7Lu_xJ.js → dagre-KV5264BT.BBXxGEaD.js} +1 -1
  92. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B9qOdE5h.js → diagram-5BDNPKRD.EKqOwmK2.js} +1 -1
  93. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D8X-sf77.js → diagram-G4DWMVQ6.CB8pdkoZ.js} +1 -1
  94. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.CW7MvMlE.js → diagram-MMDJMWI5.aHh4WGg9.js} +1 -1
  95. package/dist/docs/assets/chunks/{diagram-TYMM5635.J489G0Nd.js → diagram-TYMM5635.YIsbRH20.js} +1 -1
  96. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BkW7tGfs.js → erDiagram-SMLLAGMA.B3bTCW_e.js} +1 -1
  97. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.jc9iWORD.js → flowDiagram-DWJPFMVM.M81hXIXZ.js} +1 -1
  98. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B-UQfd9E.js → ganttDiagram-T4ZO3ILL.BKg7WY--.js} +1 -1
  99. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js → gitGraphDiagram-UUTBAWPF.CLEMZgO3.js} +1 -1
  100. package/dist/docs/assets/chunks/{graph.C5IB6_e_.js → graph.DS38W_Q-.js} +1 -1
  101. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DwF0-c8L.js → infoDiagram-42DDH7IO.BTiWTi82.js} +1 -1
  102. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.fBaTqzE7.js → ishikawaDiagram-UXIWVN3A.DcqY_KQL.js} +1 -1
  103. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CM8gDVJy.js → journeyDiagram-VCZTEJTY.0lQNZ40U.js} +1 -1
  104. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.YiD1p0LB.js → kanban-definition-6JOO6SKY.L5sKlf7X.js} +1 -1
  105. package/dist/docs/assets/chunks/{layout.6Um-DVJT.js → layout.7u4gFhQa.js} +1 -1
  106. package/dist/docs/assets/chunks/{linear.DcTeg4Hn.js → linear.D5v33SOb.js} +1 -1
  107. package/dist/docs/assets/chunks/{min.CIxkY8Fe.js → min.Dc9uCxf9.js} +1 -1
  108. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.D4QM_voR.js → mindmap-definition-QFDTVHPH.B56nGoB_.js} +1 -1
  109. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.nmB309G1.js → pieDiagram-DEJITSTG.Cba8e8lS.js} +1 -1
  110. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D1HtZR3C.js → quadrantDiagram-34T5L4WZ.2YjBycHF.js} +1 -1
  111. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZgQWob-.js → requirementDiagram-MS252O5E.D4P5RqVI.js} +1 -1
  112. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DtiBfU-P.js → sankeyDiagram-XADWPNL6.C0Hn8NUm.js} +1 -1
  113. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cld4gDSt.js → sequenceDiagram-FGHM5R23.BZm7EaoT.js} +1 -1
  114. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DatP823_.js → stateDiagram-FHFEXIEX.DcR4f3X2.js} +1 -1
  115. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.Bb4oMe0P.js +1 -0
  116. package/dist/docs/assets/chunks/{theme.D5jbBys7.js → theme.DvfKzyXq.js} +2 -2
  117. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.DwQLI2be.js → timeline-definition-GMOUNBTQ.CgDh96vg.js} +1 -1
  118. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.a5yMfnsa.js → vennDiagram-DHZGUBPP.B4fagbC8.js} +1 -1
  119. package/dist/docs/assets/chunks/{wardley-RL74JXVD.B-FXivgT.js → wardley-RL74JXVD.Ck68omim.js} +1 -1
  120. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Dz--Opy3.js → wardleyDiagram-NUSXRM2D.DBUg0bvz.js} +1 -1
  121. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Dl8w8TeT.js → xychartDiagram-5P7HB3ND.DnKSGQE1.js} +1 -1
  122. package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.js → guides_hooks.md.B2XfGX50.js} +7 -3
  123. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.js → guides_mcp-oauth.md.Cxq2TxBB.js} +3 -3
  124. package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.lean.js → guides_mcp-oauth.md.Cxq2TxBB.lean.js} +1 -1
  125. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.js +37 -0
  126. package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.lean.js +1 -0
  127. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.js → guides_slack.md.ClIyi7FI.js} +8 -3
  128. package/dist/docs/assets/{guides_slack.md.Bn-WupSE.lean.js → guides_slack.md.ClIyi7FI.lean.js} +1 -1
  129. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.js → reference_agent-config.md.CZrbHOfT.js} +8 -4
  130. package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CZrbHOfT.lean.js} +1 -1
  131. package/dist/docs/assets/{reference_channels.md.Bxaa020x.js → reference_channels.md.CNNIS6K7.js} +1 -1
  132. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.js → reference_hooks.md.CROr0QgC.js} +13 -7
  133. package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.lean.js → reference_hooks.md.CROr0QgC.lean.js} +1 -1
  134. package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.js → reference_schedules.md.BqWnJES4.js} +3 -3
  135. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.js +22 -0
  136. package/dist/docs/assets/reference_sessions.md.Bi6lHttM.lean.js +1 -0
  137. package/dist/docs/assets/{reference_skills.md.C2GWh7g8.js → reference_skills.md.Ckddg6KX.js} +3 -3
  138. package/dist/docs/assets/{reference_tools.md.-6pypsWt.js → reference_tools.md.Bo0UfT0a.js} +1 -1
  139. package/dist/docs/assets/{style.nMsabY-V.css → style.B9o0luvp.css} +1 -1
  140. package/dist/docs/building-with-agents.html +37 -37
  141. package/dist/docs/changelog.html +60 -0
  142. package/dist/docs/changelog.md +114 -0
  143. package/dist/docs/deployment.html +37 -37
  144. package/dist/docs/evals.html +37 -37
  145. package/dist/docs/guides/agent-to-agent.html +37 -37
  146. package/dist/docs/guides/bitbucket.html +37 -37
  147. package/dist/docs/guides/cloud-agents.html +37 -37
  148. package/dist/docs/guides/convert-automation.html +37 -37
  149. package/dist/docs/guides/export-grokbot.html +37 -37
  150. package/dist/docs/guides/github.html +37 -37
  151. package/dist/docs/guides/gitlab.html +37 -37
  152. package/dist/docs/guides/grokbot-agents.html +37 -37
  153. package/dist/docs/guides/hooks.html +45 -41
  154. package/dist/docs/guides/hooks.md +7 -3
  155. package/dist/docs/guides/improve.html +37 -37
  156. package/dist/docs/guides/jev.html +37 -37
  157. package/dist/docs/guides/mcp-oauth.html +39 -39
  158. package/dist/docs/guides/mcp-oauth.md +12 -0
  159. package/dist/docs/guides/migrate.html +37 -37
  160. package/dist/docs/guides/opentelemetry.html +62 -70
  161. package/dist/docs/guides/opentelemetry.md +149 -179
  162. package/dist/docs/guides/pagerduty.html +37 -37
  163. package/dist/docs/guides/slack.html +44 -39
  164. package/dist/docs/guides/slack.md +41 -0
  165. package/dist/docs/guides/webhooks.html +37 -37
  166. package/dist/docs/hashmap.json +1 -1
  167. package/dist/docs/hillclimbing.html +37 -37
  168. package/dist/docs/index.html +37 -37
  169. package/dist/docs/llms-full.txt +422 -193
  170. package/dist/docs/llms.txt +2 -1
  171. package/dist/docs/quickstart.html +37 -37
  172. package/dist/docs/reference/agent-config.html +44 -40
  173. package/dist/docs/reference/agent-config.md +30 -1
  174. package/dist/docs/reference/artifacts.html +37 -37
  175. package/dist/docs/reference/channels.html +38 -38
  176. package/dist/docs/reference/channels.md +5 -1
  177. package/dist/docs/reference/cli.html +37 -37
  178. package/dist/docs/reference/connections.html +37 -37
  179. package/dist/docs/reference/evals.html +37 -37
  180. package/dist/docs/reference/extensions.html +37 -37
  181. package/dist/docs/reference/hooks.html +49 -43
  182. package/dist/docs/reference/hooks.md +10 -5
  183. package/dist/docs/reference/http-api.html +37 -37
  184. package/dist/docs/reference/instructions.html +37 -37
  185. package/dist/docs/reference/memory.html +37 -37
  186. package/dist/docs/reference/playground.html +36 -36
  187. package/dist/docs/reference/project-layout.html +37 -37
  188. package/dist/docs/reference/prompt.html +37 -37
  189. package/dist/docs/reference/schedules.html +40 -40
  190. package/dist/docs/reference/sessions.html +58 -37
  191. package/dist/docs/reference/sessions.md +46 -1
  192. package/dist/docs/reference/skills.html +40 -40
  193. package/dist/docs/reference/subagents.html +37 -37
  194. package/dist/docs/reference/tools.html +39 -39
  195. package/dist/docs/reference/tools.md +3 -3
  196. package/dist/docs/templates/agentic-owners.html +37 -37
  197. package/dist/docs/templates/grokbot-agents.html +37 -37
  198. package/dist/docs/templates/security-reviewer.html +37 -37
  199. package/dist/docs/templates/thermo-quality-review.html +37 -37
  200. package/dist/docs/templates/thermo-review.html +37 -37
  201. package/dist/docs/templates/triage.html +37 -37
  202. package/dist/docs/troubleshooting.html +36 -36
  203. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  204. package/dist/extensions/cursor-cloud-agents/extension.js +15 -15
  205. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +4 -1
  206. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  207. package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -6
  208. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  209. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
  210. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
  211. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
  212. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
  213. package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
  214. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  215. package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
  216. package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -1
  217. package/dist/extensions/cursor-grokbot-agents/extension.js +7 -3
  218. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
  219. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
  220. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
  221. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
  222. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
  223. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
  224. package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
  225. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
  226. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  227. package/dist/extensions/improve/extension.js +1 -1
  228. package/dist/extensions/jev/extension.js +2 -2
  229. package/dist/extensions/jev/tools/evaluate.js +3 -3
  230. package/dist/extensions/slack-communication/extension.js +1 -1
  231. package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
  232. package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -1
  233. package/dist/extensions/slack-communication/tools/edit-message.js +3 -6
  234. package/dist/extensions/slack-communication/tools/post-card.js +1 -1
  235. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  236. package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -1
  237. package/dist/extensions/slack-communication/tools/post-update.js +3 -6
  238. package/dist/extensions/slack-communication/tools/react.js +1 -1
  239. package/dist/extensions/slack-communication/tools/set-status.js +1 -1
  240. package/dist/extensions.d.ts +1 -1
  241. package/dist/extensions.js +1 -1
  242. package/dist/filesystem.d.ts +26 -5
  243. package/dist/filesystem.d.ts.map +1 -1
  244. package/dist/filesystem.js +91 -18
  245. package/dist/index.d.ts +14 -11
  246. package/dist/index.d.ts.map +1 -1
  247. package/dist/index.js +8 -4
  248. package/dist/internal/as-of.d.ts +2 -0
  249. package/dist/internal/as-of.d.ts.map +1 -1
  250. package/dist/internal/as-of.js +2 -0
  251. package/dist/internal/builtin-tools/reminders.js +1 -1
  252. package/dist/internal/cli-deploy.d.ts.map +1 -1
  253. package/dist/internal/cli-deploy.js +18 -10
  254. package/dist/internal/continuation.d.ts +3 -0
  255. package/dist/internal/continuation.d.ts.map +1 -0
  256. package/dist/internal/continuation.js +1 -0
  257. package/dist/internal/conversation-mirror.d.ts +5 -0
  258. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  259. package/dist/internal/conversation-mirror.js +12 -1
  260. package/dist/internal/convert-automation/convert-workflow.js +1 -1
  261. package/dist/internal/convert-grokbot/answers.d.ts.map +1 -1
  262. package/dist/internal/convert-grokbot/answers.js +10 -8
  263. package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
  264. package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
  265. package/dist/internal/convert-grokbot/recipe.js +1 -1
  266. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  267. package/dist/internal/cursor/account-mcp.js +2 -0
  268. package/dist/internal/cursor/backend-client.d.ts +8 -3
  269. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  270. package/dist/internal/cursor/backend-client.js +8 -3
  271. package/dist/internal/cursor/credentials.d.ts +2 -2
  272. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  273. package/dist/internal/cursor/credentials.js +1 -1
  274. package/dist/internal/cursor-account-mcp-auth.d.ts +6 -2
  275. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
  276. package/dist/internal/cursor-account-mcp-auth.js +15 -6
  277. package/dist/internal/deferred-channel-session.d.ts +5 -4
  278. package/dist/internal/deferred-channel-session.d.ts.map +1 -1
  279. package/dist/internal/deferred-channel-session.js +6 -4
  280. package/dist/internal/deploy-client.d.ts +5 -0
  281. package/dist/internal/deploy-client.d.ts.map +1 -1
  282. package/dist/internal/deploy-client.js +3 -3
  283. package/dist/internal/deploy-manifest.js +2 -2
  284. package/dist/internal/describe-error.d.ts +2 -0
  285. package/dist/internal/describe-error.d.ts.map +1 -1
  286. package/dist/internal/describe-error.js +2 -0
  287. package/dist/internal/discovery/agent.d.ts.map +1 -1
  288. package/dist/internal/discovery/agent.js +29 -9
  289. package/dist/internal/discovery/context.d.ts.map +1 -1
  290. package/dist/internal/discovery/context.js +1 -2
  291. package/dist/internal/discovery/cursor-plugin.js +8 -8
  292. package/dist/internal/discovery/extensions.js +15 -8
  293. package/dist/internal/discovery/info.d.ts +2 -2
  294. package/dist/internal/discovery/info.d.ts.map +1 -1
  295. package/dist/internal/discovery/info.js +6 -9
  296. package/dist/internal/discovery/instrumentation.d.ts +10 -0
  297. package/dist/internal/discovery/instrumentation.d.ts.map +1 -0
  298. package/dist/internal/discovery/instrumentation.js +29 -0
  299. package/dist/internal/discovery/modules.d.ts.map +1 -1
  300. package/dist/internal/discovery/modules.js +4 -4
  301. package/dist/internal/discovery/project-public.d.ts +16 -0
  302. package/dist/internal/discovery/project-public.d.ts.map +1 -0
  303. package/dist/internal/discovery/project-public.js +54 -0
  304. package/dist/internal/discovery/project.d.ts.map +1 -1
  305. package/dist/internal/discovery/project.js +13 -3
  306. package/dist/internal/discovery/services.d.ts +5 -4
  307. package/dist/internal/discovery/services.d.ts.map +1 -1
  308. package/dist/internal/discovery/services.js +12 -6
  309. package/dist/internal/docs-site.d.ts +2 -5
  310. package/dist/internal/docs-site.d.ts.map +1 -1
  311. package/dist/internal/docs-site.js +2 -5
  312. package/dist/internal/event-mapper.d.ts.map +1 -1
  313. package/dist/internal/event-mapper.js +1 -0
  314. package/dist/internal/factory-resource-channel.d.ts +1 -1
  315. package/dist/internal/factory-resource-channel.d.ts.map +1 -1
  316. package/dist/internal/filesystem/nearest.d.ts +1 -0
  317. package/dist/internal/filesystem/nearest.d.ts.map +1 -1
  318. package/dist/internal/filesystem/nearest.js +1 -0
  319. package/dist/internal/filesystem/tools.d.ts.map +1 -1
  320. package/dist/internal/filesystem/tools.js +1 -1
  321. package/dist/internal/handleAgentServeTrigger.d.ts +10 -0
  322. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
  323. package/dist/internal/handleAgentServeTrigger.js +3 -0
  324. package/dist/internal/hmac-secret-values.d.ts +1 -1
  325. package/dist/internal/hmac-secret-values.d.ts.map +1 -1
  326. package/dist/internal/host-otel.d.ts +1 -1
  327. package/dist/internal/host-otel.d.ts.map +1 -1
  328. package/dist/internal/host-otel.js +5 -0
  329. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  330. package/dist/internal/hosted-delivery.js +6 -2
  331. package/dist/internal/http-channel.d.ts.map +1 -1
  332. package/dist/internal/http-channel.js +1 -0
  333. package/dist/internal/ids.d.ts +8 -0
  334. package/dist/internal/ids.d.ts.map +1 -1
  335. package/dist/internal/ids.js +20 -0
  336. package/dist/internal/init-scaffold.js +1 -1
  337. package/dist/internal/interview/agent-questions.d.ts +1 -1
  338. package/dist/internal/interview/agent-questions.d.ts.map +1 -1
  339. package/dist/internal/interview/agent-questions.js +1 -1
  340. package/dist/internal/interview/question.d.ts +2 -2
  341. package/dist/internal/interview/question.d.ts.map +1 -1
  342. package/dist/internal/interview/question.js +2 -2
  343. package/dist/internal/json-schema.d.ts.map +1 -1
  344. package/dist/internal/json-schema.js +3 -7
  345. package/dist/internal/mcp-endpoint.d.ts +16 -4
  346. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  347. package/dist/internal/mcp-endpoint.js +18 -6
  348. package/dist/internal/mcp-host.d.ts +9 -0
  349. package/dist/internal/mcp-host.d.ts.map +1 -1
  350. package/dist/internal/mcp-host.js +15 -0
  351. package/dist/internal/otel/collector.d.ts +5 -0
  352. package/dist/internal/otel/collector.d.ts.map +1 -1
  353. package/dist/internal/otel/collector.js +24 -5
  354. package/dist/internal/otel/config.d.ts +31 -21
  355. package/dist/internal/otel/config.d.ts.map +1 -1
  356. package/dist/internal/otel/config.js +121 -140
  357. package/dist/internal/otel/conversation-span-processor.d.ts +9 -0
  358. package/dist/internal/otel/conversation-span-processor.d.ts.map +1 -0
  359. package/dist/internal/otel/conversation-span-processor.js +34 -0
  360. package/dist/internal/otel/customer.d.ts +52 -0
  361. package/dist/internal/otel/customer.d.ts.map +1 -0
  362. package/dist/internal/otel/customer.js +727 -0
  363. package/dist/internal/otel/runtime.d.ts +12 -16
  364. package/dist/internal/otel/runtime.d.ts.map +1 -1
  365. package/dist/internal/otel/runtime.js +30 -234
  366. package/dist/internal/otel-env.d.ts +6 -0
  367. package/dist/internal/otel-env.d.ts.map +1 -0
  368. package/dist/internal/otel-env.js +5 -0
  369. package/dist/internal/reminder-runner.d.ts +9 -4
  370. package/dist/internal/reminder-runner.d.ts.map +1 -1
  371. package/dist/internal/reminder-runner.js +12 -10
  372. package/dist/internal/reminder-schedule.d.ts +1 -0
  373. package/dist/internal/reminder-schedule.d.ts.map +1 -1
  374. package/dist/internal/reminder-schedule.js +1 -0
  375. package/dist/internal/sdk-runner.d.ts +8 -0
  376. package/dist/internal/sdk-runner.d.ts.map +1 -1
  377. package/dist/internal/sdk-runner.js +190 -14
  378. package/dist/internal/server.d.ts +4 -1
  379. package/dist/internal/server.d.ts.map +1 -1
  380. package/dist/internal/server.js +25 -24
  381. package/dist/internal/session-engine.d.ts +35 -3
  382. package/dist/internal/session-engine.d.ts.map +1 -1
  383. package/dist/internal/session-engine.js +213 -41
  384. package/dist/internal/slack-provision-client.js +1 -1
  385. package/dist/internal/store-api-protocol.d.ts +1 -1
  386. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  387. package/dist/internal/store-api-protocol.js +1 -1
  388. package/dist/internal/update-check.d.ts +2 -2
  389. package/dist/internal/update-check.d.ts.map +1 -1
  390. package/dist/internal/update-check.js +3 -3
  391. package/dist/internal/workspace.d.ts +10 -0
  392. package/dist/internal/workspace.d.ts.map +1 -1
  393. package/dist/internal/workspace.js +47 -1
  394. package/dist/internal/zod3-datetime.d.ts +12 -0
  395. package/dist/internal/zod3-datetime.d.ts.map +1 -0
  396. package/dist/internal/zod3-datetime.js +17 -0
  397. package/dist/otel-public.d.ts +2 -3
  398. package/dist/otel-public.d.ts.map +1 -1
  399. package/dist/otel-public.js +2 -2
  400. package/dist/otel.d.ts +3 -102
  401. package/dist/otel.d.ts.map +1 -1
  402. package/dist/otel.js +61 -97
  403. package/dist/playground/assets/cursor-icons-16-DfKNljMZ.woff2 +0 -0
  404. package/dist/playground/assets/index-B3_YohwW.js +62 -0
  405. package/dist/playground/assets/index-Cn3-adsJ.css +1 -0
  406. package/dist/playground/index.html +2 -2
  407. package/dist/public-deprecated.d.ts +36 -0
  408. package/dist/public-deprecated.d.ts.map +1 -0
  409. package/dist/public-deprecated.js +39 -0
  410. package/dist/tools.d.ts +3 -3
  411. package/dist/tools.d.ts.map +1 -1
  412. package/dist/tools.js +1 -1
  413. package/dist/types.d.ts +262 -97
  414. package/dist/types.d.ts.map +1 -1
  415. package/docs/changelog.md +119 -0
  416. package/docs/guides/hooks.md +7 -3
  417. package/docs/guides/mcp-oauth.md +12 -0
  418. package/docs/guides/opentelemetry.md +149 -184
  419. package/docs/guides/slack.md +41 -0
  420. package/docs/reference/agent-config.md +30 -1
  421. package/docs/reference/channels.md +5 -1
  422. package/docs/reference/hooks.md +10 -5
  423. package/docs/reference/sessions.md +46 -1
  424. package/docs/reference/tools.md +3 -3
  425. package/package.json +35 -8
  426. package/schemas/grokbot-answers.schema.json +11 -0
  427. package/skills/framework-map/SKILL.md +2 -1
  428. package/skills/otel/SKILL.md +28 -48
  429. package/templates/code-wiki/evals/wiki.eval.ts +2 -2
  430. package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +0 -1
  431. package/dist/docs/assets/chunks/channel.Dt4aweTm.js +0 -1
  432. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +0 -1
  433. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +0 -1
  434. package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +0 -1
  435. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +0 -1
  436. package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.js +0 -45
  437. package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.lean.js +0 -1
  438. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.js +0 -1
  439. package/dist/docs/assets/reference_sessions.md.C8FXuGwk.lean.js +0 -1
  440. package/dist/playground/assets/cursor-icons-16-DmHBTm1-.woff2 +0 -0
  441. package/dist/playground/assets/index-BdMwybMt.css +0 -1
  442. package/dist/playground/assets/index-CHk6O92d.js +0 -62
  443. package/templates/grokbot-agents/.gitignore +0 -4
  444. package/templates/security-help/.gitignore +0 -4
  445. /package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.lean.js → guides_hooks.md.B2XfGX50.lean.js} +0 -0
  446. /package/dist/docs/assets/{reference_channels.md.Bxaa020x.lean.js → reference_channels.md.CNNIS6K7.lean.js} +0 -0
  447. /package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.lean.js → reference_schedules.md.BqWnJES4.lean.js} +0 -0
  448. /package/dist/docs/assets/{reference_skills.md.C2GWh7g8.lean.js → reference_skills.md.Ckddg6KX.lean.js} +0 -0
  449. /package/dist/docs/assets/{reference_tools.md.-6pypsWt.lean.js → reference_tools.md.Bo0UfT0a.lean.js} +0 -0
@@ -1,75 +1,53 @@
1
1
  /**
2
- * Merge authored `defineOtel`, `serve({ otel })`, and standard OTel env.
2
+ * Standard `OTEL_*` variables for export. There is no instrumentation file.
3
3
  */
4
- import { resolveOtelDefinition, } from "../../otel.js";
5
4
  /**
6
- * Process-global authored config. OTel SDK is one per serve process — if
7
- * several mounts ship `agent/otel.ts`, they must be identical.
5
+ * `service.name` when no agent name, `OTEL_SERVICE_NAME`, or
6
+ * `service.name` resource attribute is set. Matches the SDK fallback.
8
7
  */
9
- export function pickAuthoredOtel(mounts) {
10
- const found = mounts.filter((m) => m.otel !== undefined);
11
- if (found.length === 0) {
12
- return undefined;
8
+ export const UNKNOWN_SERVICE_NAME = "unknown_service:node";
9
+ /** Resolve export from `OTEL_EXPORTER_OTLP_*`. No endpoint means disabled. */
10
+ export function resolveOtelConfig(input = {}) {
11
+ const env = input.env ?? process.env;
12
+ if (sdkDisabled(env)) {
13
+ return disabledOtelConfig(input.defaultServiceName);
13
14
  }
14
- const first = found[0];
15
- const key = stableConfigKey(first.otel);
16
- for (const other of found.slice(1)) {
17
- if (stableConfigKey(other.otel) !== key) {
18
- const a = first.slug === "" ? first.name : first.slug;
19
- const b = other.slug === "" ? other.name : other.slug;
20
- throw new Error(`Conflicting agent/otel.ts on mounts "${a}" and "${b}": OTel is process-global. Use identical defineOtel configs, or configure once via serve({ otel }) / OTEL_EXPORTER_OTLP_*.`);
21
- }
15
+ const built = exportersFromEnv(env);
16
+ if (built.exporters.length === 0) {
17
+ return { ...disabledOtelConfig(input.defaultServiceName), warnings: built.warnings };
22
18
  }
23
- return first.otel;
24
- }
25
- /**
26
- * Resolve effective config.
27
- *
28
- * Precedence: `serve({ otel: false })` disables; otherwise merge
29
- * `serve({ otel })` over `defineOtel` over env defaults.
30
- */
31
- export function resolveOtelConfig(input) {
32
- const env = input.env ?? process.env;
33
- if (input.serve === false) {
34
- return disabledOtelConfig();
35
- }
36
- const authored = input.authored === undefined ? {} : resolveOtelDefinition(input.authored);
37
- const serve = input.serve === undefined ? {} : input.serve;
38
- const merged = {
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,
49
- };
50
- const envExporters = exportersFromEnv(env);
51
- const exporters = merged.exporters !== undefined && merged.exporters.length > 0
52
- ? merged.exporters.map((e) => withEnvHeaders(e, env))
53
- : envExporters;
54
- const optedIn = input.authored !== undefined || input.serve !== undefined || envExporters.length > 0;
55
- if (!optedIn) {
56
- return disabledOtelConfig();
57
- }
58
- const traces = resolveSignal(merged.traces);
59
- const metrics = exporters.length === 0 ? false : resolveMetrics(merged.metrics, env);
60
- const logs = exporters.length === 0 ? false : resolveLogs(merged.logs, env);
61
- if (exporters.length === 0 && traces === false) {
62
- return disabledOtelConfig();
19
+ const serviceName = env.OTEL_SERVICE_NAME?.trim();
20
+ const parsed = metricsTemporalityFromEnv(env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE);
21
+ const tracesOff = signalExporterOff(env, "TRACES") || exportersForSignal(built.exporters, "traces").length === 0;
22
+ const metricsOff = signalExporterOff(env, "METRICS") ||
23
+ exportersForSignal(built.exporters, "metrics").length === 0;
24
+ const logsOn = resolveLogs(env, built.warnings);
25
+ const logs = logsOn !== false && exportersForSignal(built.exporters, "logs").length > 0 ? logsOn : false;
26
+ const traces = tracesOff ? false : {};
27
+ const metrics = metricsOff
28
+ ? false
29
+ : {
30
+ temporality: parsed.temporality,
31
+ unrecognizedTemporality: parsed.unrecognized,
32
+ exportIntervalMillis: metricExportInterval(env),
33
+ };
34
+ if (traces === false && metrics === false && logs === false) {
35
+ return { ...disabledOtelConfig(input.defaultServiceName), warnings: built.warnings };
63
36
  }
64
37
  return {
65
- enabled: traces !== false || metrics !== false || logs !== false,
66
- serviceName: merged.serviceName ?? env.OTEL_SERVICE_NAME ?? "cursor",
67
- serviceVersion: merged.serviceVersion,
68
- resourceAttributes: merged.resourceAttributes ?? {},
69
- exporters,
38
+ enabled: true,
39
+ serviceName: nonEmpty(serviceName)
40
+ ? serviceName
41
+ : nonEmpty(input.defaultServiceName)
42
+ ? input.defaultServiceName
43
+ : UNKNOWN_SERVICE_NAME,
44
+ serviceVersion: undefined,
45
+ resourceAttributes: {},
46
+ exporters: built.exporters,
70
47
  traces,
71
48
  metrics,
72
49
  logs,
50
+ warnings: built.warnings,
73
51
  };
74
52
  }
75
53
  /** Values are URL-encoded per the OTel spec (`Authorization=Basic%20...`). */
@@ -108,16 +86,17 @@ export function stripSignalPath(url) {
108
86
  export function exportersForSignal(exporters, signal) {
109
87
  return exporters.filter((exporter) => exporter.signals === undefined || exporter.signals.includes(signal));
110
88
  }
111
- export function disabledOtelConfig() {
89
+ export function disabledOtelConfig(defaultServiceName) {
112
90
  return {
113
91
  enabled: false,
114
- serviceName: "cursor",
92
+ serviceName: nonEmpty(defaultServiceName) ? defaultServiceName : UNKNOWN_SERVICE_NAME,
115
93
  serviceVersion: undefined,
116
94
  resourceAttributes: {},
117
95
  exporters: [],
118
96
  traces: false,
119
97
  metrics: false,
120
98
  logs: false,
99
+ warnings: [],
121
100
  };
122
101
  }
123
102
  /**
@@ -127,48 +106,89 @@ export function disabledOtelConfig() {
127
106
  * signal (OTel env spec).
128
107
  */
129
108
  function exportersFromEnv(env) {
109
+ const warnings = [];
130
110
  const base = env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
131
- const traces = env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT?.trim();
132
- const metrics = env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT?.trim();
133
- const logs = env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT?.trim();
134
- const protocol = protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL);
135
111
  const headers = parseOtelHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
136
- if (nonEmpty(base)) {
137
- return [{ url: stripSignalPath(base), headers, protocol }];
112
+ const shared = protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL, "OTEL_EXPORTER_OTLP_PROTOCOL");
113
+ if (shared.warning !== undefined) {
114
+ warnings.push(shared.warning);
115
+ }
116
+ const traces = signalExporter(env, "traces", "TRACES", base, headers, shared.protocol, warnings);
117
+ const metrics = signalExporter(env, "metrics", "METRICS", base, headers, shared.protocol, warnings);
118
+ const logs = signalExporter(env, "logs", "LOGS", base, headers, shared.protocol, warnings);
119
+ const list = [traces, metrics, logs].filter((exporter) => exporter !== undefined);
120
+ if (list.length === 3 &&
121
+ list.every((exporter) => exporter.literalUrl !== true &&
122
+ exporter.url === list[0]?.url &&
123
+ exporter.protocol === list[0]?.protocol)) {
124
+ return {
125
+ exporters: [{ url: list[0].url, headers, protocol: list[0].protocol }],
126
+ warnings,
127
+ };
128
+ }
129
+ return { exporters: list, warnings };
130
+ }
131
+ function signalExporter(env, signal, envName, base, headers, sharedProtocol, warnings) {
132
+ if (signalExporterOff(env, envName)) {
133
+ return undefined;
138
134
  }
139
- const out = [];
140
- pushSignalExporter(out, traces, "traces", headers, protocol);
141
- pushSignalExporter(out, metrics, "metrics", headers, protocol);
142
- pushSignalExporter(out, logs, "logs", headers, protocol);
143
- return out;
144
- }
145
- function pushSignalExporter(out, raw, signal, headers, protocol) {
146
- if (!nonEmpty(raw)) {
147
- return;
135
+ const specific = env[`OTEL_EXPORTER_OTLP_${envName}_ENDPOINT`]?.trim();
136
+ const protocolEnv = env[`OTEL_EXPORTER_OTLP_${envName}_PROTOCOL`];
137
+ const chosen = protocolEnv !== undefined && protocolEnv.trim().length > 0
138
+ ? protocolFromEnv(protocolEnv, `OTEL_EXPORTER_OTLP_${envName}_PROTOCOL`)
139
+ : { protocol: sharedProtocol, warning: undefined };
140
+ if (chosen.warning !== undefined && !warnings.includes(chosen.warning)) {
141
+ warnings.push(chosen.warning);
142
+ }
143
+ if (nonEmpty(specific)) {
144
+ return {
145
+ url: specific,
146
+ headers,
147
+ protocol: chosen.protocol,
148
+ signals: [signal],
149
+ literalUrl: true,
150
+ };
151
+ }
152
+ if (!nonEmpty(base)) {
153
+ return undefined;
148
154
  }
149
- out.push({
150
- url: stripSignalPath(raw),
155
+ return {
156
+ url: stripSignalPath(base),
151
157
  headers,
152
- protocol,
158
+ protocol: chosen.protocol,
153
159
  signals: [signal],
154
- });
155
- }
156
- function withEnvHeaders(exporter, env) {
157
- const envHeaders = parseOtelHeaders(env.OTEL_EXPORTER_OTLP_HEADERS);
158
- return {
159
- url: stripSignalPath(exporter.url),
160
- headers: { ...envHeaders, ...exporter.headers },
161
- protocol: exporter.protocol ?? protocolFromEnv(env.OTEL_EXPORTER_OTLP_PROTOCOL),
162
- signals: exporter.signals,
163
160
  };
164
161
  }
165
- function protocolFromEnv(raw) {
162
+ function protocolFromEnv(raw, name) {
166
163
  const v = raw?.trim().toLowerCase();
167
164
  if (v === "http/json" || v === "json") {
168
- return "http/json";
165
+ return { protocol: "http/json", warning: undefined };
166
+ }
167
+ if (v === "grpc") {
168
+ return {
169
+ protocol: "http/protobuf",
170
+ warning: `${name}=grpc is unsupported; using http/protobuf`,
171
+ };
172
+ }
173
+ return { protocol: "http/protobuf", warning: undefined };
174
+ }
175
+ function sdkDisabled(env) {
176
+ const raw = env.OTEL_SDK_DISABLED?.trim().toLowerCase();
177
+ return raw === "true" || raw === "1";
178
+ }
179
+ function signalExporterOff(env, signal) {
180
+ return env[`OTEL_${signal}_EXPORTER`]?.trim().toLowerCase() === "none";
181
+ }
182
+ function metricExportInterval(env) {
183
+ const raw = env.OTEL_METRIC_EXPORT_INTERVAL?.trim();
184
+ if (raw === undefined || raw.length === 0) {
185
+ return undefined;
186
+ }
187
+ const value = Number(raw);
188
+ if (!Number.isFinite(value) || value <= 0) {
189
+ return undefined;
169
190
  }
170
- // Default protobuf — matches Cursor enterprise OTLP/HTTP. grpc unsupported.
171
- return "http/protobuf";
191
+ return value;
172
192
  }
173
193
  function metricsTemporalityFromEnv(raw) {
174
194
  const value = raw?.trim().toLowerCase();
@@ -184,58 +204,19 @@ function metricsTemporalityFromEnv(raw) {
184
204
  return { temporality: "delta", unrecognized: raw };
185
205
  }
186
206
  }
187
- function resolveMetrics(value, env) {
188
- const signal = resolveSignal(value);
189
- if (signal === false) {
190
- return false;
191
- }
192
- const parsed = metricsTemporalityFromEnv(env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE);
193
- return {
194
- ...signal,
195
- temporality: parsed.temporality,
196
- unrecognizedTemporality: parsed.unrecognized,
197
- };
198
- }
199
- function resolveSignal(value) {
200
- if (value === false) {
201
- return false;
202
- }
203
- if (value === true || value === undefined) {
204
- return {};
207
+ function resolveLogs(env, warnings) {
208
+ const raw = env.OTEL_LOGS_EXPORTER?.trim().toLowerCase();
209
+ if (raw === "console") {
210
+ warnings.push("OTEL_LOGS_EXPORTER=console does not enable OTLP logs. Set otlp to export logs.");
205
211
  }
206
- return value;
207
- }
208
- function resolveLogs(value, env) {
209
- if (value === false) {
212
+ if (raw !== "otlp") {
210
213
  return false;
211
214
  }
212
- const envPrompts = env.OTEL_LOG_USER_PROMPTS === "1";
213
- const envTools = env.OTEL_LOG_TOOL_CONTENT === "1";
214
- if (value === true) {
215
- return { userPrompts: envPrompts, toolContent: envTools };
216
- }
217
- if (value === undefined) {
218
- // Match OTel: unset / empty / `none` means logs off. Any other
219
- // `OTEL_LOGS_EXPORTER` value (e.g. `otlp`) opts logs on.
220
- if (!envPrompts && !envTools && !logsExporterOptIn(env)) {
221
- return false;
222
- }
223
- return { userPrompts: envPrompts, toolContent: envTools };
224
- }
225
215
  return {
226
- userPrompts: value.userPrompts ?? envPrompts,
227
- toolContent: value.toolContent ?? envTools,
216
+ userPrompts: env.OTEL_LOG_USER_PROMPTS === "1",
217
+ toolContent: env.OTEL_LOG_TOOL_CONTENT === "1",
228
218
  };
229
219
  }
230
- /** `OTEL_LOGS_EXPORTER=none` (or unset) must not enable log export. */
231
- function logsExporterOptIn(env) {
232
- const raw = env.OTEL_LOGS_EXPORTER?.trim().toLowerCase();
233
- return raw !== undefined && raw.length > 0 && raw !== "none";
234
- }
235
- function stableConfigKey(def) {
236
- const { __agentServe: _brand, ...rest } = def;
237
- return stableJson(rest);
238
- }
239
220
  /** Canonical JSON with sorted keys, so object key order does not change the result. */
240
221
  export function stableJson(value) {
241
222
  if (value === null || typeof value !== "object") {
@@ -0,0 +1,9 @@
1
+ import { type Context } from "@opentelemetry/api";
2
+ import type { SpanProcessor } from "@opentelemetry/sdk-trace-base";
3
+ /** Bind the BDK session id onto a context. The value does not propagate. */
4
+ export declare function withConversationId(parent: Context, sessionId: string): Context;
5
+ /** Session id for the active turn, when this process set one. */
6
+ export declare function currentConversationId(): string | undefined;
7
+ /** Copy the session id onto a span that does not already set it. */
8
+ export declare function conversationIdSpanProcessor(): SpanProcessor;
9
+ //# sourceMappingURL=conversation-span-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-span-processor.d.ts","sourceRoot":"","sources":["../../../src/internal/otel/conversation-span-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAQ,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAKzE,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAG1D;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,IAAI,aAAa,CAoB3D"}
@@ -0,0 +1,34 @@
1
+ import { context, createContextKey } from "@opentelemetry/api";
2
+ const CONVERSATION_ID_ATTRIBUTE = "cursor.conversation.id";
3
+ const conversationIdKey = createContextKey(CONVERSATION_ID_ATTRIBUTE);
4
+ /** Bind the BDK session id onto a context. The value does not propagate. */
5
+ export function withConversationId(parent, sessionId) {
6
+ return parent.setValue(conversationIdKey, sessionId);
7
+ }
8
+ /** Session id for the active turn, when this process set one. */
9
+ export function currentConversationId() {
10
+ const value = context.active().getValue(conversationIdKey);
11
+ return typeof value === "string" && value !== "" ? value : undefined;
12
+ }
13
+ /** Copy the session id onto a span that does not already set it. */
14
+ export function conversationIdSpanProcessor() {
15
+ return {
16
+ onStart(span, parentContext) {
17
+ if (span.attributes[CONVERSATION_ID_ATTRIBUTE] !== undefined) {
18
+ return;
19
+ }
20
+ const value = parentContext.getValue(conversationIdKey);
21
+ if (typeof value !== "string" || value === "") {
22
+ return;
23
+ }
24
+ span.setAttribute(CONVERSATION_ID_ATTRIBUTE, value);
25
+ },
26
+ onEnd() { },
27
+ shutdown() {
28
+ return Promise.resolve();
29
+ },
30
+ forceFlush() {
31
+ return Promise.resolve();
32
+ },
33
+ };
34
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Bake-time OpenTelemetry providers. Discovery installs them before other
3
+ * agent modules load. Real OTLP exporters attach from `OTEL_*` variables
4
+ * at the first secret load.
5
+ */
6
+ import { type OtelRuntimeHandle } from "./runtime.js";
7
+ /**
8
+ * Register a mapper that runs when secrets load, before exporters are built.
9
+ * Factory agents use this to copy their own secret names into `OTEL_*`.
10
+ * Not exported from `@cursor/bdk/otel`.
11
+ */
12
+ export declare function contributeOtelEnv(contribute: (env: NodeJS.ProcessEnv) => void): void;
13
+ export declare function writeDatadogTraceEnv(env: NodeJS.ProcessEnv, input: {
14
+ apiKey: string;
15
+ serviceName: string;
16
+ tracesUrl: string;
17
+ environment: string;
18
+ }): void;
19
+ /** Resolves at the first secret load. Local serve resolves it at start. */
20
+ export declare function otelSecretsReady(): Promise<void>;
21
+ /**
22
+ * Install global trace, metric, and log providers before `agent.ts` loads.
23
+ * A second call does nothing. BDK shuts down a provider only when its
24
+ * registration installed that provider. If another SDK already owns a
25
+ * global, that provider stays and the new one is shut down.
26
+ */
27
+ export declare function installCustomerOtel(): void;
28
+ export interface NotifyOtelSecretsInput {
29
+ log: (line: string) => void;
30
+ egressDomains?: readonly string[];
31
+ env?: NodeJS.ProcessEnv;
32
+ defaultServiceName?: string;
33
+ }
34
+ /**
35
+ * Settle resource promises and attach OTLP exporters from the current env.
36
+ * Later calls keep the same URLs. Exporter headers are read on each export.
37
+ */
38
+ export declare function notifyOtelSecretsReady(input: NotifyOtelSecretsInput): void;
39
+ /**
40
+ * The runtime `serve` uses after discovery installs the providers.
41
+ * HTTP spans, the collector, and flush stay on one path.
42
+ */
43
+ export declare function createCustomerOtelRuntime(log: (line: string) => void, options?: {
44
+ egressDomains?: readonly string[];
45
+ defaultServiceName?: string;
46
+ }): OtelRuntimeHandle;
47
+ export declare function forceFlushGlobalOtel(): Promise<void>;
48
+ /** True when agent code replaced a provider this process installed. */
49
+ export declare function otelProvidersReplaced(): boolean;
50
+ /** Test isolation. Settles pending resource promises so a flush cannot wait forever. */
51
+ export declare function resetCustomerOtelForTests(): Promise<void>;
52
+ //# sourceMappingURL=customer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../../src/internal/otel/customer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmDH,OAAO,EAIL,KAAK,iBAAiB,EAIvB,MAAM,cAAc,CAAC;AAoEtB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,IAAI,GAAG,IAAI,CAEpF;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GACA,IAAI,CA0BN;AA2DD,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6E1C;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CA6C1E;AAyED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC3B,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,iBAAiB,CAyCnB;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM1D;AA2CD,uEAAuE;AACvE,wBAAgB,qBAAqB,IAAI,OAAO,CAU/C;AAWD,wFAAwF;AACxF,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB/D"}