@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
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* Host-side GitHub + Slack clients shared across tools, channel routes,
|
|
3
3
|
* schedules, and channel packs — same injection pattern as MCP.
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
5
|
import { WebClient } from "@slack/web-api";
|
|
15
6
|
import { createGitHubOctokit } from "../channels/github/api.js";
|
|
16
7
|
import { ensureGhCliTokenEnv, hasGitHubAppCredentials, resolveCredentialValue, resolveGitHubInstallationId, tryResolveGhAuthToken, } from "../channels/github/auth.js";
|
|
@@ -19,9 +10,9 @@ import { slackEnvKeys, tryResolveBotToken } from "../channels/slack/credentials.
|
|
|
19
10
|
export function createHostSlackClient(options = {}) {
|
|
20
11
|
let slackPromise;
|
|
21
12
|
return {
|
|
22
|
-
getClient: () =>
|
|
23
|
-
slackPromise
|
|
24
|
-
const token =
|
|
13
|
+
getClient: async () => {
|
|
14
|
+
slackPromise ??= (async () => {
|
|
15
|
+
const token = await tryResolveBotToken(options.credentials);
|
|
25
16
|
if (token === undefined) {
|
|
26
17
|
const botKey = slackEnvKeys(options.envPrefix).bot;
|
|
27
18
|
const hint = options.envPrefix === undefined || options.envPrefix.trim() === ""
|
|
@@ -30,9 +21,9 @@ export function createHostSlackClient(options = {}) {
|
|
|
30
21
|
throw new Error(`No Slack bot token available (set ${hint}).`);
|
|
31
22
|
}
|
|
32
23
|
return new WebClient(token);
|
|
33
|
-
})
|
|
24
|
+
})();
|
|
34
25
|
return slackPromise;
|
|
35
|
-
}
|
|
26
|
+
},
|
|
36
27
|
};
|
|
37
28
|
}
|
|
38
29
|
/**
|
|
@@ -45,9 +36,9 @@ export function createHostPlatforms(options = {}) {
|
|
|
45
36
|
return {
|
|
46
37
|
github: {
|
|
47
38
|
getOctokit: () => {
|
|
48
|
-
octokitPromise
|
|
39
|
+
octokitPromise ??= createGitHubOctokit({
|
|
49
40
|
credentials: options.githubCredentials,
|
|
50
|
-
})
|
|
41
|
+
});
|
|
51
42
|
return octokitPromise;
|
|
52
43
|
},
|
|
53
44
|
},
|
|
@@ -62,19 +53,17 @@ export function createHostPlatforms(options = {}) {
|
|
|
62
53
|
* Order matches {@link createGitHubOctokit}: App installation, then
|
|
63
54
|
* `GITHUB_TOKEN` / `GH_TOKEN`, then `gh auth token`.
|
|
64
55
|
*/
|
|
65
|
-
export function resolveHostGitHubAuthSource() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return fromGh === undefined ? "unavailable" : "gh";
|
|
77
|
-
});
|
|
56
|
+
export async function resolveHostGitHubAuthSource() {
|
|
57
|
+
if ((await hasGitHubAppCredentials()) && (await resolveGitHubInstallationId()) !== undefined) {
|
|
58
|
+
return "app";
|
|
59
|
+
}
|
|
60
|
+
const fromEnv = (await resolveCredentialValue(process.env.GITHUB_TOKEN)) ??
|
|
61
|
+
(await resolveCredentialValue(process.env.GH_TOKEN));
|
|
62
|
+
if (fromEnv !== undefined) {
|
|
63
|
+
return "env";
|
|
64
|
+
}
|
|
65
|
+
const fromGh = await tryResolveGhAuthToken();
|
|
66
|
+
return fromGh === undefined ? "unavailable" : "gh";
|
|
78
67
|
}
|
|
79
68
|
/**
|
|
80
69
|
* Soft boot-time GitHub auth check: log the resolved source and optionally
|
|
@@ -84,43 +73,40 @@ export function resolveHostGitHubAuthSource() {
|
|
|
84
73
|
* authenticate on corp hosts that have no PAT / `gh
|
|
85
74
|
* auth login`. Never fails serve — missing auth is logged as a warning.
|
|
86
75
|
*/
|
|
87
|
-
export function warmupHostGitHubAuth(options) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
let exportedGhToken = false;
|
|
96
|
-
if (source === "app") {
|
|
97
|
-
try {
|
|
98
|
-
exportedGhToken = yield ensureGhCliTokenEnv();
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
options.logger(`[bdk] GitHub auth: failed to export GH_TOKEN for gh CLI: ${error instanceof Error ? error.message : String(error)}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const label = source === "cursor-account"
|
|
105
|
-
? "Cursor account repo-scoped credential (also exported as GH_TOKEN for gh CLI)"
|
|
106
|
-
: source === "app"
|
|
107
|
-
? exportedGhToken
|
|
108
|
-
? "GitHub App installation token (also exported as GH_TOKEN for gh CLI)"
|
|
109
|
-
: "GitHub App installation token"
|
|
110
|
-
: source === "env"
|
|
111
|
-
? "GITHUB_TOKEN/GH_TOKEN"
|
|
112
|
-
: "gh auth token";
|
|
113
|
-
if (options.github === undefined) {
|
|
114
|
-
options.logger(`[bdk] GitHub auth: ${label}`);
|
|
115
|
-
return source;
|
|
116
|
-
}
|
|
76
|
+
export async function warmupHostGitHubAuth(options) {
|
|
77
|
+
const source = options.authSource ?? (await resolveHostGitHubAuthSource());
|
|
78
|
+
if (source === "unavailable") {
|
|
79
|
+
options.logger("[bdk] GitHub auth: unavailable (set GITHUB_APP_ID + GITHUB_APP_PRIVATE_KEY + GITHUB_APP_INSTALLATION_ID, or GITHUB_TOKEN / GH_TOKEN, or run `gh auth login`)");
|
|
80
|
+
return source;
|
|
81
|
+
}
|
|
82
|
+
let exportedGhToken = false;
|
|
83
|
+
if (source === "app") {
|
|
117
84
|
try {
|
|
118
|
-
|
|
119
|
-
options.logger(`[bdk] GitHub auth: ${label}`);
|
|
85
|
+
exportedGhToken = await ensureGhCliTokenEnv();
|
|
120
86
|
}
|
|
121
87
|
catch (error) {
|
|
122
|
-
options.logger(`[bdk] GitHub auth:
|
|
88
|
+
options.logger(`[bdk] GitHub auth: failed to export GH_TOKEN for gh CLI: ${error instanceof Error ? error.message : String(error)}`);
|
|
123
89
|
}
|
|
90
|
+
}
|
|
91
|
+
const label = source === "cursor-account"
|
|
92
|
+
? "Cursor account repo-scoped credential (also exported as GH_TOKEN for gh CLI)"
|
|
93
|
+
: source === "app"
|
|
94
|
+
? exportedGhToken
|
|
95
|
+
? "GitHub App installation token (also exported as GH_TOKEN for gh CLI)"
|
|
96
|
+
: "GitHub App installation token"
|
|
97
|
+
: source === "env"
|
|
98
|
+
? "GITHUB_TOKEN/GH_TOKEN"
|
|
99
|
+
: "gh auth token";
|
|
100
|
+
if (options.github === undefined) {
|
|
101
|
+
options.logger(`[bdk] GitHub auth: ${label}`);
|
|
124
102
|
return source;
|
|
125
|
-
}
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
await options.github.getOctokit();
|
|
106
|
+
options.logger(`[bdk] GitHub auth: ${label}`);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
options.logger(`[bdk] GitHub auth: ${label} resolved but Octokit warmup failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
110
|
+
}
|
|
111
|
+
return source;
|
|
126
112
|
}
|
|
@@ -16,6 +16,7 @@ export declare const AGENT_SDK_CATCH_ENVELOPE_VERSION = 1;
|
|
|
16
16
|
export declare const AGENT_SDK_CATCH_EVENT_TYPE = "http.request";
|
|
17
17
|
export declare const AGENT_SDK_CUSTOM_CHANNEL_KIND = "custom";
|
|
18
18
|
export declare const AGENT_SDK_SESSION_EVENT_TYPE = "agentsdk.session";
|
|
19
|
+
export declare const AGENT_SDK_EVAL_CASE_EVENT_TYPE = "agentsdk.eval-case";
|
|
19
20
|
export declare const AGENT_SDK_HTTP_CHANNEL_ID = "http";
|
|
20
21
|
export declare const AGENT_SDK_HTTP_CHANNEL_KIND = "http";
|
|
21
22
|
export declare const AGENT_SDK_SESSION_RESUME_KEY_PREFIX = "cont:session:";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-catch-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-catch-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,mCAAmC,kBAAkB,CAAC;AACnE,eAAO,MAAM,8BAA8B,EAAE,MAAmB,CAAC;AAEjE,eAAO,MAAM,6BAA6B,YAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAChG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,EAAE,CAAC,CAAC;IACL,MAAM,EAAE,gBAAgB,CAAC;IACzB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;AASD,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CA2C1F;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,MAAM,CAK1E"}
|
|
1
|
+
{"version":3,"file":"hosted-catch-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-catch-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAC/D,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,mCAAmC,kBAAkB,CAAC;AACnE,eAAO,MAAM,8BAA8B,EAAE,MAAmB,CAAC;AAEjE,eAAO,MAAM,6BAA6B,YAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAChG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,EAAE,CAAC,CAAC;IACL,MAAM,EAAE,gBAAgB,CAAC;IACzB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;AASD,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CA2C1F;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,MAAM,CAK1E"}
|
|
@@ -17,6 +17,7 @@ export const AGENT_SDK_CATCH_ENVELOPE_VERSION = 1;
|
|
|
17
17
|
export const AGENT_SDK_CATCH_EVENT_TYPE = "http.request";
|
|
18
18
|
export const AGENT_SDK_CUSTOM_CHANNEL_KIND = "custom";
|
|
19
19
|
export const AGENT_SDK_SESSION_EVENT_TYPE = "agentsdk.session";
|
|
20
|
+
export const AGENT_SDK_EVAL_CASE_EVENT_TYPE = "agentsdk.eval-case";
|
|
20
21
|
export const AGENT_SDK_HTTP_CHANNEL_ID = "http";
|
|
21
22
|
export const AGENT_SDK_HTTP_CHANNEL_KIND = "http";
|
|
22
23
|
export const AGENT_SDK_SESSION_RESUME_KEY_PREFIX = "cont:session:";
|
|
@@ -33,9 +33,11 @@ export declare function replayCatchRequest(input: {
|
|
|
33
33
|
}): Promise<Response>;
|
|
34
34
|
/**
|
|
35
35
|
* Attach catch admission to an authored channel. Provider packs attach
|
|
36
|
-
* their own adapter afterwards and replace this one. A pack
|
|
37
|
-
*
|
|
38
|
-
*
|
|
36
|
+
* their own adapter afterwards and replace this one. A pack whose routes
|
|
37
|
+
* are catchable (`publicEndpoint()`, or a named webhook secret that makes
|
|
38
|
+
* the provider signature the route policy) must replay `http.request`
|
|
39
|
+
* itself — `githubChannel` does — because that catch is no longer this
|
|
40
|
+
* adapter.
|
|
39
41
|
*/
|
|
40
42
|
export declare function attachCatchAdmission(definition: ChannelDefinition<unknown>, routes: readonly ChannelRoute[]): void;
|
|
41
43
|
//# sourceMappingURL=hosted-catch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-catch.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-catch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMpG,OAAO,EAGL,KAAK,oBAAoB,EAG1B,MAAM,4BAA4B,CAAC;AAIpC,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAIlE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GAAG,OAAO,CAcV;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiFpB;AAgBD
|
|
1
|
+
{"version":3,"file":"hosted-catch.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-catch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMpG,OAAO,EAGL,KAAK,oBAAoB,EAG1B,MAAM,4BAA4B,CAAC;AAIpC,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAIlE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAIhC,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,GAAG,OAAO,CAcV;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiFpB;AAgBD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,IAAI,CAgBN"}
|
|
@@ -9,15 +9,6 @@
|
|
|
9
9
|
* authenticated principal. A captured `send()` becomes the pending send;
|
|
10
10
|
* a handler that answers without sending is a `skip`.
|
|
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 { acknowledgeTurn, dispatchOutcome, skipped, tagOutcome } from "./channel-dispatch.js";
|
|
22
13
|
import { classifyHostedAdmissionRejection } from "./hosted-delivery-protocol.js";
|
|
23
14
|
import { invokeChannelRoute } from "./channel-route-dispatch.js";
|
|
@@ -53,107 +44,107 @@ export function catchRequestFromEnvelope(input) {
|
|
|
53
44
|
body: body.length === 0 || BODYLESS_METHODS.has(envelope.method) ? undefined : new Uint8Array(body),
|
|
54
45
|
});
|
|
55
46
|
}
|
|
56
|
-
export function replayCatchRequest(input) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
handler: () => errorResponse(500, "unreachable", "unreachable"),
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
const matched = router.match(envelope.method, envelope.path);
|
|
72
|
-
const route = input.routes.find(candidate => candidate.method === (matched === null || matched === void 0 ? void 0 : matched.route.method) && candidate.path === matched.route.pattern);
|
|
73
|
-
if (matched === undefined || route === undefined) {
|
|
74
|
-
// The control plane routes from the same pinned manifest this VM was
|
|
75
|
-
// frozen from; a miss here is drift, not a caller error.
|
|
76
|
-
return errorResponse(404, "route_not_declared", `No ${envelope.method} ${envelope.path} route is mounted on channel "${input.channelId}".`);
|
|
77
|
-
}
|
|
78
|
-
const request = catchRequestFromEnvelope({
|
|
79
|
-
channelId: input.channelId,
|
|
80
|
-
deliveryId: input.deliveryId,
|
|
81
|
-
envelope,
|
|
47
|
+
export async function replayCatchRequest(input) {
|
|
48
|
+
const envelope = parseCatchRequestEnvelope(input.payload);
|
|
49
|
+
if (envelope === undefined) {
|
|
50
|
+
return errorResponse(400, "invalid_catch_envelope", "Expected a supported Agent SDK catch request envelope.");
|
|
51
|
+
}
|
|
52
|
+
const router = new Router();
|
|
53
|
+
for (const route of input.routes) {
|
|
54
|
+
router.add({
|
|
55
|
+
method: route.method,
|
|
56
|
+
pattern: route.path,
|
|
57
|
+
auth: "none",
|
|
58
|
+
handler: () => errorResponse(500, "unreachable", "unreachable"),
|
|
82
59
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// handler's HTTP reply hosted; the captured send is the outcome.
|
|
96
|
-
if (error instanceof DeferredChannelSessionError) {
|
|
97
|
-
return acknowledgeTurn();
|
|
98
|
-
}
|
|
99
|
-
throw error;
|
|
100
|
-
}
|
|
101
|
-
// A 2xx the handler did not tag and in which nothing was captured means
|
|
102
|
-
// it handled the request itself (acknowledged, ignored, replied). There is
|
|
103
|
-
// nothing to execute: report skip instead of failing the delivery.
|
|
104
|
-
if (response.ok && dispatchOutcome(response) === undefined) {
|
|
105
|
-
return tagOutcome(response, "skip");
|
|
106
|
-
}
|
|
107
|
-
// A 4xx is the handler rejecting the sender (bad signature on a
|
|
108
|
-
// handler-verified `publicEndpoint()` route, schema mismatch, unknown
|
|
109
|
-
// event). The sender already has its 202; retrying the delivery cannot
|
|
110
|
-
// change the verdict, so report a cheap skip that lets the control plane
|
|
111
|
-
// discard the compute instead of failing and retrying the activity.
|
|
112
|
-
if (response.status >= 400 && response.status < 500) {
|
|
113
|
-
// A handler 4xx (bad Hub signature, schema mismatch, unknown event) is a
|
|
114
|
-
// skip so the control plane does not retry it. The reason is what the
|
|
115
|
-
// control plane logs; this line is the guest copy. Neither includes the
|
|
116
|
-
// secret or the request body.
|
|
117
|
-
const reason = classifyHostedAdmissionRejection(yield handlerErrorCode(response));
|
|
118
|
-
console.info(`[bdk] catch replay rejected by handler deliveryId=${input.deliveryId} channelId=${input.channelId} route=${envelope.method} ${route.path} status=${String(response.status)} reason=${reason}`);
|
|
119
|
-
return skipped(reason, { status: response.status });
|
|
120
|
-
}
|
|
121
|
-
return response;
|
|
60
|
+
}
|
|
61
|
+
const matched = router.match(envelope.method, envelope.path);
|
|
62
|
+
const route = input.routes.find(candidate => candidate.method === matched?.route.method && candidate.path === matched.route.pattern);
|
|
63
|
+
if (matched === undefined || route === undefined) {
|
|
64
|
+
// The control plane routes from the same pinned manifest this VM was
|
|
65
|
+
// frozen from; a miss here is drift, not a caller error.
|
|
66
|
+
return errorResponse(404, "route_not_declared", `No ${envelope.method} ${envelope.path} route is mounted on channel "${input.channelId}".`);
|
|
67
|
+
}
|
|
68
|
+
const request = catchRequestFromEnvelope({
|
|
69
|
+
channelId: input.channelId,
|
|
70
|
+
deliveryId: input.deliveryId,
|
|
71
|
+
envelope,
|
|
122
72
|
});
|
|
73
|
+
let response;
|
|
74
|
+
try {
|
|
75
|
+
response = await invokeChannelRoute({
|
|
76
|
+
route,
|
|
77
|
+
request,
|
|
78
|
+
handlerArgs: {
|
|
79
|
+
...input.args,
|
|
80
|
+
params: matched.params,
|
|
81
|
+
auth: CATCH_AUTH_CONTEXT,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
// `return Response.json({ sessionId: session.id })` after `send()` is
|
|
87
|
+
// the ordinary local webhook shape. Hosted, `send()` is captured and the
|
|
88
|
+
// handle is deferred, so reading `.id` throws — but nobody reads this
|
|
89
|
+
// handler's HTTP reply hosted; the captured send is the outcome.
|
|
90
|
+
if (error instanceof DeferredChannelSessionError) {
|
|
91
|
+
return acknowledgeTurn();
|
|
92
|
+
}
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
// A 2xx the handler did not tag and in which nothing was captured means
|
|
96
|
+
// it handled the request itself (acknowledged, ignored, replied). There is
|
|
97
|
+
// nothing to execute: report skip instead of failing the delivery.
|
|
98
|
+
if (response.ok && dispatchOutcome(response) === undefined) {
|
|
99
|
+
return tagOutcome(response, "skip");
|
|
100
|
+
}
|
|
101
|
+
// A 4xx is the handler rejecting the sender (bad signature on a
|
|
102
|
+
// handler-verified `publicEndpoint()` route, schema mismatch, unknown
|
|
103
|
+
// event). The sender already has its 202; retrying the delivery cannot
|
|
104
|
+
// change the verdict, so report a cheap skip that lets the control plane
|
|
105
|
+
// discard the compute instead of failing and retrying the activity.
|
|
106
|
+
if (response.status >= 400 && response.status < 500) {
|
|
107
|
+
// A handler 4xx (bad Hub signature, schema mismatch, unknown event) is a
|
|
108
|
+
// skip so the control plane does not retry it. The reason is what the
|
|
109
|
+
// control plane logs; this line is the guest copy. Neither includes the
|
|
110
|
+
// secret or the request body.
|
|
111
|
+
const reason = classifyHostedAdmissionRejection(await handlerErrorCode(response));
|
|
112
|
+
console.info(`[bdk] catch replay rejected by handler deliveryId=${input.deliveryId} channelId=${input.channelId} route=${envelope.method} ${route.path} status=${String(response.status)} reason=${reason}`);
|
|
113
|
+
return skipped(reason, { status: response.status });
|
|
114
|
+
}
|
|
115
|
+
return response;
|
|
123
116
|
}
|
|
124
117
|
/** Short handler error token, such as `missing_secret`. Never a secret or a body. */
|
|
125
|
-
function handlerErrorCode(response) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (typeof body !== "object" || body === null || Array.isArray(body)) {
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
const error = body.error;
|
|
133
|
-
return typeof error === "string" && /^[a-z0-9_]{1,64}$/.test(error) ? error : undefined;
|
|
134
|
-
}
|
|
135
|
-
catch (_a) {
|
|
118
|
+
async function handlerErrorCode(response) {
|
|
119
|
+
try {
|
|
120
|
+
const body = (await response.clone().json());
|
|
121
|
+
if (typeof body !== "object" || body === null || Array.isArray(body)) {
|
|
136
122
|
return undefined;
|
|
137
123
|
}
|
|
138
|
-
|
|
124
|
+
const error = body.error;
|
|
125
|
+
return typeof error === "string" && /^[a-z0-9_]{1,64}$/.test(error) ? error : undefined;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
139
130
|
}
|
|
140
131
|
/**
|
|
141
132
|
* Attach catch admission to an authored channel. Provider packs attach
|
|
142
|
-
* their own adapter afterwards and replace this one. A pack
|
|
143
|
-
*
|
|
144
|
-
*
|
|
133
|
+
* their own adapter afterwards and replace this one. A pack whose routes
|
|
134
|
+
* are catchable (`publicEndpoint()`, or a named webhook secret that makes
|
|
135
|
+
* the provider signature the route policy) must replay `http.request`
|
|
136
|
+
* itself — `githubChannel` does — because that catch is no longer this
|
|
137
|
+
* adapter.
|
|
145
138
|
*/
|
|
146
139
|
export function attachCatchAdmission(definition, routes) {
|
|
147
|
-
var _a;
|
|
148
|
-
var _b;
|
|
149
140
|
attachHostedAdmissionAdapter(definition, {
|
|
150
|
-
kind:
|
|
141
|
+
kind: definition.meta?.kind ?? AGENT_SDK_CUSTOM_CHANNEL_KIND,
|
|
151
142
|
dispatch: ({ channelId, eventType, payload, deliveryId, args }) => {
|
|
152
143
|
if (eventType !== AGENT_SDK_CATCH_EVENT_TYPE) {
|
|
153
144
|
return Promise.resolve(skipped("not a caught http request"));
|
|
154
145
|
}
|
|
155
146
|
return replayCatchRequest({
|
|
156
|
-
channelId: channelId
|
|
147
|
+
channelId: channelId ?? "channel",
|
|
157
148
|
deliveryId,
|
|
158
149
|
routes,
|
|
159
150
|
payload,
|
|
@@ -61,12 +61,11 @@ export const HOSTED_FAILURE_CLASSIFICATIONS = {
|
|
|
61
61
|
v2_identity_conflict: { domain: "protocol", source: "engine" },
|
|
62
62
|
};
|
|
63
63
|
export function hostedFailureClassification(code) {
|
|
64
|
-
var _a, _b;
|
|
65
64
|
const known = HOSTED_FAILURE_CLASSIFICATIONS[code];
|
|
66
65
|
return {
|
|
67
66
|
v: HOSTED_FAILURE_CLASSIFICATION_VERSION,
|
|
68
|
-
domain:
|
|
69
|
-
source:
|
|
67
|
+
domain: known?.domain ?? "unknown",
|
|
68
|
+
source: known?.source ?? "engine",
|
|
70
69
|
};
|
|
71
70
|
}
|
|
72
71
|
export function parseHostedFailureClassification(value) {
|
|
@@ -261,9 +260,13 @@ function parseManagedAutomation(value) {
|
|
|
261
260
|
}
|
|
262
261
|
}
|
|
263
262
|
return {
|
|
264
|
-
managedAutomation:
|
|
265
|
-
|
|
266
|
-
:
|
|
263
|
+
managedAutomation: {
|
|
264
|
+
automationUuid: body.automationUuid,
|
|
265
|
+
mcpServerNames: body.mcpServerNames,
|
|
266
|
+
...(body.slackChannels === undefined
|
|
267
|
+
? {}
|
|
268
|
+
: { slackChannels: body.slackChannels }),
|
|
269
|
+
},
|
|
267
270
|
};
|
|
268
271
|
}
|
|
269
272
|
/**
|
|
@@ -507,7 +510,7 @@ function parseOptionalJsonObjectField(value, maxBytes) {
|
|
|
507
510
|
}
|
|
508
511
|
return roundTrip;
|
|
509
512
|
}
|
|
510
|
-
catch
|
|
513
|
+
catch {
|
|
511
514
|
return undefined;
|
|
512
515
|
}
|
|
513
516
|
}
|
|
@@ -592,7 +595,28 @@ export function parseHostedReminderFireDescriptorPayload(value) {
|
|
|
592
595
|
if (body.args !== undefined && args === undefined) {
|
|
593
596
|
return undefined;
|
|
594
597
|
}
|
|
595
|
-
return
|
|
598
|
+
return {
|
|
599
|
+
protocolVersion: 1,
|
|
600
|
+
id: body.id,
|
|
601
|
+
fireCount: body.fireCount,
|
|
602
|
+
generation: body.generation,
|
|
603
|
+
purpose: body.purpose,
|
|
604
|
+
channelId: body.channelId,
|
|
605
|
+
continuationToken: body.continuationToken,
|
|
606
|
+
...(target === undefined ? {} : { target }),
|
|
607
|
+
scheduleKind: body.scheduleKind,
|
|
608
|
+
scheduleValue: body.scheduleValue,
|
|
609
|
+
...(body.intervalMs === undefined ? {} : { intervalMs: body.intervalMs }),
|
|
610
|
+
...(body.prompt === undefined ? {} : { prompt: body.prompt }),
|
|
611
|
+
...(body.handler === undefined ? {} : { handler: body.handler }),
|
|
612
|
+
...(args === undefined ? {} : { args }),
|
|
613
|
+
hasRunHandler: body.hasRunHandler,
|
|
614
|
+
hasUntilFn: body.hasUntilFn,
|
|
615
|
+
...(body.untilPrompt === undefined ? {} : { untilPrompt: body.untilPrompt }),
|
|
616
|
+
busyPolicy: body.busyPolicy,
|
|
617
|
+
nextFireAtMs: body.nextFireAtMs,
|
|
618
|
+
claimedAtMs: body.claimedAtMs,
|
|
619
|
+
};
|
|
596
620
|
}
|
|
597
621
|
const HOSTED_ADMISSION_OUTCOME_KEYS = new Set([
|
|
598
622
|
"ok",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChannelHandlerArgs, SendMessageOptions } from "../types.js";
|
|
1
|
+
import type { ChannelHandlerArgs, ChannelSession, SendMessageOptions } from "../types.js";
|
|
2
2
|
import { type HostedBoundSecretsResult } from "./cursor/hosted-bound-secrets.js";
|
|
3
3
|
import { type GuestNetworkWaitResult } from "./guest-network.js";
|
|
4
4
|
import { type HostedAdmissionInput, type HostedReminderFireDescriptorPayload } from "./hosted-delivery-protocol.js";
|
|
@@ -10,6 +10,13 @@ type DispatchInput = {
|
|
|
10
10
|
definition: object;
|
|
11
11
|
args: ChannelHandlerArgs;
|
|
12
12
|
};
|
|
13
|
+
export type HostedStartedSend = Pick<ChannelSession, "id" | "waitForCompletion">;
|
|
14
|
+
export type HostedSendStart = (input: {
|
|
15
|
+
args: ChannelHandlerArgs;
|
|
16
|
+
message: string;
|
|
17
|
+
options: SendMessageOptions;
|
|
18
|
+
sessionPublicId: string;
|
|
19
|
+
}) => Promise<HostedStartedSend>;
|
|
13
20
|
type PendingSend = {
|
|
14
21
|
channelId: string;
|
|
15
22
|
message: string;
|
|
@@ -105,6 +112,11 @@ export declare function registerHostedDeliveryRoute(input: {
|
|
|
105
112
|
* stub.
|
|
106
113
|
*/
|
|
107
114
|
consumeBoundSecrets?(): HostedBoundSecretsResult;
|
|
115
|
+
/**
|
|
116
|
+
* Start the captured send on the allocated session. Defaults to one turn
|
|
117
|
+
* through the channel's `send`.
|
|
118
|
+
*/
|
|
119
|
+
startSend?: HostedSendStart;
|
|
108
120
|
}): void;
|
|
109
121
|
export {};
|
|
110
122
|
//# sourceMappingURL=hosted-delivery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-delivery.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"hosted-delivery.d.ts","sourceRoot":"","sources":["../../src/internal/hosted-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAKL,KAAK,sBAAsB,EAG5B,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAQL,KAAK,oBAAoB,EAIzB,KAAK,mCAAmC,EASzC,MAAM,+BAA+B,CAAC;AAoBvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,mBAAmB,CAAC,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEjC,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AA8JF;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU9F;AA2RD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAClF;;;;OAIG;IACH,YAAY,CAAC,CACX,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH;;;OAGG;IACH,yBAAyB,CAAC,CAAC,UAAU,EAAE,mCAAmC,GAAG,OAAO,CAAC;QACnF,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH;;;;;OAKG;IACH,sBAAsB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;OAGG;IACH,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,8DAA8D;IAC9D,aAAa,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,wDAAwD;IACxD,YAAY,CAAC,IAAI,YAAY,EAAE,CAAC;IAChC;;;;;OAKG;IACH,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC,sBAAsB,GAAG,OAAO,CAAC,CAAC;IAClE;;;;OAIG;IACH,mBAAmB,CAAC,IAAI,wBAAwB,CAAC;IACjD;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,GAAG,IAAI,CAwoBP"}
|