@cursor/bdk 0.2.8 → 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.d.ts +1 -0
- package/dist/bin/agent-serve.d.ts.map +1 -1
- package/dist/bin/agent-serve.js +820 -807
- 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.oyjtOr3W.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.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
- package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
- package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.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.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
- package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
- package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
- package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.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.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.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.d.ts +0 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
- 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.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
- 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.d.ts +18 -0
- package/dist/internal/cli-migrate.d.ts.map +1 -0
- package/dist/internal/cli-migrate.js +136 -0
- 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.d.ts +1 -0
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +130 -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.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +238 -274
- 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-MijLHTbB.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 +264 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
- package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
- package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
- 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-DPKLl4C_.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
|
@@ -12,15 +12,6 @@
|
|
|
12
12
|
* installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
|
|
13
13
|
* matching install command.
|
|
14
14
|
*/
|
|
15
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
15
|
import { spawn } from "node:child_process";
|
|
25
16
|
import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
|
|
26
17
|
import { dirname, join, sep } from "node:path";
|
|
@@ -35,7 +26,7 @@ const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
|
35
26
|
/** Inline refresh budget; a slow registry must not stall the command. */
|
|
36
27
|
const WARN_FETCH_TIMEOUT_MS = 1500;
|
|
37
28
|
/** `agent-sdk update` runs interactively, so it can afford a real timeout. */
|
|
38
|
-
const UPDATE_FETCH_TIMEOUT_MS =
|
|
29
|
+
const UPDATE_FETCH_TIMEOUT_MS = 10_000;
|
|
39
30
|
function parseVersion(version) {
|
|
40
31
|
const match = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+.*)?$/.exec(version.trim());
|
|
41
32
|
if (match === null) {
|
|
@@ -104,31 +95,28 @@ const distTagResponseSchema = z.object({ version: z.string() });
|
|
|
104
95
|
* Latest published version of the package, from the registry's `latest`
|
|
105
96
|
* dist-tag. Returns undefined on any failure (offline, 404 pre-publish, …).
|
|
106
97
|
*/
|
|
107
|
-
export function fetchLatestPublishedVersion(options) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (!response.ok) {
|
|
120
|
-
return undefined;
|
|
121
|
-
}
|
|
122
|
-
const body = distTagResponseSchema.safeParse(yield response.json());
|
|
123
|
-
if (!body.success || parseVersion(body.data.version) === undefined) {
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
return body.data.version;
|
|
98
|
+
export async function fetchLatestPublishedVersion(options) {
|
|
99
|
+
const fetchImpl = options?.fetchImpl ?? fetch;
|
|
100
|
+
const packageName = options?.packageName ?? PACKAGE_NAME;
|
|
101
|
+
// Scoped names keep the `@` but encode the `/` for the registry path.
|
|
102
|
+
const url = `${NPM_REGISTRY_URL}/${packageName.replace("/", "%2F")}/latest`;
|
|
103
|
+
try {
|
|
104
|
+
const response = await fetchImpl(url, {
|
|
105
|
+
headers: { accept: "application/json" },
|
|
106
|
+
signal: AbortSignal.timeout(options?.timeoutMs ?? WARN_FETCH_TIMEOUT_MS),
|
|
107
|
+
});
|
|
108
|
+
if (!response.ok) {
|
|
109
|
+
return undefined;
|
|
127
110
|
}
|
|
128
|
-
|
|
111
|
+
const body = distTagResponseSchema.safeParse(await response.json());
|
|
112
|
+
if (!body.success || parseVersion(body.data.version) === undefined) {
|
|
129
113
|
return undefined;
|
|
130
114
|
}
|
|
131
|
-
|
|
115
|
+
return body.data.version;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
132
120
|
}
|
|
133
121
|
// ============================================================================
|
|
134
122
|
// Cache (one JSON file next to credentials.json)
|
|
@@ -140,37 +128,33 @@ const cacheSchema = z.object({
|
|
|
140
128
|
latestVersion: z.string().optional(),
|
|
141
129
|
});
|
|
142
130
|
export function updateCheckCachePath(configDir) {
|
|
143
|
-
return join(configDir
|
|
131
|
+
return join(configDir ?? configDirPath(), "update-check.json");
|
|
144
132
|
}
|
|
145
|
-
export function readUpdateCheckCache(configDir) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
});
|
|
133
|
+
export async function readUpdateCheckCache(configDir) {
|
|
134
|
+
let raw;
|
|
135
|
+
try {
|
|
136
|
+
raw = await readFile(updateCheckCachePath(configDir), "utf8");
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const parsed = cacheSchema.safeParse(JSON.parse(raw));
|
|
143
|
+
return parsed.success ? parsed.data : undefined;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
162
148
|
}
|
|
163
|
-
export function writeUpdateCheckCache(cache, configDir) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
});
|
|
149
|
+
export async function writeUpdateCheckCache(cache, configDir) {
|
|
150
|
+
const path = updateCheckCachePath(configDir);
|
|
151
|
+
try {
|
|
152
|
+
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
153
|
+
await writeFile(path, `${JSON.stringify(cache, null, 2)}\n`);
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Best-effort; a read-only config dir just means re-checking next run.
|
|
157
|
+
}
|
|
174
158
|
}
|
|
175
159
|
/**
|
|
176
160
|
* Print an outdated-version warning to stderr when a newer release exists.
|
|
@@ -179,40 +163,37 @@ export function writeUpdateCheckCache(cache, configDir) {
|
|
|
179
163
|
* Suppressed on source-checkout runs (there is no installed copy to update),
|
|
180
164
|
* in CI, and via NO_UPDATE_NOTIFIER / AGENT_SERVE_NO_UPDATE_CHECK.
|
|
181
165
|
*/
|
|
182
|
-
export function warnIfOutdated(options) {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const err = (_d = options === null || options === void 0 ? void 0 : options.err) !== null && _d !== void 0 ? _d : ((text) => void process.stderr.write(text));
|
|
214
|
-
err(`${c.yellow("warning:")} ${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}). Run \`${CLI_COMMAND_NAME} update\` to upgrade.\n`);
|
|
215
|
-
});
|
|
166
|
+
export async function warnIfOutdated(options) {
|
|
167
|
+
const env = options?.env ?? process.env;
|
|
168
|
+
if (isTruthyEnv(env.AGENT_SERVE_NO_UPDATE_CHECK) ||
|
|
169
|
+
isTruthyEnv(env.NO_UPDATE_NOTIFIER) ||
|
|
170
|
+
isTruthyEnv(env.CI)) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (options?.force !== true && !isCompiledDistribution()) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const now = options?.now ?? Date.now();
|
|
177
|
+
const currentVersion = options?.currentVersion ?? packageVersion();
|
|
178
|
+
const cached = await readUpdateCheckCache(options?.configDir);
|
|
179
|
+
let latestVersion = cached?.latestVersion;
|
|
180
|
+
const fresh = cached !== undefined && now - cached.checkedAt < CHECK_INTERVAL_MS;
|
|
181
|
+
if (!fresh) {
|
|
182
|
+
const fetched = await fetchLatestPublishedVersion({
|
|
183
|
+
fetchImpl: options?.fetchImpl,
|
|
184
|
+
timeoutMs: WARN_FETCH_TIMEOUT_MS,
|
|
185
|
+
});
|
|
186
|
+
latestVersion = fetched ?? latestVersion;
|
|
187
|
+
// checkedAt always advances so a flaky registry backs off to one
|
|
188
|
+
// attempt per interval instead of one per command.
|
|
189
|
+
await writeUpdateCheckCache({ checkedAt: now, latestVersion }, options?.configDir);
|
|
190
|
+
}
|
|
191
|
+
if (latestVersion === undefined || compareVersions(currentVersion, latestVersion) >= 0) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const c = stderrPalette();
|
|
195
|
+
const err = options?.err ?? ((text) => void process.stderr.write(text));
|
|
196
|
+
err(`${c.yellow("warning:")} ${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}). Run \`${CLI_COMMAND_NAME} update\` to upgrade.\n`);
|
|
216
197
|
}
|
|
217
198
|
function isTruthyEnv(value) {
|
|
218
199
|
return value !== undefined && value !== "" && value !== "0";
|
|
@@ -224,188 +205,179 @@ function isTruthyEnv(value) {
|
|
|
224
205
|
* dependency. Returns undefined for layouts we cannot safely upgrade
|
|
225
206
|
* (npx cache, unrecognized stores).
|
|
226
207
|
*/
|
|
227
|
-
export function detectUpdateCommand(args) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
// resolves latest, and upgrading the cache entry in place helps nobody.
|
|
235
|
-
if (posixRoot.includes("/_npx/") || posixRoot.includes("/.pnpm-store/")) {
|
|
236
|
-
return undefined;
|
|
237
|
-
}
|
|
238
|
-
if (posixRoot.includes("/pnpm/global/")) {
|
|
239
|
-
return {
|
|
240
|
-
cmd: "pnpm",
|
|
241
|
-
args: ["add", "-g", spec],
|
|
242
|
-
reason: "installed with pnpm --global",
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
if (posixRoot.includes("/.bun/install/global/")) {
|
|
246
|
-
return {
|
|
247
|
-
cmd: "bun",
|
|
248
|
-
args: ["add", "-g", spec],
|
|
249
|
-
reason: "installed with bun --global",
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
if (posixRoot.includes("/yarn/global/") || posixRoot.includes("/.config/yarn/global/")) {
|
|
253
|
-
return {
|
|
254
|
-
cmd: "yarn",
|
|
255
|
-
args: ["global", "add", spec],
|
|
256
|
-
reason: "installed with yarn global",
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
// A project that depends on the package: upgrade the dependency there,
|
|
260
|
-
// with whichever package manager the lockfile says the project uses.
|
|
261
|
-
const projectDir = yield findDependingProjectDir(args.packageRoot, packageName);
|
|
262
|
-
if (projectDir !== undefined) {
|
|
263
|
-
const pm = yield detectProjectPackageManager(projectDir);
|
|
264
|
-
const command = pm === "pnpm"
|
|
265
|
-
? { cmd: "pnpm", args: ["add", spec] }
|
|
266
|
-
: pm === "yarn"
|
|
267
|
-
? { cmd: "yarn", args: ["add", spec] }
|
|
268
|
-
: pm === "bun"
|
|
269
|
-
? { cmd: "bun", args: ["add", spec] }
|
|
270
|
-
: { cmd: "npm", args: ["install", spec] };
|
|
271
|
-
return Object.assign(Object.assign({}, command), { cwd: projectDir, reason: `project dependency in ${projectDir}` });
|
|
272
|
-
}
|
|
273
|
-
// Global npm layout: <prefix>/lib/node_modules/<name> (or <prefix>\
|
|
274
|
-
// node_modules\<name> on Windows), with no depending project above it.
|
|
275
|
-
if (posixRoot.includes("/node_modules/")) {
|
|
276
|
-
return {
|
|
277
|
-
cmd: "npm",
|
|
278
|
-
args: ["install", "-g", spec],
|
|
279
|
-
reason: "installed with npm --global",
|
|
280
|
-
};
|
|
281
|
-
}
|
|
208
|
+
export async function detectUpdateCommand(args) {
|
|
209
|
+
const packageName = args.packageName ?? PACKAGE_NAME;
|
|
210
|
+
const spec = `${packageName}@latest`;
|
|
211
|
+
const posixRoot = args.packageRoot.split(sep).join("/");
|
|
212
|
+
// npx / pnpm dlx caches are ephemeral; a fresh `npx agent-sdk` already
|
|
213
|
+
// resolves latest, and upgrading the cache entry in place helps nobody.
|
|
214
|
+
if (posixRoot.includes("/_npx/") || posixRoot.includes("/.pnpm-store/")) {
|
|
282
215
|
return undefined;
|
|
283
|
-
}
|
|
216
|
+
}
|
|
217
|
+
if (posixRoot.includes("/pnpm/global/")) {
|
|
218
|
+
return {
|
|
219
|
+
cmd: "pnpm",
|
|
220
|
+
args: ["add", "-g", spec],
|
|
221
|
+
reason: "installed with pnpm --global",
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
if (posixRoot.includes("/.bun/install/global/")) {
|
|
225
|
+
return {
|
|
226
|
+
cmd: "bun",
|
|
227
|
+
args: ["add", "-g", spec],
|
|
228
|
+
reason: "installed with bun --global",
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
if (posixRoot.includes("/yarn/global/") || posixRoot.includes("/.config/yarn/global/")) {
|
|
232
|
+
return {
|
|
233
|
+
cmd: "yarn",
|
|
234
|
+
args: ["global", "add", spec],
|
|
235
|
+
reason: "installed with yarn global",
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
// A project that depends on the package: upgrade the dependency there,
|
|
239
|
+
// with whichever package manager the lockfile says the project uses.
|
|
240
|
+
const projectDir = await findDependingProjectDir(args.packageRoot, packageName);
|
|
241
|
+
if (projectDir !== undefined) {
|
|
242
|
+
const pm = await detectProjectPackageManager(projectDir);
|
|
243
|
+
const command = pm === "pnpm"
|
|
244
|
+
? { cmd: "pnpm", args: ["add", spec] }
|
|
245
|
+
: pm === "yarn"
|
|
246
|
+
? { cmd: "yarn", args: ["add", spec] }
|
|
247
|
+
: pm === "bun"
|
|
248
|
+
? { cmd: "bun", args: ["add", spec] }
|
|
249
|
+
: { cmd: "npm", args: ["install", spec] };
|
|
250
|
+
return {
|
|
251
|
+
...command,
|
|
252
|
+
cwd: projectDir,
|
|
253
|
+
reason: `project dependency in ${projectDir}`,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
// Global npm layout: <prefix>/lib/node_modules/<name> (or <prefix>\
|
|
257
|
+
// node_modules\<name> on Windows), with no depending project above it.
|
|
258
|
+
if (posixRoot.includes("/node_modules/")) {
|
|
259
|
+
return {
|
|
260
|
+
cmd: "npm",
|
|
261
|
+
args: ["install", "-g", spec],
|
|
262
|
+
reason: "installed with npm --global",
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
return undefined;
|
|
284
266
|
}
|
|
285
267
|
/**
|
|
286
268
|
* Nearest ancestor with a package.json that declares `packageName` as a
|
|
287
269
|
* dependency. Skips directories inside node_modules (pnpm's virtual store
|
|
288
270
|
* nests package.json files that are not the user's project).
|
|
289
271
|
*/
|
|
290
|
-
function findDependingProjectDir(packageRoot, packageName) {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
return undefined;
|
|
297
|
-
}
|
|
298
|
-
const inNodeModules = dir.split(sep).some(part => part === "node_modules" || part === ".pnpm");
|
|
299
|
-
if (!inNodeModules && (yield declaresDependency(dir, packageName))) {
|
|
300
|
-
return dir;
|
|
301
|
-
}
|
|
302
|
-
dir = parent;
|
|
272
|
+
async function findDependingProjectDir(packageRoot, packageName) {
|
|
273
|
+
let dir = dirname(packageRoot);
|
|
274
|
+
for (let depth = 0; depth < 30; depth++) {
|
|
275
|
+
const parent = dirname(dir);
|
|
276
|
+
if (parent === dir) {
|
|
277
|
+
return undefined;
|
|
303
278
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
function declaresDependency(dir, packageName) {
|
|
308
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
var _a, _b;
|
|
310
|
-
let raw;
|
|
311
|
-
try {
|
|
312
|
-
raw = yield readFile(join(dir, "package.json"), "utf8");
|
|
279
|
+
const inNodeModules = dir.split(sep).some(part => part === "node_modules" || part === ".pnpm");
|
|
280
|
+
if (!inNodeModules && (await declaresDependency(dir, packageName))) {
|
|
281
|
+
return dir;
|
|
313
282
|
}
|
|
314
|
-
|
|
283
|
+
dir = parent;
|
|
284
|
+
}
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
async function declaresDependency(dir, packageName) {
|
|
288
|
+
let raw;
|
|
289
|
+
try {
|
|
290
|
+
raw = await readFile(join(dir, "package.json"), "utf8");
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
const manifestSchema = z.object({
|
|
296
|
+
dependencies: z.record(z.string()).optional(),
|
|
297
|
+
devDependencies: z.record(z.string()).optional(),
|
|
298
|
+
});
|
|
299
|
+
try {
|
|
300
|
+
const parsed = manifestSchema.safeParse(JSON.parse(raw));
|
|
301
|
+
if (!parsed.success) {
|
|
315
302
|
return false;
|
|
316
303
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
304
|
+
return (parsed.data.dependencies?.[packageName] !== undefined ||
|
|
305
|
+
parsed.data.devDependencies?.[packageName] !== undefined);
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
async function detectProjectPackageManager(projectDir) {
|
|
312
|
+
const exists = async (file) => {
|
|
321
313
|
try {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
return false;
|
|
325
|
-
}
|
|
326
|
-
return (((_a = parsed.data.dependencies) === null || _a === void 0 ? void 0 : _a[packageName]) !== undefined ||
|
|
327
|
-
((_b = parsed.data.devDependencies) === null || _b === void 0 ? void 0 : _b[packageName]) !== undefined);
|
|
314
|
+
await stat(join(projectDir, file));
|
|
315
|
+
return true;
|
|
328
316
|
}
|
|
329
|
-
catch
|
|
317
|
+
catch {
|
|
330
318
|
return false;
|
|
331
319
|
}
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
}
|
|
344
|
-
});
|
|
345
|
-
if (yield exists("pnpm-lock.yaml")) {
|
|
346
|
-
return "pnpm";
|
|
347
|
-
}
|
|
348
|
-
if (yield exists("yarn.lock")) {
|
|
349
|
-
return "yarn";
|
|
350
|
-
}
|
|
351
|
-
if ((yield exists("bun.lock")) || (yield exists("bun.lockb"))) {
|
|
352
|
-
return "bun";
|
|
353
|
-
}
|
|
354
|
-
return "npm";
|
|
355
|
-
});
|
|
320
|
+
};
|
|
321
|
+
if (await exists("pnpm-lock.yaml")) {
|
|
322
|
+
return "pnpm";
|
|
323
|
+
}
|
|
324
|
+
if (await exists("yarn.lock")) {
|
|
325
|
+
return "yarn";
|
|
326
|
+
}
|
|
327
|
+
if ((await exists("bun.lock")) || (await exists("bun.lockb"))) {
|
|
328
|
+
return "bun";
|
|
329
|
+
}
|
|
330
|
+
return "npm";
|
|
356
331
|
}
|
|
357
332
|
/** `agent-sdk update` — upgrade this install to the latest published version. */
|
|
358
|
-
export function cmdUpdate(options) {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
});
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
out(`${CLI_COMMAND_NAME} ${currentVersion} is already the latest version.\n`);
|
|
380
|
-
yield writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options === null || options === void 0 ? void 0 : options.configDir);
|
|
381
|
-
return 0;
|
|
382
|
-
}
|
|
383
|
-
const command = yield detectUpdateCommand({
|
|
384
|
-
packageRoot: (_e = options === null || options === void 0 ? void 0 : options.packageRoot) !== null && _e !== void 0 ? _e : packageRootDir(),
|
|
385
|
-
});
|
|
386
|
-
if (command === undefined) {
|
|
387
|
-
err(`${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}), but this install's layout was not recognized.\nUpgrade it yourself, e.g. \`npm install -g ${PACKAGE_NAME}@latest\` for a global install, or bump the ${PACKAGE_NAME} dependency in your project.\n`);
|
|
388
|
-
return 1;
|
|
389
|
-
}
|
|
390
|
-
const rendered = [command.cmd, ...command.args].join(" ");
|
|
391
|
-
err(c.dim(`Updating ${CLI_COMMAND_NAME} ${currentVersion} → ${latestVersion} (${command.reason}):\n ${rendered}\n`));
|
|
392
|
-
const run = (_f = options === null || options === void 0 ? void 0 : options.runCommand) !== null && _f !== void 0 ? _f : runUpdateCommand;
|
|
393
|
-
let code;
|
|
394
|
-
try {
|
|
395
|
-
code = yield run(command);
|
|
396
|
-
}
|
|
397
|
-
catch (error) {
|
|
398
|
-
err(`\`${rendered}\` failed: ${describeError(error)}\n`);
|
|
399
|
-
return 1;
|
|
400
|
-
}
|
|
401
|
-
if (code !== 0) {
|
|
402
|
-
err(`\`${rendered}\` exited with code ${code}.\n`);
|
|
403
|
-
return code;
|
|
404
|
-
}
|
|
405
|
-
yield writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options === null || options === void 0 ? void 0 : options.configDir);
|
|
406
|
-
out(`Updated ${CLI_COMMAND_NAME} to ${latestVersion}. New commands run the new version.\n`);
|
|
333
|
+
export async function cmdUpdate(options) {
|
|
334
|
+
const c = stderrPalette();
|
|
335
|
+
const out = options?.out ?? ((text) => void process.stdout.write(text));
|
|
336
|
+
const err = options?.err ?? ((text) => void process.stderr.write(text));
|
|
337
|
+
const compiled = options?.compiled ?? isCompiledDistribution();
|
|
338
|
+
if (!compiled) {
|
|
339
|
+
err(`${CLI_COMMAND_NAME} is running from a source checkout, not an installed package; update it with git instead.\n`);
|
|
340
|
+
return 1;
|
|
341
|
+
}
|
|
342
|
+
const currentVersion = options?.currentVersion ?? packageVersion();
|
|
343
|
+
const latestVersion = await fetchLatestPublishedVersion({
|
|
344
|
+
fetchImpl: options?.fetchImpl,
|
|
345
|
+
timeoutMs: UPDATE_FETCH_TIMEOUT_MS,
|
|
346
|
+
});
|
|
347
|
+
if (latestVersion === undefined) {
|
|
348
|
+
err(`Could not reach the npm registry to look up the latest ${PACKAGE_NAME} version. Check your network and retry.\n`);
|
|
349
|
+
return 1;
|
|
350
|
+
}
|
|
351
|
+
if (compareVersions(currentVersion, latestVersion) >= 0) {
|
|
352
|
+
out(`${CLI_COMMAND_NAME} ${currentVersion} is already the latest version.\n`);
|
|
353
|
+
await writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options?.configDir);
|
|
407
354
|
return 0;
|
|
355
|
+
}
|
|
356
|
+
const command = await detectUpdateCommand({
|
|
357
|
+
packageRoot: options?.packageRoot ?? packageRootDir(),
|
|
408
358
|
});
|
|
359
|
+
if (command === undefined) {
|
|
360
|
+
err(`${CLI_COMMAND_NAME} ${currentVersion} is outdated (latest is ${latestVersion}), but this install's layout was not recognized.\nUpgrade it yourself, e.g. \`npm install -g ${PACKAGE_NAME}@latest\` for a global install, or bump the ${PACKAGE_NAME} dependency in your project.\n`);
|
|
361
|
+
return 1;
|
|
362
|
+
}
|
|
363
|
+
const rendered = [command.cmd, ...command.args].join(" ");
|
|
364
|
+
err(c.dim(`Updating ${CLI_COMMAND_NAME} ${currentVersion} → ${latestVersion} (${command.reason}):\n ${rendered}\n`));
|
|
365
|
+
const run = options?.runCommand ?? runUpdateCommand;
|
|
366
|
+
let code;
|
|
367
|
+
try {
|
|
368
|
+
code = await run(command);
|
|
369
|
+
}
|
|
370
|
+
catch (error) {
|
|
371
|
+
err(`\`${rendered}\` failed: ${describeError(error)}\n`);
|
|
372
|
+
return 1;
|
|
373
|
+
}
|
|
374
|
+
if (code !== 0) {
|
|
375
|
+
err(`\`${rendered}\` exited with code ${code}.\n`);
|
|
376
|
+
return code;
|
|
377
|
+
}
|
|
378
|
+
await writeUpdateCheckCache({ checkedAt: Date.now(), latestVersion }, options?.configDir);
|
|
379
|
+
out(`Updated ${CLI_COMMAND_NAME} to ${latestVersion}. New commands run the new version.\n`);
|
|
380
|
+
return 0;
|
|
409
381
|
}
|
|
410
382
|
function runUpdateCommand(command) {
|
|
411
383
|
return new Promise((resolve, reject) => {
|
|
@@ -421,7 +393,7 @@ function runUpdateCommand(command) {
|
|
|
421
393
|
});
|
|
422
394
|
child.on("error", reject);
|
|
423
395
|
child.on("close", code => {
|
|
424
|
-
resolve(code
|
|
396
|
+
resolve(code ?? 1);
|
|
425
397
|
});
|
|
426
398
|
});
|
|
427
399
|
}
|
|
@@ -12,11 +12,10 @@ export const AGENT_SERVE_PERSISTENT_ENV_VAR = "AGENT_SERVE_PERSISTENT";
|
|
|
12
12
|
* and a successful managed resolver always returns both storage identities.
|
|
13
13
|
*/
|
|
14
14
|
export function resolveAgentV2Hosting(input) {
|
|
15
|
-
var _a;
|
|
16
15
|
if (input.architecture !== "v2") {
|
|
17
16
|
return { kind: "not-v2" };
|
|
18
17
|
}
|
|
19
|
-
const env =
|
|
18
|
+
const env = input.env ?? process.env;
|
|
20
19
|
if (env[AGENT_SERVE_GENERATION_ENV_VAR] === undefined) {
|
|
21
20
|
return { kind: "self-hosted" };
|
|
22
21
|
}
|