@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.
- 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.wA5xBBcd.js} +4 -4
- package/dist/docs/assets/changelog.md.BvHRIiMH.js +1 -0
- package/dist/docs/assets/changelog.md.BvHRIiMH.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.BoDEJQWv.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BOuvjb5Y.js → VPLocalSearchBox.C29HLCVL.js} +2 -2
- package/dist/docs/assets/chunks/{arc.3WR6Jf-y.js → arc.BOaoYWmh.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Dtb6Dqh6.js → architectureDiagram-Q4EWVU46.MfG0itQh.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.BUyrgrZE.js → baseUniq.CUeJciCF.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BVLV_voZ.js → blockDiagram-DXYQGD6D.BrXMZRtK.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.jXJ1q70M.js → c4Diagram-AHTNJAMY.DfkDHeB9.js} +1 -1
- package/dist/docs/assets/chunks/channel.D2BTz0L-.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.zz1SMBvK.js → chunk-4BX2VUAB.xKz8CiXK.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.CzYKuv3I.js → chunk-4TB4RGXK.kkfBh4zk.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.C7_tcJZD.js → chunk-55IACEB6.BClJGb94.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DeTwQPVO.js → chunk-EDXVE4YY.P9BpQ9L3.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DhMTl7ut.js → chunk-FMBD7UC4.R4iYi58S.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Me7f5hEp.js → chunk-OYMX7WX6.Cpn8L1dw.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D0E0Bb6g.js → chunk-QZHKN3VN.BLftECqU.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CdOOBFYL.js → chunk-YZCP3GAM.BWDV1AYt.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DqByliAC.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DqByliAC.js +1 -0
- package/dist/docs/assets/chunks/clone.CldT1lbQ.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BNbGESzN.js → cose-bilkent-S5V4N54A.DGpAcJ55.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.zU7Lu_xJ.js → dagre-KV5264BT.BBXxGEaD.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B9qOdE5h.js → diagram-5BDNPKRD.EKqOwmK2.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.D8X-sf77.js → diagram-G4DWMVQ6.CB8pdkoZ.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.CW7MvMlE.js → diagram-MMDJMWI5.aHh4WGg9.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.J489G0Nd.js → diagram-TYMM5635.YIsbRH20.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BkW7tGfs.js → erDiagram-SMLLAGMA.B3bTCW_e.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.jc9iWORD.js → flowDiagram-DWJPFMVM.M81hXIXZ.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B-UQfd9E.js → ganttDiagram-T4ZO3ILL.BKg7WY--.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DFzrTSlJ.js → gitGraphDiagram-UUTBAWPF.CLEMZgO3.js} +1 -1
- package/dist/docs/assets/chunks/{graph.C5IB6_e_.js → graph.DS38W_Q-.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.DwF0-c8L.js → infoDiagram-42DDH7IO.BTiWTi82.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.fBaTqzE7.js → ishikawaDiagram-UXIWVN3A.DcqY_KQL.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CM8gDVJy.js → journeyDiagram-VCZTEJTY.0lQNZ40U.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.YiD1p0LB.js → kanban-definition-6JOO6SKY.L5sKlf7X.js} +1 -1
- package/dist/docs/assets/chunks/{layout.6Um-DVJT.js → layout.7u4gFhQa.js} +1 -1
- package/dist/docs/assets/chunks/{linear.DcTeg4Hn.js → linear.D5v33SOb.js} +1 -1
- package/dist/docs/assets/chunks/{min.CIxkY8Fe.js → min.Dc9uCxf9.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.D4QM_voR.js → mindmap-definition-QFDTVHPH.B56nGoB_.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.nmB309G1.js → pieDiagram-DEJITSTG.Cba8e8lS.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D1HtZR3C.js → quadrantDiagram-34T5L4WZ.2YjBycHF.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZgQWob-.js → requirementDiagram-MS252O5E.D4P5RqVI.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DtiBfU-P.js → sankeyDiagram-XADWPNL6.C0Hn8NUm.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Cld4gDSt.js → sequenceDiagram-FGHM5R23.BZm7EaoT.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DatP823_.js → stateDiagram-FHFEXIEX.DcR4f3X2.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.Bb4oMe0P.js +1 -0
- package/dist/docs/assets/chunks/{theme.D5jbBys7.js → theme.DvfKzyXq.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.DwQLI2be.js → timeline-definition-GMOUNBTQ.CgDh96vg.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.a5yMfnsa.js → vennDiagram-DHZGUBPP.B4fagbC8.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.B-FXivgT.js → wardley-RL74JXVD.Ck68omim.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.Dz--Opy3.js → wardleyDiagram-NUSXRM2D.DBUg0bvz.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Dl8w8TeT.js → xychartDiagram-5P7HB3ND.DnKSGQE1.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.CZrbHOfT.js} +8 -4
- package/dist/docs/assets/{reference_agent-config.md.IplwL25I.lean.js → reference_agent-config.md.CZrbHOfT.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 +114 -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 +422 -193
- package/dist/docs/llms.txt +2 -1
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +44 -40
- package/dist/docs/reference/agent-config.md +30 -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.d.ts +4 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +2 -6
- 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/filesystem.d.ts +26 -5
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +91 -18
- 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/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +29 -9
- 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/docs-site.d.ts +2 -5
- package/dist/internal/docs-site.d.ts.map +1 -1
- package/dist/internal/docs-site.js +2 -5
- 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 +8 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +190 -14
- 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 +35 -3
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +213 -41
- 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/workspace.d.ts +10 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +47 -1
- 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/cursor-icons-16-DfKNljMZ.woff2 +0 -0
- package/dist/playground/assets/index-B3_YohwW.js +62 -0
- package/dist/playground/assets/index-Cn3-adsJ.css +1 -0
- 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 +262 -97
- package/dist/types.d.ts.map +1 -1
- package/docs/changelog.md +119 -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 +30 -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 +35 -8
- 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/cursor-icons-16-DmHBTm1-.woff2 +0 -0
- package/dist/playground/assets/index-BdMwybMt.css +0 -1
- package/dist/playground/assets/index-CHk6O92d.js +0 -62
- 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
|
@@ -1,75 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Standard `OTEL_*` variables for export. There is no instrumentation file.
|
|
3
3
|
*/
|
|
4
|
-
import { resolveOtelDefinition, } from "../../otel.js";
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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:
|
|
66
|
-
serviceName:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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:
|
|
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
|
-
|
|
137
|
-
|
|
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
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
150
|
-
url: stripSignalPath(
|
|
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
|
-
|
|
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
|
|
188
|
-
const
|
|
189
|
-
if (
|
|
190
|
-
|
|
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
|
-
|
|
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:
|
|
227
|
-
toolContent:
|
|
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"}
|