@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
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agent/skills/*`: markdown, packaged, and `defineSkill` skills.
|
|
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 { readFile } from "node:fs/promises";
|
|
14
5
|
import { join, relative } from "node:path";
|
|
15
6
|
import { getDefinitionKind } from "../brand.js";
|
|
@@ -20,78 +11,72 @@ import { importDefault } from "./modules.js";
|
|
|
20
11
|
import { validateName } from "./names.js";
|
|
21
12
|
/** Declared frontmatter, else the body's first line, else a generic line. */
|
|
22
13
|
export function skillDescription(name, declared, body) {
|
|
23
|
-
|
|
24
|
-
return (_a = declared !== null && declared !== void 0 ? declared : deriveSkillDescription(body)) !== null && _a !== void 0 ? _a : `Instructions for the ${name} skill.`;
|
|
14
|
+
return declared ?? deriveSkillDescription(body) ?? `Instructions for the ${name} skill.`;
|
|
25
15
|
}
|
|
26
16
|
/** A packaged skill's sibling files, keyed by path relative to the skill dir. */
|
|
27
|
-
export function skillFiles(skillDir) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
files[rel] = { sourcePath: filePath };
|
|
34
|
-
}
|
|
17
|
+
export async function skillFiles(skillDir) {
|
|
18
|
+
const files = {};
|
|
19
|
+
for (const filePath of await walkFiles(skillDir)) {
|
|
20
|
+
const rel = toPosix(relative(skillDir, filePath));
|
|
21
|
+
if (rel !== "SKILL.md") {
|
|
22
|
+
files[rel] = { sourcePath: filePath };
|
|
35
23
|
}
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
}
|
|
25
|
+
return files;
|
|
38
26
|
}
|
|
39
|
-
export function loadSkills(ctx, skillsDir, onDisable) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
export async function loadSkills(ctx, skillsDir, onDisable) {
|
|
28
|
+
if (!(await isDirectory(skillsDir))) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const skills = [];
|
|
32
|
+
for (const entry of await sortedEntries(skillsDir)) {
|
|
33
|
+
const entryPath = join(skillsDir, entry.name);
|
|
34
|
+
if (entry.isDirectory()) {
|
|
35
|
+
const skill = await loadPackagedSkill(ctx, entryPath, entry.name);
|
|
36
|
+
if (skill !== undefined) {
|
|
37
|
+
skills.push(skill);
|
|
38
|
+
}
|
|
39
|
+
continue;
|
|
43
40
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
skills.push(skill);
|
|
51
|
-
}
|
|
41
|
+
if (!entry.isFile()) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (entry.name.endsWith(".md")) {
|
|
45
|
+
const name = entry.name.slice(0, -".md".length);
|
|
46
|
+
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
52
47
|
continue;
|
|
53
48
|
}
|
|
54
|
-
|
|
49
|
+
const { data, body } = parseFrontmatter(await readFile(entryPath, "utf8"));
|
|
50
|
+
skills.push({
|
|
51
|
+
name,
|
|
52
|
+
description: skillDescription(name, data.description, body),
|
|
53
|
+
markdown: body.trim(),
|
|
54
|
+
files: {},
|
|
55
|
+
});
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (isModuleFile(entry.name)) {
|
|
59
|
+
const name = moduleStem(entry.name);
|
|
60
|
+
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
55
61
|
continue;
|
|
56
62
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (!validateName(ctx, "skill", name, entryPath)) {
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
const { data, body } = parseFrontmatter(yield readFile(entryPath, "utf8"));
|
|
63
|
-
skills.push({
|
|
64
|
-
name,
|
|
65
|
-
description: skillDescription(name, data.description, body),
|
|
66
|
-
markdown: body.trim(),
|
|
67
|
-
files: {},
|
|
68
|
-
});
|
|
63
|
+
const definition = await importDefault(ctx, entryPath, onDisable === undefined ? "skill" : ["skill", "disabled"]);
|
|
64
|
+
if (definition === undefined) {
|
|
69
65
|
continue;
|
|
70
66
|
}
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
const definition = yield importDefault(ctx, entryPath, onDisable === undefined ? "skill" : ["skill", "disabled"]);
|
|
77
|
-
if (definition === undefined) {
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
if (getDefinitionKind(definition) === "disabled") {
|
|
81
|
-
onDisable === null || onDisable === void 0 ? void 0 : onDisable(name, entryPath);
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
skills.push(compileSkill(name, definition));
|
|
67
|
+
if (getDefinitionKind(definition) === "disabled") {
|
|
68
|
+
onDisable?.(name, entryPath);
|
|
69
|
+
continue;
|
|
85
70
|
}
|
|
71
|
+
skills.push(compileSkill(name, definition));
|
|
86
72
|
}
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
}
|
|
74
|
+
return skills;
|
|
89
75
|
}
|
|
90
76
|
/** A skill whose body and sibling files are in memory (`defineSkill`, extensions). */
|
|
91
77
|
function compileSkill(name, skill) {
|
|
92
|
-
var _a;
|
|
93
78
|
const files = {};
|
|
94
|
-
for (const [rel, contents] of Object.entries(
|
|
79
|
+
for (const [rel, contents] of Object.entries(skill.files ?? {})) {
|
|
95
80
|
files[rel] = { contents };
|
|
96
81
|
}
|
|
97
82
|
return {
|
|
@@ -101,36 +86,34 @@ function compileSkill(name, skill) {
|
|
|
101
86
|
files,
|
|
102
87
|
};
|
|
103
88
|
}
|
|
104
|
-
function loadPackagedSkill(ctx, skillDir, name) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
});
|
|
89
|
+
async function loadPackagedSkill(ctx, skillDir, name) {
|
|
90
|
+
const skillMdPath = join(skillDir, "SKILL.md");
|
|
91
|
+
if (!(await isFile(skillMdPath))) {
|
|
92
|
+
ctx.diagnostics.push({
|
|
93
|
+
severity: "warning",
|
|
94
|
+
path: displayPath(ctx, skillDir),
|
|
95
|
+
message: "Skill directories must contain a SKILL.md; ignoring.",
|
|
96
|
+
});
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
if (!validateName(ctx, "skill", name, skillDir)) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const { data, body } = parseFrontmatter(await readFile(skillMdPath, "utf8"));
|
|
103
|
+
if (data.description === undefined || isBlank(data.description)) {
|
|
104
|
+
ctx.diagnostics.push({
|
|
105
|
+
severity: "error",
|
|
106
|
+
path: displayPath(ctx, skillMdPath),
|
|
107
|
+
message: "Packaged skills require `description` frontmatter in SKILL.md (there is no filename slug to fall back on).",
|
|
108
|
+
});
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
name,
|
|
113
|
+
description: data.description,
|
|
114
|
+
markdown: body.trim(),
|
|
115
|
+
files: await skillFiles(skillDir),
|
|
116
|
+
};
|
|
134
117
|
}
|
|
135
118
|
/**
|
|
136
119
|
* Advertise the first non-empty, non-code-fence line of the body, with any
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A subagent as the Cursor harness runs it: description, model, and prompt. Its other slots are inert.
|
|
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 { join } from "node:path";
|
|
14
5
|
import { withIdentityPreamble } from "../workspace.js";
|
|
15
6
|
import { loadAgentConfig } from "./agent-config.js";
|
|
@@ -32,98 +23,91 @@ export function subagent(name, fields) {
|
|
|
32
23
|
seedFiles: [],
|
|
33
24
|
};
|
|
34
25
|
}
|
|
35
|
-
export function loadSubagents(ctx, subagentsDir) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
export async function loadSubagents(ctx, subagentsDir) {
|
|
27
|
+
if (!(await isDirectory(subagentsDir))) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
const subagents = [];
|
|
31
|
+
for (const entry of await sortedEntries(subagentsDir)) {
|
|
32
|
+
if (!entry.isDirectory()) {
|
|
33
|
+
continue;
|
|
39
34
|
}
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
const subagentDir = join(subagentsDir, entry.name);
|
|
46
|
-
if (!validateName(ctx, "subagent", entry.name, subagentDir)) {
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
subagents.push(yield loadSubagent(ctx, subagentDir, entry.name));
|
|
35
|
+
const subagentDir = join(subagentsDir, entry.name);
|
|
36
|
+
if (!validateName(ctx, "subagent", entry.name, subagentDir)) {
|
|
37
|
+
continue;
|
|
50
38
|
}
|
|
51
|
-
|
|
39
|
+
subagents.push(await loadSubagent(ctx, subagentDir, entry.name));
|
|
40
|
+
}
|
|
41
|
+
return subagents;
|
|
42
|
+
}
|
|
43
|
+
export async function loadSubagent(ctx, agentDir, name) {
|
|
44
|
+
const config = await loadAgentConfig(ctx, agentDir, false);
|
|
45
|
+
const prompt = await loadInstructions(ctx, agentDir, config, false);
|
|
46
|
+
await warnUnsupportedSubagentSlots(ctx, agentDir);
|
|
47
|
+
if (config?.builtinTools !== undefined) {
|
|
48
|
+
ctx.diagnostics.push({
|
|
49
|
+
severity: "warning",
|
|
50
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
51
|
+
message: "builtinTools is not supported on subagents; ignoring.",
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (config?.tools !== undefined) {
|
|
55
|
+
ctx.diagnostics.push({
|
|
56
|
+
severity: "warning",
|
|
57
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
58
|
+
message: "tools is not supported on subagents (they keep the harness task-tool toolset); ignoring.",
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (config?.architecture !== undefined) {
|
|
62
|
+
ctx.diagnostics.push({
|
|
63
|
+
severity: "warning",
|
|
64
|
+
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
65
|
+
message: "architecture is not supported on subagents; ignoring.",
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const artifactsPath = await findModuleFile(agentDir, "artifacts");
|
|
69
|
+
if (artifactsPath !== undefined) {
|
|
70
|
+
ctx.diagnostics.push({
|
|
71
|
+
severity: "warning",
|
|
72
|
+
path: displayPath(ctx, artifactsPath),
|
|
73
|
+
message: "artifacts are not supported on subagents; ignoring.",
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const resultPath = await findModuleFile(agentDir, "result");
|
|
77
|
+
if (resultPath !== undefined) {
|
|
78
|
+
ctx.diagnostics.push({
|
|
79
|
+
severity: "error",
|
|
80
|
+
path: displayPath(ctx, resultPath),
|
|
81
|
+
message: "agent/result.ts is no longer supported; defineResult has been removed. Record structured output with an authored tool and actuate from a turn.completed hook.",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return subagent(config?.name ?? name, {
|
|
85
|
+
description: config?.description,
|
|
86
|
+
model: config?.model,
|
|
87
|
+
prompt,
|
|
52
88
|
});
|
|
53
89
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
90
|
+
async function warnUnsupportedSubagentSlots(ctx, subagentDir) {
|
|
91
|
+
const unsupported = [
|
|
92
|
+
["tools", "tools"],
|
|
93
|
+
["skills", "skills"],
|
|
94
|
+
["extensions", "extensions"],
|
|
95
|
+
["mcp-connections", "MCP connections"],
|
|
96
|
+
["host-connections", "host MCP connections"],
|
|
97
|
+
["subagents", "nested subagents"],
|
|
98
|
+
["channels", "channels"],
|
|
99
|
+
["schedules", "schedules"],
|
|
100
|
+
["reminders", "reminders"],
|
|
101
|
+
["hooks", "hooks"],
|
|
102
|
+
["sandbox", "sandbox files"],
|
|
103
|
+
];
|
|
104
|
+
for (const [slot, label] of unsupported) {
|
|
105
|
+
if (await isDirectory(join(subagentDir, slot))) {
|
|
61
106
|
ctx.diagnostics.push({
|
|
62
107
|
severity: "warning",
|
|
63
|
-
path: displayPath(ctx, join(
|
|
64
|
-
message:
|
|
108
|
+
path: displayPath(ctx, join(subagentDir, slot)),
|
|
109
|
+
message: `Subagent ${label} are not supported on the Cursor harness yet; the subagent runs with the parent's execution surface. Ignoring.`,
|
|
65
110
|
});
|
|
66
111
|
}
|
|
67
|
-
|
|
68
|
-
ctx.diagnostics.push({
|
|
69
|
-
severity: "warning",
|
|
70
|
-
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
71
|
-
message: "tools is not supported on subagents (they keep the harness task-tool toolset); ignoring.",
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
if ((config === null || config === void 0 ? void 0 : config.architecture) !== undefined) {
|
|
75
|
-
ctx.diagnostics.push({
|
|
76
|
-
severity: "warning",
|
|
77
|
-
path: displayPath(ctx, join(agentDir, "agent.ts")),
|
|
78
|
-
message: "architecture is not supported on subagents; ignoring.",
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
const artifactsPath = yield findModuleFile(agentDir, "artifacts");
|
|
82
|
-
if (artifactsPath !== undefined) {
|
|
83
|
-
ctx.diagnostics.push({
|
|
84
|
-
severity: "warning",
|
|
85
|
-
path: displayPath(ctx, artifactsPath),
|
|
86
|
-
message: "artifacts are not supported on subagents; ignoring.",
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
const resultPath = yield findModuleFile(agentDir, "result");
|
|
90
|
-
if (resultPath !== undefined) {
|
|
91
|
-
ctx.diagnostics.push({
|
|
92
|
-
severity: "error",
|
|
93
|
-
path: displayPath(ctx, resultPath),
|
|
94
|
-
message: "agent/result.ts is no longer supported; defineResult has been removed. Record structured output with an authored tool and actuate from a turn.completed hook.",
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return subagent((_a = config === null || config === void 0 ? void 0 : config.name) !== null && _a !== void 0 ? _a : name, {
|
|
98
|
-
description: config === null || config === void 0 ? void 0 : config.description,
|
|
99
|
-
model: config === null || config === void 0 ? void 0 : config.model,
|
|
100
|
-
prompt,
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
function warnUnsupportedSubagentSlots(ctx, subagentDir) {
|
|
105
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
-
const unsupported = [
|
|
107
|
-
["tools", "tools"],
|
|
108
|
-
["skills", "skills"],
|
|
109
|
-
["extensions", "extensions"],
|
|
110
|
-
["mcp-connections", "MCP connections"],
|
|
111
|
-
["host-connections", "host MCP connections"],
|
|
112
|
-
["subagents", "nested subagents"],
|
|
113
|
-
["channels", "channels"],
|
|
114
|
-
["schedules", "schedules"],
|
|
115
|
-
["reminders", "reminders"],
|
|
116
|
-
["hooks", "hooks"],
|
|
117
|
-
["sandbox", "sandbox files"],
|
|
118
|
-
];
|
|
119
|
-
for (const [slot, label] of unsupported) {
|
|
120
|
-
if (yield isDirectory(join(subagentDir, slot))) {
|
|
121
|
-
ctx.diagnostics.push({
|
|
122
|
-
severity: "warning",
|
|
123
|
-
path: displayPath(ctx, join(subagentDir, slot)),
|
|
124
|
-
message: `Subagent ${label} are not supported on the Cursor harness yet; the subagent runs with the parent's execution surface. Ignoring.`,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
});
|
|
112
|
+
}
|
|
129
113
|
}
|
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agent/tools/*.ts`: typed tools and the built-in tools appended after them.
|
|
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 { join } from "node:path";
|
|
14
5
|
import { builtinTools } from "../builtin-tools/index.js";
|
|
15
6
|
import { toolInputJsonSchema, toolOutputJsonSchema } from "../json-schema.js";
|
|
16
7
|
import { displayPath, errorMessage, isBlank } from "./context.js";
|
|
17
8
|
import { importDefault, moduleEntries } from "./modules.js";
|
|
18
|
-
export function loadTools(ctx, toolsDir) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
tools.push(tool);
|
|
29
|
-
}
|
|
9
|
+
export async function loadTools(ctx, toolsDir) {
|
|
10
|
+
const tools = [];
|
|
11
|
+
for (const { name, path } of await moduleEntries(ctx, toolsDir, "tool")) {
|
|
12
|
+
const definition = await importDefault(ctx, path, "tool");
|
|
13
|
+
if (definition === undefined) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const tool = compileTool(ctx, path, name, definition);
|
|
17
|
+
if (tool !== undefined) {
|
|
18
|
+
tools.push(tool);
|
|
30
19
|
}
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
}
|
|
21
|
+
return tools;
|
|
33
22
|
}
|
|
34
23
|
/**
|
|
35
24
|
* Validate one tool definition against the tool contract and convert its
|
|
@@ -61,7 +61,7 @@ export function packageGitSha() {
|
|
|
61
61
|
.toLowerCase();
|
|
62
62
|
return GIT_COMMIT_SHA_RE.test(sha) ? sha : undefined;
|
|
63
63
|
}
|
|
64
|
-
catch
|
|
64
|
+
catch {
|
|
65
65
|
return undefined;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -78,7 +78,7 @@ export function cliVersionInfo() {
|
|
|
78
78
|
*/
|
|
79
79
|
export function formatCliVersion(options) {
|
|
80
80
|
const info = cliVersionInfo();
|
|
81
|
-
if (
|
|
81
|
+
if (options?.json === true) {
|
|
82
82
|
return `${JSON.stringify(info, null, 2)}\n`;
|
|
83
83
|
}
|
|
84
84
|
return `${info.version}\n`;
|
|
@@ -13,15 +13,6 @@
|
|
|
13
13
|
* without rebuilding the process image. Requests re-read the path, so an
|
|
14
14
|
* atomic symlink swap is visible without a restart.
|
|
15
15
|
*/
|
|
16
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
16
|
import { spawn } from "node:child_process";
|
|
26
17
|
import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
|
|
27
18
|
import { createRequire } from "node:module";
|
|
@@ -35,7 +26,7 @@ function realDir(dir) {
|
|
|
35
26
|
try {
|
|
36
27
|
return realpathSync(dir);
|
|
37
28
|
}
|
|
38
|
-
catch
|
|
29
|
+
catch {
|
|
39
30
|
return undefined;
|
|
40
31
|
}
|
|
41
32
|
}
|
|
@@ -56,7 +47,7 @@ function containedFile(candidate, rootReal) {
|
|
|
56
47
|
}
|
|
57
48
|
return real;
|
|
58
49
|
}
|
|
59
|
-
catch
|
|
50
|
+
catch {
|
|
60
51
|
return undefined;
|
|
61
52
|
}
|
|
62
53
|
}
|
|
@@ -76,8 +67,7 @@ export function shippedDocsDistDir() {
|
|
|
76
67
|
* overlay has a built site; otherwise the install's `dist/docs/`.
|
|
77
68
|
*/
|
|
78
69
|
export function docsDistDir() {
|
|
79
|
-
|
|
80
|
-
const overlay = (_a = process.env[DOCS_OVERLAY_ENV]) === null || _a === void 0 ? void 0 : _a.trim();
|
|
70
|
+
const overlay = process.env[DOCS_OVERLAY_ENV]?.trim();
|
|
81
71
|
if (overlay !== undefined && overlay !== "" && hasDocsIndex(overlay)) {
|
|
82
72
|
return overlay;
|
|
83
73
|
}
|
|
@@ -121,7 +111,6 @@ export function resolveDocsFile(requestPath, distDir = docsDistDir()) {
|
|
|
121
111
|
}
|
|
122
112
|
/** Serve one path from the built docs site. */
|
|
123
113
|
export function renderDocsFile(requestPath, distDir = docsDistDir()) {
|
|
124
|
-
var _a;
|
|
125
114
|
if (!docsSiteExists(distDir)) {
|
|
126
115
|
return new Response(fallbackHtml(), {
|
|
127
116
|
status: 503,
|
|
@@ -138,7 +127,7 @@ export function renderDocsFile(requestPath, distDir = docsDistDir()) {
|
|
|
138
127
|
});
|
|
139
128
|
}
|
|
140
129
|
const body = readFileSync(filePath);
|
|
141
|
-
const type =
|
|
130
|
+
const type = STATIC_CONTENT_TYPES[extname(filePath).toLowerCase()] ?? "application/octet-stream";
|
|
142
131
|
const hashed = filePath.includes(`${sep}assets${sep}`);
|
|
143
132
|
return new Response(new Uint8Array(body), {
|
|
144
133
|
headers: {
|
|
@@ -155,39 +144,35 @@ export function renderDocsFile(requestPath, distDir = docsDistDir()) {
|
|
|
155
144
|
* (logs) when vitepress is absent so published installs without a
|
|
156
145
|
* prebuilt site still start.
|
|
157
146
|
*/
|
|
158
|
-
export function ensureDocsSiteBundle() {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
stdio: "inherit",
|
|
174
|
-
});
|
|
175
|
-
child.on("error", reject);
|
|
176
|
-
child.on("exit", exitCode => resolve(exitCode !== null && exitCode !== void 0 ? exitCode : 1));
|
|
147
|
+
export async function ensureDocsSiteBundle(logger = console.log) {
|
|
148
|
+
if (docsSiteExists(DOCS_DIST_DIR)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const toolchain = resolveDocsToolchain();
|
|
152
|
+
if (toolchain === undefined) {
|
|
153
|
+
logger("[bdk] docs site missing and vitepress toolchain unavailable; /docs will show a build hint");
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
logger("[bdk] building docs site (vitepress)...");
|
|
157
|
+
const code = await new Promise((resolve, reject) => {
|
|
158
|
+
const child = spawn(process.execPath, [toolchain.vitepressCli, "build", "docs"], {
|
|
159
|
+
cwd: toolchain.packageRoot,
|
|
160
|
+
env: process.env,
|
|
161
|
+
stdio: "inherit",
|
|
177
162
|
});
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
if (!docsSiteExists(DOCS_DIST_DIR)) {
|
|
182
|
-
throw new Error("docs vitepress build finished but dist/docs/index.html is missing");
|
|
183
|
-
}
|
|
184
|
-
logger("[bdk] docs site build complete");
|
|
163
|
+
child.on("error", reject);
|
|
164
|
+
child.on("exit", exitCode => resolve(exitCode ?? 1));
|
|
185
165
|
});
|
|
166
|
+
if (code !== 0) {
|
|
167
|
+
throw new Error(`docs vitepress build failed (exit ${code})`);
|
|
168
|
+
}
|
|
169
|
+
if (!docsSiteExists(DOCS_DIST_DIR)) {
|
|
170
|
+
throw new Error("docs vitepress build finished but dist/docs/index.html is missing");
|
|
171
|
+
}
|
|
172
|
+
logger("[bdk] docs site build complete");
|
|
186
173
|
}
|
|
187
174
|
/** True when docs sources + a resolvable `vitepress` CLI are present. */
|
|
188
175
|
function resolveDocsToolchain() {
|
|
189
|
-
var _a;
|
|
190
|
-
var _b;
|
|
191
176
|
const packageRoot = fileURLToPath(new URL("../..", import.meta.url));
|
|
192
177
|
if (!existsSync(join(packageRoot, "docs", ".vitepress", "config.mts"))) {
|
|
193
178
|
return undefined;
|
|
@@ -196,11 +181,11 @@ function resolveDocsToolchain() {
|
|
|
196
181
|
const require = createRequire(join(packageRoot, "package.json"));
|
|
197
182
|
const pkgPath = require.resolve("vitepress/package.json");
|
|
198
183
|
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
199
|
-
const binRel = typeof pkg.bin === "string" ? pkg.bin : (
|
|
184
|
+
const binRel = typeof pkg.bin === "string" ? pkg.bin : (pkg.bin?.vitepress ?? "bin/vitepress.js");
|
|
200
185
|
const vitepressCli = join(dirname(pkgPath), binRel);
|
|
201
186
|
return existsSync(vitepressCli) ? { packageRoot, vitepressCli } : undefined;
|
|
202
187
|
}
|
|
203
|
-
catch
|
|
188
|
+
catch {
|
|
204
189
|
return undefined;
|
|
205
190
|
}
|
|
206
191
|
}
|