@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
|
@@ -44,9 +44,9 @@ import { createHostOtelApi } from "./host-otel.js";
|
|
|
44
44
|
import { createHostPlatforms, createHostSlackClient, } from "./host-platforms.js";
|
|
45
45
|
import { HostedAdmissionLocalSendError, isDuringHostedAdmission, } from "./hosted-admission-context.js";
|
|
46
46
|
import { hostedSessionResumeKey } from "./hosted-catch-protocol.js";
|
|
47
|
-
import { formatContinuationToken, newContinuationKey, newSessionId, newToolCallId, parseContinuationToken, } from "./ids.js";
|
|
47
|
+
import { formatContinuationToken, newContinuationKey, newSessionId, newToolCallId, parseContinuationToken, resolveDeliveryId, } from "./ids.js";
|
|
48
48
|
import { validateToolInput } from "./json-schema.js";
|
|
49
|
-
import { isMcpNeedsAuthError, McpHost } from "./mcp-host.js";
|
|
49
|
+
import { isMcpNeedsAuthError, McpHost, McpReconnectError } from "./mcp-host.js";
|
|
50
50
|
import { McpOauthOnDemandHub } from "./mcp-oauth-on-demand.js";
|
|
51
51
|
import { shouldStartProcessMemoryTelemetry, startProcessMemoryTelemetry, } from "./process-memory-telemetry.js";
|
|
52
52
|
import { buildSessionContextBlock, SCHEDULE_CHANNEL_PREFIX } from "./prompt-context.js";
|
|
@@ -56,6 +56,7 @@ import { SessionStore } from "./session-store.js";
|
|
|
56
56
|
import { syncSkillsToStore } from "./skills-sync.js";
|
|
57
57
|
import { steeringEnabled } from "./steering.js";
|
|
58
58
|
import { resolveApiKeySync } from "./cursor/credentials.js";
|
|
59
|
+
import { CLI_COMMAND_NAME } from "./distribution.js";
|
|
59
60
|
import { createSessionLivePublisher } from "./session-live-publisher.js";
|
|
60
61
|
import { StorageCoordinator, isTurnBoundaryEvent } from "./storage-coordinator.js";
|
|
61
62
|
import { decideToolCall, directCallEffect } from "./tool-policy.js";
|
|
@@ -71,6 +72,10 @@ import { syncSessionWorkspaceFiles, syncWorkspaceToStore, WorkspaceFileRefusal,
|
|
|
71
72
|
export const HTTP_CHANNEL_ID = "http";
|
|
72
73
|
export { mergeChannelStateSkipNull } from "./channel-state.js";
|
|
73
74
|
export { SCHEDULE_CHANNEL_PREFIX } from "./prompt-context.js";
|
|
75
|
+
/**
|
|
76
|
+
* @deprecated Channel handlers may still catch this. It stays on the package
|
|
77
|
+
* root for those handlers.
|
|
78
|
+
*/
|
|
74
79
|
export class SessionBusyError extends Error {
|
|
75
80
|
constructor(sessionId) {
|
|
76
81
|
super(`Session ${sessionId} already has a running turn; wait for session.waiting before sending a follow-up`);
|
|
@@ -165,6 +170,8 @@ export class AuthInterruptedError extends Error {
|
|
|
165
170
|
this.name = "AuthInterruptedError";
|
|
166
171
|
}
|
|
167
172
|
}
|
|
173
|
+
/** How long an interactive turn waits for a person to authorize a connection. */
|
|
174
|
+
export const MCP_AUTH_PARK_TIMEOUT_MS = 10 * 60_000;
|
|
168
175
|
const mcpAuthAls = new AsyncLocalStorage();
|
|
169
176
|
const RELEASED_CONTINUATIONS_CAP = 256;
|
|
170
177
|
/** Marker that we `git init`'d this shared harness so scaffold is ours to write. */
|
|
@@ -230,6 +237,8 @@ export class SessionEngine {
|
|
|
230
237
|
this.deliveredNudges = new Map();
|
|
231
238
|
/** Aborts the in-flight turn per session so a follow-up can preempt it. */
|
|
232
239
|
this.turnAborts = new Map();
|
|
240
|
+
/** Turn mode of the in-flight turn per session, owned with `turnAborts`. */
|
|
241
|
+
this.turnModes = new Map();
|
|
233
242
|
/** Serializes turn admission per session (latest follow-up wins). */
|
|
234
243
|
this.admissionChains = new Map();
|
|
235
244
|
/** Live turn snapshot so a coalesced Slack wake can repaint on this process. */
|
|
@@ -268,12 +277,13 @@ export class SessionEngine {
|
|
|
268
277
|
this.stateRoot = options.stateRoot;
|
|
269
278
|
this.runner = options.runner;
|
|
270
279
|
this.logger = options.logger ?? (() => { });
|
|
280
|
+
this.readFrameworkMeter = options.otelMeter ?? (() => undefined);
|
|
271
281
|
this.getCloudUsage = options.getCloudUsage ?? defaultGetCloudUsage;
|
|
272
282
|
this.estimateSessionCost = options.estimateSessionCost ?? estimateCostFromApi;
|
|
273
283
|
this.otel = options.otel;
|
|
274
284
|
this.otelHost = createHostOtelApi({
|
|
275
285
|
agentName: options.project.name,
|
|
276
|
-
meter:
|
|
286
|
+
meter: this.readFrameworkMeter,
|
|
277
287
|
collector: options.otel,
|
|
278
288
|
});
|
|
279
289
|
this.turnGovernor = new TurnGovernor(options.project.agent.concurrency);
|
|
@@ -371,7 +381,7 @@ export class SessionEngine {
|
|
|
371
381
|
agentName: options.project.name,
|
|
372
382
|
getEventLogStats: () => this.logs.memoryStats(),
|
|
373
383
|
logger: this.logger,
|
|
374
|
-
meter:
|
|
384
|
+
meter: this.readFrameworkMeter,
|
|
375
385
|
})
|
|
376
386
|
: undefined;
|
|
377
387
|
}
|
|
@@ -661,6 +671,7 @@ export class SessionEngine {
|
|
|
661
671
|
if (options.clearCloudOverride === true && options.cloud !== undefined) {
|
|
662
672
|
throw new Error("send options cloud and clearCloudOverride cannot be combined");
|
|
663
673
|
}
|
|
674
|
+
const deliveryId = resolveDeliveryId(options.deliveryId);
|
|
664
675
|
const identity = channelId === HTTP_CHANNEL_ID
|
|
665
676
|
? httpContinuationIdentity(this.project.httpChannel)
|
|
666
677
|
: channelContinuationIdentity(this.channelsById.get(channelId));
|
|
@@ -760,11 +771,13 @@ export class SessionEngine {
|
|
|
760
771
|
}
|
|
761
772
|
const since = (await this.logs.get(record.sessionId)).count;
|
|
762
773
|
const coalesced = await this.startTurn(record.sessionId, message, {
|
|
774
|
+
turnMode: sendOptions.turnMode ?? "non-interactive",
|
|
763
775
|
admission: enqueueOnly ? "coalesce" : (sendOptions.admission ?? "preempt"),
|
|
764
776
|
...(sendOptions.coalesceSourceTs === undefined
|
|
765
777
|
? {}
|
|
766
778
|
: { sourceTs: sendOptions.coalesceSourceTs }),
|
|
767
779
|
...(enqueueOnly ? { hostedEnqueueOnly: true } : {}),
|
|
780
|
+
deliveryIds: [deliveryId],
|
|
768
781
|
});
|
|
769
782
|
if (enqueueOnly && !coalesced) {
|
|
770
783
|
throw new HostedEnqueueNotActiveError(record.sessionId);
|
|
@@ -772,7 +785,7 @@ export class SessionEngine {
|
|
|
772
785
|
if (!enqueueOnly && coalesced && sendOptions.refreshState !== undefined) {
|
|
773
786
|
await this.repaintOnCoalescedRefresh(record.sessionId, sendOptions.refreshState);
|
|
774
787
|
}
|
|
775
|
-
return this.channelSession(record.sessionId, record, false, coalesced, since);
|
|
788
|
+
return this.channelSession(record.sessionId, record, deliveryId, false, coalesced, since);
|
|
776
789
|
}
|
|
777
790
|
if (sendOptions.hostedEnqueueOnly === true) {
|
|
778
791
|
throw new HostedEnqueueNotActiveError(sendOptions.hostedSessionId);
|
|
@@ -816,12 +829,14 @@ export class SessionEngine {
|
|
|
816
829
|
});
|
|
817
830
|
const since = (await this.logs.get(record.sessionId)).count;
|
|
818
831
|
await this.startTurn(record.sessionId, message, {
|
|
832
|
+
turnMode: sendOptions.turnMode ?? "non-interactive",
|
|
819
833
|
admission: sendOptions.admission ?? "preempt",
|
|
820
834
|
...(sendOptions.coalesceSourceTs === undefined
|
|
821
835
|
? {}
|
|
822
836
|
: { sourceTs: sendOptions.coalesceSourceTs }),
|
|
837
|
+
deliveryIds: [deliveryId],
|
|
823
838
|
});
|
|
824
|
-
return this.channelSession(record.sessionId, record, true, false, since);
|
|
839
|
+
return this.channelSession(record.sessionId, record, deliveryId, true, false, since);
|
|
825
840
|
}
|
|
826
841
|
rejectMismatchedModelConfig(existing, modelConfig) {
|
|
827
842
|
const next = modelConfigForDryRun(modelConfig, existing.dryRun);
|
|
@@ -861,7 +876,7 @@ export class SessionEngine {
|
|
|
861
876
|
throw error;
|
|
862
877
|
}
|
|
863
878
|
try {
|
|
864
|
-
await this.startTurn(sessionId, message);
|
|
879
|
+
await this.startTurn(sessionId, message, { turnMode: "interactive" });
|
|
865
880
|
return next;
|
|
866
881
|
}
|
|
867
882
|
catch (error) {
|
|
@@ -883,7 +898,7 @@ export class SessionEngine {
|
|
|
883
898
|
if (record === undefined || record.channelId !== channelId) {
|
|
884
899
|
return null;
|
|
885
900
|
}
|
|
886
|
-
return this.channelSession(sessionId, record, false);
|
|
901
|
+
return this.channelSession(sessionId, record, undefined, false);
|
|
887
902
|
}
|
|
888
903
|
/** Cross-channel hand-off (schedules and channel route handlers). */
|
|
889
904
|
async receive(channel, input) {
|
|
@@ -968,7 +983,7 @@ export class SessionEngine {
|
|
|
968
983
|
* Resolves to `true` when the message was coalesced (enqueued), `false`
|
|
969
984
|
* when a turn was started.
|
|
970
985
|
*/
|
|
971
|
-
startTurn(sessionId, message, options
|
|
986
|
+
startTurn(sessionId, message, options) {
|
|
972
987
|
const prior = this.admissionChains.get(sessionId) ?? Promise.resolve();
|
|
973
988
|
const admitted = prior
|
|
974
989
|
.catch(() => { })
|
|
@@ -1001,7 +1016,18 @@ export class SessionEngine {
|
|
|
1001
1016
|
}
|
|
1002
1017
|
enqueueCoalesced(sessionId, item) {
|
|
1003
1018
|
const queue = this.coalesceQueues.get(sessionId) ?? [];
|
|
1004
|
-
|
|
1019
|
+
const duplicate = item.sourceTs === undefined
|
|
1020
|
+
? undefined
|
|
1021
|
+
: queue.find((entry) => entry.sourceTs === item.sourceTs);
|
|
1022
|
+
if (duplicate !== undefined) {
|
|
1023
|
+
for (const id of item.deliveryIds) {
|
|
1024
|
+
if (!duplicate.deliveryIds.includes(id)) {
|
|
1025
|
+
duplicate.deliveryIds.push(id);
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
if (item.turnMode === "interactive") {
|
|
1029
|
+
duplicate.turnMode = "interactive";
|
|
1030
|
+
}
|
|
1005
1031
|
return;
|
|
1006
1032
|
}
|
|
1007
1033
|
queue.push(item);
|
|
@@ -1092,8 +1118,12 @@ export class SessionEngine {
|
|
|
1092
1118
|
const message = this.formatCoalescedFollowups(pending);
|
|
1093
1119
|
this.logger(`[session] coalesce drain starting follow-up (${pending.length}) ${sessionId}`);
|
|
1094
1120
|
await this.startTurn(sessionId, message, {
|
|
1121
|
+
turnMode: pending.some((item) => item.turnMode === "interactive")
|
|
1122
|
+
? "interactive"
|
|
1123
|
+
: "non-interactive",
|
|
1095
1124
|
admission: "preempt",
|
|
1096
1125
|
retainCoalesced: true,
|
|
1126
|
+
deliveryIds: pending.flatMap((item) => item.deliveryIds),
|
|
1097
1127
|
});
|
|
1098
1128
|
}
|
|
1099
1129
|
async steerIntoRunningTurn(sessionId, message) {
|
|
@@ -1108,16 +1138,24 @@ export class SessionEngine {
|
|
|
1108
1138
|
return "revert_to_followup";
|
|
1109
1139
|
}
|
|
1110
1140
|
}
|
|
1111
|
-
async admitTurn(sessionId, message, options
|
|
1141
|
+
async admitTurn(sessionId, message, options) {
|
|
1112
1142
|
const admission = options.admission ?? "preempt";
|
|
1113
1143
|
if (admission === "coalesce" && steeringEnabled() && this.isTurnRunning(sessionId)) {
|
|
1114
1144
|
const toolCtx = this.activeToolContexts.get(sessionId);
|
|
1115
1145
|
const steerOutcome = await this.steerIntoRunningTurn(sessionId, message);
|
|
1116
1146
|
if (steerOutcome === "complete_delivered") {
|
|
1117
1147
|
this.logger(`[session] steered into running turn ${sessionId}`);
|
|
1148
|
+
// The person who steered now waits on this turn and can connect.
|
|
1149
|
+
if (options.turnMode === "interactive" && this.turnModes.has(sessionId)) {
|
|
1150
|
+
this.turnModes.set(sessionId, "interactive");
|
|
1151
|
+
}
|
|
1118
1152
|
if (toolCtx !== undefined) {
|
|
1119
|
-
|
|
1120
|
-
toolCtx.emit({ type: "
|
|
1153
|
+
const deliveryIds = options.deliveryIds;
|
|
1154
|
+
toolCtx.emit({ type: "message.received", data: { text: message, deliveryIds } });
|
|
1155
|
+
// Outbox items from an older server carry no ids.
|
|
1156
|
+
for (const deliveryId of deliveryIds ?? [undefined]) {
|
|
1157
|
+
toolCtx.emit({ type: "nudge.delivered", data: { deliveryId } });
|
|
1158
|
+
}
|
|
1121
1159
|
}
|
|
1122
1160
|
return true;
|
|
1123
1161
|
}
|
|
@@ -1129,6 +1167,8 @@ export class SessionEngine {
|
|
|
1129
1167
|
this.enqueueCoalesced(sessionId, {
|
|
1130
1168
|
message,
|
|
1131
1169
|
sourceTs: options.sourceTs,
|
|
1170
|
+
turnMode: options.turnMode,
|
|
1171
|
+
deliveryIds: [...(options.deliveryIds ?? [])],
|
|
1132
1172
|
});
|
|
1133
1173
|
this.logger(`[session] coalesce enqueue ${sessionId}`);
|
|
1134
1174
|
return true;
|
|
@@ -1186,12 +1226,13 @@ export class SessionEngine {
|
|
|
1186
1226
|
await this.appendEvent(sessionId, {
|
|
1187
1227
|
type: "message.received",
|
|
1188
1228
|
turnId,
|
|
1189
|
-
data: { text: message },
|
|
1229
|
+
data: { text: message, deliveryIds: options.deliveryIds },
|
|
1190
1230
|
});
|
|
1191
1231
|
// `turn.started` is appended by executeTurn once the turn holds a
|
|
1192
1232
|
// governor slot; saturated engines emit `turn.queued` first.
|
|
1193
1233
|
const abort = new AbortController();
|
|
1194
1234
|
this.turnAborts.set(sessionId, abort);
|
|
1235
|
+
this.turnModes.set(sessionId, options.turnMode);
|
|
1195
1236
|
// Lifecycle promise includes post-turn coalesce drain so waiters and
|
|
1196
1237
|
// interrupt settle after follow-ups are admitted (not only executeTurn).
|
|
1197
1238
|
// Assigned before the async body runs so self-identity checks typecheck.
|
|
@@ -1224,6 +1265,7 @@ export class SessionEngine {
|
|
|
1224
1265
|
}
|
|
1225
1266
|
if (this.turnAborts.get(sessionId) === abort) {
|
|
1226
1267
|
this.turnAborts.delete(sessionId);
|
|
1268
|
+
this.turnModes.delete(sessionId);
|
|
1227
1269
|
}
|
|
1228
1270
|
// Failed or cancelled owners must not start a coalesced successor;
|
|
1229
1271
|
// managed delivery retries the same follow-ups.
|
|
@@ -2569,6 +2611,7 @@ export class SessionEngine {
|
|
|
2569
2611
|
turnId,
|
|
2570
2612
|
callId: newToolCallId("mcp"),
|
|
2571
2613
|
toolName: "mcp",
|
|
2614
|
+
turnMode: () => this.turnModeFor(record.sessionId),
|
|
2572
2615
|
emit,
|
|
2573
2616
|
}, () => resolveAdvertisedTools({
|
|
2574
2617
|
agent: this.advertisingAgent(),
|
|
@@ -2708,6 +2751,7 @@ export class SessionEngine {
|
|
|
2708
2751
|
turnId: args.turnId,
|
|
2709
2752
|
callId: toolCallId,
|
|
2710
2753
|
toolName: args.tool.name,
|
|
2754
|
+
turnMode: () => this.turnModeFor(args.record.sessionId),
|
|
2711
2755
|
emit: args.emit,
|
|
2712
2756
|
}, () => this.runExecutedTool({
|
|
2713
2757
|
tool: args.tool,
|
|
@@ -2947,9 +2991,28 @@ export class SessionEngine {
|
|
|
2947
2991
|
if (ctx === undefined) {
|
|
2948
2992
|
throw error;
|
|
2949
2993
|
}
|
|
2994
|
+
const authored = this.authoredConnection(connection);
|
|
2995
|
+
const optional = authored?.optional === true;
|
|
2996
|
+
const canPark = () => ctx.turnMode() === "interactive" && !optional;
|
|
2997
|
+
const giveUp = () => {
|
|
2998
|
+
if (optional) {
|
|
2999
|
+
// The original error lets `resolveAdvertisedTools` skip the connection.
|
|
3000
|
+
this.logger(`[session] skipping optional MCP connection ${connection}: authorization required`);
|
|
3001
|
+
throw error;
|
|
3002
|
+
}
|
|
3003
|
+
if (authored !== undefined && !canPark()) {
|
|
3004
|
+
throw new McpReconnectError(authored.name, mcpAuthReconnectMessage(authored), error);
|
|
3005
|
+
}
|
|
3006
|
+
throw error;
|
|
3007
|
+
};
|
|
3008
|
+
// Only `oauth: true` can recover without a person, from a saved token.
|
|
3009
|
+
const canRefresh = authored !== undefined && isHostOauthConnectionTransport(authored.transport);
|
|
3010
|
+
if (!canPark() && !canRefresh) {
|
|
3011
|
+
return giveUp();
|
|
3012
|
+
}
|
|
2950
3013
|
const minted = await this.mintAuthUrl(connection, ctx.sessionId);
|
|
2951
3014
|
if (minted === undefined) {
|
|
2952
|
-
|
|
3015
|
+
return giveUp();
|
|
2953
3016
|
}
|
|
2954
3017
|
if ("authorized" in minted) {
|
|
2955
3018
|
await this.persistHostedMcpOauth(connection);
|
|
@@ -2964,7 +3027,13 @@ export class SessionEngine {
|
|
|
2964
3027
|
return await this.withMcpAuth(connection, run);
|
|
2965
3028
|
}
|
|
2966
3029
|
}
|
|
2967
|
-
|
|
3030
|
+
if (!canPark()) {
|
|
3031
|
+
if (minted.state !== "") {
|
|
3032
|
+
await this.oauthHub.abortCall(ctx.sessionId, ctx.callId);
|
|
3033
|
+
}
|
|
3034
|
+
return giveUp();
|
|
3035
|
+
}
|
|
3036
|
+
const outcome = await this.parkForAuth({
|
|
2968
3037
|
sessionId: ctx.sessionId,
|
|
2969
3038
|
turnId: ctx.turnId,
|
|
2970
3039
|
callId: ctx.callId,
|
|
@@ -2973,7 +3042,10 @@ export class SessionEngine {
|
|
|
2973
3042
|
authUrl: minted.authUrl,
|
|
2974
3043
|
emit: ctx.emit,
|
|
2975
3044
|
});
|
|
2976
|
-
if (
|
|
3045
|
+
if (outcome === "timeout" && authored !== undefined) {
|
|
3046
|
+
throw new McpReconnectError(authored.name, mcpAuthReconnectMessage(authored), error);
|
|
3047
|
+
}
|
|
3048
|
+
if (outcome !== "approve") {
|
|
2977
3049
|
throw new Error(`MCP connection "${connection}" authorization was denied.`);
|
|
2978
3050
|
}
|
|
2979
3051
|
await this.persistHostedMcpOauth(connection);
|
|
@@ -3043,7 +3115,34 @@ export class SessionEngine {
|
|
|
3043
3115
|
},
|
|
3044
3116
|
});
|
|
3045
3117
|
this.logger(`[session] tool ${args.toolName} awaiting MCP auth ${args.connection} (${args.callId})`);
|
|
3046
|
-
const
|
|
3118
|
+
const endWait = (by) => {
|
|
3119
|
+
void this.oauthHub.abortCall(args.sessionId, args.callId);
|
|
3120
|
+
return this.auths.resolve(args.sessionId, args.callId, "deny", by);
|
|
3121
|
+
};
|
|
3122
|
+
const signal = this.turnAborts.get(args.sessionId)?.signal;
|
|
3123
|
+
const endForAbort = () => {
|
|
3124
|
+
endWait("interrupt");
|
|
3125
|
+
};
|
|
3126
|
+
if (signal?.aborted) {
|
|
3127
|
+
endForAbort();
|
|
3128
|
+
}
|
|
3129
|
+
else {
|
|
3130
|
+
signal?.addEventListener("abort", endForAbort, { once: true });
|
|
3131
|
+
}
|
|
3132
|
+
let timedOut = false;
|
|
3133
|
+
const timer = setTimeout(() => {
|
|
3134
|
+
timedOut = endWait("timeout");
|
|
3135
|
+
}, MCP_AUTH_PARK_TIMEOUT_MS);
|
|
3136
|
+
timer.unref();
|
|
3137
|
+
let decision;
|
|
3138
|
+
let by;
|
|
3139
|
+
try {
|
|
3140
|
+
({ decision, by } = await resolutionPromise);
|
|
3141
|
+
}
|
|
3142
|
+
finally {
|
|
3143
|
+
clearTimeout(timer);
|
|
3144
|
+
signal?.removeEventListener("abort", endForAbort);
|
|
3145
|
+
}
|
|
3047
3146
|
await this.updateRecord(args.sessionId, (current) => ({
|
|
3048
3147
|
...current,
|
|
3049
3148
|
pendingAuths: (current.pendingAuths ?? []).filter((item) => item.callId !== args.callId),
|
|
@@ -3058,8 +3157,9 @@ export class SessionEngine {
|
|
|
3058
3157
|
by,
|
|
3059
3158
|
},
|
|
3060
3159
|
});
|
|
3061
|
-
|
|
3062
|
-
|
|
3160
|
+
const outcome = timedOut ? "timeout" : decision;
|
|
3161
|
+
this.logger(`[session] tool ${args.toolName} MCP auth ${outcome} (${args.callId})`);
|
|
3162
|
+
return outcome;
|
|
3063
3163
|
}
|
|
3064
3164
|
async clearPendingAuths(sessionId) {
|
|
3065
3165
|
await this.oauthHub.abortSession(sessionId);
|
|
@@ -3125,9 +3225,14 @@ export class SessionEngine {
|
|
|
3125
3225
|
turnId: active.turnId,
|
|
3126
3226
|
callId: newToolCallId(toolName),
|
|
3127
3227
|
toolName,
|
|
3228
|
+
turnMode: () => this.turnModeFor(sessionId),
|
|
3128
3229
|
emit: active.emit,
|
|
3129
3230
|
}, fn);
|
|
3130
3231
|
}
|
|
3232
|
+
/** A session with no turn in flight has no person waiting on it. */
|
|
3233
|
+
turnModeFor(sessionId) {
|
|
3234
|
+
return this.turnModes.get(sessionId) ?? "non-interactive";
|
|
3235
|
+
}
|
|
3131
3236
|
// ==========================================================================
|
|
3132
3237
|
// Direct tool calls (deterministic invocation, no model turn)
|
|
3133
3238
|
// ==========================================================================
|
|
@@ -3487,6 +3592,7 @@ export class SessionEngine {
|
|
|
3487
3592
|
turnId: callId,
|
|
3488
3593
|
callId,
|
|
3489
3594
|
toolName,
|
|
3595
|
+
turnMode: () => "non-interactive",
|
|
3490
3596
|
emit,
|
|
3491
3597
|
}, run)
|
|
3492
3598
|
: run;
|
|
@@ -3668,6 +3774,20 @@ export class SessionEngine {
|
|
|
3668
3774
|
if (record === undefined) {
|
|
3669
3775
|
return;
|
|
3670
3776
|
}
|
|
3777
|
+
// Handlers see the turn span only while it is still open. `turn.completed`
|
|
3778
|
+
// and `turn.failed` close it before `session.waiting`, `session.completed`,
|
|
3779
|
+
// and `session.failed`. `onStart` is not an event.
|
|
3780
|
+
if (event.turnId === undefined || this.otel === undefined) {
|
|
3781
|
+
await this.dispatchEventHandlers(sessionId, event, context, record);
|
|
3782
|
+
return;
|
|
3783
|
+
}
|
|
3784
|
+
await this.otel.runInOpenTurn({
|
|
3785
|
+
sessionId: record.sessionId,
|
|
3786
|
+
session: this.sessionInfo(record),
|
|
3787
|
+
turnId: event.turnId,
|
|
3788
|
+
}, () => this.dispatchEventHandlers(sessionId, event, context, record));
|
|
3789
|
+
}
|
|
3790
|
+
async dispatchEventHandlers(sessionId, event, context, record) {
|
|
3671
3791
|
const channelState = context === undefined ? (record.channelState ?? null) : context.channelState;
|
|
3672
3792
|
const sessionCtx = {
|
|
3673
3793
|
session: context?.session ?? this.sessionInfo(record),
|
|
@@ -4223,12 +4343,13 @@ export class SessionEngine {
|
|
|
4223
4343
|
...(record.sdkAgentId === undefined ? {} : { sdkAgentId: record.sdkAgentId }),
|
|
4224
4344
|
};
|
|
4225
4345
|
}
|
|
4226
|
-
channelSession(sessionId, record, isNew, coalesced = false, since = 0) {
|
|
4346
|
+
channelSession(sessionId, record, deliveryId, isNew, coalesced = false, since = 0) {
|
|
4227
4347
|
return {
|
|
4228
4348
|
id: sessionId,
|
|
4229
4349
|
continuationToken: record.continuationKey,
|
|
4230
4350
|
isNew,
|
|
4231
4351
|
...(coalesced ? { coalesced: true } : {}),
|
|
4352
|
+
deliveryId,
|
|
4232
4353
|
info: this.sessionInfo(record),
|
|
4233
4354
|
getEventStream: (options) => this.eventStream(sessionId, options?.startIndex ?? since),
|
|
4234
4355
|
waitForCompletion: () => this.waitForCompletion(sessionId),
|
|
@@ -4516,6 +4637,13 @@ export class SessionEngine {
|
|
|
4516
4637
|
this.otel?.close();
|
|
4517
4638
|
}
|
|
4518
4639
|
}
|
|
4640
|
+
const DEPLOYED_AGENTS_DASHBOARD_URL = "https://cursor.com/dashboard/deployed-agents";
|
|
4641
|
+
function mcpAuthReconnectMessage(connection) {
|
|
4642
|
+
if (isCursorAccountTransport(connection.transport)) {
|
|
4643
|
+
return `Reconnect ${connection.name}: the MCP connection needs authorization. Ask the bot owner to reconnect ${connection.name} at ${DEPLOYED_AGENTS_DASHBOARD_URL}`;
|
|
4644
|
+
}
|
|
4645
|
+
return `Reconnect ${connection.name}: the MCP connection needs authorization. Run \`${CLI_COMMAND_NAME} mcp oauth ${connection.name}\`. Ask the bot owner if you cannot run it.`;
|
|
4646
|
+
}
|
|
4519
4647
|
/** Parallel event-stream loads during the startup bulk restore. */
|
|
4520
4648
|
const RESTORE_FETCH_CONCURRENCY = 8;
|
|
4521
4649
|
/**
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* which flows through on {@link SlackProvisionApiError.code} so the CLI
|
|
18
18
|
* can branch.
|
|
19
19
|
*/
|
|
20
|
-
import
|
|
20
|
+
import * as z from "zod/v4";
|
|
21
21
|
/**
|
|
22
22
|
* Backend mount of the Slack control plane for each hosted architecture.
|
|
23
23
|
* The backend validates the pairing: the v2 routes reject a wizard mint or
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* forever. A breaking change means a new `v`, and the server keeps serving
|
|
8
8
|
* every previous `v`.
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import * as z from "zod/v4";
|
|
11
11
|
export declare const STORE_API_PROTOCOL_VERSION = 1;
|
|
12
12
|
/** Managed storage endpoint, with one trailing segment per call. */
|
|
13
13
|
export declare const STORE_API_PATH = "/internal/agentsdk/store/api";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-api-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/store-api-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"store-api-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/store-api-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* forever. A breaking change means a new `v`, and the server keeps serving
|
|
8
8
|
* every previous `v`.
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import * as z from "zod/v4";
|
|
11
11
|
export const STORE_API_PROTOCOL_VERSION = 1;
|
|
12
12
|
/** Managed storage endpoint, with one trailing segment per call. */
|
|
13
13
|
export const STORE_API_PATH = "/internal/agentsdk/store/api";
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
|
|
13
13
|
* matching install command.
|
|
14
14
|
*/
|
|
15
|
-
import
|
|
15
|
+
import * as z from "zod/v4";
|
|
16
16
|
/**
|
|
17
17
|
* Semver-style ordering: negative when `a < b`, 0 when equal, positive when
|
|
18
18
|
* `a > b`. Unparseable versions compare equal (never warn on garbage).
|
|
@@ -30,7 +30,7 @@ export declare function fetchLatestPublishedVersion(options?: {
|
|
|
30
30
|
declare const cacheSchema: z.ZodObject<{
|
|
31
31
|
checkedAt: z.ZodNumber;
|
|
32
32
|
latestVersion: z.ZodOptional<z.ZodString>;
|
|
33
|
-
}
|
|
33
|
+
}>;
|
|
34
34
|
export type UpdateCheckCache = z.infer<typeof cacheSchema>;
|
|
35
35
|
export declare function updateCheckCachePath(configDir?: string): string;
|
|
36
36
|
export declare function readUpdateCheckCache(configDir?: string): Promise<UpdateCheckCache | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { spawn } from "node:child_process";
|
|
16
16
|
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
17
17
|
import { dirname, join, sep } from "node:path";
|
|
18
|
-
import
|
|
18
|
+
import * as z from "zod/v4";
|
|
19
19
|
import { configDirPath } from "./cursor/credentials.js";
|
|
20
20
|
import { describeError } from "./describe-error.js";
|
|
21
21
|
import { CLI_COMMAND_NAME, isCompiledDistribution, PACKAGE_NAME, packageRootDir, packageVersion, } from "./distribution.js";
|
|
@@ -295,8 +295,8 @@ async function declaresDependency(dir, packageName) {
|
|
|
295
295
|
return false;
|
|
296
296
|
}
|
|
297
297
|
const manifestSchema = z.object({
|
|
298
|
-
dependencies: z.record(z.string()).optional(),
|
|
299
|
-
devDependencies: z.record(z.string()).optional(),
|
|
298
|
+
dependencies: z.record(z.string(), z.string()).optional(),
|
|
299
|
+
devDependencies: z.record(z.string(), z.string()).optional(),
|
|
300
300
|
});
|
|
301
301
|
try {
|
|
302
302
|
const parsed = manifestSchema.safeParse(JSON.parse(raw));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
/**
|
|
3
|
+
* The datetime check of zod 3's `z.string().datetime()`. zod 4 refuses times
|
|
4
|
+
* without seconds and, with `offset`, `+HHMM` offsets; models and people still
|
|
5
|
+
* type both. Use it for values a person or a model writes; a value that only
|
|
6
|
+
* `toISOString()` writes can keep `z.iso.datetime()`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function zod3Datetime(options?: {
|
|
9
|
+
offset?: boolean;
|
|
10
|
+
message?: string;
|
|
11
|
+
}): z.ZodString;
|
|
12
|
+
//# sourceMappingURL=zod3-datetime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod3-datetime.d.ts","sourceRoot":"","sources":["../../src/internal/zod3-datetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAM5B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,CAAC,CAAC,SAAS,CAM9F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
const DATE = z.regexes.date.source.slice(1, -1);
|
|
3
|
+
const TIME = String.raw `(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?`;
|
|
4
|
+
const OFFSET = String.raw `[+-]\d{2}:?\d{2}`;
|
|
5
|
+
/**
|
|
6
|
+
* The datetime check of zod 3's `z.string().datetime()`. zod 4 refuses times
|
|
7
|
+
* without seconds and, with `offset`, `+HHMM` offsets; models and people still
|
|
8
|
+
* type both. Use it for values a person or a model writes; a value that only
|
|
9
|
+
* `toISOString()` writes can keep `z.iso.datetime()`.
|
|
10
|
+
*/
|
|
11
|
+
export function zod3Datetime(options = {}) {
|
|
12
|
+
const zone = options.offset === true ? `(?:Z|${OFFSET})` : "Z";
|
|
13
|
+
return z
|
|
14
|
+
.string()
|
|
15
|
+
.regex(new RegExp(`^${DATE}T${TIME}${zone}$`), options.message ?? "Invalid datetime")
|
|
16
|
+
.meta({ format: "date-time" });
|
|
17
|
+
}
|
package/dist/otel-public.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Public `@cursor/bdk/otel` surface
|
|
3
|
-
* helpers. `defineOtel` is `@cursor/bdk/internal/otel`.
|
|
2
|
+
* Public `@cursor/bdk/otel` surface.
|
|
4
3
|
*/
|
|
5
|
-
export type { OtelConfig, OtelConfigFactory, OtelDefinition, OtelExporterConfig, OtelLogOptions, OtelMetricOptions, OtelSignal, OtelTraceOptions, } from "./otel.js";
|
|
6
4
|
export { activeTraceparent, BACKEND_TRACEPARENT_HEADER, formatTraceparent, injectActiveTraceContext, installOutboundFetchInstrumentation, instrumentedFetch, TRACEPARENT_HEADER, } from "./otel.js";
|
|
5
|
+
export { currentConversationId } from "./internal/otel/conversation-span-processor.js";
|
|
7
6
|
//# sourceMappingURL=otel-public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-public.d.ts","sourceRoot":"","sources":["../src/otel-public.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"otel-public.d.ts","sourceRoot":"","sources":["../src/otel-public.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACxB,mCAAmC,EACnC,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC"}
|
package/dist/otel-public.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Public `@cursor/bdk/otel` surface
|
|
3
|
-
* helpers. `defineOtel` is `@cursor/bdk/internal/otel`.
|
|
2
|
+
* Public `@cursor/bdk/otel` surface.
|
|
4
3
|
*/
|
|
5
4
|
export { activeTraceparent, BACKEND_TRACEPARENT_HEADER, formatTraceparent, injectActiveTraceContext, installOutboundFetchInstrumentation, instrumentedFetch, TRACEPARENT_HEADER, } from "./otel.js";
|
|
5
|
+
export { currentConversationId } from "./internal/otel/conversation-span-processor.js";
|