@cursor/bdk 0.2.3 → 0.2.4
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/bin/agent-serve.js +9 -1
- package/dist/channels/slack/attachments.d.ts +2 -1
- package/dist/channels/slack/attachments.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +19 -9
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +26 -24
- package/dist/channels/slack/thread-context.d.ts +21 -11
- package/dist/channels/slack/thread-context.d.ts.map +1 -1
- package/dist/channels/slack/thread-context.js +75 -27
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.BOIHhrKi.js → app.4kQ8Db_q.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
- package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.CxE_fSPK.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.CB52JrKG.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
- package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
- package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Jq_7BUNx.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.DzuEYGdC.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
- package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.DzfWqTBV.js} +1 -1
- package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BO6mpulV.js} +1 -1
- package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.BGgTadgT.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
- package/dist/docs/assets/chunks/{theme.b6HQ6zG_.js → theme.Dx-JhpTB.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.844kyrjl.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.UhnJIMr-.js} +2 -2
- package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
- package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
- package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +4 -1
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- 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 +37 -37
- package/dist/docs/guides/jev.md +7 -0
- package/dist/docs/guides/mcp-oauth.html +35 -35
- 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 +25 -2
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/agent-config.md +1 -1
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +35 -35
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +39 -38
- package/dist/docs/reference/extensions.md +13 -0
- 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 +35 -35
- 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/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 +35 -35
- package/dist/extensions/jev/extension.d.ts +3 -0
- package/dist/extensions/jev/extension.d.ts.map +1 -1
- package/dist/extensions/jev/extension.js +10 -1
- package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
- package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
- package/dist/extensions/jev/lib/evaluate.js +6 -2
- package/dist/extensions.d.ts +4 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +5 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +19 -5
- package/dist/internal/discovery/agent-config.d.ts +6 -5
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +29 -28
- package/dist/internal/discovery/agent.js +1 -1
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +12 -0
- package/dist/internal/hosting.d.ts +8 -0
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +24 -0
- package/dist/types.d.ts +18 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +4 -1
- package/docs/guides/jev.md +7 -0
- package/docs/reference/agent-config.md +1 -1
- package/docs/reference/extensions.md +13 -0
- package/package.json +1 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +0 -1
- package/dist/docs/assets/chunks/channel.BbOGaJQP.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +0 -1
- package/dist/docs/assets/chunks/clone.Co4MBflG.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +0 -1
- package/src/artifacts.ts +0 -68
- package/src/bin/agent-serve.ts +0 -1854
- package/src/channels/bitbucket/api.ts +0 -891
- package/src/channels/bitbucket/binding.ts +0 -417
- package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
- package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
- package/src/channels/bitbucket/checks.ts +0 -146
- package/src/channels/bitbucket/cursor-account.ts +0 -106
- package/src/channels/bitbucket/defaults.ts +0 -100
- package/src/channels/bitbucket/events.ts +0 -74
- package/src/channels/bitbucket/index.ts +0 -51
- package/src/channels/bitbucket/replay.ts +0 -421
- package/src/channels/bitbucket/state.ts +0 -59
- package/src/channels/bitbucket/types.ts +0 -261
- package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
- package/src/channels/change-monitors/index.ts +0 -8
- package/src/channels/change-monitors/types.ts +0 -42
- package/src/channels/checks.ts +0 -185
- package/src/channels/deployments/deployments-channel.ts +0 -224
- package/src/channels/deployments/index.ts +0 -25
- package/src/channels/deployments/types.ts +0 -92
- package/src/channels/github/api.ts +0 -526
- package/src/channels/github/auth.ts +0 -293
- package/src/channels/github/binding.ts +0 -233
- package/src/channels/github/checks.ts +0 -145
- package/src/channels/github/cursor-account.ts +0 -303
- package/src/channels/github/defaults.ts +0 -168
- package/src/channels/github/events.ts +0 -67
- package/src/channels/github/forward.ts +0 -359
- package/src/channels/github/github-channel.ts +0 -2334
- package/src/channels/github/index.ts +0 -54
- package/src/channels/github/progress.ts +0 -365
- package/src/channels/github/replay.ts +0 -372
- package/src/channels/github/state.ts +0 -124
- package/src/channels/github/types.ts +0 -590
- package/src/channels/gitlab/api.ts +0 -329
- package/src/channels/gitlab/binding.ts +0 -231
- package/src/channels/gitlab/checks.ts +0 -228
- package/src/channels/gitlab/cursor-account.ts +0 -105
- package/src/channels/gitlab/defaults.ts +0 -80
- package/src/channels/gitlab/events.ts +0 -37
- package/src/channels/gitlab/gitlab-channel.ts +0 -160
- package/src/channels/gitlab/gitlab-webhook.ts +0 -509
- package/src/channels/gitlab/index.ts +0 -44
- package/src/channels/gitlab/replay.ts +0 -328
- package/src/channels/gitlab/state.ts +0 -55
- package/src/channels/gitlab/types.ts +0 -247
- package/src/channels/issues/index.ts +0 -9
- package/src/channels/issues/issues-channel.ts +0 -45
- package/src/channels/issues/types.ts +0 -38
- package/src/channels/origin/api.ts +0 -507
- package/src/channels/origin/binding.ts +0 -114
- package/src/channels/origin/checks.ts +0 -250
- package/src/channels/origin/cursor-account.ts +0 -58
- package/src/channels/origin/defaults.ts +0 -140
- package/src/channels/origin/events.ts +0 -35
- package/src/channels/origin/index.ts +0 -35
- package/src/channels/origin/origin-channel.ts +0 -815
- package/src/channels/origin/origin-webhook.ts +0 -296
- package/src/channels/origin/reactions.ts +0 -72
- package/src/channels/origin/state.ts +0 -54
- package/src/channels/origin/types.ts +0 -295
- package/src/channels/slack/agentic-delivery.ts +0 -634
- package/src/channels/slack/agentic-posted.ts +0 -135
- package/src/channels/slack/agentic-signals.ts +0 -231
- package/src/channels/slack/api.ts +0 -761
- package/src/channels/slack/approvals.ts +0 -279
- package/src/channels/slack/assistant.ts +0 -76
- package/src/channels/slack/attachments.ts +0 -596
- package/src/channels/slack/auth.ts +0 -127
- package/src/channels/slack/blocks.ts +0 -131
- package/src/channels/slack/bot-mentions.ts +0 -318
- package/src/channels/slack/channel-watch.ts +0 -314
- package/src/channels/slack/cli-project.ts +0 -249
- package/src/channels/slack/code-fences.ts +0 -171
- package/src/channels/slack/constants.ts +0 -38
- package/src/channels/slack/credentials.ts +0 -88
- package/src/channels/slack/defaults.ts +0 -714
- package/src/channels/slack/dispatch.ts +0 -1060
- package/src/channels/slack/doctor.ts +0 -338
- package/src/channels/slack/eval-directive.ts +0 -306
- package/src/channels/slack/event-id-dedupe.ts +0 -30
- package/src/channels/slack/external-policy.ts +0 -75
- package/src/channels/slack/footer.ts +0 -106
- package/src/channels/slack/inbound.ts +0 -416
- package/src/channels/slack/index.ts +0 -53
- package/src/channels/slack/init.ts +0 -169
- package/src/channels/slack/interactive.ts +0 -406
- package/src/channels/slack/links.ts +0 -23
- package/src/channels/slack/live-delivery.ts +0 -489
- package/src/channels/slack/log.ts +0 -70
- package/src/channels/slack/manifest.ts +0 -240
- package/src/channels/slack/message-body.ts +0 -82
- package/src/channels/slack/nudge-carrier.ts +0 -224
- package/src/channels/slack/nudge-store.ts +0 -334
- package/src/channels/slack/paint-start.ts +0 -93
- package/src/channels/slack/placeholder.ts +0 -358
- package/src/channels/slack/pr-ref.ts +0 -74
- package/src/channels/slack/progress-delivery.ts +0 -138
- package/src/channels/slack/reasoning-card.ts +0 -125
- package/src/channels/slack/reasoning-chip.ts +0 -41
- package/src/channels/slack/recording-sink.ts +0 -167
- package/src/channels/slack/redact.ts +0 -6
- package/src/channels/slack/reply-options.ts +0 -279
- package/src/channels/slack/setup.ts +0 -125
- package/src/channels/slack/slack-channel.ts +0 -744
- package/src/channels/slack/socket-mode.ts +0 -140
- package/src/channels/slack/stop.ts +0 -25
- package/src/channels/slack/stream.ts +0 -66
- package/src/channels/slack/thread-context.ts +0 -485
- package/src/channels/slack/tool-approval-events.ts +0 -233
- package/src/channels/slack/tool-cards.ts +0 -198
- package/src/channels/slack/tool-chip.ts +0 -34
- package/src/channels/slack/types.ts +0 -787
- package/src/channels/slack/upload.ts +0 -137
- package/src/channels.ts +0 -543
- package/src/connections.ts +0 -153
- package/src/dashboard-session-url.ts +0 -30
- package/src/evals/assertions.ts +0 -688
- package/src/evals/expect.ts +0 -250
- package/src/evals/judge.ts +0 -329
- package/src/evals/loaders.ts +0 -111
- package/src/evals/matchers.ts +0 -223
- package/src/evals/reporters.ts +0 -257
- package/src/evals/results.ts +0 -130
- package/src/evals/run-facts.ts +0 -306
- package/src/evals.ts +0 -709
- package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
- package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
- package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
- package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
- package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
- package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
- package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
- package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
- package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
- package/src/extensions/cursor-grokbot-agents/extension.ts +0 -132
- package/src/extensions/cursor-grokbot-agents/lib/agents.ts +0 -42
- package/src/extensions/cursor-grokbot-agents/lib/backend.ts +0 -208
- package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +0 -74
- package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +0 -260
- package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +0 -21
- package/src/extensions/cursor-grokbot-agents/lib/lock.ts +0 -26
- package/src/extensions/cursor-grokbot-agents/skills/consult.md +0 -40
- package/src/extensions/cursor-grokbot-agents/tools/ask.ts +0 -32
- package/src/extensions/cursor-grokbot-agents/tools/check.ts +0 -25
- package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +0 -17
- package/src/extensions/cursor-grokbot-agents/tools/list.ts +0 -26
- package/src/extensions/improve/extension.ts +0 -69
- package/src/extensions/improve/skills/yourself.ts +0 -50
- package/src/extensions/jev/extension.ts +0 -95
- package/src/extensions/jev/lib/evaluate.ts +0 -266
- package/src/extensions/jev/skills/gated-write.md +0 -25
- package/src/extensions/jev/skills/questions.md +0 -33
- package/src/extensions/jev/tools/evaluate.ts +0 -82
- package/src/extensions/slack-communication/evals/harness.ts +0 -705
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
- package/src/extensions/slack-communication/extension.ts +0 -44
- package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
- package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
- package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
- package/src/extensions/slack-communication/tools/post-card.ts +0 -28
- package/src/extensions/slack-communication/tools/post-file.ts +0 -82
- package/src/extensions/slack-communication/tools/post-update.ts +0 -40
- package/src/extensions/slack-communication/tools/react.ts +0 -30
- package/src/extensions/slack-communication/tools/set-status.ts +0 -21
- package/src/extensions.ts +0 -179
- package/src/files-backends/agent-store-presigned-url.ts +0 -11
- package/src/files-backends/cursor-hosted.ts +0 -1212
- package/src/files-backends/local-fs.ts +0 -163
- package/src/files.ts +0 -293
- package/src/filesystem.ts +0 -2005
- package/src/hooks.ts +0 -30
- package/src/index.ts +0 -259
- package/src/internal/advertise-tools.ts +0 -370
- package/src/internal/approval-gate.ts +0 -103
- package/src/internal/artifacts-store.ts +0 -836
- package/src/internal/as-of.ts +0 -257
- package/src/internal/auth.ts +0 -46
- package/src/internal/authored-alias-hooks.ts +0 -138
- package/src/internal/authored-loaders.ts +0 -188
- package/src/internal/bounded-int.ts +0 -24
- package/src/internal/bounded.ts +0 -25
- package/src/internal/brand.ts +0 -28
- package/src/internal/browser-origin-guard.ts +0 -67
- package/src/internal/builtin-tools/artifacts.ts +0 -62
- package/src/internal/builtin-tools/index.ts +0 -53
- package/src/internal/builtin-tools/reminders.ts +0 -145
- package/src/internal/channel-dispatch.ts +0 -129
- package/src/internal/channel-route-dispatch.ts +0 -58
- package/src/internal/channel-state.ts +0 -83
- package/src/internal/chat-client.ts +0 -594
- package/src/internal/cli-ax.ts +0 -2318
- package/src/internal/cli-bitbucket.ts +0 -438
- package/src/internal/cli-convert-automation.ts +0 -335
- package/src/internal/cli-cursor.ts +0 -282
- package/src/internal/cli-deploy.ts +0 -2519
- package/src/internal/cli-docs.ts +0 -192
- package/src/internal/cli-github.ts +0 -806
- package/src/internal/cli-gitlab.ts +0 -452
- package/src/internal/cli-images.ts +0 -672
- package/src/internal/cli-manifest.ts +0 -56
- package/src/internal/cli-mcp-oauth.ts +0 -396
- package/src/internal/cli-mcp.ts +0 -808
- package/src/internal/cli-skills.ts +0 -98
- package/src/internal/cli-slack-manual.ts +0 -418
- package/src/internal/cli-slack.ts +0 -874
- package/src/internal/cloud-merge.ts +0 -51
- package/src/internal/cloud-turn-cost.ts +0 -159
- package/src/internal/connection-env.ts +0 -106
- package/src/internal/continuation-channel.ts +0 -233
- package/src/internal/continuation-identity.ts +0 -935
- package/src/internal/conversation-mirror.ts +0 -423
- package/src/internal/convert-automation/convert-workflow.ts +0 -1377
- package/src/internal/convert-automation/slug.ts +0 -29
- package/src/internal/convert-automation/types.ts +0 -212
- package/src/internal/cron.ts +0 -76
- package/src/internal/cursor/account-mcp.ts +0 -692
- package/src/internal/cursor/backend-client.ts +0 -984
- package/src/internal/cursor/bound-secret-file.ts +0 -101
- package/src/internal/cursor/credentials.ts +0 -560
- package/src/internal/cursor/cursor-api-transport.ts +0 -65
- package/src/internal/cursor/github-credentials.ts +0 -228
- package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
- package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
- package/src/internal/cursor/hosted-store-secrets.ts +0 -152
- package/src/internal/cursor/session-token.ts +0 -111
- package/src/internal/cursor/store-api-client.ts +0 -323
- package/src/internal/cursor-account-mcp-auth.ts +0 -303
- package/src/internal/cursor-agent-template.ts +0 -50
- package/src/internal/cursor-deployment-relay.ts +0 -315
- package/src/internal/cursor-event-relay.ts +0 -675
- package/src/internal/cursor-relay-core.ts +0 -563
- package/src/internal/deferred-channel-session.ts +0 -61
- package/src/internal/deploy-client.ts +0 -1574
- package/src/internal/deploy-manifest.ts +0 -361
- package/src/internal/deploy-source.ts +0 -144
- package/src/internal/describe-error.ts +0 -32
- package/src/internal/dev-mode.ts +0 -20
- package/src/internal/discovery/agent-config.ts +0 -288
- package/src/internal/discovery/agent.ts +0 -381
- package/src/internal/discovery/channels.ts +0 -100
- package/src/internal/discovery/connections.ts +0 -516
- package/src/internal/discovery/context.ts +0 -38
- package/src/internal/discovery/cursor-plugin.ts +0 -628
- package/src/internal/discovery/extension-overlay.ts +0 -247
- package/src/internal/discovery/extensions.ts +0 -490
- package/src/internal/discovery/fs.ts +0 -103
- package/src/internal/discovery/hooks.ts +0 -63
- package/src/internal/discovery/info.ts +0 -174
- package/src/internal/discovery/instructions.ts +0 -98
- package/src/internal/discovery/modules.ts +0 -107
- package/src/internal/discovery/names.ts +0 -45
- package/src/internal/discovery/project.ts +0 -319
- package/src/internal/discovery/reminders.ts +0 -65
- package/src/internal/discovery/runtime.ts +0 -158
- package/src/internal/discovery/schedules.ts +0 -120
- package/src/internal/discovery/seed-files.ts +0 -34
- package/src/internal/discovery/services.ts +0 -151
- package/src/internal/discovery/skills.ts +0 -174
- package/src/internal/discovery/subagent.ts +0 -138
- package/src/internal/discovery/tools.ts +0 -170
- package/src/internal/discovery.ts +0 -27
- package/src/internal/distribution.ts +0 -126
- package/src/internal/docs-site.ts +0 -248
- package/src/internal/duration.ts +0 -37
- package/src/internal/env-file.ts +0 -83
- package/src/internal/eval-judge-model.ts +0 -142
- package/src/internal/eval-run-store.ts +0 -585
- package/src/internal/eval-runner.ts +0 -823
- package/src/internal/evals-client.ts +0 -475
- package/src/internal/event-log.ts +0 -342
- package/src/internal/event-mapper.ts +0 -811
- package/src/internal/expected-delivery-failure.ts +0 -34
- package/src/internal/factory-resource-channel.ts +0 -103
- package/src/internal/filesystem/errors.ts +0 -207
- package/src/internal/filesystem/format.ts +0 -253
- package/src/internal/filesystem/merge.ts +0 -192
- package/src/internal/filesystem/nearest.ts +0 -112
- package/src/internal/filesystem/scratch.ts +0 -239
- package/src/internal/filesystem/sdk-schemas.ts +0 -204
- package/src/internal/filesystem/tools.ts +0 -804
- package/src/internal/filesystem/walk.ts +0 -366
- package/src/internal/fixtures/units-server.ts +0 -52
- package/src/internal/framework-file-storage.ts +0 -357
- package/src/internal/framework-storage-selection.ts +0 -156
- package/src/internal/frontmatter.ts +0 -108
- package/src/internal/github-fanout.ts +0 -144
- package/src/internal/guest-network.ts +0 -391
- package/src/internal/handleAgentServeTrigger.ts +0 -286
- package/src/internal/host-files.ts +0 -341
- package/src/internal/host-kv.ts +0 -81
- package/src/internal/host-otel.ts +0 -231
- package/src/internal/host-platforms.ts +0 -170
- package/src/internal/hosted-admission-adapter.ts +0 -47
- package/src/internal/hosted-admission-context.ts +0 -37
- package/src/internal/hosted-catch-protocol.ts +0 -112
- package/src/internal/hosted-catch.ts +0 -179
- package/src/internal/hosted-delivery-protocol.ts +0 -824
- package/src/internal/hosted-delivery.ts +0 -1410
- package/src/internal/hosted-execution-diag.ts +0 -291
- package/src/internal/hosted-execution-flush.ts +0 -136
- package/src/internal/hosted-execution-latency.ts +0 -301
- package/src/internal/hosted-managed-automation.ts +0 -116
- package/src/internal/hosting.ts +0 -114
- package/src/internal/http-channel-define.ts +0 -25
- package/src/internal/http-channel.ts +0 -669
- package/src/internal/http-control-plane-session.ts +0 -110
- package/src/internal/ids.ts +0 -39
- package/src/internal/incoming-headers-to-fetch.ts +0 -45
- package/src/internal/init-interview.ts +0 -360
- package/src/internal/init-project.ts +0 -711
- package/src/internal/init-scaffold.ts +0 -182
- package/src/internal/inline-stdio-define-stub.ts +0 -4
- package/src/internal/inline-stdio-mcp.ts +0 -230
- package/src/internal/install-cursor-skills.ts +0 -604
- package/src/internal/is-record.ts +0 -3
- package/src/internal/json-schema.ts +0 -95
- package/src/internal/legacy-command-guard.ts +0 -66
- package/src/internal/listen-port.ts +0 -85
- package/src/internal/local-control-plane.ts +0 -442
- package/src/internal/local-env.ts +0 -59
- package/src/internal/local-ingress.ts +0 -90
- package/src/internal/log-ring.ts +0 -59
- package/src/internal/logs-client.ts +0 -477
- package/src/internal/map-pool.ts +0 -39
- package/src/internal/mcp-endpoint.ts +0 -747
- package/src/internal/mcp-host.ts +0 -509
- package/src/internal/mcp-oauth-on-demand.ts +0 -337
- package/src/internal/mcp-oauth-persist.ts +0 -118
- package/src/internal/mcp-oauth.ts +0 -549
- package/src/internal/net.ts +0 -29
- package/src/internal/open-browser.ts +0 -41
- package/src/internal/otel/attrs.ts +0 -16
- package/src/internal/otel/collector.ts +0 -937
- package/src/internal/otel/config.ts +0 -287
- package/src/internal/otel/http.ts +0 -122
- package/src/internal/otel/mcp.ts +0 -56
- package/src/internal/otel/propagation.ts +0 -17
- package/src/internal/otel/runtime.ts +0 -441
- package/src/internal/package-inline-stdio.ts +0 -114
- package/src/internal/peer-connections.ts +0 -96
- package/src/internal/platform-schedule-sync.ts +0 -75
- package/src/internal/platform-timers.ts +0 -365
- package/src/internal/playground/static.ts +0 -278
- package/src/internal/playground/toolchain.ts +0 -270
- package/src/internal/playground-proxy.ts +0 -564
- package/src/internal/process-memory-telemetry.ts +0 -334
- package/src/internal/project-layout.ts +0 -31
- package/src/internal/prompt-context.ts +0 -116
- package/src/internal/reminder-control-plane-protocol.ts +0 -482
- package/src/internal/reminder-runner.ts +0 -1559
- package/src/internal/reminder-schedule.ts +0 -104
- package/src/internal/reminder-store.ts +0 -176
- package/src/internal/request-error-status.ts +0 -95
- package/src/internal/request-headers.ts +0 -21
- package/src/internal/resolve-prod-target.ts +0 -334
- package/src/internal/resolved-connections.ts +0 -190
- package/src/internal/router.ts +0 -143
- package/src/internal/run-client.ts +0 -354
- package/src/internal/runtime-dispatch-runner.ts +0 -50
- package/src/internal/sanitize-mcp-tool-name.ts +0 -31
- package/src/internal/schedule-runner.ts +0 -154
- package/src/internal/scm/pr-url.ts +0 -245
- package/src/internal/sdk-runner.ts +0 -959
- package/src/internal/serve-restart.ts +0 -113
- package/src/internal/server.ts +0 -3147
- package/src/internal/session-cost.ts +0 -208
- package/src/internal/session-engine.ts +0 -5622
- package/src/internal/session-links.ts +0 -84
- package/src/internal/session-run-log.ts +0 -535
- package/src/internal/session-store.ts +0 -307
- package/src/internal/session-urls.ts +0 -32
- package/src/internal/sessions-client.ts +0 -239
- package/src/internal/skill-catalog.ts +0 -66
- package/src/internal/skills-sync.ts +0 -55
- package/src/internal/slack-provision-client.ts +0 -544
- package/src/internal/slack-thread-key.ts +0 -11
- package/src/internal/sleep.ts +0 -3
- package/src/internal/start-log-store.ts +0 -164
- package/src/internal/steering.ts +0 -17
- package/src/internal/storage-coordinator.ts +0 -800
- package/src/internal/storage-roles.ts +0 -86
- package/src/internal/storage.ts +0 -1
- package/src/internal/store-api-protocol.ts +0 -205
- package/src/internal/store-mirror.ts +0 -73
- package/src/internal/stream-progress.ts +0 -294
- package/src/internal/terminal-style.ts +0 -133
- package/src/internal/testing/factory-resource-fixtures.ts +0 -84
- package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
- package/src/internal/tool-catalog.ts +0 -104
- package/src/internal/tool-policy.ts +0 -222
- package/src/internal/tool-result.ts +0 -50
- package/src/internal/trajectory.ts +0 -418
- package/src/internal/turn-cost.ts +0 -136
- package/src/internal/turn-governor.ts +0 -145
- package/src/internal/turn-lease-store.ts +0 -144
- package/src/internal/turn-outbox.ts +0 -77
- package/src/internal/update-check.ts +0 -517
- package/src/internal/v2-hosting.ts +0 -52
- package/src/internal/workspace-sync.ts +0 -114
- package/src/internal/workspace.ts +0 -505
- package/src/kv/memory-kv.ts +0 -94
- package/src/kv.ts +0 -18
- package/src/memory.ts +0 -487
- package/src/otel-public.ts +0 -24
- package/src/otel.ts +0 -320
- package/src/prompt.ts +0 -80
- package/src/reminders.ts +0 -65
- package/src/schedules.ts +0 -31
- package/src/skills.ts +0 -27
- package/src/storage-backends/cursor-hosted-v2.ts +0 -204
- package/src/storage-backends/cursor-hosted.ts +0 -388
- package/src/storage-backends/file-kv.ts +0 -276
- package/src/storage-protocol.ts +0 -261
- package/src/storage.ts +0 -408
- package/src/tools.ts +0 -166
- package/src/types.ts +0 -3776
- /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Offline deploy manifest (workstream Wd of
|
|
3
|
-
* `docs/agent-serve/agent-sdk-event-ingress-plan.md`, Wd-0/Wd-1).
|
|
4
|
-
*
|
|
5
|
-
* The manifest is every piece of deployment metadata that is statically
|
|
6
|
-
* derivable from the agent project — extracted at build/deploy time, with no
|
|
7
|
-
* VM, no engine, and no network — so the control plane can store it before
|
|
8
|
-
* any pod starts and keep answering metadata questions while a deployment is
|
|
9
|
-
* offline or hibernated.
|
|
10
|
-
*
|
|
11
|
-
* Two layers with different stability contracts:
|
|
12
|
-
*
|
|
13
|
-
* - `declarations` is the **versioned wire contract** consumed by the
|
|
14
|
-
* control plane (Wd-2): per-channel event capabilities, egress domains,
|
|
15
|
-
* and public route paths. Validated by {@link agentDeployManifestV1Schema};
|
|
16
|
-
* the CP stores these as columns / column views. Repos are deliberately
|
|
17
|
-
* NOT here — which repos a deployment watches is per-instance deploy
|
|
18
|
-
* configuration, not a property of the code.
|
|
19
|
-
* - `info` is the full static project description — the same payload the
|
|
20
|
-
* engine serves at `GET /v1/info` (`projectInfo`). Stored opaquely by the
|
|
21
|
-
* CP so `/v1/info`-class reads can be served for offline deployments
|
|
22
|
-
* (Wd-5). Its shape evolves with the SDK and is intentionally not pinned
|
|
23
|
-
* by the wire schema beyond "is an object".
|
|
24
|
-
*
|
|
25
|
-
* Event derivation note: each mounted channel publishes its event set in its
|
|
26
|
-
* own `channels[].eventTypes` declaration. A project with no GitHub channel
|
|
27
|
-
* subscribes to no GitHub events, regardless of configured repository scope.
|
|
28
|
-
* Keep that capability per-channel: do not reintroduce a provider-wide event
|
|
29
|
-
* union for control-plane consumers.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
import { z } from "zod";
|
|
33
|
-
import {
|
|
34
|
-
type CatchAuthDeclaration,
|
|
35
|
-
catchAuthDeclaration,
|
|
36
|
-
isPublicEndpointPolicy,
|
|
37
|
-
} from "../channels.js";
|
|
38
|
-
import { isCursorHostedStorage } from "../storage-backends/cursor-hosted.js";
|
|
39
|
-
import type { AgentProject, AgentProjectInfo } from "../types.js";
|
|
40
|
-
import {
|
|
41
|
-
applyAgentContinuationDefaults,
|
|
42
|
-
channelContinuationIdentity,
|
|
43
|
-
channelDeclaredEventTypes,
|
|
44
|
-
handshakeChannelContinuation,
|
|
45
|
-
} from "./continuation-channel.js";
|
|
46
|
-
import { CONTINUATION_SELECTORS, type ContinuationIdentity } from "./continuation-identity.js";
|
|
47
|
-
import { projectInfo, runtimeArchitectureCompatibilityError } from "./discovery.js";
|
|
48
|
-
import { packageGitSha, packageVersion } from "./distribution.js";
|
|
49
|
-
|
|
50
|
-
export const DEPLOY_MANIFEST_VERSION: 1 = 1;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Versioned wire contract for the CP-consumed declaration fields. Kept
|
|
54
|
-
* module-private (the package builds with isolated declarations); consumers
|
|
55
|
-
* use {@link parseAgentDeployManifest} and the explicit interfaces below.
|
|
56
|
-
*/
|
|
57
|
-
const continuationIdentitySchema = z.enum(CONTINUATION_SELECTORS);
|
|
58
|
-
|
|
59
|
-
const CATCH_MAX_ROUTES = 32;
|
|
60
|
-
const CATCH_MAX_AUTH_POLICIES = 4;
|
|
61
|
-
|
|
62
|
-
const catchDeclarationSchema = z.object({
|
|
63
|
-
routes: z
|
|
64
|
-
.array(
|
|
65
|
-
z.object({
|
|
66
|
-
method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]),
|
|
67
|
-
path: z.string().min(1).max(1024),
|
|
68
|
-
}),
|
|
69
|
-
)
|
|
70
|
-
.min(1)
|
|
71
|
-
.max(CATCH_MAX_ROUTES),
|
|
72
|
-
auth: z
|
|
73
|
-
.array(
|
|
74
|
-
z.discriminatedUnion("kind", [
|
|
75
|
-
z.object({
|
|
76
|
-
kind: z.literal("header"),
|
|
77
|
-
header: z.string().min(1).max(128),
|
|
78
|
-
secret: z.string().min(1).max(64),
|
|
79
|
-
}),
|
|
80
|
-
z.object({
|
|
81
|
-
kind: z.literal("hmac-sha256"),
|
|
82
|
-
header: z.string().min(1).max(128),
|
|
83
|
-
secret: z.string().min(1).max(64),
|
|
84
|
-
prefix: z.string().max(32).optional(),
|
|
85
|
-
}),
|
|
86
|
-
z.object({ kind: z.literal("public") }),
|
|
87
|
-
]),
|
|
88
|
-
)
|
|
89
|
-
.min(1)
|
|
90
|
-
.max(CATCH_MAX_AUTH_POLICIES),
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
const slackReplyDeclarationSchema = z.object({
|
|
94
|
-
mode: z.literal("agentic"),
|
|
95
|
-
ack: z.string().regex(/^[a-z0-9_+-]{1,50}$/),
|
|
96
|
-
placeholder: z
|
|
97
|
-
.string()
|
|
98
|
-
.regex(/^(?!.*(?:<!|<@))[^\r\n]{2,80}$/)
|
|
99
|
-
.optional(),
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
const agentDeployManifestV1Schema = z.object({
|
|
103
|
-
manifestVersion: z.literal(DEPLOY_MANIFEST_VERSION),
|
|
104
|
-
generatedAtMs: z.number().int().nonnegative(),
|
|
105
|
-
cliVersion: z.string().min(1),
|
|
106
|
-
cliGitSha: z
|
|
107
|
-
.string()
|
|
108
|
-
.regex(/^[0-9a-f]{40,64}$/)
|
|
109
|
-
.optional(),
|
|
110
|
-
declarations: z.object({
|
|
111
|
-
egressDomains: z.array(z.string().min(1)).max(64),
|
|
112
|
-
publicRoutePaths: z.array(z.string().min(1)).max(64),
|
|
113
|
-
frameworkStorage: z.enum(["cursor-hosted", "other", "none"]).optional(),
|
|
114
|
-
architecture: z.enum(["v1", "v2"]).optional(),
|
|
115
|
-
persistent: z.boolean().optional(),
|
|
116
|
-
image: z.string().min(2).max(64).optional(),
|
|
117
|
-
channels: z
|
|
118
|
-
.array(
|
|
119
|
-
z.object({
|
|
120
|
-
id: z.string().min(1).max(128),
|
|
121
|
-
kind: z.string().min(1).max(32).optional(),
|
|
122
|
-
eventTypes: z.array(z.string().min(1).max(64)).max(64).optional(),
|
|
123
|
-
continuation: continuationIdentitySchema,
|
|
124
|
-
catch: catchDeclarationSchema.optional(),
|
|
125
|
-
slackReply: slackReplyDeclarationSchema.optional(),
|
|
126
|
-
slackChannelPosts: z.array(z.string().min(1).max(80)).max(64).optional(),
|
|
127
|
-
}),
|
|
128
|
-
)
|
|
129
|
-
.max(64),
|
|
130
|
-
}),
|
|
131
|
-
// Full `projectInfo` payload — opaque to the wire contract.
|
|
132
|
-
info: z.record(z.unknown()),
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
export interface AgentDeployManifestDeclarations {
|
|
136
|
-
egressDomains: string[];
|
|
137
|
-
publicRoutePaths: string[];
|
|
138
|
-
/** Where this runtime mirrors framework-owned sessions and event chunks. */
|
|
139
|
-
frameworkStorage?: "cursor-hosted" | "other" | "none";
|
|
140
|
-
/**
|
|
141
|
-
* Hosted architecture this release deploys onto. `"v2"` selects the v2
|
|
142
|
-
* control plane; omitted channel constructors inherit kind `/v2`
|
|
143
|
-
* continuation defaults. Omit or `"v1"` keeps engine minting.
|
|
144
|
-
*/
|
|
145
|
-
architecture?: "v1" | "v2";
|
|
146
|
-
persistent?: boolean;
|
|
147
|
-
/** `hosting.image`: the team container image the deployed agent runs in. */
|
|
148
|
-
image?: string;
|
|
149
|
-
/**
|
|
150
|
-
* Mounted channels with their kinds and per-channel event capability.
|
|
151
|
-
* Scope keys are installation config and are never extracted here.
|
|
152
|
-
* Omitted channel `continuation` is `/v1` (engine minting) unless the
|
|
153
|
-
* agent set `architecture: "v2"`, which stamps kind `/v2` defaults
|
|
154
|
-
* (`github.pr/v2`, `slack.thread/v2`, `origin.pr/v2`,
|
|
155
|
-
* `deployments.deployment/v2`). Per-channel selectors still override type.
|
|
156
|
-
*/
|
|
157
|
-
channels: Array<{
|
|
158
|
-
id: string;
|
|
159
|
-
kind?: string;
|
|
160
|
-
eventTypes?: string[];
|
|
161
|
-
continuation: ContinuationIdentity;
|
|
162
|
-
/**
|
|
163
|
-
* Static Slack response settings the control plane may apply before the
|
|
164
|
-
* hosted runtime starts. Present only for `slack` channels in agentic mode.
|
|
165
|
-
*/
|
|
166
|
-
slackReply?: AgentDeployManifestSlackReplyDeclaration;
|
|
167
|
-
/**
|
|
168
|
-
* The channel-watch allowlist (`engagement.channelPosts.allow`).
|
|
169
|
-
* Present only for `slack` channels that watch channel posts. The
|
|
170
|
-
* control plane materializes channel-scoped subscription edges from
|
|
171
|
-
* the channel-id entries so posts outside the allowlist drop at
|
|
172
|
-
* ingress.
|
|
173
|
-
*/
|
|
174
|
-
slackChannelPosts?: string[];
|
|
175
|
-
/**
|
|
176
|
-
* Control-plane catch routes: present only for an authored channel
|
|
177
|
-
* whose auth chain carries a `sharedSecretAuth` / `hmacSignatureAuth`
|
|
178
|
-
* policy. The control plane accepts exactly these `(method, path)`
|
|
179
|
-
* pairs and verifies the named deployment secret before any compute.
|
|
180
|
-
*/
|
|
181
|
-
catch?: AgentDeployManifestCatchDeclaration;
|
|
182
|
-
}>;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export interface AgentDeployManifestCatchDeclaration {
|
|
186
|
-
routes: Array<{
|
|
187
|
-
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
188
|
-
path: string;
|
|
189
|
-
}>;
|
|
190
|
-
auth: CatchAuthDeclaration[];
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export interface AgentDeployManifestSlackReplyDeclaration {
|
|
194
|
-
mode: "agentic";
|
|
195
|
-
/** Normalized Slack emoji name without colons. */
|
|
196
|
-
ack: string;
|
|
197
|
-
/** Exact static replaceable first line. */
|
|
198
|
-
placeholder?: string;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
export interface AgentDeployManifestV1 {
|
|
202
|
-
manifestVersion: 1;
|
|
203
|
-
/** Unix ms at extraction. */
|
|
204
|
-
generatedAtMs: number;
|
|
205
|
-
/** `@cursor/bdk` version that produced the manifest. */
|
|
206
|
-
cliVersion: string;
|
|
207
|
-
/** Git commit for a checkout-built `@cursor/bdk`; absent for npm builds. */
|
|
208
|
-
cliGitSha?: string;
|
|
209
|
-
declarations: AgentDeployManifestDeclarations;
|
|
210
|
-
/**
|
|
211
|
-
* Full `projectInfo` payload (see `GET /v1/info`). Opaque to the wire
|
|
212
|
-
* contract; the CP stores it verbatim.
|
|
213
|
-
*/
|
|
214
|
-
info: AgentProjectInfo;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Extract the offline deploy manifest from a loaded project. Pure: no
|
|
219
|
-
* network, no filesystem beyond what `loadAgentProject` already read.
|
|
220
|
-
*/
|
|
221
|
-
export function buildAgentDeployManifest(
|
|
222
|
-
project: AgentProject,
|
|
223
|
-
options?: { nowMs?: number; cliVersion?: string; cliGitSha?: string },
|
|
224
|
-
): AgentDeployManifestV1 {
|
|
225
|
-
const runtimeArchitectureError = runtimeArchitectureCompatibilityError(project.agent);
|
|
226
|
-
if (runtimeArchitectureError !== undefined) {
|
|
227
|
-
throw new Error(runtimeArchitectureError);
|
|
228
|
-
}
|
|
229
|
-
applyAgentContinuationDefaults(project);
|
|
230
|
-
const channels = project.channels.map(channel => {
|
|
231
|
-
const handshake = handshakeChannelContinuation(channel);
|
|
232
|
-
if (!handshake.ok) {
|
|
233
|
-
throw new Error(handshake.error);
|
|
234
|
-
}
|
|
235
|
-
const kind = channel.definition.meta?.kind;
|
|
236
|
-
const meta = channel.definition.meta;
|
|
237
|
-
const declaredEvents = channelDeclaredEventTypes(channel.definition.meta);
|
|
238
|
-
const eventTypes = declaredEvents === undefined ? undefined : [...declaredEvents].sort();
|
|
239
|
-
return {
|
|
240
|
-
id: channel.id,
|
|
241
|
-
kind,
|
|
242
|
-
eventTypes,
|
|
243
|
-
continuation: channelContinuationIdentity(channel.definition),
|
|
244
|
-
catch: channelCatchDeclaration(channel.definition),
|
|
245
|
-
...(kind === "slack" && meta?.slackReply !== undefined
|
|
246
|
-
? { slackReply: meta.slackReply }
|
|
247
|
-
: {}),
|
|
248
|
-
...(kind === "slack" && meta?.slackChannelPosts !== undefined
|
|
249
|
-
? { slackChannelPosts: [...meta.slackChannelPosts] }
|
|
250
|
-
: {}),
|
|
251
|
-
};
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
// Same mapping as `july deploy` (cli-deploy.ts): channels declared public
|
|
255
|
-
// via `publicEndpoint()` become alias-token-free route prefixes.
|
|
256
|
-
const publicRoutePaths = project.channels
|
|
257
|
-
.filter(channel => (channel.definition.auth ?? []).some(isPublicEndpointPolicy))
|
|
258
|
-
.map(channel => `/v1/channels/${channel.id}`);
|
|
259
|
-
|
|
260
|
-
const manifest: AgentDeployManifestV1 = {
|
|
261
|
-
manifestVersion: DEPLOY_MANIFEST_VERSION,
|
|
262
|
-
generatedAtMs: options?.nowMs ?? Date.now(),
|
|
263
|
-
cliVersion: options?.cliVersion ?? packageVersion(),
|
|
264
|
-
cliGitSha: options?.cliGitSha ?? packageGitSha(),
|
|
265
|
-
declarations: {
|
|
266
|
-
egressDomains: [...(project.agent.hosting?.egressDomains ?? [])],
|
|
267
|
-
publicRoutePaths,
|
|
268
|
-
// Deploy manifests describe Cursor-hosted deployments. When the agent
|
|
269
|
-
// authors no storage, framework-storage-selection.ts injects the
|
|
270
|
-
// platform Cursor-hosted mirror for both v1 and v2.
|
|
271
|
-
frameworkStorage:
|
|
272
|
-
project.storage === undefined
|
|
273
|
-
? "cursor-hosted"
|
|
274
|
-
: isCursorHostedStorage(project.storage)
|
|
275
|
-
? "cursor-hosted"
|
|
276
|
-
: "other",
|
|
277
|
-
...(project.agent.architecture === undefined
|
|
278
|
-
? {}
|
|
279
|
-
: { architecture: project.agent.architecture }),
|
|
280
|
-
persistent: project.agent.persistent,
|
|
281
|
-
...(project.agent.hosting?.image === undefined ? {} : { image: project.agent.hosting.image }),
|
|
282
|
-
channels,
|
|
283
|
-
},
|
|
284
|
-
info: projectInfo(project),
|
|
285
|
-
};
|
|
286
|
-
const validation = agentDeployManifestV1Schema.safeParse(manifest);
|
|
287
|
-
if (!validation.success) {
|
|
288
|
-
const issues = validation.error.issues
|
|
289
|
-
.map(issue => `${issue.path.join(".")}: ${issue.message}`)
|
|
290
|
-
.join("; ");
|
|
291
|
-
throw new Error(`Invalid Agent SDK deploy manifest: ${issues}`);
|
|
292
|
-
}
|
|
293
|
-
return manifest;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* Catch declaration for one authored channel: its routes, gated by the
|
|
298
|
-
* catch-capable policies in its auth chain (`sharedSecretAuth`,
|
|
299
|
-
* `hmacSignatureAuth`, or `publicEndpoint()` for handler-verified routes).
|
|
300
|
-
* A routed channel with none of those declares nothing and is not reachable
|
|
301
|
-
* through the catch API.
|
|
302
|
-
*/
|
|
303
|
-
export function channelCatchDeclaration(
|
|
304
|
-
definition: AgentProject["channels"][number]["definition"],
|
|
305
|
-
): AgentDeployManifestCatchDeclaration | undefined {
|
|
306
|
-
const routes = definition.routes ?? [];
|
|
307
|
-
if (routes.length === 0) {
|
|
308
|
-
return undefined;
|
|
309
|
-
}
|
|
310
|
-
const declared = (definition.auth ?? [])
|
|
311
|
-
.map(catchAuthDeclaration)
|
|
312
|
-
.filter(declaration => declaration !== undefined);
|
|
313
|
-
if (declared.length === 0) {
|
|
314
|
-
return undefined;
|
|
315
|
-
}
|
|
316
|
-
// An auth chain is any-of, so `publicEndpoint()` beside secret policies
|
|
317
|
-
// admits everything locally and on the control plane alike. Declare one
|
|
318
|
-
// `public` entry (the control plane then decrypts nothing) but keep the
|
|
319
|
-
// shared-secret header policies next to it: they are what the control
|
|
320
|
-
// plane uses to strip those header values before the request is
|
|
321
|
-
// claim-checked, and senders keep sending the secret regardless of
|
|
322
|
-
// whether anything still checks it. HMAC policies carry body digests,
|
|
323
|
-
// not secrets, so nothing is lost by dropping them.
|
|
324
|
-
const isPublic = declared.some(policy => policy.kind === "public");
|
|
325
|
-
const auth = isPublic
|
|
326
|
-
? [{ kind: "public" as const }, ...declared.filter(policy => policy.kind === "header")]
|
|
327
|
-
: declared;
|
|
328
|
-
if (routes.length > CATCH_MAX_ROUTES) {
|
|
329
|
-
if (isPublic) {
|
|
330
|
-
// publicEndpoint() channels deployed before catch existed; they stay
|
|
331
|
-
// reachable the way they were (not through catch) rather than
|
|
332
|
-
// failing the deploy.
|
|
333
|
-
return undefined;
|
|
334
|
-
}
|
|
335
|
-
throw new Error(
|
|
336
|
-
`Catch channels may declare at most ${CATCH_MAX_ROUTES} routes (got ${routes.length}).`,
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
if (auth.length > CATCH_MAX_AUTH_POLICIES) {
|
|
340
|
-
throw new Error(
|
|
341
|
-
isPublic
|
|
342
|
-
? `Catch channels may declare at most ${CATCH_MAX_AUTH_POLICIES} auth policies; publicEndpoint() plus ${String(auth.length - 1)} sharedSecretAuth() policies is ${String(auth.length)}. Drop publicEndpoint() or the shared-secret policies it makes dead.`
|
|
343
|
-
: `Catch channels may declare at most ${CATCH_MAX_AUTH_POLICIES} secret policies (got ${auth.length}).`,
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
return {
|
|
347
|
-
routes: routes.map(route => ({ method: route.method, path: route.path })),
|
|
348
|
-
auth,
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Parse an untrusted manifest (round-trip check for the CLI's own output;
|
|
354
|
-
* the CP re-validates server-side with its own copy of the contract).
|
|
355
|
-
*/
|
|
356
|
-
export function parseAgentDeployManifest(raw: unknown): AgentDeployManifestV1 | undefined {
|
|
357
|
-
const parsed = agentDeployManifestV1Schema.safeParse(raw);
|
|
358
|
-
// `info` is opaque to the wire schema (validated as a plain object) but
|
|
359
|
-
// typed as AgentProjectInfo for producers/consumers inside the SDK.
|
|
360
|
-
return parsed.success ? (parsed.data as unknown as AgentDeployManifestV1) : undefined;
|
|
361
|
-
}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Infer `agent-sdk deploy` git source fields from a local checkout.
|
|
3
|
-
*
|
|
4
|
-
* From an agent directory inside a git repo with an `origin` remote, the
|
|
5
|
-
* CLI can fill `--repo` / `--ref` / `--path` so `agent-sdk deploy` (no
|
|
6
|
-
* flags) is enough. Explicit flags always win.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { execFile } from "node:child_process";
|
|
10
|
-
import { relative, resolve, sep } from "node:path";
|
|
11
|
-
import { promisify } from "node:util";
|
|
12
|
-
|
|
13
|
-
const execFileAsync = promisify(execFile);
|
|
14
|
-
|
|
15
|
-
/** Injectable git runner (cwd + args → stdout, or undefined on failure). */
|
|
16
|
-
export type GitRunner = (args: readonly string[], cwd: string) => Promise<string | undefined>;
|
|
17
|
-
|
|
18
|
-
export interface InferredDeploySource {
|
|
19
|
-
gitRepoUrl?: string;
|
|
20
|
-
gitRef?: string;
|
|
21
|
-
/** Agent directory relative to the repo root (posix). Omitted at root. */
|
|
22
|
-
agentPath?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const defaultGitRunner: GitRunner = async (args, cwd) => {
|
|
26
|
-
try {
|
|
27
|
-
const { stdout } = await execFileAsync("git", [...args], { cwd });
|
|
28
|
-
const trimmed = stdout.trim();
|
|
29
|
-
return trimmed === "" ? undefined : trimmed;
|
|
30
|
-
} catch {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Normalize a git remote URL to the https form the control plane accepts
|
|
37
|
-
* (`https://host/owner/repo`, no `.git` suffix). Returns undefined for
|
|
38
|
-
* unrecognized shapes.
|
|
39
|
-
*
|
|
40
|
-
* Accepts HTTPS, `git@host:path`, GitHub org-scoped SSH
|
|
41
|
-
* (`org-123@github.com:owner/repo.git`), and `ssh://user@host[:port]/path`.
|
|
42
|
-
*/
|
|
43
|
-
export function httpsGitRepoUrlFromRemote(remote: string): string | undefined {
|
|
44
|
-
let url = remote.trim();
|
|
45
|
-
if (url === "") {
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// SCP-like SSH: user@host:owner/repo(.git) — includes git@ and GitHub
|
|
50
|
-
// org deploy keys (org-NNNN@github.com:…).
|
|
51
|
-
const scpMatch = /^([^@/\s]+)@([^:/\s]+):(.+)$/.exec(url);
|
|
52
|
-
if (scpMatch !== null) {
|
|
53
|
-
const host = scpMatch[2]!;
|
|
54
|
-
const path = scpMatch[3]!;
|
|
55
|
-
url = `https://${host}/${path}`;
|
|
56
|
-
} else if (/^ssh:\/\//i.test(url)) {
|
|
57
|
-
// ssh://user@host[:port]/owner/repo → https://host/owner/repo
|
|
58
|
-
try {
|
|
59
|
-
const ssh = new URL(url);
|
|
60
|
-
const path = ssh.pathname.replace(/^\/+/, "");
|
|
61
|
-
if (ssh.hostname === "" || path === "") {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
url = `https://${ssh.hostname}/${path}`;
|
|
65
|
-
} catch {
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
} else if (!/^https?:\/\//i.test(url)) {
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
let parsed: URL;
|
|
73
|
-
try {
|
|
74
|
-
parsed = new URL(url);
|
|
75
|
-
} catch {
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
const path = parsed.pathname
|
|
79
|
-
.replace(/\.git$/i, "")
|
|
80
|
-
.replace(/\/+$/, "")
|
|
81
|
-
.replace(/^\/+/, "");
|
|
82
|
-
if (path === "" || !path.includes("/")) {
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
// Use hostname (not host) so ssh://…@github.com:22/… does not keep :22.
|
|
86
|
-
return `https://${parsed.hostname}/${path}`;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Path of `dir` relative to `gitRoot`, using `/` separators. Undefined when
|
|
91
|
-
* `dir` is outside the root; omitted (undefined) when `dir` *is* the root
|
|
92
|
-
* so the control plane treats the agent as living at the repo root.
|
|
93
|
-
*/
|
|
94
|
-
export function agentPathRelativeToGitRoot(dir: string, gitRoot: string): string | undefined {
|
|
95
|
-
const absDir = resolve(dir);
|
|
96
|
-
const absRoot = resolve(gitRoot);
|
|
97
|
-
const rel = relative(absRoot, absDir);
|
|
98
|
-
if (rel === "") {
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
// Outside the repo (or a Windows drive mismatch) → cannot infer.
|
|
102
|
-
if (rel.startsWith("..") || rel.split(sep).includes("..")) {
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
return rel.split(sep).join("/");
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Probe the git checkout containing `dir` for deploy source fields.
|
|
110
|
-
* Missing pieces stay undefined.
|
|
111
|
-
*/
|
|
112
|
-
export async function inferDeployGitSource(
|
|
113
|
-
dir: string,
|
|
114
|
-
options?: { git?: GitRunner },
|
|
115
|
-
): Promise<InferredDeploySource> {
|
|
116
|
-
const git = options?.git ?? defaultGitRunner;
|
|
117
|
-
const absDir = resolve(dir);
|
|
118
|
-
|
|
119
|
-
const gitRoot = await git(["rev-parse", "--show-toplevel"], absDir);
|
|
120
|
-
if (gitRoot === undefined) {
|
|
121
|
-
return {};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const remote = await git(["remote", "get-url", "origin"], gitRoot);
|
|
125
|
-
const gitRepoUrl = remote === undefined ? undefined : httpsGitRepoUrlFromRemote(remote);
|
|
126
|
-
|
|
127
|
-
const branch = await git(["rev-parse", "--abbrev-ref", "HEAD"], gitRoot);
|
|
128
|
-
let gitRef: string | undefined;
|
|
129
|
-
if (branch !== undefined && branch !== "HEAD") {
|
|
130
|
-
gitRef = branch;
|
|
131
|
-
} else {
|
|
132
|
-
// Detached HEAD — pin the exact commit so the control plane still
|
|
133
|
-
// has something concrete to build.
|
|
134
|
-
gitRef = await git(["rev-parse", "HEAD"], gitRoot);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const agentPath = agentPathRelativeToGitRoot(absDir, gitRoot);
|
|
138
|
-
|
|
139
|
-
return {
|
|
140
|
-
gitRepoUrl,
|
|
141
|
-
gitRef,
|
|
142
|
-
agentPath,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** Stable string for logging / HTTP error bodies. */
|
|
2
|
-
export function describeError(error: unknown): string {
|
|
3
|
-
return error instanceof Error ? error.message : String(error);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export function describeErrorCode(error: unknown): string | undefined {
|
|
7
|
-
if (typeof error === "object" && error !== null && "code" in error) {
|
|
8
|
-
const numericCode = (error as { code?: unknown }).code;
|
|
9
|
-
if (numericCode === 1) {
|
|
10
|
-
return "canceled";
|
|
11
|
-
}
|
|
12
|
-
if (numericCode === 14) {
|
|
13
|
-
return "unavailable";
|
|
14
|
-
}
|
|
15
|
-
if (numericCode === 2) {
|
|
16
|
-
return "unknown";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if (
|
|
20
|
-
typeof error === "object" &&
|
|
21
|
-
error !== null &&
|
|
22
|
-
"name" in error &&
|
|
23
|
-
(error as { name?: unknown }).name === "AbortError"
|
|
24
|
-
) {
|
|
25
|
-
return "ABORT_ERR";
|
|
26
|
-
}
|
|
27
|
-
if (typeof error !== "object" || error === null || !("code" in error)) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
const code = (error as { code?: unknown }).code;
|
|
31
|
-
return typeof code === "string" && code.length <= 64 ? code : undefined;
|
|
32
|
-
}
|
package/src/internal/dev-mode.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process-wide dev-mode flag.
|
|
3
|
-
*
|
|
4
|
-
* Channels are constructed at module import time (during discovery), before a
|
|
5
|
-
* channel factory like `githubChannel()` ever sees the server's `--dev` flag.
|
|
6
|
-
* `serve()` sets this flag *before* discovery so those factories can relax
|
|
7
|
-
* dev-only defaults (e.g. the GitHub channel admitting loopback-forwarded
|
|
8
|
-
* webhook deliveries without a signing secret). It never affects prod: outside
|
|
9
|
-
* `--dev` the flag stays false and strict defaults apply.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
let devMode = false;
|
|
13
|
-
|
|
14
|
-
export function setDevMode(value: boolean): void {
|
|
15
|
-
devMode = value;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function isDevMode(): boolean {
|
|
19
|
-
return devMode;
|
|
20
|
-
}
|