@cursor/bdk 0.2.8 → 0.2.9

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.
Files changed (127) hide show
  1. package/dist/bin/agent-serve.d.ts +1 -0
  2. package/dist/bin/agent-serve.d.ts.map +1 -1
  3. package/dist/bin/agent-serve.js +48 -26
  4. package/dist/docs/404.html +2 -2
  5. package/dist/docs/assets/{app.oyjtOr3W.js → app.BNhEdGa8.js} +4 -4
  6. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +1 -0
  7. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.DIdUV1Ph.js} +1 -1
  8. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.lELI4_SR.js} +1 -1
  9. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.iCMdvuoM.js} +1 -1
  10. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.C1-nDJBf.js} +1 -1
  11. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.ClemzBox.js} +1 -1
  12. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.BqTak6cR.js} +1 -1
  13. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +1 -0
  14. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CUS3qs_R.js} +1 -1
  15. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.dz5fdHcl.js} +1 -1
  16. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.D6BEBmve.js} +1 -1
  17. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.B5uK4ID9.js} +1 -1
  18. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.PgOJgNQs.js} +1 -1
  19. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.CvkTrCii.js} +1 -1
  20. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnSfKYsB.js} +1 -1
  21. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.MZH6v5UC.js} +1 -1
  22. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +1 -0
  23. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +1 -0
  24. package/dist/docs/assets/chunks/clone.62tX-O-1.js +1 -0
  25. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.BBbw_YZi.js} +1 -1
  26. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.CNJB2l7E.js} +1 -1
  27. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.BQzlnFfq.js} +1 -1
  28. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.DkgqqZMz.js} +1 -1
  29. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DIT8L7H_.js} +1 -1
  30. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.3xLPZWGJ.js} +1 -1
  31. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.5_IHz8jF.js} +1 -1
  32. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.BGUCXz8A.js} +1 -1
  33. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.DbfFavS1.js} +1 -1
  34. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.D2yKdeNW.js} +1 -1
  35. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.CSCxwHba.js} +1 -1
  36. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.FDeb6xHY.js} +1 -1
  37. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.DbeYs9VL.js} +1 -1
  38. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CWjKINpx.js} +1 -1
  39. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.B4FrAlwz.js} +1 -1
  40. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.DFGxQ9ab.js} +1 -1
  41. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.BmjZ-G59.js} +1 -1
  42. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.DZSxulMW.js} +1 -1
  43. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.CHLi3-aN.js} +1 -1
  44. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.DteG-CkU.js} +1 -1
  45. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.D458ipN3.js} +1 -1
  46. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.DcFgUxst.js} +1 -1
  47. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.BwQAMmSA.js} +1 -1
  48. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.B_Xdsrh9.js} +1 -1
  49. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.CdfDW6-C.js} +1 -1
  50. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +1 -0
  51. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.sfdL3srp.js} +2 -2
  52. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.56-4hXaC.js} +1 -1
  53. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CvZSQBO7.js} +1 -1
  54. package/dist/docs/assets/chunks/wardley-RL74JXVD.C9qc8k39.js +162 -0
  55. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.D9s0nihi.js} +1 -1
  56. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.BVJSpYrC.js} +1 -1
  57. package/dist/docs/building-with-agents.html +35 -35
  58. package/dist/docs/deployment.html +35 -35
  59. package/dist/docs/evals.html +35 -35
  60. package/dist/docs/guides/agent-to-agent.html +35 -35
  61. package/dist/docs/guides/bitbucket.html +35 -35
  62. package/dist/docs/guides/cloud-agents.html +35 -35
  63. package/dist/docs/guides/convert-automation.html +35 -35
  64. package/dist/docs/guides/github.html +35 -35
  65. package/dist/docs/guides/gitlab.html +35 -35
  66. package/dist/docs/guides/grokbot-agents.html +35 -35
  67. package/dist/docs/guides/hooks.html +35 -35
  68. package/dist/docs/guides/improve.html +35 -35
  69. package/dist/docs/guides/jev.html +35 -35
  70. package/dist/docs/guides/mcp-oauth.html +35 -35
  71. package/dist/docs/guides/opentelemetry.html +35 -35
  72. package/dist/docs/guides/slack.html +35 -35
  73. package/dist/docs/guides/webhooks.html +35 -35
  74. package/dist/docs/hillclimbing.html +35 -35
  75. package/dist/docs/index.html +35 -35
  76. package/dist/docs/quickstart.html +35 -35
  77. package/dist/docs/reference/agent-config.html +35 -35
  78. package/dist/docs/reference/artifacts.html +35 -35
  79. package/dist/docs/reference/channels.html +35 -35
  80. package/dist/docs/reference/cli.html +35 -35
  81. package/dist/docs/reference/connections.html +35 -35
  82. package/dist/docs/reference/evals.html +35 -35
  83. package/dist/docs/reference/extensions.html +35 -35
  84. package/dist/docs/reference/hooks.html +35 -35
  85. package/dist/docs/reference/http-api.html +35 -35
  86. package/dist/docs/reference/instructions.html +35 -35
  87. package/dist/docs/reference/playground.html +35 -35
  88. package/dist/docs/reference/project-layout.html +35 -35
  89. package/dist/docs/reference/prompt.html +35 -35
  90. package/dist/docs/reference/schedules.html +35 -35
  91. package/dist/docs/reference/sessions.html +35 -35
  92. package/dist/docs/reference/skills.html +35 -35
  93. package/dist/docs/reference/subagents.html +35 -35
  94. package/dist/docs/reference/tools.html +35 -35
  95. package/dist/docs/templates/agentic-owners.html +35 -35
  96. package/dist/docs/templates/grokbot-agents.html +35 -35
  97. package/dist/docs/templates/security-reviewer.html +35 -35
  98. package/dist/docs/templates/thermo-quality-review.html +35 -35
  99. package/dist/docs/templates/thermo-review.html +35 -35
  100. package/dist/docs/templates/triage.html +35 -35
  101. package/dist/docs/troubleshooting.html +35 -35
  102. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  103. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  104. package/dist/extensions/cursor-cloud-agents/lib/backend.js +3 -6
  105. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  106. package/dist/extensions/cursor-cloud-agents/tools/list.js +2 -2
  107. package/dist/internal/cli-migrate.d.ts +18 -0
  108. package/dist/internal/cli-migrate.d.ts.map +1 -0
  109. package/dist/internal/cli-migrate.js +153 -0
  110. package/dist/internal/cursor/credentials.d.ts +1 -0
  111. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  112. package/dist/internal/cursor/credentials.js +3 -0
  113. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  114. package/dist/internal/install-cursor-skills.js +7 -1
  115. package/dist/playground/assets/index-C1g_PTTZ.css +1 -0
  116. package/dist/playground/assets/{index-MijLHTbB.js → index-Co4CUVTQ.js} +38 -38
  117. package/dist/playground/index.html +2 -2
  118. package/package.json +1 -1
  119. package/skills/migrate-v2/SKILL.md +223 -0
  120. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  121. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  122. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  123. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  124. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  125. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  126. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  127. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
