@cursor/bdk 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts.js +3 -5
- package/dist/bin/agent-serve.js +803 -812
- package/dist/channels/bitbucket/api.js +305 -321
- package/dist/channels/bitbucket/binding.js +97 -61
- package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
- package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
- package/dist/channels/bitbucket/checks.js +9 -21
- package/dist/channels/bitbucket/cursor-account.js +1 -1
- package/dist/channels/bitbucket/defaults.js +14 -4
- package/dist/channels/bitbucket/events.js +1 -2
- package/dist/channels/bitbucket/index.d.ts +6 -2
- package/dist/channels/bitbucket/index.d.ts.map +1 -1
- package/dist/channels/bitbucket/index.js +6 -2
- package/dist/channels/bitbucket/replay.js +80 -56
- package/dist/channels/bitbucket/state.js +16 -7
- package/dist/channels/bitbucket/types.d.ts +11 -2
- package/dist/channels/bitbucket/types.d.ts.map +1 -1
- package/dist/channels/checks.js +18 -28
- package/dist/channels/deployments/deployments-channel.js +26 -34
- package/dist/channels/github/api.js +216 -210
- package/dist/channels/github/auth.d.ts +5 -1
- package/dist/channels/github/auth.d.ts.map +1 -1
- package/dist/channels/github/auth.js +157 -174
- package/dist/channels/github/binding.js +48 -39
- package/dist/channels/github/checks.js +9 -14
- package/dist/channels/github/cursor-account.js +6 -11
- package/dist/channels/github/defaults.js +105 -130
- package/dist/channels/github/forward.js +13 -17
- package/dist/channels/github/github-channel.d.ts +43 -2
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +1228 -958
- package/dist/channels/github/progress.js +145 -146
- package/dist/channels/github/replay.js +30 -39
- package/dist/channels/github/state.js +40 -16
- package/dist/channels/github/types.d.ts +30 -6
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/api.js +100 -114
- package/dist/channels/gitlab/binding.js +52 -33
- package/dist/channels/gitlab/checks.js +28 -29
- package/dist/channels/gitlab/cursor-account.js +1 -1
- package/dist/channels/gitlab/defaults.js +9 -3
- package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
- package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +95 -42
- package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
- package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
- package/dist/channels/gitlab/gitlab-webhook.js +282 -249
- package/dist/channels/gitlab/index.d.ts +6 -2
- package/dist/channels/gitlab/index.d.ts.map +1 -1
- package/dist/channels/gitlab/index.js +6 -2
- package/dist/channels/gitlab/replay.js +50 -27
- package/dist/channels/gitlab/state.js +14 -6
- package/dist/channels/gitlab/types.d.ts +13 -2
- package/dist/channels/gitlab/types.d.ts.map +1 -1
- package/dist/channels/origin/api.js +100 -116
- package/dist/channels/origin/binding.js +15 -16
- package/dist/channels/origin/checks.js +30 -28
- package/dist/channels/origin/defaults.js +50 -65
- package/dist/channels/origin/origin-channel.js +266 -272
- package/dist/channels/origin/origin-webhook.js +70 -88
- package/dist/channels/origin/reactions.js +9 -21
- package/dist/channels/origin/state.js +13 -5
- package/dist/channels/slack/agentic-delivery.js +426 -478
- package/dist/channels/slack/agentic-posted.js +9 -10
- package/dist/channels/slack/agentic-signals.js +2 -3
- package/dist/channels/slack/api.js +417 -427
- package/dist/channels/slack/approvals.js +1 -1
- package/dist/channels/slack/assistant.js +37 -47
- package/dist/channels/slack/attachments.js +188 -206
- package/dist/channels/slack/auth.js +8 -6
- package/dist/channels/slack/bot-mentions.js +31 -45
- package/dist/channels/slack/channel-watch.js +42 -48
- package/dist/channels/slack/cli-project.js +112 -137
- package/dist/channels/slack/code-fences.js +3 -5
- package/dist/channels/slack/constants.js +2 -2
- package/dist/channels/slack/credentials.js +23 -38
- package/dist/channels/slack/defaults.js +292 -331
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +533 -460
- package/dist/channels/slack/doctor.js +200 -214
- package/dist/channels/slack/eval-directive.js +79 -96
- package/dist/channels/slack/event-id-dedupe.js +1 -1
- package/dist/channels/slack/external-policy.js +26 -39
- package/dist/channels/slack/footer.js +28 -41
- package/dist/channels/slack/inbound.d.ts +1 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +50 -31
- package/dist/channels/slack/init.d.ts +1 -5
- package/dist/channels/slack/init.d.ts.map +1 -1
- package/dist/channels/slack/init.js +42 -59
- package/dist/channels/slack/interactive.d.ts +9 -3
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +160 -162
- package/dist/channels/slack/links.js +1 -2
- package/dist/channels/slack/live-delivery.js +172 -190
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +44 -23
- package/dist/channels/slack/message-body.js +2 -2
- package/dist/channels/slack/nudge-carrier.js +30 -42
- package/dist/channels/slack/nudge-store.js +164 -191
- package/dist/channels/slack/paint-start.js +66 -81
- package/dist/channels/slack/placeholder.js +123 -152
- package/dist/channels/slack/pr-ref.js +1 -1
- package/dist/channels/slack/progress-delivery.js +65 -78
- package/dist/channels/slack/reasoning-card.js +36 -49
- package/dist/channels/slack/recording-sink.js +12 -24
- package/dist/channels/slack/reply-options.js +7 -12
- package/dist/channels/slack/self-identity.js +27 -35
- package/dist/channels/slack/sender-name.d.ts +12 -3
- package/dist/channels/slack/sender-name.d.ts.map +1 -1
- package/dist/channels/slack/sender-name.js +57 -61
- package/dist/channels/slack/setup.js +2 -4
- package/dist/channels/slack/slack-channel.d.ts +6 -4
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +441 -308
- package/dist/channels/slack/socket-mode.js +38 -52
- package/dist/channels/slack/thread-context.js +143 -160
- package/dist/channels/slack/tool-approval-events.js +149 -166
- package/dist/channels/slack/tool-cards.js +6 -11
- package/dist/channels/slack/tool-chip.js +1 -2
- package/dist/channels/slack/types.d.ts +15 -17
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/upload.js +84 -97
- package/dist/channels/slack/user-info.js +27 -41
- package/dist/channels.js +9 -20
- package/dist/dashboard-session-url.js +3 -4
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
- package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
- package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
- package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
- package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
- package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
- package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
- package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
- package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
- package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
- package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
- package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
- package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
- package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
- package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
- package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
- package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
- package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
- package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
- package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
- package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +37 -37
- package/dist/docs/building-with-agents.md +2 -0
- package/dist/docs/deployment.html +38 -38
- package/dist/docs/deployment.md +7 -0
- package/dist/docs/evals.html +36 -36
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +38 -38
- package/dist/docs/guides/bitbucket.md +9 -1
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +39 -39
- package/dist/docs/guides/github.md +20 -4
- package/dist/docs/guides/gitlab.html +38 -38
- package/dist/docs/guides/gitlab.md +9 -1
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/migrate.html +66 -0
- package/dist/docs/guides/migrate.md +122 -0
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +35 -35
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +214 -6
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +39 -38
- package/dist/docs/reference/cli.md +39 -0
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +1 -0
- package/dist/evals/assertions.js +20 -34
- package/dist/evals/expect.js +3 -6
- package/dist/evals/judge.js +5 -8
- package/dist/evals/loaders.js +45 -62
- package/dist/evals/matchers.js +2 -3
- package/dist/evals/reporters.js +43 -67
- package/dist/evals/results.js +1 -1
- package/dist/evals/run-facts.js +5 -6
- package/dist/evals.js +27 -15
- package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
- package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
- package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
- package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
- package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
- package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
- package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
- package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
- package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
- package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
- package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
- package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
- package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
- package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
- package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
- package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
- package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
- package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
- package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
- package/dist/extensions/jev/extension.js +3 -3
- package/dist/extensions/jev/lib/evaluate.js +43 -60
- package/dist/extensions/jev/tools/evaluate.js +6 -17
- package/dist/extensions/slack-communication/tools/post-file.js +1 -1
- package/dist/extensions.js +3 -5
- package/dist/files-backends/cursor-hosted.js +504 -523
- package/dist/files-backends/local-fs.js +72 -134
- package/dist/files.js +3 -3
- package/dist/filesystem.js +562 -861
- package/dist/index.js +16 -35
- package/dist/internal/advertise-tools.js +74 -86
- package/dist/internal/artifacts-store.js +298 -361
- package/dist/internal/as-of.js +2 -4
- package/dist/internal/authored-alias-hooks.js +6 -4
- package/dist/internal/authored-loaders.js +37 -52
- package/dist/internal/bounded-int.js +1 -2
- package/dist/internal/bounded.js +13 -24
- package/dist/internal/brand.js +1 -1
- package/dist/internal/browser-origin-guard.js +4 -4
- package/dist/internal/builtin-tools/artifacts.js +15 -27
- package/dist/internal/builtin-tools/index.js +2 -3
- package/dist/internal/builtin-tools/reminders.js +33 -52
- package/dist/internal/channel-architecture.d.ts +21 -0
- package/dist/internal/channel-architecture.d.ts.map +1 -0
- package/dist/internal/channel-architecture.js +41 -0
- package/dist/internal/channel-dispatch.js +3 -4
- package/dist/internal/channel-route-dispatch.js +40 -51
- package/dist/internal/channel-state.js +1 -1
- package/dist/internal/chat-client.js +319 -340
- package/dist/internal/cli-ax.js +1262 -1294
- package/dist/internal/cli-bitbucket.js +244 -272
- package/dist/internal/cli-convert-automation.js +137 -151
- package/dist/internal/cli-cursor.js +126 -147
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +1457 -1507
- package/dist/internal/cli-docs.js +130 -147
- package/dist/internal/cli-github.js +437 -476
- package/dist/internal/cli-gitlab.js +259 -288
- package/dist/internal/cli-images.js +266 -334
- package/dist/internal/cli-manifest.js +25 -37
- package/dist/internal/cli-mcp-oauth.js +228 -247
- package/dist/internal/cli-mcp.js +358 -383
- package/dist/internal/cli-migrate.js +73 -90
- package/dist/internal/cli-skills.js +35 -47
- package/dist/internal/cli-slack-manual.d.ts +0 -1
- package/dist/internal/cli-slack-manual.d.ts.map +1 -1
- package/dist/internal/cli-slack-manual.js +175 -204
- package/dist/internal/cli-slack.d.ts +1 -1
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +416 -456
- package/dist/internal/cloud-merge.js +7 -3
- package/dist/internal/cloud-turn-cost.js +8 -1
- package/dist/internal/connection-env.js +5 -6
- package/dist/internal/continuation-channel.js +10 -7
- package/dist/internal/continuation-identity.js +85 -67
- package/dist/internal/conversation-mirror.js +112 -131
- package/dist/internal/convert-automation/convert-workflow.js +21 -31
- package/dist/internal/cron.js +3 -3
- package/dist/internal/cursor/account-mcp.js +147 -146
- package/dist/internal/cursor/backend-client.js +290 -320
- package/dist/internal/cursor/bound-secret-file.js +3 -3
- package/dist/internal/cursor/credentials.js +127 -142
- package/dist/internal/cursor/cursor-api-transport.js +4 -8
- package/dist/internal/cursor/github-credentials.js +91 -108
- package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
- package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +5 -9
- package/dist/internal/cursor/session-token.js +36 -48
- package/dist/internal/cursor/store-api-client.js +77 -92
- package/dist/internal/cursor-account-mcp-auth.js +132 -149
- package/dist/internal/cursor-agent-template.js +1 -1
- package/dist/internal/cursor-deployment-relay.js +33 -54
- package/dist/internal/cursor-event-relay.js +65 -59
- package/dist/internal/cursor-relay-core.js +258 -286
- package/dist/internal/deferred-channel-session.js +3 -12
- package/dist/internal/deploy-client.js +410 -475
- package/dist/internal/deploy-manifest.d.ts +17 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +71 -21
- package/dist/internal/deploy-source.js +31 -43
- package/dist/internal/discovery/agent-config.js +45 -59
- package/dist/internal/discovery/agent.js +276 -280
- package/dist/internal/discovery/channels.js +67 -80
- package/dist/internal/discovery/connections.js +286 -296
- package/dist/internal/discovery/context.js +2 -13
- package/dist/internal/discovery/cursor-plugin.js +223 -259
- package/dist/internal/discovery/extension-overlay.js +104 -131
- package/dist/internal/discovery/extensions.js +276 -281
- package/dist/internal/discovery/fs.js +56 -79
- package/dist/internal/discovery/hooks.js +39 -50
- package/dist/internal/discovery/info.js +17 -19
- package/dist/internal/discovery/instructions.js +58 -71
- package/dist/internal/discovery/modules.js +45 -58
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +192 -215
- package/dist/internal/discovery/reminders.js +41 -52
- package/dist/internal/discovery/runtime.js +1 -1
- package/dist/internal/discovery/schedules.js +71 -82
- package/dist/internal/discovery/seed-files.js +21 -32
- package/dist/internal/discovery/services.js +74 -96
- package/dist/internal/discovery/skills.js +77 -94
- package/dist/internal/discovery/subagent.js +79 -95
- package/dist/internal/discovery/tools.js +12 -23
- package/dist/internal/distribution.js +2 -2
- package/dist/internal/docs-site.js +30 -45
- package/dist/internal/duration.js +1 -1
- package/dist/internal/env-file.js +48 -64
- package/dist/internal/eval-judge-model.js +17 -28
- package/dist/internal/eval-run-store.js +265 -254
- package/dist/internal/eval-runner.d.ts +8 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +406 -408
- package/dist/internal/eval-transport.d.ts +24 -0
- package/dist/internal/eval-transport.d.ts.map +1 -0
- package/dist/internal/eval-transport.js +22 -0
- package/dist/internal/evals-client.js +242 -246
- package/dist/internal/event-log.js +72 -120
- package/dist/internal/event-mapper.js +30 -31
- package/dist/internal/factory-resource-channel.js +16 -30
- package/dist/internal/filesystem/errors.js +6 -6
- package/dist/internal/filesystem/format.js +10 -13
- package/dist/internal/filesystem/merge.js +52 -94
- package/dist/internal/filesystem/nearest.js +15 -27
- package/dist/internal/filesystem/scratch.js +65 -85
- package/dist/internal/filesystem/tools.js +221 -241
- package/dist/internal/filesystem/walk.js +76 -143
- package/dist/internal/framework-file-storage.js +118 -139
- package/dist/internal/framework-storage-selection.js +21 -13
- package/dist/internal/frontmatter.js +4 -6
- package/dist/internal/github-fanout.js +50 -64
- package/dist/internal/guest-network.js +96 -109
- package/dist/internal/handleAgentServeTrigger.js +121 -126
- package/dist/internal/host-files.js +73 -88
- package/dist/internal/host-kv.js +21 -36
- package/dist/internal/host-otel.js +22 -19
- package/dist/internal/host-platforms.js +49 -63
- package/dist/internal/hosted-catch-protocol.d.ts +1 -0
- package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.js +1 -0
- package/dist/internal/hosted-catch.d.ts +5 -3
- package/dist/internal/hosted-catch.d.ts.map +1 -1
- package/dist/internal/hosted-catch.js +84 -93
- package/dist/internal/hosted-delivery-protocol.js +32 -8
- package/dist/internal/hosted-delivery.d.ts +13 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +614 -584
- package/dist/internal/hosted-eval-cases.d.ts +21 -0
- package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
- package/dist/internal/hosted-eval-cases.js +162 -0
- package/dist/internal/hosted-execution-diag.js +38 -30
- package/dist/internal/hosted-execution-flush.js +75 -66
- package/dist/internal/hosted-execution-latency.js +16 -8
- package/dist/internal/hosted-managed-automation.js +2 -2
- package/dist/internal/hosting.js +2 -3
- package/dist/internal/http-channel-define.js +4 -1
- package/dist/internal/http-channel.js +101 -112
- package/dist/internal/http-control-plane-session.d.ts +18 -1
- package/dist/internal/http-control-plane-session.d.ts.map +1 -1
- package/dist/internal/http-control-plane-session.js +66 -32
- package/dist/internal/incoming-headers-to-fetch.js +1 -2
- package/dist/internal/init-interview.js +73 -93
- package/dist/internal/init-project.js +182 -214
- package/dist/internal/init-scaffold.js +10 -21
- package/dist/internal/inline-stdio-mcp.js +80 -86
- package/dist/internal/install-cursor-skills.js +231 -273
- package/dist/internal/legacy-command-guard.js +18 -31
- package/dist/internal/listen-port.js +34 -45
- package/dist/internal/local-control-plane.js +293 -307
- package/dist/internal/local-env.js +1 -1
- package/dist/internal/local-ingress.js +15 -9
- package/dist/internal/log-ring.js +1 -2
- package/dist/internal/logs-client.js +207 -227
- package/dist/internal/map-pool.js +24 -38
- package/dist/internal/mcp-endpoint.js +204 -180
- package/dist/internal/mcp-host.js +165 -168
- package/dist/internal/mcp-oauth-on-demand.js +170 -207
- package/dist/internal/mcp-oauth-persist.js +15 -29
- package/dist/internal/mcp-oauth.js +209 -266
- package/dist/internal/named-webhook-secret.d.ts +39 -0
- package/dist/internal/named-webhook-secret.d.ts.map +1 -0
- package/dist/internal/named-webhook-secret.js +47 -0
- package/dist/internal/open-browser.js +2 -3
- package/dist/internal/otel/collector.js +104 -68
- package/dist/internal/otel/config.js +24 -37
- package/dist/internal/otel/http.js +5 -7
- package/dist/internal/otel/mcp.js +3 -12
- package/dist/internal/otel/runtime.js +69 -83
- package/dist/internal/package-inline-stdio.js +57 -65
- package/dist/internal/peer-connections.js +9 -5
- package/dist/internal/platform-schedule-sync.js +39 -54
- package/dist/internal/platform-timers.js +176 -210
- package/dist/internal/playground/static.js +1 -2
- package/dist/internal/playground/toolchain.js +37 -53
- package/dist/internal/playground-proxy.js +230 -270
- package/dist/internal/process-memory-telemetry.js +33 -51
- package/dist/internal/prompt-context.js +3 -6
- package/dist/internal/reminder-control-plane-protocol.js +46 -13
- package/dist/internal/reminder-runner.js +770 -785
- package/dist/internal/reminder-schedule.js +1 -1
- package/dist/internal/reminder-store.js +57 -78
- package/dist/internal/request-error-status.js +1 -3
- package/dist/internal/request-headers.js +2 -2
- package/dist/internal/resolve-prod-target.js +119 -135
- package/dist/internal/resolved-connections.js +16 -6
- package/dist/internal/run-client.js +221 -229
- package/dist/internal/runtime-dispatch-runner.js +18 -43
- package/dist/internal/schedule-runner.js +49 -58
- package/dist/internal/scm/pr-url.js +7 -6
- package/dist/internal/sdk-runner.js +388 -363
- package/dist/internal/serve-restart.js +26 -39
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +1283 -1244
- package/dist/internal/session-cost.js +7 -9
- package/dist/internal/session-engine.d.ts +3 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +2801 -2777
- package/dist/internal/session-links.js +12 -16
- package/dist/internal/session-run-log.js +134 -82
- package/dist/internal/session-store.js +133 -164
- package/dist/internal/sessions-client.js +97 -118
- package/dist/internal/skill-catalog.js +18 -23
- package/dist/internal/skills-sync.js +16 -30
- package/dist/internal/slack-provision-client.js +90 -116
- package/dist/internal/start-log-store.js +48 -67
- package/dist/internal/steering.js +1 -2
- package/dist/internal/storage-coordinator.js +160 -196
- package/dist/internal/store-mirror.js +16 -30
- package/dist/internal/stream-progress.js +6 -8
- package/dist/internal/terminal-style.js +3 -4
- package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
- package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
- package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
- package/dist/internal/tool-catalog.js +11 -5
- package/dist/internal/tool-result.js +1 -1
- package/dist/internal/trajectory.js +19 -22
- package/dist/internal/turn-cost.js +52 -62
- package/dist/internal/turn-governor.js +5 -8
- package/dist/internal/turn-lease-store.js +85 -105
- package/dist/internal/turn-outbox.js +28 -43
- package/dist/internal/update-check.js +231 -259
- package/dist/internal/v2-hosting.js +1 -2
- package/dist/internal/workspace-sync.js +25 -41
- package/dist/internal/workspace.js +111 -139
- package/dist/kv/memory-kv.js +27 -51
- package/dist/memory.js +106 -148
- package/dist/otel.js +5 -8
- package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
- package/dist/playground/assets/{index-Co4CUVTQ.js → index-JekUQERK.js} +45 -45
- package/dist/playground/index.html +2 -2
- package/dist/prompt.js +2 -4
- package/dist/storage-backends/cursor-hosted-v2.js +53 -83
- package/dist/storage-backends/cursor-hosted.js +105 -145
- package/dist/storage-backends/file-kv.js +100 -128
- package/dist/storage-protocol.js +3 -5
- package/dist/storage.js +17 -26
- package/dist/types.d.ts +68 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +20 -18
- package/docs/building-with-agents.md +2 -0
- package/docs/deployment.md +7 -0
- package/docs/guides/bitbucket.md +9 -1
- package/docs/guides/github.md +20 -4
- package/docs/guides/gitlab.md +9 -1
- package/docs/guides/migrate.md +127 -0
- package/docs/reference/cli.md +39 -0
- package/docs/troubleshooting.md +1 -0
- package/package.json +1 -1
- package/skills/debug/SKILL.md +1 -0
- package/skills/github/SKILL.md +23 -0
- package/skills/migrate-v2/SKILL.md +51 -10
- package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
- package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
- package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
- package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
- package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
- /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
- /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
|
@@ -7,26 +7,6 @@
|
|
|
7
7
|
* reimplemented. Only the subscribe/poll paths, the registration body, and
|
|
8
8
|
* the per-event filter differ.
|
|
9
9
|
*/
|
|
10
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
20
|
-
var t = {};
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
22
|
-
t[p] = s[p];
|
|
23
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
24
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
25
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
26
|
-
t[p[i]] = s[p[i]];
|
|
27
|
-
}
|
|
28
|
-
return t;
|
|
29
|
-
};
|
|
30
10
|
import { CursorRelayCore } from "./cursor-relay-core.js";
|
|
31
11
|
const DEFAULT_EVENTS = ["deployment.succeeded"];
|
|
32
12
|
/** Current subscriptions: a live getter, otherwise the snapshot. */
|
|
@@ -39,9 +19,8 @@ export function currentDeploymentSubscriptions(subscriptions) {
|
|
|
39
19
|
* read as "defer to the deploy scope".
|
|
40
20
|
*/
|
|
41
21
|
export function resolveDeploymentSubscriptions(options) {
|
|
42
|
-
var _a, _b, _c, _d, _e;
|
|
43
22
|
const bySource = new Map();
|
|
44
|
-
for (const entry of
|
|
23
|
+
for (const entry of options.deploySourceUris ?? []) {
|
|
45
24
|
const subscription = typeof entry === "string" ? { deploySourceUri: entry } : entry;
|
|
46
25
|
// Case-folded only: `Deployment.deploy_source_uri` has no documented
|
|
47
26
|
// format, and the server keys subscriptions the same way.
|
|
@@ -50,11 +29,11 @@ export function resolveDeploymentSubscriptions(options) {
|
|
|
50
29
|
throw new Error(`deploymentsChannel: invalid deploy source "${subscription.deploySourceUri}".`);
|
|
51
30
|
}
|
|
52
31
|
const environments = [
|
|
53
|
-
...new Set((
|
|
32
|
+
...new Set((subscription.environments ?? options.environments ?? [])
|
|
54
33
|
.map(value => value.trim())
|
|
55
34
|
.filter(Boolean)),
|
|
56
35
|
];
|
|
57
|
-
const events = new Set(
|
|
36
|
+
const events = new Set(subscription.events ?? options.events ?? DEFAULT_EVENTS);
|
|
58
37
|
if (events.size === 0) {
|
|
59
38
|
throw new Error(`deploymentsChannel: deploy source "${deploySourceUri}" subscribes to no events.`);
|
|
60
39
|
}
|
|
@@ -123,26 +102,24 @@ export function deploymentEventMatches(subscription, envelope) {
|
|
|
123
102
|
* Throws only when every subscribed channel failed, so a retry cannot
|
|
124
103
|
* re-deliver to a channel that succeeded.
|
|
125
104
|
*/
|
|
126
|
-
export function fanOutDeploymentEvent(input) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
yield target.deliver(event);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
failures.push(target.name);
|
|
138
|
-
logger(`[bdk] deployment-events: ${target.name} failed on ${event.eventId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
139
|
-
}
|
|
105
|
+
export async function fanOutDeploymentEvent(input) {
|
|
106
|
+
const { event, logger } = input;
|
|
107
|
+
const matched = input.targets.filter(target => target.subscriptions.some(subscription => subscription.deploySourceUri === event.deploySourceUri &&
|
|
108
|
+
deploymentEventMatches(subscription, event)));
|
|
109
|
+
const failures = [];
|
|
110
|
+
for (const target of matched) {
|
|
111
|
+
try {
|
|
112
|
+
await target.deliver(event);
|
|
140
113
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
114
|
+
catch (error) {
|
|
115
|
+
failures.push(target.name);
|
|
116
|
+
logger(`[bdk] deployment-events: ${target.name} failed on ${event.eventId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
144
117
|
}
|
|
145
|
-
}
|
|
118
|
+
}
|
|
119
|
+
logger(`[bdk] deployment-events: ${event.eventType} ${event.deploySourceUri}@${event.deployVersion} (${event.environment}) → ${matched.length - failures.length}/${matched.length} channel(s)`);
|
|
120
|
+
if (failures.length > 0 && failures.length === matched.length) {
|
|
121
|
+
throw new Error(`deployment-events: every subscribed channel failed on ${event.eventId} (${failures.join(", ")})`);
|
|
122
|
+
}
|
|
146
123
|
}
|
|
147
124
|
export class DeploymentEventRelay {
|
|
148
125
|
constructor(options) {
|
|
@@ -168,17 +145,16 @@ export class DeploymentEventRelay {
|
|
|
168
145
|
subscriptions: [],
|
|
169
146
|
}),
|
|
170
147
|
applyRegistrationResponse: json => {
|
|
171
|
-
var _a, _b;
|
|
172
148
|
const result = json;
|
|
173
149
|
const wantedSubscriptions = currentDeploymentSubscriptions(options.subscriptions);
|
|
174
150
|
this.subscribed = new Map();
|
|
175
151
|
this.loggedSkippedSources.clear();
|
|
176
152
|
const lines = [];
|
|
177
153
|
const confirmed = [];
|
|
178
|
-
for (const status of
|
|
154
|
+
for (const status of result.deploySourceUris ?? []) {
|
|
179
155
|
const wanted = wantedSubscriptions.find(subscription => subscription.deploySourceUri === status.deploySourceUri);
|
|
180
156
|
if (!status.isSubscribed || wanted === undefined) {
|
|
181
|
-
lines.push(`not subscribed to ${status.deploySourceUri}: ${
|
|
157
|
+
lines.push(`not subscribed to ${status.deploySourceUri}: ${status.detail ?? "unknown reason"}`);
|
|
182
158
|
continue;
|
|
183
159
|
}
|
|
184
160
|
this.subscribed.set(status.deploySourceUri, wanted);
|
|
@@ -191,12 +167,17 @@ export class DeploymentEventRelay {
|
|
|
191
167
|
return lines;
|
|
192
168
|
},
|
|
193
169
|
shouldDispatch: event => this.shouldDispatch(event),
|
|
194
|
-
dispatch: (
|
|
195
|
-
var { offset: _offset } = _a, envelope = __rest(_a, ["offset"]);
|
|
196
|
-
return options.dispatch(envelope);
|
|
197
|
-
},
|
|
170
|
+
dispatch: ({ offset: _offset, ...envelope }) => options.dispatch(envelope),
|
|
198
171
|
};
|
|
199
|
-
this.core = new CursorRelayCore(
|
|
172
|
+
this.core = new CursorRelayCore({
|
|
173
|
+
baseUrl: options.baseUrl,
|
|
174
|
+
apiKey: options.apiKey,
|
|
175
|
+
stateDir: options.stateDir,
|
|
176
|
+
adapter,
|
|
177
|
+
logger: options.logger,
|
|
178
|
+
...(options.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
|
|
179
|
+
...(options.pollWaitMs === undefined ? {} : { pollWaitMs: options.pollWaitMs }),
|
|
180
|
+
});
|
|
200
181
|
}
|
|
201
182
|
/**
|
|
202
183
|
* Whether an event from this principal's stream belongs to THIS relay.
|
|
@@ -225,9 +206,7 @@ export class DeploymentEventRelay {
|
|
|
225
206
|
start() {
|
|
226
207
|
this.core.start();
|
|
227
208
|
}
|
|
228
|
-
stop() {
|
|
229
|
-
|
|
230
|
-
yield this.core.stop();
|
|
231
|
-
});
|
|
209
|
+
async stop() {
|
|
210
|
+
await this.core.stop();
|
|
232
211
|
}
|
|
233
212
|
}
|
|
@@ -9,20 +9,10 @@
|
|
|
9
9
|
* module is the GitHub adapter over it. {@link RelayOffsetStore} and
|
|
10
10
|
* {@link compareStreamOffsets} are re-exported for stability.
|
|
11
11
|
*/
|
|
12
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
12
|
import { CursorRelayCore, RelayOffsetStore } from "./cursor-relay-core.js";
|
|
22
13
|
export { RelayOffsetStore };
|
|
23
14
|
/** Human-readable cursor-events log fragment: event, repo/PR, times, delivery. */
|
|
24
15
|
export function formatCursorScmEventLog(event) {
|
|
25
|
-
var _a;
|
|
26
16
|
const action = event.action !== undefined && event.action !== "" ? `.${event.action}` : "";
|
|
27
17
|
const pr = event.prUrl !== undefined
|
|
28
18
|
? event.prUrl
|
|
@@ -33,7 +23,7 @@ export function formatCursorScmEventLog(event) {
|
|
|
33
23
|
const occurred = event.occurredAtMs !== undefined
|
|
34
24
|
? ` occurred=${new Date(event.occurredAtMs).toISOString()}`
|
|
35
25
|
: "";
|
|
36
|
-
const delivery =
|
|
26
|
+
const delivery = event.deliveryId ?? "no delivery id";
|
|
37
27
|
return `${event.eventName}${action} on ${pr} received=${received}${occurred} (${delivery})`;
|
|
38
28
|
}
|
|
39
29
|
/** Relay log suffix for one fan-out target, including parse errors on 4xx. */
|
|
@@ -55,8 +45,7 @@ function readDispatchError(body) {
|
|
|
55
45
|
}
|
|
56
46
|
/** Stored webhook body, or a metadata stub for older stream entries. */
|
|
57
47
|
export function scmEventToGitHubPayload(event) {
|
|
58
|
-
|
|
59
|
-
return (_a = event.payload) !== null && _a !== void 0 ? _a : scmMetadataToGitHubPayload(event);
|
|
48
|
+
return event.payload ?? scmMetadataToGitHubPayload(event);
|
|
60
49
|
}
|
|
61
50
|
/**
|
|
62
51
|
* Minimal GitHub webhook body from an SCM-events metadata envelope.
|
|
@@ -68,15 +57,15 @@ export function scmEventToGitHubPayload(event) {
|
|
|
68
57
|
* `workflow_run` so those typed hooks parse on the `--cursor-events` path.
|
|
69
58
|
*/
|
|
70
59
|
export function scmMetadataToGitHubPayload(event) {
|
|
71
|
-
var _a, _b, _c;
|
|
72
|
-
var _d, _e, _f, _g, _h;
|
|
73
60
|
const slash = event.repo.indexOf("/");
|
|
74
61
|
const owner = slash === -1 ? "" : event.repo.slice(0, slash);
|
|
75
62
|
const name = slash === -1 ? event.repo : event.repo.slice(slash + 1);
|
|
76
63
|
const repoUrl = `https://github.com/${event.repo}`;
|
|
77
64
|
const prMeta = event.pullRequest;
|
|
78
|
-
const prNumber =
|
|
79
|
-
const prUrl =
|
|
65
|
+
const prNumber = prMeta?.number ?? event.prNumber;
|
|
66
|
+
const prUrl = prMeta?.url ??
|
|
67
|
+
event.prUrl ??
|
|
68
|
+
(prNumber !== undefined ? `${repoUrl}/pull/${prNumber}` : undefined);
|
|
80
69
|
const payload = {
|
|
81
70
|
repository: {
|
|
82
71
|
full_name: event.repo,
|
|
@@ -105,7 +94,7 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
105
94
|
comment.user = author;
|
|
106
95
|
// The comment author is the closest thing the envelope has to the
|
|
107
96
|
// webhook sender; channels use it for self/bot-loop gates.
|
|
108
|
-
payload.sender =
|
|
97
|
+
payload.sender = { ...author };
|
|
109
98
|
}
|
|
110
99
|
if (commentMeta.path !== undefined) {
|
|
111
100
|
comment.path = commentMeta.path;
|
|
@@ -122,7 +111,9 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
122
111
|
payload.comment = comment;
|
|
123
112
|
}
|
|
124
113
|
const checkPullRequests = stubGitHubCiPullRequests({
|
|
125
|
-
snapshot:
|
|
114
|
+
snapshot: event.checkRun?.pullRequests ??
|
|
115
|
+
event.checkSuite?.pullRequests ??
|
|
116
|
+
event.workflowRun?.pullRequests,
|
|
126
117
|
prNumber,
|
|
127
118
|
prUrl,
|
|
128
119
|
});
|
|
@@ -135,10 +126,10 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
135
126
|
if (event.workflowRun !== undefined) {
|
|
136
127
|
payload.workflow_run = stubGitHubWorkflowRun(event.workflowRun, checkPullRequests);
|
|
137
128
|
}
|
|
138
|
-
const title = prMeta
|
|
139
|
-
const headRef = prMeta
|
|
140
|
-
const headSha = prMeta
|
|
141
|
-
const baseRef = prMeta
|
|
129
|
+
const title = prMeta?.title;
|
|
130
|
+
const headRef = prMeta?.headRef;
|
|
131
|
+
const headSha = prMeta?.headSha;
|
|
132
|
+
const baseRef = prMeta?.baseRef;
|
|
142
133
|
const canStubTypedPr = prNumber !== undefined &&
|
|
143
134
|
prUrl !== undefined &&
|
|
144
135
|
title !== undefined &&
|
|
@@ -150,15 +141,15 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
150
141
|
number: prNumber,
|
|
151
142
|
html_url: prUrl,
|
|
152
143
|
title,
|
|
153
|
-
body: prMeta
|
|
154
|
-
draft: prMeta
|
|
144
|
+
body: prMeta?.body,
|
|
145
|
+
draft: prMeta?.draft,
|
|
155
146
|
head: { ref: headRef, sha: headSha },
|
|
156
|
-
base: { ref: baseRef, sha: prMeta
|
|
147
|
+
base: { ref: baseRef, sha: prMeta?.baseSha },
|
|
157
148
|
};
|
|
158
|
-
if (
|
|
149
|
+
if (prMeta?.merged !== undefined) {
|
|
159
150
|
pullRequest.merged = prMeta.merged;
|
|
160
151
|
}
|
|
161
|
-
if (
|
|
152
|
+
if (prMeta?.authorLogin !== undefined) {
|
|
162
153
|
pullRequest.user = { login: prMeta.authorLogin };
|
|
163
154
|
}
|
|
164
155
|
payload.pull_request = pullRequest;
|
|
@@ -172,11 +163,11 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
172
163
|
if (prNumber !== undefined) {
|
|
173
164
|
payload.pull_request = {
|
|
174
165
|
number: prNumber,
|
|
175
|
-
html_url: prUrl
|
|
166
|
+
html_url: prUrl ?? `${repoUrl}/pull/${prNumber}`,
|
|
176
167
|
};
|
|
177
168
|
payload.issue = {
|
|
178
169
|
number: prNumber,
|
|
179
|
-
html_url: prUrl
|
|
170
|
+
html_url: prUrl ?? `${repoUrl}/pull/${prNumber}`,
|
|
180
171
|
pull_request: {},
|
|
181
172
|
};
|
|
182
173
|
}
|
|
@@ -184,12 +175,18 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
184
175
|
}
|
|
185
176
|
function stubGitHubCiPullRequests(input) {
|
|
186
177
|
if (input.snapshot !== undefined && input.snapshot.length > 0) {
|
|
187
|
-
return input.snapshot.map(pr => (
|
|
178
|
+
return input.snapshot.map(pr => ({
|
|
179
|
+
number: pr.number,
|
|
180
|
+
...(pr.url === undefined ? {} : { html_url: pr.url }),
|
|
181
|
+
}));
|
|
188
182
|
}
|
|
189
183
|
if (input.prNumber === undefined)
|
|
190
184
|
return [];
|
|
191
185
|
return [
|
|
192
|
-
|
|
186
|
+
{
|
|
187
|
+
number: input.prNumber,
|
|
188
|
+
...(input.prUrl === undefined ? {} : { html_url: input.prUrl }),
|
|
189
|
+
},
|
|
193
190
|
];
|
|
194
191
|
}
|
|
195
192
|
function stubGitHubCiApp(app) {
|
|
@@ -245,15 +242,16 @@ function stubGitHubWorkflowRun(meta, pullRequests) {
|
|
|
245
242
|
* handles both live Origin deliveries and this stub: `{ deliveryId, event }`.
|
|
246
243
|
*/
|
|
247
244
|
export function scmMetadataToOriginPayload(event) {
|
|
248
|
-
var _a, _b, _c;
|
|
249
245
|
const slash = event.repo.indexOf("/");
|
|
250
246
|
const owner = slash === -1 ? "" : event.repo.slice(0, slash);
|
|
251
247
|
const name = slash === -1 ? event.repo : event.repo.slice(slash + 1);
|
|
252
248
|
const prMeta = event.pullRequest;
|
|
253
|
-
const prNumber =
|
|
254
|
-
const prUrl =
|
|
255
|
-
|
|
256
|
-
|
|
249
|
+
const prNumber = prMeta?.number ?? event.prNumber;
|
|
250
|
+
const prUrl = prMeta?.url ??
|
|
251
|
+
event.prUrl ??
|
|
252
|
+
(prNumber !== undefined
|
|
253
|
+
? `https://cursor.com/codebase/${owner}/${name}/pull/${prNumber}`
|
|
254
|
+
: undefined);
|
|
257
255
|
const payload = {
|
|
258
256
|
repository: {
|
|
259
257
|
name,
|
|
@@ -265,27 +263,27 @@ export function scmMetadataToOriginPayload(event) {
|
|
|
265
263
|
number: prNumber,
|
|
266
264
|
url: prUrl,
|
|
267
265
|
};
|
|
268
|
-
if (
|
|
266
|
+
if (prMeta?.title !== undefined)
|
|
269
267
|
pullRequest.title = prMeta.title;
|
|
270
|
-
if (
|
|
268
|
+
if (prMeta?.body !== undefined)
|
|
271
269
|
pullRequest.body = prMeta.body;
|
|
272
|
-
if (
|
|
270
|
+
if (prMeta?.draft !== undefined)
|
|
273
271
|
pullRequest.draft = prMeta.draft;
|
|
274
|
-
if (
|
|
272
|
+
if (prMeta?.merged !== undefined)
|
|
275
273
|
pullRequest.merged = prMeta.merged;
|
|
276
|
-
if (
|
|
274
|
+
if (prMeta?.headRef !== undefined || prMeta?.headSha !== undefined) {
|
|
277
275
|
pullRequest.head = {
|
|
278
276
|
ref: prMeta.headRef,
|
|
279
277
|
sha: prMeta.headSha,
|
|
280
278
|
};
|
|
281
279
|
}
|
|
282
|
-
if (
|
|
280
|
+
if (prMeta?.baseRef !== undefined || prMeta?.baseSha !== undefined) {
|
|
283
281
|
pullRequest.base = {
|
|
284
282
|
ref: prMeta.baseRef,
|
|
285
283
|
sha: prMeta.baseSha,
|
|
286
284
|
};
|
|
287
285
|
}
|
|
288
|
-
if (
|
|
286
|
+
if (prMeta?.authorLogin !== undefined) {
|
|
289
287
|
pullRequest.author = { id: prMeta.authorLogin };
|
|
290
288
|
}
|
|
291
289
|
payload.pullRequest = pullRequest;
|
|
@@ -304,9 +302,13 @@ export function scmMetadataToOriginPayload(event) {
|
|
|
304
302
|
}
|
|
305
303
|
return {
|
|
306
304
|
deliveryId: event.deliveryId,
|
|
307
|
-
event:
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
event: {
|
|
306
|
+
type: event.eventName,
|
|
307
|
+
...(event.occurredAtMs === undefined
|
|
308
|
+
? {}
|
|
309
|
+
: { eventTime: new Date(event.occurredAtMs).toISOString() }),
|
|
310
|
+
payload,
|
|
311
|
+
},
|
|
310
312
|
};
|
|
311
313
|
}
|
|
312
314
|
function subscriptionKey(provider, repo) {
|
|
@@ -316,7 +318,6 @@ function subscriptionLabel(provider, repo) {
|
|
|
316
318
|
return provider === "github" ? repo : `${provider}:${repo}`;
|
|
317
319
|
}
|
|
318
320
|
export function resolveCursorScmSubscriptions(options) {
|
|
319
|
-
var _a, _b;
|
|
320
321
|
if (options.subscriptions !== undefined) {
|
|
321
322
|
return options.subscriptions.map(subscription => ({
|
|
322
323
|
provider: subscription.provider,
|
|
@@ -324,8 +325,8 @@ export function resolveCursorScmSubscriptions(options) {
|
|
|
324
325
|
events: [...subscription.events],
|
|
325
326
|
}));
|
|
326
327
|
}
|
|
327
|
-
const events = [...(
|
|
328
|
-
return (
|
|
328
|
+
const events = [...(options.events ?? [])];
|
|
329
|
+
return (options.repos ?? []).map(repo => ({
|
|
329
330
|
provider: "github",
|
|
330
331
|
repo: repo.trim().toLowerCase(),
|
|
331
332
|
events,
|
|
@@ -368,9 +369,8 @@ export class CursorEventRelay {
|
|
|
368
369
|
// registers, and the durable offset cannot replay what was never
|
|
369
370
|
// written. A consumer that does not come back lapses by TTL.
|
|
370
371
|
applyRegistrationResponse: json => {
|
|
371
|
-
var _a, _b, _c;
|
|
372
372
|
const result = json;
|
|
373
|
-
const statuses =
|
|
373
|
+
const statuses = result.repos ?? [];
|
|
374
374
|
this.subscribedEvents = new Map();
|
|
375
375
|
const lines = [];
|
|
376
376
|
const confirmed = [];
|
|
@@ -378,10 +378,10 @@ export class CursorEventRelay {
|
|
|
378
378
|
const provider = status.provider || "github";
|
|
379
379
|
const key = subscriptionKey(provider, status.repo);
|
|
380
380
|
if (!status.isSubscribed) {
|
|
381
|
-
lines.push(`not subscribed to ${subscriptionLabel(provider, status.repo)}: ${
|
|
381
|
+
lines.push(`not subscribed to ${subscriptionLabel(provider, status.repo)}: ${status.detail ?? "unknown reason"}`);
|
|
382
382
|
continue;
|
|
383
383
|
}
|
|
384
|
-
this.subscribedEvents.set(key,
|
|
384
|
+
this.subscribedEvents.set(key, requestedEvents.get(key) ?? new Set());
|
|
385
385
|
confirmed.push(subscriptionLabel(provider, status.repo));
|
|
386
386
|
}
|
|
387
387
|
if (confirmed.length > 0) {
|
|
@@ -393,7 +393,15 @@ export class CursorEventRelay {
|
|
|
393
393
|
shouldDispatch: event => this.shouldDispatch(event),
|
|
394
394
|
dispatch: event => this.options.dispatch(event),
|
|
395
395
|
};
|
|
396
|
-
this.core = new CursorRelayCore(
|
|
396
|
+
this.core = new CursorRelayCore({
|
|
397
|
+
baseUrl: options.baseUrl,
|
|
398
|
+
apiKey: options.apiKey,
|
|
399
|
+
stateDir: options.stateDir,
|
|
400
|
+
adapter,
|
|
401
|
+
logger: options.logger,
|
|
402
|
+
...(options.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
|
|
403
|
+
...(options.pollWaitMs === undefined ? {} : { pollWaitMs: options.pollWaitMs }),
|
|
404
|
+
});
|
|
397
405
|
}
|
|
398
406
|
/**
|
|
399
407
|
* Whether an event from the shared stream belongs to THIS consumer: the
|
|
@@ -416,9 +424,7 @@ export class CursorEventRelay {
|
|
|
416
424
|
start() {
|
|
417
425
|
this.core.start();
|
|
418
426
|
}
|
|
419
|
-
stop() {
|
|
420
|
-
|
|
421
|
-
yield this.core.stop();
|
|
422
|
-
});
|
|
427
|
+
async stop() {
|
|
428
|
+
await this.core.stop();
|
|
423
429
|
}
|
|
424
430
|
}
|