@cursor/bdk 0.2.25 → 0.2.26
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.
- package/AGENTS.md +3 -18
- package/CHANGELOG.md +3 -0
- package/dist/artifacts.d.ts +1 -1
- package/dist/artifacts.js +1 -1
- package/dist/bin/agent-serve.js +25 -21
- package/dist/channels/bitbucket/api.d.ts +2 -2
- package/dist/channels/bitbucket/api.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +2 -2
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/cursor-account.d.ts +7 -0
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +22 -5
- package/dist/channels/github/github-channel.js +1 -1
- package/dist/channels/github/replay.d.ts +1 -1
- package/dist/channels/github/replay.d.ts.map +1 -1
- package/dist/channels/gitlab/api.d.ts +2 -2
- package/dist/channels/gitlab/api.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/issues/issues-channel.js +1 -1
- package/dist/channels/origin/api.d.ts +4 -4
- package/dist/channels/origin/api.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +1 -1
- package/dist/channels/origin/origin-webhook.d.ts +3 -3
- package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts +2 -2
- package/dist/channels/pagerduty/pagerduty-webhook.d.ts.map +1 -1
- package/dist/channels/runs/runs-channel.js +1 -1
- package/dist/channels/slack/agentic-delivery.d.ts +2 -1
- package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
- package/dist/channels/slack/agentic-delivery.js +6 -10
- package/dist/channels/slack/agentic-signals.d.ts +2 -7
- package/dist/channels/slack/agentic-signals.d.ts.map +1 -1
- package/dist/channels/slack/agentic-signals.js +4 -3
- package/dist/channels/slack/api.d.ts +1 -0
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +3 -0
- package/dist/channels/slack/constants.d.ts +2 -0
- package/dist/channels/slack/constants.d.ts.map +1 -1
- package/dist/channels/slack/constants.js +2 -0
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +3 -2
- package/dist/channels/slack/dispatch.d.ts +9 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +3 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +24 -20
- package/dist/channels/slack/interactive.d.ts +2 -0
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +1 -0
- package/dist/channels/slack/live-delivery.d.ts +3 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +5 -0
- package/dist/channels/slack/reply-options.d.ts +9 -0
- package/dist/channels/slack/reply-options.d.ts.map +1 -1
- package/dist/channels/slack/reply-options.js +31 -1
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +7 -0
- package/dist/channels/slack/stream.d.ts +5 -1
- package/dist/channels/slack/stream.d.ts.map +1 -1
- package/dist/channels/slack/types.d.ts +29 -0
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels.d.ts +1 -1
- package/dist/channels.js +1 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/assets/{app.BjS1QEI4.js → app.BITbgXMP.js} +4 -4
- package/dist/docs/assets/changelog.md.sdD6ctqK.js +1 -0
- package/dist/docs/assets/changelog.md.sdD6ctqK.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.B45uCZp9.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BOuvjb5Y.js → VPLocalSearchBox.3qo4-bX9.js} +2 -2
- package/dist/docs/assets/chunks/{arc.3WR6Jf-y.js → arc.CTrZocKU.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Dtb6Dqh6.js → architectureDiagram-Q4EWVU46.BkgIqxrv.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.BUyrgrZE.js → baseUniq.5w0JfVgo.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BVLV_voZ.js → blockDiagram-DXYQGD6D.BVLtPjQc.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.jXJ1q70M.js → c4Diagram-AHTNJAMY.CQ7neZTW.js} +1 -1
- package/dist/docs/assets/chunks/channel.Cv2w64wj.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.zz1SMBvK.js → chunk-4BX2VUAB.D-hJ7uKM.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.CzYKuv3I.js → chunk-4TB4RGXK.RBYX5ywX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.C7_tcJZD.js → chunk-55IACEB6.Br05HoEb.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DeTwQPVO.js → chunk-EDXVE4YY.BD_7QS60.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DhMTl7ut.js → chunk-FMBD7UC4.BOPnMabX.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Me7f5hEp.js → chunk-OYMX7WX6.DmGIdP8i.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D0E0Bb6g.js → chunk-QZHKN3VN.CGHmolCB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CdOOBFYL.js → chunk-YZCP3GAM.C_Uhs25v.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CtO2atCr.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CtO2atCr.js +1 -0
- package/dist/docs/assets/chunks/clone.hfsCtgP4.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BNbGESzN.js → cose-bilkent-S5V4N54A.DsU6xpcZ.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.zU7Lu_xJ.js → dagre-KV5264BT.BqQLDcoU.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B9qOdE5h.js → diagram-5BDNPKRD.Cgv8uUNF.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D8X-sf77.js → diagram-G4DWMVQ6.BXHPSXh_.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.CW7MvMlE.js → diagram-MMDJMWI5.CgJzo8f_.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.J489G0Nd.js → diagram-TYMM5635.CfiN6lgT.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BkW7tGfs.js → erDiagram-SMLLAGMA.8n_hHzAd.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.jc9iWORD.js → flowDiagram-DWJPFMVM.B2pb1Dv_.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B-UQfd9E.js → ganttDiagram-T4ZO3ILL.BFih4ucI.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js → gitGraphDiagram-UUTBAWPF.CqZ8PTl8.js} +1 -1
- package/dist/docs/assets/chunks/{graph.C5IB6_e_.js → graph.0ufsI9gu.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DwF0-c8L.js → infoDiagram-42DDH7IO.BkPRFww4.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.fBaTqzE7.js → ishikawaDiagram-UXIWVN3A.DCRK-cVX.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CM8gDVJy.js → journeyDiagram-VCZTEJTY.BFyAJo33.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.YiD1p0LB.js → kanban-definition-6JOO6SKY.CmA2SoGc.js} +1 -1
- package/dist/docs/assets/chunks/{layout.6Um-DVJT.js → layout.CYY-CbMr.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DcTeg4Hn.js → linear.DeeDV4Oq.js} +1 -1
- package/dist/docs/assets/chunks/{min.CIxkY8Fe.js → min.BL3XTBN2.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.D4QM_voR.js → mindmap-definition-QFDTVHPH.BcbY-G6H.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.nmB309G1.js → pieDiagram-DEJITSTG.dzDcQnPE.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D1HtZR3C.js → quadrantDiagram-34T5L4WZ.RxR0m5iK.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZgQWob-.js → requirementDiagram-MS252O5E.DflaXb6Q.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DtiBfU-P.js → sankeyDiagram-XADWPNL6.BteLKQAe.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cld4gDSt.js → sequenceDiagram-FGHM5R23.BD8jM8oz.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DatP823_.js → stateDiagram-FHFEXIEX.C8SBkbPH.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BLz7Qyo3.js +1 -0
- package/dist/docs/assets/chunks/{theme.D5jbBys7.js → theme.DiViIOLe.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.DwQLI2be.js → timeline-definition-GMOUNBTQ.D64XF5dV.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.a5yMfnsa.js → vennDiagram-DHZGUBPP.CwmeYan-.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.B-FXivgT.js → wardley-RL74JXVD.DmAlXlpu.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Dz--Opy3.js → wardleyDiagram-NUSXRM2D.5VJ2-5K0.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Dl8w8TeT.js → xychartDiagram-5P7HB3ND.Cl6_fZVC.js} +1 -1
- package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.js → guides_hooks.md.B2XfGX50.js} +7 -3
- package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.js → guides_mcp-oauth.md.Cxq2TxBB.js} +3 -3
- package/dist/docs/assets/{guides_mcp-oauth.md.BM_eFC0L.lean.js → guides_mcp-oauth.md.Cxq2TxBB.lean.js} +1 -1
- package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.js +37 -0
- package/dist/docs/assets/guides_opentelemetry.md.D4wO7_8v.lean.js +1 -0
- package/dist/docs/assets/{guides_slack.md.Bn-WupSE.js → guides_slack.md.ClIyi7FI.js} +8 -3
- package/dist/docs/assets/{guides_slack.md.Bn-WupSE.lean.js → guides_slack.md.ClIyi7FI.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.IplwL25I.js → reference_agent-config.md.CGSx8COP.js} +6 -2
- package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CGSx8COP.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.Bxaa020x.js → reference_channels.md.CNNIS6K7.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.js → reference_hooks.md.CROr0QgC.js} +13 -7
- package/dist/docs/assets/{reference_hooks.md.B1jq3oGl.lean.js → reference_hooks.md.CROr0QgC.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.js → reference_schedules.md.BqWnJES4.js} +3 -3
- package/dist/docs/assets/reference_sessions.md.Bi6lHttM.js +22 -0
- package/dist/docs/assets/reference_sessions.md.Bi6lHttM.lean.js +1 -0
- package/dist/docs/assets/{reference_skills.md.C2GWh7g8.js → reference_skills.md.Ckddg6KX.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.-6pypsWt.js → reference_tools.md.Bo0UfT0a.js} +1 -1
- package/dist/docs/assets/{style.nMsabY-V.css → style.B9o0luvp.css} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/changelog.html +60 -0
- package/dist/docs/changelog.md +86 -0
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/evals.html +37 -37
- package/dist/docs/guides/agent-to-agent.html +37 -37
- package/dist/docs/guides/bitbucket.html +37 -37
- package/dist/docs/guides/cloud-agents.html +37 -37
- package/dist/docs/guides/convert-automation.html +37 -37
- package/dist/docs/guides/export-grokbot.html +37 -37
- package/dist/docs/guides/github.html +37 -37
- package/dist/docs/guides/gitlab.html +37 -37
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/hooks.html +45 -41
- package/dist/docs/guides/hooks.md +7 -3
- package/dist/docs/guides/improve.html +37 -37
- package/dist/docs/guides/jev.html +37 -37
- package/dist/docs/guides/mcp-oauth.html +39 -39
- package/dist/docs/guides/mcp-oauth.md +12 -0
- package/dist/docs/guides/migrate.html +37 -37
- package/dist/docs/guides/opentelemetry.html +62 -70
- package/dist/docs/guides/opentelemetry.md +149 -179
- package/dist/docs/guides/pagerduty.html +37 -37
- package/dist/docs/guides/slack.html +44 -39
- package/dist/docs/guides/slack.md +41 -0
- package/dist/docs/guides/webhooks.html +37 -37
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +37 -37
- package/dist/docs/index.html +37 -37
- package/dist/docs/llms-full.txt +385 -193
- package/dist/docs/llms.txt +2 -1
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +42 -38
- package/dist/docs/reference/agent-config.md +21 -1
- package/dist/docs/reference/artifacts.html +37 -37
- package/dist/docs/reference/channels.html +38 -38
- package/dist/docs/reference/channels.md +5 -1
- package/dist/docs/reference/cli.html +37 -37
- package/dist/docs/reference/connections.html +37 -37
- package/dist/docs/reference/evals.html +37 -37
- package/dist/docs/reference/extensions.html +37 -37
- package/dist/docs/reference/hooks.html +49 -43
- package/dist/docs/reference/hooks.md +10 -5
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/memory.html +37 -37
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +40 -40
- package/dist/docs/reference/sessions.html +58 -37
- package/dist/docs/reference/sessions.md +46 -1
- package/dist/docs/reference/skills.html +40 -40
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +39 -39
- package/dist/docs/reference/tools.md +3 -3
- package/dist/docs/templates/agentic-owners.html +37 -37
- package/dist/docs/templates/grokbot-agents.html +37 -37
- package/dist/docs/templates/security-reviewer.html +37 -37
- package/dist/docs/templates/thermo-quality-review.html +37 -37
- package/dist/docs/templates/thermo-review.html +37 -37
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/extension.js +15 -15
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -1
- package/dist/extensions/cursor-grokbot-agents/extension.js +7 -3
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -1
- package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +1 -1
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
- package/dist/extensions/improve/extension.js +1 -1
- package/dist/extensions/jev/extension.js +2 -2
- package/dist/extensions/jev/tools/evaluate.js +3 -3
- package/dist/extensions/slack-communication/extension.js +1 -1
- package/dist/extensions/slack-communication/tools/delete-message.js +1 -1
- package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -1
- package/dist/extensions/slack-communication/tools/edit-message.js +3 -6
- package/dist/extensions/slack-communication/tools/post-card.js +1 -1
- package/dist/extensions/slack-communication/tools/post-file.js +1 -1
- package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -1
- package/dist/extensions/slack-communication/tools/post-update.js +3 -6
- package/dist/extensions/slack-communication/tools/react.js +1 -1
- package/dist/extensions/slack-communication/tools/set-status.js +1 -1
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/internal/as-of.d.ts +2 -0
- package/dist/internal/as-of.d.ts.map +1 -1
- package/dist/internal/as-of.js +2 -0
- package/dist/internal/builtin-tools/reminders.js +1 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +18 -10
- package/dist/internal/continuation.d.ts +3 -0
- package/dist/internal/continuation.d.ts.map +1 -0
- package/dist/internal/continuation.js +1 -0
- package/dist/internal/conversation-mirror.d.ts +5 -0
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +12 -1
- package/dist/internal/convert-automation/convert-workflow.js +1 -1
- package/dist/internal/convert-grokbot/answers.d.ts.map +1 -1
- package/dist/internal/convert-grokbot/answers.js +10 -8
- package/dist/internal/convert-grokbot/recipe.d.ts +1 -1
- package/dist/internal/convert-grokbot/recipe.d.ts.map +1 -1
- package/dist/internal/convert-grokbot/recipe.js +1 -1
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +2 -0
- package/dist/internal/cursor/backend-client.d.ts +8 -3
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +8 -3
- package/dist/internal/cursor/credentials.d.ts +2 -2
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.d.ts +6 -2
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +15 -6
- package/dist/internal/deferred-channel-session.d.ts +5 -4
- package/dist/internal/deferred-channel-session.d.ts.map +1 -1
- package/dist/internal/deferred-channel-session.js +6 -4
- package/dist/internal/deploy-client.d.ts +5 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -3
- package/dist/internal/deploy-manifest.js +2 -2
- package/dist/internal/describe-error.d.ts +2 -0
- package/dist/internal/describe-error.d.ts.map +1 -1
- package/dist/internal/describe-error.js +2 -0
- package/dist/internal/discovery/context.d.ts.map +1 -1
- package/dist/internal/discovery/context.js +1 -2
- package/dist/internal/discovery/cursor-plugin.js +8 -8
- package/dist/internal/discovery/extensions.js +15 -8
- package/dist/internal/discovery/info.d.ts +2 -2
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +6 -9
- package/dist/internal/discovery/instrumentation.d.ts +10 -0
- package/dist/internal/discovery/instrumentation.d.ts.map +1 -0
- package/dist/internal/discovery/instrumentation.js +29 -0
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +4 -4
- package/dist/internal/discovery/project-public.d.ts +16 -0
- package/dist/internal/discovery/project-public.d.ts.map +1 -0
- package/dist/internal/discovery/project-public.js +54 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +13 -3
- package/dist/internal/discovery/services.d.ts +5 -4
- package/dist/internal/discovery/services.d.ts.map +1 -1
- package/dist/internal/discovery/services.js +12 -6
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +1 -0
- package/dist/internal/factory-resource-channel.d.ts +1 -1
- package/dist/internal/factory-resource-channel.d.ts.map +1 -1
- package/dist/internal/filesystem/nearest.d.ts +1 -0
- package/dist/internal/filesystem/nearest.d.ts.map +1 -1
- package/dist/internal/filesystem/nearest.js +1 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +1 -1
- package/dist/internal/handleAgentServeTrigger.d.ts +10 -0
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -1
- package/dist/internal/handleAgentServeTrigger.js +3 -0
- package/dist/internal/hmac-secret-values.d.ts +1 -1
- package/dist/internal/hmac-secret-values.d.ts.map +1 -1
- package/dist/internal/host-otel.d.ts +1 -1
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/host-otel.js +5 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +6 -2
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -0
- package/dist/internal/ids.d.ts +8 -0
- package/dist/internal/ids.d.ts.map +1 -1
- package/dist/internal/ids.js +20 -0
- package/dist/internal/init-scaffold.js +1 -1
- package/dist/internal/interview/agent-questions.d.ts +1 -1
- package/dist/internal/interview/agent-questions.d.ts.map +1 -1
- package/dist/internal/interview/agent-questions.js +1 -1
- package/dist/internal/interview/question.d.ts +2 -2
- package/dist/internal/interview/question.d.ts.map +1 -1
- package/dist/internal/interview/question.js +2 -2
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +3 -7
- package/dist/internal/mcp-endpoint.d.ts +16 -4
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +18 -6
- package/dist/internal/mcp-host.d.ts +9 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +15 -0
- package/dist/internal/otel/collector.d.ts +5 -0
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +24 -5
- package/dist/internal/otel/config.d.ts +31 -21
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +121 -140
- package/dist/internal/otel/conversation-span-processor.d.ts +9 -0
- package/dist/internal/otel/conversation-span-processor.d.ts.map +1 -0
- package/dist/internal/otel/conversation-span-processor.js +34 -0
- package/dist/internal/otel/customer.d.ts +52 -0
- package/dist/internal/otel/customer.d.ts.map +1 -0
- package/dist/internal/otel/customer.js +727 -0
- package/dist/internal/otel/runtime.d.ts +12 -16
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +30 -234
- package/dist/internal/otel-env.d.ts +6 -0
- package/dist/internal/otel-env.d.ts.map +1 -0
- package/dist/internal/otel-env.js +5 -0
- package/dist/internal/reminder-runner.d.ts +9 -4
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +12 -10
- package/dist/internal/reminder-schedule.d.ts +1 -0
- package/dist/internal/reminder-schedule.d.ts.map +1 -1
- package/dist/internal/reminder-schedule.js +1 -0
- package/dist/internal/sdk-runner.d.ts +2 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +149 -13
- package/dist/internal/server.d.ts +4 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +25 -24
- package/dist/internal/session-engine.d.ts +27 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +149 -21
- package/dist/internal/slack-provision-client.js +1 -1
- package/dist/internal/store-api-protocol.d.ts +1 -1
- package/dist/internal/store-api-protocol.d.ts.map +1 -1
- package/dist/internal/store-api-protocol.js +1 -1
- package/dist/internal/update-check.d.ts +2 -2
- package/dist/internal/update-check.d.ts.map +1 -1
- package/dist/internal/update-check.js +3 -3
- package/dist/internal/zod3-datetime.d.ts +12 -0
- package/dist/internal/zod3-datetime.d.ts.map +1 -0
- package/dist/internal/zod3-datetime.js +17 -0
- package/dist/otel-public.d.ts +2 -3
- package/dist/otel-public.d.ts.map +1 -1
- package/dist/otel-public.js +2 -2
- package/dist/otel.d.ts +3 -102
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +61 -97
- package/dist/playground/assets/index-CyPkf2y7.css +1 -0
- package/dist/playground/assets/{index-CHk6O92d.js → index-DpbzbqFY.js} +38 -38
- package/dist/playground/index.html +2 -2
- package/dist/public-deprecated.d.ts +36 -0
- package/dist/public-deprecated.d.ts.map +1 -0
- package/dist/public-deprecated.js +39 -0
- package/dist/tools.d.ts +3 -3
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +1 -1
- package/dist/types.d.ts +221 -90
- package/dist/types.d.ts.map +1 -1
- package/docs/changelog.md +91 -0
- package/docs/guides/hooks.md +7 -3
- package/docs/guides/mcp-oauth.md +12 -0
- package/docs/guides/opentelemetry.md +149 -184
- package/docs/guides/slack.md +41 -0
- package/docs/reference/agent-config.md +21 -1
- package/docs/reference/channels.md +5 -1
- package/docs/reference/hooks.md +10 -5
- package/docs/reference/sessions.md +46 -1
- package/docs/reference/tools.md +3 -3
- package/package.json +31 -7
- package/schemas/grokbot-answers.schema.json +11 -0
- package/skills/framework-map/SKILL.md +2 -1
- package/skills/otel/SKILL.md +28 -48
- package/templates/code-wiki/evals/wiki.eval.ts +2 -2
- package/dist/docs/assets/chunks/@localSearchIndexroot.oGqZumnJ.js +0 -1
- package/dist/docs/assets/chunks/channel.Dt4aweTm.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DGUHZs6j.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DGUHZs6j.js +0 -1
- package/dist/docs/assets/chunks/clone.DWf3k0Z0.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C0571l4D.js +0 -1
- package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.js +0 -45
- package/dist/docs/assets/guides_opentelemetry.md.DBQtp7_V.lean.js +0 -1
- package/dist/docs/assets/reference_sessions.md.C8FXuGwk.js +0 -1
- package/dist/docs/assets/reference_sessions.md.C8FXuGwk.lean.js +0 -1
- package/dist/playground/assets/index-BdMwybMt.css +0 -1
- package/templates/grokbot-agents/.gitignore +0 -4
- package/templates/security-help/.gitignore +0 -4
- /package/dist/docs/assets/{guides_hooks.md.Bfj0pK91.lean.js → guides_hooks.md.B2XfGX50.lean.js} +0 -0
- /package/dist/docs/assets/{reference_channels.md.Bxaa020x.lean.js → reference_channels.md.CNNIS6K7.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.03Ryy9ca.lean.js → reference_schedules.md.BqWnJES4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.C2GWh7g8.lean.js → reference_skills.md.Ckddg6KX.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.-6pypsWt.lean.js → reference_tools.md.Bo0UfT0a.lean.js} +0 -0
package/dist/otel.d.ts
CHANGED
|
@@ -1,106 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* ```ts
|
|
6
|
-
* import { defineOtel } from "@cursor/bdk/internal/otel";
|
|
7
|
-
*
|
|
8
|
-
* export default defineOtel({
|
|
9
|
-
* serviceName: "cursor",
|
|
10
|
-
* exporters: [{ url: "https://otel.example.com", protocol: "http/protobuf" }],
|
|
11
|
-
* });
|
|
12
|
-
*
|
|
13
|
-
* export default defineOtel(() => resolveMyOtelConfig());
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Internal only: Cursor factory agents. Not a public Agent SDK export.
|
|
17
|
-
*/
|
|
18
|
-
export type OtelSignal = "traces" | "metrics" | "logs";
|
|
19
|
-
/** One OTLP destination. Multiple entries fan out. */
|
|
20
|
-
export interface OtelExporterConfig {
|
|
21
|
-
/**
|
|
22
|
-
* OTLP base URL (`https://otel.example.com`) or signal path
|
|
23
|
-
* (`…/v1/traces`). Signal paths are stripped to the base; the runtime
|
|
24
|
-
* re-appends `/v1/{signal}`.
|
|
25
|
-
*/
|
|
26
|
-
url: string;
|
|
27
|
-
/** Extra HTTP headers (merged with `OTEL_EXPORTER_OTLP_HEADERS`). */
|
|
28
|
-
headers?: Record<string, string>;
|
|
29
|
-
/**
|
|
30
|
-
* Wire format. Default `http/protobuf` (matches Cursor enterprise OTLP).
|
|
31
|
-
* Use `http/json` for collectors that only accept JSON.
|
|
32
|
-
*/
|
|
33
|
-
protocol?: "http/json" | "http/protobuf";
|
|
34
|
-
/**
|
|
35
|
-
* Restrict this destination to these signals. Default: all enabled
|
|
36
|
-
* signals. Set by env when per-signal `OTEL_EXPORTER_OTLP_*_ENDPOINT`
|
|
37
|
-
* vars differ.
|
|
38
|
-
*/
|
|
39
|
-
signals?: OtelSignal[];
|
|
40
|
-
}
|
|
41
|
-
export interface OtelTraceOptions {
|
|
42
|
-
/** Sample ratio in `[0, 1]`. Default `1`. */
|
|
43
|
-
sampleRatio?: number;
|
|
44
|
-
}
|
|
45
|
-
export interface OtelMetricOptions {
|
|
46
|
-
/** Export interval in ms. Default `10000`. */
|
|
47
|
-
exportIntervalMillis?: number;
|
|
48
|
-
}
|
|
49
|
-
export interface OtelLogOptions {
|
|
50
|
-
/**
|
|
51
|
-
* Include user prompt text on log records / span events.
|
|
52
|
-
* Default false; also toggled by `OTEL_LOG_USER_PROMPTS=1`.
|
|
53
|
-
*/
|
|
54
|
-
userPrompts?: boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Include tool argument / result payloads and failure text (truncated).
|
|
57
|
-
* Default false; also `OTEL_LOG_TOOL_CONTENT=1`.
|
|
58
|
-
*/
|
|
59
|
-
toolContent?: boolean;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Authored / programmatic OTel config. Empty config still enables when
|
|
63
|
-
* standard `OTEL_EXPORTER_OTLP_*` env vars are set.
|
|
64
|
-
*/
|
|
65
|
-
export interface OtelConfig {
|
|
66
|
-
/**
|
|
67
|
-
* Resource `service.name`. Default: `OTEL_SERVICE_NAME` or `"cursor"`
|
|
68
|
-
* (same as enterprise export) so Agent SDK signals join org streams.
|
|
69
|
-
*/
|
|
70
|
-
serviceName?: string;
|
|
71
|
-
/** Resource `service.version`. */
|
|
72
|
-
serviceVersion?: string;
|
|
73
|
-
/** Extra resource attributes on every signal. */
|
|
74
|
-
resourceAttributes?: Record<string, string>;
|
|
75
|
-
/**
|
|
76
|
-
* OTLP destinations. Default: from `OTEL_EXPORTER_OTLP_ENDPOINT` /
|
|
77
|
-
* per-signal `*_TRACES_ENDPOINT` etc. Empty with no env = disabled.
|
|
78
|
-
*/
|
|
79
|
-
exporters?: OtelExporterConfig[];
|
|
80
|
-
/** Traces on/off or options. Default on. */
|
|
81
|
-
traces?: boolean | OtelTraceOptions;
|
|
82
|
-
/** Metrics on/off or options. Default on. */
|
|
83
|
-
metrics?: boolean | OtelMetricOptions;
|
|
84
|
-
/** Logs on/off or options. Default off (opt-in content). */
|
|
85
|
-
logs?: boolean | OtelLogOptions;
|
|
86
|
-
}
|
|
87
|
-
export type OtelDefinition = OtelConfig & {
|
|
88
|
-
readonly __agentServe: "otel";
|
|
89
|
-
};
|
|
90
|
-
/** Re-read authored config on each hosted request, after secrets load. */
|
|
91
|
-
export type OtelConfigFactory = () => OtelConfig;
|
|
92
|
-
/**
|
|
93
|
-
* Hidden factory on {@link OtelDefinition}. Not enumerable so
|
|
94
|
-
* `pickAuthoredOtel` compares the bake-time snapshot, not the thunk.
|
|
95
|
-
*/
|
|
96
|
-
export declare const OTEL_CONFIG_RESOLVE: symbol;
|
|
97
|
-
/**
|
|
98
|
-
* Author OpenTelemetry export under `agent/otel.ts`.
|
|
99
|
-
* Import from `@cursor/bdk/internal/otel`, not `@cursor/bdk`.
|
|
2
|
+
* W3C `traceparent` helpers for outbound calls.
|
|
3
|
+
* Set `OTEL_*` variables. There is no instrumentation file.
|
|
100
4
|
*/
|
|
101
|
-
export declare function defineOtel(config?: OtelConfig | OtelConfigFactory): OtelDefinition;
|
|
102
|
-
/** Invoke a `defineOtel(() => …)` factory, or return the static snapshot. */
|
|
103
|
-
export declare function resolveOtelDefinition(def: OtelConfig): OtelConfig;
|
|
104
5
|
export declare const TRACEPARENT_HEADER = "traceparent";
|
|
105
6
|
/** Cursor backend prefers this; `remoteSpanContextFromRequest` falls back to W3C. */
|
|
106
7
|
export declare const BACKEND_TRACEPARENT_HEADER = "backend-traceparent";
|
|
@@ -125,6 +26,6 @@ export declare function injectActiveTraceContext(headers: {
|
|
|
125
26
|
/** W3C `traceparent` for the active span, or undefined if none. */
|
|
126
27
|
export declare function activeTraceparent(): string | undefined;
|
|
127
28
|
export declare function instrumentedFetch(base?: typeof fetch): typeof fetch;
|
|
128
|
-
/** Idempotent. Safe to call
|
|
29
|
+
/** Idempotent. Safe to call on every serve. */
|
|
129
30
|
export declare function installOutboundFetchInstrumentation(): void;
|
|
130
31
|
//# sourceMappingURL=otel.d.ts.map
|
package/dist/otel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,GAAG,SAAS,CAOrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,GAAG,IAAI,CAWP;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAItD;AAoBD,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,OAAO,KAAa,GAAG,OAAO,KAAK,CAS1E;AAiED,+CAA+C;AAC/C,wBAAgB,mCAAmC,IAAI,IAAI,CAO1D"}
|
package/dist/otel.js
CHANGED
|
@@ -1,101 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* ```ts
|
|
6
|
-
* import { defineOtel } from "@cursor/bdk/internal/otel";
|
|
7
|
-
*
|
|
8
|
-
* export default defineOtel({
|
|
9
|
-
* serviceName: "cursor",
|
|
10
|
-
* exporters: [{ url: "https://otel.example.com", protocol: "http/protobuf" }],
|
|
11
|
-
* });
|
|
12
|
-
*
|
|
13
|
-
* export default defineOtel(() => resolveMyOtelConfig());
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Internal only: Cursor factory agents. Not a public Agent SDK export.
|
|
2
|
+
* W3C `traceparent` helpers for outbound calls.
|
|
3
|
+
* Set `OTEL_*` variables. There is no instrumentation file.
|
|
17
4
|
*/
|
|
18
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
19
6
|
import { context, trace } from "@opentelemetry/api";
|
|
20
|
-
import { brandDefinition } from "./internal/brand.js";
|
|
21
|
-
/**
|
|
22
|
-
* Hidden factory on {@link OtelDefinition}. Not enumerable so
|
|
23
|
-
* `pickAuthoredOtel` compares the bake-time snapshot, not the thunk.
|
|
24
|
-
*/
|
|
25
|
-
export const OTEL_CONFIG_RESOLVE = Symbol.for("anysphere.july.otel.configResolve");
|
|
26
|
-
/**
|
|
27
|
-
* Author OpenTelemetry export under `agent/otel.ts`.
|
|
28
|
-
* Import from `@cursor/bdk/internal/otel`, not `@cursor/bdk`.
|
|
29
|
-
*/
|
|
30
|
-
export function defineOtel(config = {}) {
|
|
31
|
-
const resolve = typeof config === "function" ? config : () => config;
|
|
32
|
-
const snapshot = resolve();
|
|
33
|
-
validateOtelConfig(snapshot);
|
|
34
|
-
const def = brandDefinition("otel", snapshot);
|
|
35
|
-
Object.defineProperty(def, OTEL_CONFIG_RESOLVE, {
|
|
36
|
-
value: resolve,
|
|
37
|
-
enumerable: false,
|
|
38
|
-
});
|
|
39
|
-
return def;
|
|
40
|
-
}
|
|
41
|
-
/** Invoke a `defineOtel(() => …)` factory, or return the static snapshot. */
|
|
42
|
-
export function resolveOtelDefinition(def) {
|
|
43
|
-
const resolve = def[OTEL_CONFIG_RESOLVE];
|
|
44
|
-
if (resolve === undefined) {
|
|
45
|
-
return def;
|
|
46
|
-
}
|
|
47
|
-
const next = resolve();
|
|
48
|
-
validateOtelConfig(next);
|
|
49
|
-
return next;
|
|
50
|
-
}
|
|
51
|
-
function validateOtelConfig(config) {
|
|
52
|
-
if (config.exporters !== undefined) {
|
|
53
|
-
for (const exporter of config.exporters) {
|
|
54
|
-
if (typeof exporter.url !== "string" || exporter.url.length === 0) {
|
|
55
|
-
throw new Error("defineOtel: exporters[].url must be a non-empty string");
|
|
56
|
-
}
|
|
57
|
-
if (exporter.protocol !== undefined &&
|
|
58
|
-
exporter.protocol !== "http/json" &&
|
|
59
|
-
exporter.protocol !== "http/protobuf") {
|
|
60
|
-
throw new Error('defineOtel: exporters[].protocol must be "http/json" or "http/protobuf"');
|
|
61
|
-
}
|
|
62
|
-
assertSignals(exporter.signals);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (config.resourceAttributes !== undefined) {
|
|
66
|
-
for (const [key, value] of Object.entries(config.resourceAttributes)) {
|
|
67
|
-
if (typeof value !== "string") {
|
|
68
|
-
throw new Error(`defineOtel: resourceAttributes.${key} must be a string`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
assertSampleRatio(config.traces);
|
|
73
|
-
}
|
|
74
|
-
function assertSignals(signals) {
|
|
75
|
-
if (signals === undefined) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (signals.length === 0) {
|
|
79
|
-
throw new Error("defineOtel: exporters[].signals must be non-empty");
|
|
80
|
-
}
|
|
81
|
-
for (const signal of signals) {
|
|
82
|
-
if (signal !== "traces" && signal !== "metrics" && signal !== "logs") {
|
|
83
|
-
throw new Error('defineOtel: exporters[].signals must be "traces" | "metrics" | "logs"');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
function assertSampleRatio(traces) {
|
|
88
|
-
if (traces === undefined || typeof traces === "boolean") {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const ratio = traces.sampleRatio;
|
|
92
|
-
if (ratio === undefined) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (!Number.isFinite(ratio) || ratio < 0 || ratio > 1) {
|
|
96
|
-
throw new Error("defineOtel: traces.sampleRatio must be in [0, 1]");
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
7
|
export const TRACEPARENT_HEADER = "traceparent";
|
|
100
8
|
/** Cursor backend prefers this; `remoteSpanContextFromRequest` falls back to W3C. */
|
|
101
9
|
export const BACKEND_TRACEPARENT_HEADER = "backend-traceparent";
|
|
@@ -134,7 +42,7 @@ export function activeTraceparent() {
|
|
|
134
42
|
}
|
|
135
43
|
/**
|
|
136
44
|
* Copy the active span onto every outbound `fetch`. Agents should not
|
|
137
|
-
* wrap their own Connect / MCP clients for this
|
|
45
|
+
* wrap their own Connect / MCP clients for this. The serve runtime
|
|
138
46
|
* installs it on `globalThis.fetch` when traces are on.
|
|
139
47
|
*/
|
|
140
48
|
function headersForFetch(input, init) {
|
|
@@ -145,20 +53,76 @@ function headersForFetch(input, init) {
|
|
|
145
53
|
: input instanceof Request
|
|
146
54
|
? input.headers
|
|
147
55
|
: undefined);
|
|
148
|
-
injectActiveTraceContext(headers);
|
|
149
56
|
return headers;
|
|
150
57
|
}
|
|
151
58
|
export function instrumentedFetch(base = fetch) {
|
|
152
59
|
return (input, init) => {
|
|
153
60
|
const headers = headersForFetch(input, init);
|
|
61
|
+
applyOutboundTraceHeaders(headers, requestHost(input));
|
|
154
62
|
if (input instanceof Request && init === undefined) {
|
|
155
63
|
return base(new Request(input, { headers }));
|
|
156
64
|
}
|
|
157
65
|
return base(input, { ...init, headers });
|
|
158
66
|
};
|
|
159
67
|
}
|
|
68
|
+
function requestHost(input) {
|
|
69
|
+
const raw = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
70
|
+
try {
|
|
71
|
+
return new URL(raw).hostname;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function applyOutboundTraceHeaders(headers, host) {
|
|
78
|
+
if (host === undefined) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const span = trace.getSpan(context.active()) ?? getContextTracerSpan();
|
|
82
|
+
if (span === undefined) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const traceparent = formatTraceparent(span.spanContext());
|
|
86
|
+
if (traceparent === undefined) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (isCursorHost(host) || isCollectorHost(host)) {
|
|
90
|
+
headers.set(TRACEPARENT_HEADER, traceparent);
|
|
91
|
+
}
|
|
92
|
+
if (isCursorHost(host)) {
|
|
93
|
+
headers.set(BACKEND_TRACEPARENT_HEADER, traceparent);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function isCursorHost(host) {
|
|
97
|
+
return (host === "cursor.com" ||
|
|
98
|
+
host === "cursor.sh" ||
|
|
99
|
+
host.endsWith(".cursor.com") ||
|
|
100
|
+
host.endsWith(".cursor.sh"));
|
|
101
|
+
}
|
|
102
|
+
function isCollectorHost(host) {
|
|
103
|
+
for (const key of [
|
|
104
|
+
"OTEL_EXPORTER_OTLP_ENDPOINT",
|
|
105
|
+
"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT",
|
|
106
|
+
"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT",
|
|
107
|
+
"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",
|
|
108
|
+
]) {
|
|
109
|
+
const raw = process.env[key];
|
|
110
|
+
if (raw === undefined || raw.length === 0) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
if (new URL(raw).hostname === host) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Ignore a value that is not a URL.
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
160
124
|
const OUTBOUND_FETCH_INSTALLED = Symbol.for("anysphere.july.otel.outboundFetch");
|
|
161
|
-
/** Idempotent. Safe to call
|
|
125
|
+
/** Idempotent. Safe to call on every serve. */
|
|
162
126
|
export function installOutboundFetchInstrumentation() {
|
|
163
127
|
const slots = globalThis;
|
|
164
128
|
if (slots[OUTBOUND_FETCH_INSTALLED] === true) {
|