@@ -0,0 +1,153 @@
1
+ /**
2
+ * `bdk migrate` hands an architecture v1 → v2 migration to a Cursor cloud
3
+ * agent. The agent follows the shipped `migrate-v2` skill on the pushed
4
+ * ref and opens a pull request. Nothing is deployed.
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ import { readFile } from "node:fs/promises";
16
+ import { join, resolve } from "node:path";
17
+ import { Agent } from "@cursor/sdk";
18
+ import { cloudAgentUrl, resolveApiKey, SIGN_IN_HINT } from "./cursor/credentials.js";
19
+ import { httpsGitRepoUrlFromRemote, inferDeployGitSource } from "./deploy-source.js";
20
+ import { describeError } from "./describe-error.js";
21
+ import { isAgentProjectDir } from "./discovery/project.js";
22
+ import { CLI_COMMAND_NAME as CLI, packageRootDir } from "./distribution.js";
23
+ import { parseFrontmatter } from "./frontmatter.js";
24
+ export function cmdMigrate(options) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ var _a, _b, _c, _d, _e;
27
+ const out = (_a = options.out) !== null && _a !== void 0 ? _a : ((text) => void process.stdout.write(text));
28
+ const err = (_b = options.err) !== null && _b !== void 0 ? _b : ((text) => void process.stderr.write(text));
29
+ const json = options.json === true;
30
+ const fail = (message) => {
31
+ if (json) {
32
+ out(`${JSON.stringify({ ok: false, error: message }, null, 2)}\n`);
33
+ }
34
+ err(`${message}\n`);
35
+ return 1;
36
+ };
37
+ const dir = resolve(options.dir);
38
+ if (!(yield isAgentProjectDir(dir))) {
39
+ return fail(`${dir} is not a BDK project. Pass --dir <project>.`);
40
+ }
41
+ const inferred = yield inferDeployGitSource(dir);
42
+ const remote = (_c = options.repo) !== null && _c !== void 0 ? _c : inferred.gitRepoUrl;
43
+ if (remote === undefined) {
44
+ return fail("Could not infer the repository from the origin remote. Pass --repo <https-url>.");
45
+ }
46
+ const repo = httpsGitRepoUrlFromRemote(remote);
47
+ if (repo === undefined) {
48
+ return fail(`--repo ${remote} is not a Git repository URL.`);
49
+ }
50
+ const credential = yield resolveApiKey({ apiKey: options.apiKey });
51
+ if (credential === undefined) {
52
+ return fail(`Not signed in to Cursor. ${SIGN_IN_HINT}`);
53
+ }
54
+ const path = (_d = options.path) !== null && _d !== void 0 ? _d : inferred.agentPath;
55
+ const ref = (_e = options.ref) !== null && _e !== void 0 ? _e : inferred.gitRef;
56
+ const prompt = migrationPrompt(path, yield readMigrationSkill());
57
+ let agent;
58
+ let report;
59
+ try {
60
+ agent = yield Agent.create({
61
+ apiKey: credential.apiKey,
62
+ name: "Migrate BDK agent to architecture v2",
63
+ cloud: {
64
+ repos: [{ url: repo, startingRef: ref }],
65
+ autoCreatePR: true,
66
+ },
67
+ });
68
+ const run = yield agent.send(prompt);
69
+ if (options.noWait === true) {
70
+ report = reportFor(agent.agentId);
71
+ }
72
+ else {
73
+ if (!json) {
74
+ err(`Migrating ${path !== null && path !== void 0 ? path : "the repository root"} in ${repo} at ${ref !== null && ref !== void 0 ? ref : "the default branch"}.\n` +
75
+ `Migration agent started: ${cloudAgentUrl(agent.agentId)}\nWaiting for its pull request.\n`);
76
+ }
77
+ report = reportFor(agent.agentId, yield run.wait());
78
+ }
79
+ }
80
+ catch (error) {
81
+ if (agent === undefined) {
82
+ return fail(`Could not start the migration agent: ${describeError(error)}`);
83
+ }
84
+ report = {
85
+ ok: false,
86
+ status: "failed",
87
+ agentId: agent.agentId,
88
+ url: cloudAgentUrl(agent.agentId),
89
+ error: `Lost contact with the migration agent; it may still open a pull request. ${describeError(error)}`,
90
+ };
91
+ }
92
+ finally {
93
+ agent === null || agent === void 0 ? void 0 : agent.close();
94
+ }
95
+ out(json ? `${JSON.stringify(report, null, 2)}\n` : render(report));
96
+ return report.ok ? 0 : 1;
97
+ });
98
+ }
99
+ function migrationPrompt(path, skill) {
100
+ const where = path === undefined ? "the repository root" : `\`${path}\``;
101
+ return [
102
+ `Migrate the BDK project at ${where} from hosted architecture v1 to v2.`,
103
+ "",
104
+ "Follow the skill below from top to bottom, then open one pull request with the migration.",
105
+ "When the skill says to stop or ask, open no pull request and explain what blocks the migration in your final message.",
106
+ `Do not deploy, run \`${CLI} login\`, or change deployment secrets.`,
107
+ "",
108
+ "<skill>",
109
+ skill.trim(),
110
+ "</skill>",
111
+ ].join("\n");
112
+ }
113
+ function readMigrationSkill() {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ const raw = yield readFile(join(packageRootDir(), "skills", "migrate-v2", "SKILL.md"), "utf8");
116
+ return parseFrontmatter(raw).body;
117
+ });
118
+ }
119
+ function reportFor(agentId, result) {
120
+ var _a, _b, _c, _d;
121
+ var _e;
122
+ const url = cloudAgentUrl(agentId);
123
+ if (result === undefined) {
124
+ return { ok: true, status: "running", agentId, url };
125
+ }
126
+ if (result.status !== "finished") {
127
+ return {
128
+ ok: false,
129
+ status: "failed",
130
+ agentId,
131
+ url,
132
+ error: `Migration agent ended ${result.status}: ${(_e = (_a = result.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _e !== void 0 ? _e : "no details"}`,
133
+ };
134
+ }
135
+ const prUrl = (_c = (_b = result.git) === null || _b === void 0 ? void 0 : _b.branches.find(branch => branch.prUrl !== undefined)) === null || _c === void 0 ? void 0 : _c.prUrl;
136
+ if (prUrl === undefined) {
137
+ return { ok: false, status: "blocked", agentId, url, summary: (_d = result.result) === null || _d === void 0 ? void 0 : _d.trim() };
138
+ }
139
+ return { ok: true, status: "pr", agentId, url, prUrl };
140
+ }
141
+ function render(report) {
142
+ var _a;
143
+ switch (report.status) {
144
+ case "running":
145
+ return `Migration agent started: ${report.url}\n`;
146
+ case "pr":
147
+ return `Pull request: ${report.prUrl}\nReview it, merge, then deploy with \`${CLI} deploy\`.\n`;
148
+ case "blocked":
149
+ return `No pull request opened.\n\n${(_a = report.summary) !== null && _a !== void 0 ? _a : "The agent gave no reason."}\n\nDetails: ${report.url}\n`;
150
+ case "failed":
151
+ return `${report.error}\nDetails: ${report.url}\n`;
152
+ }
153
+ }
@@ -44,6 +44,7 @@ export declare function cursorBackendUrl(): string;
44
44
  export declare function cursorExternalApiUrl(): string;
45
45
  /** Website base URL for the login deep link (`CURSOR_WEBSITE_URL` override). */
