@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
|
@@ -127,6 +127,23 @@ export declare function buildAgentDeployManifest(project: AgentProject, options?
|
|
|
127
127
|
* through the catch API.
|
|
128
128
|
*/
|
|
129
129
|
export declare function channelCatchDeclaration(definition: AgentProject["channels"][number]["definition"]): AgentDeployManifestCatchDeclaration | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* Deployment secrets the control plane decrypts to admit this channel's
|
|
132
|
+
* caught requests — the names behind its `sharedSecretAuth` /
|
|
133
|
+
* `hmacSignatureAuth` policies (a named GitHub webhook secret included).
|
|
134
|
+
* Empty for a `publicEndpoint()` channel: that chain admits everything, so
|
|
135
|
+
* the control plane checks nothing. `deploy` folds these into the declared
|
|
136
|
+
* secret names so an unset one is flagged before the first delivery 401s.
|
|
137
|
+
*/
|
|
138
|
+
export declare function channelCatchSecretNames(definition: AgentProject["channels"][number]["definition"]): string[];
|
|
139
|
+
/**
|
|
140
|
+
* Deployment secrets a channel's API credentials name (today the
|
|
141
|
+
* `githubChannel` `{ secretName }` credentials). Nothing on the control
|
|
142
|
+
* plane reads them — the guest does — but `deploy` folds them into the
|
|
143
|
+
* declared secret names so an unset one is flagged at deploy time rather
|
|
144
|
+
* than as a failed API call inside the guest.
|
|
145
|
+
*/
|
|
146
|
+
export declare function channelCredentialSecretNames(definition: AgentProject["channels"][number]["definition"]): string[];
|
|
130
147
|
/**
|
|
131
148
|
* Parse an untrusted manifest (round-trip check for the CLI's own output;
|
|
132
149
|
* the CP re-validates server-side with its own copy of the contract).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQlE,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAI/F,eAAO,MAAM,uBAAuB,EAAE,CAAK,CAAC;AAqF5C,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;IACtD;;;;OAIG;IACH,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,oBAAoB,CAAC;QACnC;;;WAGG;QACH,UAAU,CAAC,EAAE,wCAAwC,CAAC;QACtD;;;;;;WAMG;QACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B;;;;;WAKG;QACH,KAAK,CAAC,EAAE,mCAAmC,CAAC;KAC7C,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,KAAK,CAAC;QACZ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,wCAAwC;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,CAAC,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,+BAA+B,CAAC;IAC9C;;;OAGG;IACH,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,qBAAqB,CA6EvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,mCAAmC,GAAG,SAAS,CAoDjD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,MAAM,EAAE,CAUV;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACzD,MAAM,EAAE,CAEV;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAKxF"}
|
|
@@ -30,7 +30,9 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { z } from "zod";
|
|
32
32
|
import { catchAuthDeclaration, isPublicEndpointPolicy, } from "../channels.js";
|
|
33
|
+
import { githubChannelCredentialSecretNames, isCursorAccountGitHubChannel, } from "../channels/github/github-channel.js";
|
|
33
34
|
import { isCursorHostedStorage } from "../storage-backends/cursor-hosted.js";
|
|
35
|
+
import { channelArchitectureError } from "./channel-architecture.js";
|
|
34
36
|
import { applyAgentContinuationDefaults, channelContinuationIdentity, channelDeclaredEventTypes, handshakeChannelContinuation, } from "./continuation-channel.js";
|
|
35
37
|
import { CONTINUATION_SELECTORS } from "./continuation-identity.js";
|
|
36
38
|
import { projectInfo, runtimeArchitectureCompatibilityError } from "./discovery.js";
|
|
@@ -113,41 +115,51 @@ const agentDeployManifestV1Schema = z.object({
|
|
|
113
115
|
* network, no filesystem beyond what `loadAgentProject` already read.
|
|
114
116
|
*/
|
|
115
117
|
export function buildAgentDeployManifest(project, options) {
|
|
116
|
-
var _a, _b;
|
|
117
|
-
var _c, _d, _e, _f;
|
|
118
118
|
const runtimeArchitectureError = runtimeArchitectureCompatibilityError(project.agent);
|
|
119
119
|
if (runtimeArchitectureError !== undefined) {
|
|
120
120
|
throw new Error(runtimeArchitectureError);
|
|
121
121
|
}
|
|
122
122
|
applyAgentContinuationDefaults(project);
|
|
123
123
|
const channels = project.channels.map(channel => {
|
|
124
|
-
|
|
124
|
+
const architectureError = channelArchitectureError(project.agent.architecture, channel.definition);
|
|
125
|
+
if (architectureError !== undefined) {
|
|
126
|
+
throw new Error(`channels/${channel.id}: ${architectureError}`);
|
|
127
|
+
}
|
|
125
128
|
const handshake = handshakeChannelContinuation(channel);
|
|
126
129
|
if (!handshake.ok) {
|
|
127
130
|
throw new Error(handshake.error);
|
|
128
131
|
}
|
|
129
|
-
const kind =
|
|
132
|
+
const kind = channel.definition.meta?.kind;
|
|
130
133
|
const meta = channel.definition.meta;
|
|
131
134
|
const declaredEvents = channelDeclaredEventTypes(channel.definition.meta);
|
|
132
135
|
const eventTypes = declaredEvents === undefined ? undefined : [...declaredEvents].sort();
|
|
133
|
-
return
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
:
|
|
136
|
+
return {
|
|
137
|
+
id: channel.id,
|
|
138
|
+
kind,
|
|
139
|
+
eventTypes,
|
|
140
|
+
continuation: channelContinuationIdentity(channel.definition),
|
|
141
|
+
catch: channelCatchDeclaration(channel.definition),
|
|
142
|
+
...(kind === "slack" && meta?.slackReply !== undefined
|
|
143
|
+
? { slackReply: meta.slackReply }
|
|
144
|
+
: {}),
|
|
145
|
+
...(kind === "slack" && meta?.slackChannelPosts !== undefined
|
|
146
|
+
? { slackChannelPosts: [...meta.slackChannelPosts] }
|
|
147
|
+
: {}),
|
|
148
|
+
};
|
|
139
149
|
});
|
|
140
150
|
// Same mapping as `july deploy` (cli-deploy.ts): channels declared public
|
|
141
151
|
// via `publicEndpoint()` become alias-token-free route prefixes.
|
|
142
152
|
const publicRoutePaths = project.channels
|
|
143
|
-
.filter(channel =>
|
|
153
|
+
.filter(channel => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
144
154
|
.map(channel => `/v1/channels/${channel.id}`);
|
|
145
155
|
const manifest = {
|
|
146
156
|
manifestVersion: DEPLOY_MANIFEST_VERSION,
|
|
147
|
-
generatedAtMs:
|
|
148
|
-
cliVersion:
|
|
149
|
-
cliGitSha:
|
|
150
|
-
declarations:
|
|
157
|
+
generatedAtMs: options?.nowMs ?? Date.now(),
|
|
158
|
+
cliVersion: options?.cliVersion ?? packageVersion(),
|
|
159
|
+
cliGitSha: options?.cliGitSha ?? packageGitSha(),
|
|
160
|
+
declarations: {
|
|
161
|
+
egressDomains: [...(project.agent.hosting?.egressDomains ?? [])],
|
|
162
|
+
publicRoutePaths,
|
|
151
163
|
// Deploy manifests describe Cursor-hosted deployments. When the agent
|
|
152
164
|
// authors no storage, framework-storage-selection.ts injects the
|
|
153
165
|
// platform Cursor-hosted mirror for both v1 and v2.
|
|
@@ -155,9 +167,14 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
155
167
|
? "cursor-hosted"
|
|
156
168
|
: isCursorHostedStorage(project.storage)
|
|
157
169
|
? "cursor-hosted"
|
|
158
|
-
: "other"
|
|
159
|
-
|
|
160
|
-
|
|
170
|
+
: "other",
|
|
171
|
+
...(project.agent.architecture === undefined
|
|
172
|
+
? {}
|
|
173
|
+
: { architecture: project.agent.architecture }),
|
|
174
|
+
persistent: project.agent.persistent,
|
|
175
|
+
...(project.agent.hosting?.image === undefined ? {} : { image: project.agent.hosting.image }),
|
|
176
|
+
channels,
|
|
177
|
+
},
|
|
161
178
|
info: projectInfo(project),
|
|
162
179
|
};
|
|
163
180
|
const validation = agentDeployManifestV1Schema.safeParse(manifest);
|
|
@@ -177,12 +194,18 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
177
194
|
* through the catch API.
|
|
178
195
|
*/
|
|
179
196
|
export function channelCatchDeclaration(definition) {
|
|
180
|
-
|
|
181
|
-
const routes = (_a = definition.routes) !== null && _a !== void 0 ? _a : [];
|
|
197
|
+
const routes = definition.routes ?? [];
|
|
182
198
|
if (routes.length === 0) {
|
|
183
199
|
return undefined;
|
|
184
200
|
}
|
|
185
|
-
|
|
201
|
+
// A cursorAccount channel receives its deliveries through Cursor's own
|
|
202
|
+
// GitHub App on the webhook fleets, never through a direct catch. The
|
|
203
|
+
// `GITHUB_WEBHOOK_SECRET` fallback still shapes its local route policy,
|
|
204
|
+
// but that must not open a second, direct door on the control plane.
|
|
205
|
+
if (isCursorAccountGitHubChannel(definition)) {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
const declared = (definition.auth ?? [])
|
|
186
209
|
.map(catchAuthDeclaration)
|
|
187
210
|
.filter(declaration => declaration !== undefined);
|
|
188
211
|
if (declared.length === 0) {
|
|
@@ -219,6 +242,33 @@ export function channelCatchDeclaration(definition) {
|
|
|
219
242
|
auth,
|
|
220
243
|
};
|
|
221
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Deployment secrets the control plane decrypts to admit this channel's
|
|
247
|
+
* caught requests — the names behind its `sharedSecretAuth` /
|
|
248
|
+
* `hmacSignatureAuth` policies (a named GitHub webhook secret included).
|
|
249
|
+
* Empty for a `publicEndpoint()` channel: that chain admits everything, so
|
|
250
|
+
* the control plane checks nothing. `deploy` folds these into the declared
|
|
251
|
+
* secret names so an unset one is flagged before the first delivery 401s.
|
|
252
|
+
*/
|
|
253
|
+
export function channelCatchSecretNames(definition) {
|
|
254
|
+
const declaration = channelCatchDeclaration(definition);
|
|
255
|
+
if (declaration === undefined || declaration.auth.some(policy => policy.kind === "public")) {
|
|
256
|
+
return [];
|
|
257
|
+
}
|
|
258
|
+
return [
|
|
259
|
+
...new Set(declaration.auth.flatMap(policy => (policy.kind === "public" ? [] : [policy.secret]))),
|
|
260
|
+
];
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Deployment secrets a channel's API credentials name (today the
|
|
264
|
+
* `githubChannel` `{ secretName }` credentials). Nothing on the control
|
|
265
|
+
* plane reads them — the guest does — but `deploy` folds them into the
|
|
266
|
+
* declared secret names so an unset one is flagged at deploy time rather
|
|
267
|
+
* than as a failed API call inside the guest.
|
|
268
|
+
*/
|
|
269
|
+
export function channelCredentialSecretNames(definition) {
|
|
270
|
+
return githubChannelCredentialSecretNames(definition);
|
|
271
|
+
}
|
|
222
272
|
/**
|
|
223
273
|
* Parse an untrusted manifest (round-trip check for the CLI's own output;
|
|
224
274
|
* the CP re-validates server-side with its own copy of the contract).
|
|
@@ -5,29 +5,20 @@
|
|
|
5
5
|
* CLI can fill `--repo` / `--ref` / `--path` so `agent-sdk deploy` (no
|
|
6
6
|
* flags) is enough. Explicit flags always win.
|
|
7
7
|
*/
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
import { execFile } from "node:child_process";
|
|
18
9
|
import { relative, resolve, sep } from "node:path";
|
|
19
10
|
import { promisify } from "node:util";
|
|
20
11
|
const execFileAsync = promisify(execFile);
|
|
21
|
-
const defaultGitRunner = (args, cwd) =>
|
|
12
|
+
const defaultGitRunner = async (args, cwd) => {
|
|
22
13
|
try {
|
|
23
|
-
const { stdout } =
|
|
14
|
+
const { stdout } = await execFileAsync("git", [...args], { cwd });
|
|
24
15
|
const trimmed = stdout.trim();
|
|
25
16
|
return trimmed === "" ? undefined : trimmed;
|
|
26
17
|
}
|
|
27
|
-
catch
|
|
18
|
+
catch {
|
|
28
19
|
return undefined;
|
|
29
20
|
}
|
|
30
|
-
}
|
|
21
|
+
};
|
|
31
22
|
/**
|
|
32
23
|
* Normalize a git remote URL to the https form the control plane accepts
|
|
33
24
|
* (`https://host/owner/repo`, no `.git` suffix). Returns undefined for
|
|
@@ -59,7 +50,7 @@ export function httpsGitRepoUrlFromRemote(remote) {
|
|
|
59
50
|
}
|
|
60
51
|
url = `https://${ssh.hostname}/${path}`;
|
|
61
52
|
}
|
|
62
|
-
catch
|
|
53
|
+
catch {
|
|
63
54
|
return undefined;
|
|
64
55
|
}
|
|
65
56
|
}
|
|
@@ -70,7 +61,7 @@ export function httpsGitRepoUrlFromRemote(remote) {
|
|
|
70
61
|
try {
|
|
71
62
|
parsed = new URL(url);
|
|
72
63
|
}
|
|
73
|
-
catch
|
|
64
|
+
catch {
|
|
74
65
|
return undefined;
|
|
75
66
|
}
|
|
76
67
|
const path = parsed.pathname
|
|
@@ -105,32 +96,29 @@ export function agentPathRelativeToGitRoot(dir, gitRoot) {
|
|
|
105
96
|
* Probe the git checkout containing `dir` for deploy source fields.
|
|
106
97
|
* Missing pieces stay undefined.
|
|
107
98
|
*/
|
|
108
|
-
export function inferDeployGitSource(dir, options) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
agentPath,
|
|
134
|
-
};
|
|
135
|
-
});
|
|
99
|
+
export async function inferDeployGitSource(dir, options) {
|
|
100
|
+
const git = options?.git ?? defaultGitRunner;
|
|
101
|
+
const absDir = resolve(dir);
|
|
102
|
+
const gitRoot = await git(["rev-parse", "--show-toplevel"], absDir);
|
|
103
|
+
if (gitRoot === undefined) {
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
const remote = await git(["remote", "get-url", "origin"], gitRoot);
|
|
107
|
+
const gitRepoUrl = remote === undefined ? undefined : httpsGitRepoUrlFromRemote(remote);
|
|
108
|
+
const branch = await git(["rev-parse", "--abbrev-ref", "HEAD"], gitRoot);
|
|
109
|
+
let gitRef;
|
|
110
|
+
if (branch !== undefined && branch !== "HEAD") {
|
|
111
|
+
gitRef = branch;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Detached HEAD — pin the exact commit so the control plane still
|
|
115
|
+
// has something concrete to build.
|
|
116
|
+
gitRef = await git(["rev-parse", "HEAD"], gitRoot);
|
|
117
|
+
}
|
|
118
|
+
const agentPath = agentPathRelativeToGitRoot(absDir, gitRoot);
|
|
119
|
+
return {
|
|
120
|
+
gitRepoUrl,
|
|
121
|
+
gitRef,
|
|
122
|
+
agentPath,
|
|
123
|
+
};
|
|
136
124
|
}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agent/agent.ts`: model, runtime architecture, working directory, hosting, and concurrency.
|
|
3
3
|
*/
|
|
4
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
4
|
import { basename, isAbsolute, join, resolve } from "node:path";
|
|
14
5
|
import { MAX_RUNNING_TURNS_LIMIT, } from "../../types.js";
|
|
15
6
|
import { normalizePositiveInt } from "../bounded-int.js";
|
|
@@ -82,20 +73,18 @@ export function resolveAgentCwd(ctx, authored) {
|
|
|
82
73
|
* Point those harnesses at ~/.cache/agent-serve/<dir> unless the agent
|
|
83
74
|
* already set cwd or workspaceDir.
|
|
84
75
|
*/
|
|
85
|
-
export function resolveLocalCwd(ctx, authoredCwd, authoredWorkspaceDir) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return defaultLocalHarnessCwd(basename(ctx.rootDir));
|
|
98
|
-
});
|
|
76
|
+
export async function resolveLocalCwd(ctx, authoredCwd, authoredWorkspaceDir) {
|
|
77
|
+
const cwd = resolveAgentCwd(ctx, authoredCwd);
|
|
78
|
+
if (cwd !== undefined) {
|
|
79
|
+
return cwd;
|
|
80
|
+
}
|
|
81
|
+
if (resolveAgentCwd(ctx, authoredWorkspaceDir) !== undefined) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
if (!(await isNestedInGitRepo(ctx.rootDir))) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return defaultLocalHarnessCwd(basename(ctx.rootDir));
|
|
99
88
|
}
|
|
100
89
|
/**
|
|
101
90
|
* Validate the authored `hosting` block against the same grammar the
|
|
@@ -105,39 +94,38 @@ export function resolveLocalCwd(ctx, authoredCwd, authoredWorkspaceDir) {
|
|
|
105
94
|
* hard failures: the backend stays authoritative.
|
|
106
95
|
*/
|
|
107
96
|
export function resolveHosting(ctx, agentDir, hosting, extensions) {
|
|
108
|
-
var _a, _b;
|
|
109
97
|
const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
|
|
110
98
|
const warn = (message) => {
|
|
111
99
|
ctx.diagnostics.push({ severity: "warning", path: agentPath, message });
|
|
112
100
|
};
|
|
113
|
-
for (const error of hostingEntryErrors(hosting
|
|
101
|
+
for (const error of hostingEntryErrors(hosting ?? {})) {
|
|
114
102
|
warn(`hosting.${error}`);
|
|
115
103
|
}
|
|
116
|
-
if (
|
|
104
|
+
if (hosting?.image !== undefined) {
|
|
117
105
|
const imageError = validateContainerImageName(hosting.image);
|
|
118
106
|
if (imageError !== undefined) {
|
|
119
107
|
warn(`hosting.image: ${imageError}`);
|
|
120
108
|
}
|
|
121
109
|
}
|
|
122
|
-
const mountedEgress = extensions.flatMap(extension =>
|
|
123
|
-
const egressDomains = [...new Set([...(
|
|
110
|
+
const mountedEgress = extensions.flatMap(extension => extension.hosting?.egressDomains ?? []);
|
|
111
|
+
const egressDomains = [...new Set([...(hosting?.egressDomains ?? []), ...mountedEgress])];
|
|
124
112
|
if (egressDomains.length > MAX_EGRESS_DOMAINS) {
|
|
125
113
|
const withMounts = mountedEgress.length > 0 ? " with mounted extensions" : "";
|
|
126
114
|
warn(`hosting.egressDomains lists ${egressDomains.length} domains${withMounts}; deploys are capped at ${MAX_EGRESS_DOMAINS}.`);
|
|
127
115
|
}
|
|
128
116
|
const secretNames = [
|
|
129
117
|
...new Set([
|
|
130
|
-
...(
|
|
131
|
-
...extensions.flatMap(extension =>
|
|
118
|
+
...(hosting?.secretNames ?? []),
|
|
119
|
+
...extensions.flatMap(extension => extension.hosting?.secretNames ?? []),
|
|
132
120
|
]),
|
|
133
121
|
];
|
|
134
|
-
if (egressDomains.length === 0 && secretNames.length === 0 &&
|
|
122
|
+
if (egressDomains.length === 0 && secretNames.length === 0 && hosting?.image === undefined) {
|
|
135
123
|
return undefined;
|
|
136
124
|
}
|
|
137
125
|
return {
|
|
138
126
|
egressDomains: egressDomains.length === 0 ? undefined : egressDomains,
|
|
139
127
|
secretNames: secretNames.length === 0 ? undefined : secretNames,
|
|
140
|
-
image: hosting
|
|
128
|
+
image: hosting?.image,
|
|
141
129
|
};
|
|
142
130
|
}
|
|
143
131
|
/**
|
|
@@ -167,33 +155,31 @@ export function resolveConcurrency(ctx, agentDir, concurrency) {
|
|
|
167
155
|
return undefined;
|
|
168
156
|
}
|
|
169
157
|
}
|
|
170
|
-
export function loadAgentConfig(ctx, agentDir, isRoot) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
return config;
|
|
196
|
-
});
|
|
158
|
+
export async function loadAgentConfig(ctx, agentDir, isRoot) {
|
|
159
|
+
const configPath = await findModuleFile(agentDir, "agent");
|
|
160
|
+
if (configPath === undefined) {
|
|
161
|
+
ctx.diagnostics.push({
|
|
162
|
+
severity: "error",
|
|
163
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
164
|
+
message: isRoot
|
|
165
|
+
? "agent.ts is required on the root agent: default-export defineAgent({ ... })"
|
|
166
|
+
: "agent.ts is required on a subagent: default-export defineAgent({ description: ... })",
|
|
167
|
+
});
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
const definition = await importDefault(ctx, configPath, "agent");
|
|
171
|
+
if (definition === undefined) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
const config = definition;
|
|
175
|
+
if (!isRoot && isBlank(config.description)) {
|
|
176
|
+
ctx.diagnostics.push({
|
|
177
|
+
severity: "error",
|
|
178
|
+
path: displayPath(ctx, configPath),
|
|
179
|
+
message: "Subagents require a description; the parent model reads it to decide when to delegate.",
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return config;
|
|
197
183
|
}
|
|
198
184
|
export function isValidModelSetting(model) {
|
|
199
185
|
if (typeof model === "string") {
|