46
46
  export declare function cursorWebsiteUrl(): string;
47
+ export declare function cloudAgentUrl(agentId: string): string;
47
48
  declare const storedCredentialsSchema: z.ZodObject<{
48
49
  backendUrl: z.ZodString;
49
50
  apiKey: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,uBAAuB,EAA0B,MAAM,wBAAwB,CAAC;AAE9F,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAGxE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAUD,QAAA,MAAM,uBAAuB,EAAE,CAAC,CAAC,SAAS,CACxC;IAAE,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAA;CAAE,EAChD,OAAO,CAKP,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAmBD,wBAAgB,yBAAyB,IAAI,iBAAiB,GAAG,SAAS,CAQzE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAQpF;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1F;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D;AAMD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAA6C,CAAC;AAExF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAKR;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQxE;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,8BAA8B,CAoBjC;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,cAAc,GAAG,SAAS,CA0B7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAEtC;AAED,yEAAyE;AACzE,eAAO,MAAM,YAAY,EAAE,MAAiJ,CAAC;AAQ7K,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAU9C;AAKD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkG3B"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,9 @@ export function cursorWebsiteUrl() {
69
69
  var _a;
70
70
  return trimTrailingSlash((_a = process.env.CURSOR_WEBSITE_URL) !== null && _a !== void 0 ? _a : DEFAULT_CURSOR_WEBSITE_URL);
71
71
  }
72
+ export function cloudAgentUrl(agentId) {
73
+ return `${cursorWebsiteUrl()}/agents/${agentId}`;
74
+ }
72
75
  function trimTrailingSlash(url) {
73
76
  return url.endsWith("/") ? url.slice(0, -1) : url;
74
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install-cursor-skills.d.ts","sourceRoot":"","sources":["../../src/internal/install-cursor-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAQ7C,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE,qDAAqD;AACrD,eAAO,MAAM,kCAAkC,mCAAmC,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAIrE;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,UAAU,GAAE,MAA2B,GAAG,MAAM,CAElF;AAMD,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EACpC,UAAU,GAAE,MAA2B,GACtC,MAAM,CAER;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,GAAE,MAAyB,GACrC,OAAO,CAAC,YAAY,EAAE,CAAC,CA4BzB;AAaD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAY1B;AAED,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,UAAU,GAAE,MAA2B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AA8DD;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAsBR;AAiCD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wEAAwE;AACxE,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuB5B;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAY7F;AAED,MAAM,MAAM,6BAA6B,GACrC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/D;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,OAAO,CAAC;CAC5D,CAAC;AAEN,MAAM,WAAW,uCAAuC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,GAAE,uCAA4C,GACpD,OAAO,CAAC,6BAA6B,CAAC,CAgCxC;AAED,MAAM,WAAW,+BAA+B;IAC9C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqDpD;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAsB9B"}
1
+ {"version":3,"file":"install-cursor-skills.d.ts","sourceRoot":"","sources":["../../src/internal/install-cursor-skills.ts"],"names":[],"mappings":"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"}
@@ -286,8 +286,14 @@ function stripPathsFromFrontmatter(frontmatter) {
286
286
  }
287
287
  return out.join("\n");
288
288
  }
289
- /** Cursor loads `alwaysApply: true` skills as global rules, not catalog rows. */
289
+ /**
290
+ * Cursor loads `alwaysApply: true` skills as global rules, not catalog rows.
291
+ * A situational skill opts out with an explicit `alwaysApply: false`.
292
+ */
290
293
  function withAlwaysApply(frontmatter) {
294
+ if (/^\s*alwaysApply\s*:\s*false\s*$/m.test(frontmatter)) {
295
+ return frontmatter;
296
+ }
291
297
  const without = frontmatter
292
298
  .split(/\r?\n/)
293
299
  .filter(line => !/^\s*alwaysApply\s*:/.test(line))