@cursor/july 0.1.3 → 0.1.5

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 (141) hide show
  1. package/dist/bin/agent-serve.d.ts +1 -1
  2. package/dist/bin/agent-serve.js +40 -16
  3. package/dist/channels/slack/log.d.ts +1 -1
  4. package/dist/channels/slack/log.d.ts.map +1 -1
  5. package/dist/channels/slack/log.js +4 -5
  6. package/dist/channels/slack/setup.js +1 -1
  7. package/dist/channels/slack/socket-mode.d.ts.map +1 -1
  8. package/dist/channels/slack/socket-mode.js +10 -9
  9. package/dist/docs/404.html +2 -2
  10. package/dist/docs/ab.html +3 -3
  11. package/dist/docs/assets/{app.BR0RbIdx.js → app.DabPG-io.js} +1 -1
  12. package/dist/docs/assets/chunks/@localSearchIndexroot.QwK5BtEH.js +1 -0
  13. package/dist/docs/assets/chunks/{VPLocalSearchBox.qjsVTneI.js → VPLocalSearchBox.jmyr0bU0.js} +1 -1
  14. package/dist/docs/assets/chunks/{theme.2Kg8jIp_.js → theme.DysN9-VN.js} +2 -2
  15. package/dist/docs/assets/{index.md.m81y7TY7.js → index.md.Cylk70gg.js} +1 -1
  16. package/dist/docs/building-with-agents.html +3 -3
  17. package/dist/docs/concepts.html +3 -3
  18. package/dist/docs/deployment.html +3 -3
  19. package/dist/docs/evals.html +3 -3
  20. package/dist/docs/guides/agent-to-agent.html +3 -3
  21. package/dist/docs/guides/cloud-runtime.html +3 -3
  22. package/dist/docs/guides/github.html +3 -3
  23. package/dist/docs/guides/human-in-the-loop.html +3 -3
  24. package/dist/docs/guides/slack.html +3 -3
  25. package/dist/docs/guides/webhooks.html +3 -3
  26. package/dist/docs/hashmap.json +1 -1
  27. package/dist/docs/hillclimbing.html +3 -3
  28. package/dist/docs/index.html +5 -5
  29. package/dist/docs/quickstart.html +3 -3
  30. package/dist/docs/reference/agent-config.html +3 -3
  31. package/dist/docs/reference/channels.html +3 -3
  32. package/dist/docs/reference/cli.html +3 -3
  33. package/dist/docs/reference/connections.html +3 -3
  34. package/dist/docs/reference/hooks.html +3 -3
  35. package/dist/docs/reference/http-api.html +3 -3
  36. package/dist/docs/reference/instructions.html +3 -3
  37. package/dist/docs/reference/playground.html +3 -3
  38. package/dist/docs/reference/project-layout.html +3 -3
  39. package/dist/docs/reference/schedules.html +3 -3
  40. package/dist/docs/reference/sessions.html +3 -3
  41. package/dist/docs/reference/skills.html +3 -3
  42. package/dist/docs/reference/subagents.html +3 -3
  43. package/dist/docs/reference/tools.html +3 -3
  44. package/dist/docs/scaffolding-agents.html +3 -3
  45. package/dist/docs/storage.html +3 -3
  46. package/dist/docs/troubleshooting.html +3 -3
  47. package/dist/internal/ab-collector.js +3 -3
  48. package/dist/internal/ab-fold.js +1 -1
  49. package/dist/internal/cli-ax.d.ts +13 -5
  50. package/dist/internal/cli-ax.d.ts.map +1 -1
  51. package/dist/internal/cli-ax.js +41 -15
  52. package/dist/internal/cli-deploy.d.ts.map +1 -1
  53. package/dist/internal/cli-deploy.js +5 -2
  54. package/dist/internal/cli-github.js +13 -13
  55. package/dist/internal/cursor/account-mcp.js +3 -3
  56. package/dist/internal/cursor/backend-client.js +1 -1
  57. package/dist/internal/cursor/credentials.d.ts +5 -3
  58. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  59. package/dist/internal/cursor/credentials.js +9 -6
  60. package/dist/internal/cursor/github-credentials.js +3 -3
  61. package/dist/internal/cursor-event-relay.d.ts +4 -1
  62. package/dist/internal/cursor-event-relay.d.ts.map +1 -1
  63. package/dist/internal/cursor-event-relay.js +7 -1
  64. package/dist/internal/cursor-relay-core.d.ts +37 -2
  65. package/dist/internal/cursor-relay-core.d.ts.map +1 -1
  66. package/dist/internal/cursor-relay-core.js +91 -9
  67. package/dist/internal/cursor-slack-relay.d.ts +2 -2
  68. package/dist/internal/cursor-slack-relay.d.ts.map +1 -1
  69. package/dist/internal/cursor-slack-relay.js +5 -1
  70. package/dist/internal/distribution.d.ts +7 -0
  71. package/dist/internal/distribution.d.ts.map +1 -1
  72. package/dist/internal/distribution.js +7 -0
  73. package/dist/internal/docs-site.js +3 -3
  74. package/dist/internal/eval-run-store.d.ts.map +1 -1
  75. package/dist/internal/eval-run-store.js +8 -8
  76. package/dist/internal/github-fanout.js +2 -2
  77. package/dist/internal/host-platforms.js +5 -5
  78. package/dist/internal/mcp-endpoint.d.ts.map +1 -1
  79. package/dist/internal/mcp-endpoint.js +1 -1
  80. package/dist/internal/playground/toolchain.js +6 -6
  81. package/dist/internal/reminder-runner.d.ts.map +1 -1
  82. package/dist/internal/reminder-runner.js +11 -11
  83. package/dist/internal/resolve-prod-target.d.ts +2 -0
  84. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  85. package/dist/internal/resolve-prod-target.js +44 -21
  86. package/dist/internal/resolved-connections.js +5 -5
  87. package/dist/internal/schedule-runner.js +1 -1
  88. package/dist/internal/server.js +14 -14
  89. package/dist/internal/session-engine.d.ts.map +1 -1
  90. package/dist/internal/session-engine.js +13 -13
  91. package/dist/internal/sessions-client.d.ts +13 -0
  92. package/dist/internal/sessions-client.d.ts.map +1 -1
  93. package/dist/internal/sessions-client.js +25 -0
  94. package/dist/internal/storage-coordinator.js +6 -6
  95. package/dist/internal/update-check.d.ts +93 -0
  96. package/dist/internal/update-check.d.ts.map +1 -0
  97. package/dist/internal/update-check.js +431 -0
  98. package/dist/playground/assets/{index-D-vo2lV_.css → index-BEauYlII.css} +1 -1
  99. package/dist/playground/assets/index-BtM0wEGg.js +319 -0
  100. package/dist/playground/index.html +2 -2
  101. package/dist/types.d.ts +3 -1
  102. package/dist/types.d.ts.map +1 -1
  103. package/docs/README.md +0 -1
  104. package/package.json +2 -1
  105. package/skills/setup-slack/SKILL.md +1 -1
  106. package/src/bin/agent-serve.ts +42 -16
  107. package/src/channels/slack/log.ts +5 -5
  108. package/src/channels/slack/setup.ts +1 -1
  109. package/src/channels/slack/socket-mode.ts +11 -9
  110. package/src/internal/ab-collector.ts +3 -3
  111. package/src/internal/ab-fold.ts +1 -1
  112. package/src/internal/cli-ax.ts +55 -16
  113. package/src/internal/cli-deploy.ts +5 -2
  114. package/src/internal/cli-github.ts +13 -15
  115. package/src/internal/cursor/account-mcp.ts +3 -3
  116. package/src/internal/cursor/backend-client.ts +1 -1
  117. package/src/internal/cursor/credentials.ts +12 -7
  118. package/src/internal/cursor/github-credentials.ts +3 -3
  119. package/src/internal/cursor-event-relay.ts +11 -2
  120. package/src/internal/cursor-relay-core.ts +119 -11
  121. package/src/internal/cursor-slack-relay.ts +7 -3
  122. package/src/internal/distribution.ts +8 -0
  123. package/src/internal/docs-site.ts +3 -3
  124. package/src/internal/eval-run-store.ts +8 -10
  125. package/src/internal/github-fanout.ts +2 -2
  126. package/src/internal/host-platforms.ts +5 -5
  127. package/src/internal/mcp-endpoint.ts +1 -3
  128. package/src/internal/playground/toolchain.ts +6 -6
  129. package/src/internal/reminder-runner.ts +11 -17
  130. package/src/internal/resolve-prod-target.ts +55 -23
  131. package/src/internal/resolved-connections.ts +5 -5
  132. package/src/internal/schedule-runner.ts +1 -1
  133. package/src/internal/server.ts +14 -14
  134. package/src/internal/session-engine.ts +13 -15
  135. package/src/internal/sessions-client.ts +34 -0
  136. package/src/internal/storage-coordinator.ts +6 -6
  137. package/src/internal/update-check.ts +552 -0
  138. package/src/types.ts +3 -1
  139. package/dist/docs/assets/chunks/@localSearchIndexroot.DtIOQzGj.js +0 -1
  140. package/dist/playground/assets/index-x60b9q2j.js +0 -312
  141. /package/dist/docs/assets/{index.md.m81y7TY7.lean.js → index.md.Cylk70gg.lean.js} +0 -0
@@ -32,7 +32,7 @@ import { openBrowser } from "./open-browser.js";
32
32
  import { startPlaygroundProxy } from "./playground-proxy.js";
33
33
  import { resolveProdSlug, resolveProdTarget } from "./resolve-prod-target.js";
34
34
  import { runSession } from "./run-client.js";
35
- import { fetchSessionEvents, formatSessionsTable, listSessions, } from "./sessions-client.js";
35
+ import { fetchSessionEvents, formatSessionsTable, listSessions, resolvePreviousSessionId, } from "./sessions-client.js";
36
36
  import { createStreamProgress } from "./stream-progress.js";
37
37
  import { buildTrajectory, formatTrajectoryText, loadTrajectoryFromEventsFile, } from "./trajectory.js";
38
38
  function shouldStreamProgress(options) {
@@ -185,21 +185,22 @@ export function cmdInit(options) {
185
185
  * prints a trajectory instead of the interactive UI.
186
186
  */
187
187
  /**
188
- * `resume <sessionId>` — reattach the interactive chat REPL to an existing
189
- * session (looks up the continuation token via `/v1/sessions` when omitted).
190
- * Same flags as `chat` (`--prod`, `--message`, `--json`, ). `--session`
191
- * is accepted as a redundant alias for the positional id.
188
+ * `resume [sessionId]` — reattach the interactive chat REPL to an existing
189
+ * session. When the id is omitted, picks the most recently updated
190
+ * followable session from `/v1/sessions` (same as `chat --resume`).
191
+ * Looks up the continuation token via `/v1/sessions` when
192
+ * `--continuation-token` is omitted. Same flags as `chat` (`--prod`,
193
+ * `--message`, `--json`, …). `--session` is accepted as a redundant
194
+ * alias for the positional id.
192
195
  */
193
196
  export function cmdResume(sessionId, options) {
194
197
  return __awaiter(this, void 0, void 0, function* () {
195
198
  var _a;
196
199
  const resolved = (_a = trimNonEmpty(sessionId)) !== null && _a !== void 0 ? _a : trimNonEmpty(options.sessionId);
197
- if (resolved === undefined) {
198
- process.stderr.write(`Usage: ${CLI_COMMAND_NAME} resume <sessionId> [--url | --prod] [--message <text>] [--json] [--text]\n` +
199
- ` [--continuation-token <t>] [--slug <slug>] [--team <id>]\n`);
200
- return 2;
200
+ if (resolved !== undefined) {
201
+ return cmdChat(Object.assign(Object.assign({}, options), { sessionId: resolved, resume: false }));
201
202
  }
202
- return cmdChat(Object.assign(Object.assign({}, options), { sessionId: resolved }));
203
+ return cmdChat(Object.assign(Object.assign({}, options), { sessionId: undefined, resume: true }));
203
204
  });
204
205
  }
205
206
  function trimNonEmpty(value) {
@@ -218,18 +219,43 @@ export function cmdChat(options) {
218
219
  const target = yield resolveTarget(Object.assign(Object.assign({}, options), { url: options.prod === true
219
220
  ? undefined
220
221
  : ((_b = options.url) !== null && _b !== void 0 ? _b : "http://127.0.0.1:3000") }));
222
+ let sessionId = trimNonEmpty(options.sessionId);
223
+ // `--resume` without an id → most recently updated followable session.
224
+ // An explicit `--session` / positional id always wins.
225
+ if (options.resume === true && sessionId === undefined) {
226
+ try {
227
+ const previous = yield resolvePreviousSessionId({
228
+ baseUrl: target.agentUrl,
229
+ auth: {
230
+ bearerToken: options.bearerToken,
231
+ headers: target.headers,
232
+ },
233
+ fetchImpl: options.fetchImpl,
234
+ });
235
+ if (previous === undefined) {
236
+ process.stderr.write("No previous followable session found. Start one with " +
237
+ `\`${CLI_COMMAND_NAME} chat\` or pass a session id.\n`);
238
+ return 1;
239
+ }
240
+ sessionId = previous;
241
+ }
242
+ catch (error) {
243
+ process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
244
+ return 1;
245
+ }
246
+ }
221
247
  if (options.json) {
222
248
  if (message === undefined) {
223
249
  process.stderr.write("chat --json requires --message\n");
224
250
  return 2;
225
251
  }
226
252
  let continuationToken = options.continuationToken;
227
- if (options.sessionId !== undefined &&
253
+ if (sessionId !== undefined &&
228
254
  (continuationToken === undefined || continuationToken === "")) {
229
255
  try {
230
256
  continuationToken = yield lookupSessionContinuation({
231
257
  baseUrl: target.agentUrl,
232
- sessionId: options.sessionId,
258
+ sessionId,
233
259
  auth: {
234
260
  bearerToken: options.bearerToken,
235
261
  headers: target.headers,
@@ -244,7 +270,7 @@ export function cmdChat(options) {
244
270
  const result = yield runSession({
245
271
  baseUrl: target.agentUrl,
246
272
  messages: [message],
247
- sessionId: options.sessionId,
273
+ sessionId,
248
274
  continuationToken,
249
275
  bearerToken: options.bearerToken,
250
276
  headers: target.headers,
@@ -266,7 +292,7 @@ export function cmdChat(options) {
266
292
  yield runChat({
267
293
  baseUrl: target.agentUrl,
268
294
  message,
269
- sessionId: options.sessionId,
295
+ sessionId,
270
296
  continuationToken: options.continuationToken,
271
297
  bearerToken: options.bearerToken,
272
298
  headers: target.headers,
@@ -697,7 +723,7 @@ export function cmdSessions(options) {
697
723
  /**
698
724
  * `session <id>` — view a full session (trajectory text by default).
699
725
  * `--json` → trajectory JSON; `--events` (`rawEvents`) → raw event list.
700
- * Interactive reattach: `resume <id>` (or `chat --session`).
726
+ * Interactive reattach: `resume [id]` / `chat --resume` (or `chat --session`).
701
727
  */
702
728
  export function cmdSession(sessionId, options) {
703
729
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
@@ -463,7 +463,8 @@ function deployOne(ctx, options, target, extras) {
463
463
  ` generation: ${detail.generation}\n` +
464
464
  ` kind: ${detail.deploymentKind}\n` +
465
465
  ` alias: ${aliasUrl}\n` +
466
- ` playground: ${CLI} playground --prod --slug ${slug} --team ${ctx.teamId}\n`);
466
+ ` playground: ${aliasUrl}/playground (sign in with the alias token)\n` +
467
+ ` or: ${CLI} playground --prod --slug ${slug} --team ${ctx.teamId}\n`);
467
468
  return 0;
468
469
  });
469
470
  }
@@ -563,6 +564,7 @@ export function cmdDeploymentStatus(slug, options) {
563
564
  ` generation: ${detail.generation}`,
564
565
  ` kind: ${detail.deploymentKind}`,
565
566
  ` alias: ${aliasUrl}`,
567
+ ` playground: ${aliasUrl}/playground`,
566
568
  ];
567
569
  if (detail.gitRepoUrl !== null && detail.gitRepoUrl !== undefined) {
568
570
  lines.push(` repo: ${detail.gitRepoUrl} @ ${(_b = detail.gitRef) !== null && _b !== void 0 ? _b : ""}`);
@@ -983,7 +985,8 @@ function pollUntil(ctx, slug, terminal) {
983
985
  function aliasTokenBlock(aliasToken) {
984
986
  return (`\n Alias token (shown ONCE — save it now, it cannot be retrieved again):\n\n` +
985
987
  ` ${aliasToken}\n\n` +
986
- ` Send it as the X-Agent-Alias-Token header on requests to the alias URL.\n` +
988
+ ` Send it as the X-Agent-Alias-Token header on requests to the alias URL,\n` +
989
+ ` or paste it into the hosted playground (<alias>/playground) sign-in gate.\n` +
987
990
  ` Lost tokens: \`${CLI} rotate-token <slug>\` mints a replacement.\n\n`);
988
991
  }
989
992
  function renderApiError(error, err) {
@@ -128,7 +128,7 @@ function cmdGithubForward(options) {
128
128
  process.stderr.write("could not infer the repository — pass --repo owner/repo (or --org <org>)\n");
129
129
  return 1;
130
130
  }
131
- process.stderr.write(`[agent-serve] inferred --repo ${repo}\n`);
131
+ process.stderr.write(`[agentkit] inferred --repo ${repo}\n`);
132
132
  }
133
133
  const secret = (_c = options.secret) !== null && _c !== void 0 ? _c : process.env.GITHUB_WEBHOOK_SECRET;
134
134
  // `gh webhook forward` targets a single URL, and GitHub allows only one
@@ -146,21 +146,21 @@ function cmdGithubForward(options) {
146
146
  org,
147
147
  secret,
148
148
  });
149
- process.stderr.write(`[agent-serve] forwarding ${org !== undefined ? `org ${org}` : `repo ${repo}`} to ${targets.length} channel${targets.length === 1 ? "" : "s"}:\n`);
149
+ process.stderr.write(`[agentkit] forwarding ${org !== undefined ? `org ${org}` : `repo ${repo}`} to ${targets.length} channel${targets.length === 1 ? "" : "s"}:\n`);
150
150
  for (const target of targets) {
151
- process.stderr.write(`[agent-serve] → ${targetLabel(target)} ${target.url} (${target.events.join(", ")})\n`);
151
+ process.stderr.write(`[agentkit] → ${targetLabel(target)} ${target.url} (${target.events.join(", ")})\n`);
152
152
  }
153
153
  if (fanout) {
154
- process.stderr.write(`[agent-serve] fan-out proxy on ${forwardUrl} (union events: ${events.join(", ")})\n`);
154
+ process.stderr.write(`[agentkit] fan-out proxy on ${forwardUrl} (union events: ${events.join(", ")})\n`);
155
155
  }
156
156
  if (secret === undefined || secret === "") {
157
- process.stderr.write("[agent-serve] no signing secret — deliveries are unsigned. A `serve --dev` github channel accepts them; set GITHUB_WEBHOOK_SECRET on both sides to verify signatures (required for a non-dev target).\n");
157
+ process.stderr.write("[agentkit] no signing secret — deliveries are unsigned. A `serve --dev` github channel accepts them; set GITHUB_WEBHOOK_SECRET on both sides to verify signatures (required for a non-dev target).\n");
158
158
  }
159
159
  const envToken = detectGitHubEnvTokenOverride();
160
160
  if (envToken !== undefined) {
161
- process.stderr.write(`[agent-serve] warning: ${githubEnvTokenHint(envToken)}\n`);
161
+ process.stderr.write(`[agentkit] warning: ${githubEnvTokenHint(envToken)}\n`);
162
162
  }
163
- process.stderr.write(`[agent-serve] running: gh ${redact(args)}\n`);
163
+ process.stderr.write(`[agentkit] running: gh ${redact(args)}\n`);
164
164
  try {
165
165
  return yield spawnGh(args);
166
166
  }
@@ -228,7 +228,7 @@ function cmdGithubReplay(options) {
228
228
  const requested = parseEventList(options.events);
229
229
  const { events: eventsToReplay, unsupported } = selectReplayEvents(requested, unionForwardEvents(targets));
230
230
  if (unsupported.length > 0) {
231
- process.stderr.write(`[agent-serve] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
231
+ process.stderr.write(`[agentkit] cannot synthesize (skipped): ${unsupported.join(", ")}\n`);
232
232
  }
233
233
  if (eventsToReplay.length === 0) {
234
234
  process.stderr.write("no synthesizable events selected\n");
@@ -263,7 +263,7 @@ function cmdGithubReplay(options) {
263
263
  check,
264
264
  });
265
265
  if ("error" in result) {
266
- process.stderr.write(`[agent-serve] skipping ${event}: ${result.error}\n`);
266
+ process.stderr.write(`[agentkit] skipping ${event}: ${result.error}\n`);
267
267
  continue;
268
268
  }
269
269
  synthesized.push(result);
@@ -273,7 +273,7 @@ function cmdGithubReplay(options) {
273
273
  return 1;
274
274
  }
275
275
  const secret = (_j = options.secret) !== null && _j !== void 0 ? _j : process.env.GITHUB_WEBHOOK_SECRET;
276
- process.stderr.write(`[agent-serve] replaying ${ref.label} (${synthesized
276
+ process.stderr.write(`[agentkit] replaying ${ref.label} (${synthesized
277
277
  .map((s) => s.eventName)
278
278
  .join(", ")}) → ${targets.length} channel${targets.length === 1 ? "" : "s"}\n`);
279
279
  const report = [];
@@ -291,7 +291,7 @@ function cmdGithubReplay(options) {
291
291
  }
292
292
  if (options.out !== undefined) {
293
293
  const file = yield writeReplayFixture(options.out, event);
294
- process.stderr.write(`[agent-serve] wrote ${file}\n`);
294
+ process.stderr.write(`[agentkit] wrote ${file}\n`);
295
295
  }
296
296
  const label = eventLabel(event);
297
297
  if (options.dryRun === true) {
@@ -311,7 +311,7 @@ function cmdGithubReplay(options) {
311
311
  const summary = deliveries
312
312
  .map((delivery) => `${delivery.label} ${delivery.status || "ERR"}${delivery.ok ? "" : " (rejected)"}`)
313
313
  .join(", ") || "(no matching channel)";
314
- process.stderr.write(`[agent-serve] ${label} → ${summary}\n`);
314
+ process.stderr.write(`[agentkit] ${label} → ${summary}\n`);
315
315
  }
316
316
  }
317
317
  if (options.json === true) {
@@ -552,7 +552,7 @@ function ensureWebhookExtension(install) {
552
552
  : `${GITHUB_WEBHOOK_EXTENSION} is ${(_b = parseGhWebhookExtensionVersion(list)) !== null && _b !== void 0 ? _b : "unknown"} (need ${GITHUB_WEBHOOK_EXTENSION_PIN}) — re-run with --install`,
553
553
  };
554
554
  }
555
- process.stderr.write(`[agent-serve] installing ${GITHUB_WEBHOOK_EXTENSION}@${GITHUB_WEBHOOK_EXTENSION_PIN}…\n`);
555
+ process.stderr.write(`[agentkit] installing ${GITHUB_WEBHOOK_EXTENSION}@${GITHUB_WEBHOOK_EXTENSION_PIN}…\n`);
556
556
  if ((yield tryExec({
557
557
  command: "gh",
558
558
  args: ghWebhookExtensionInstallArgs({ force: installed && !pinOk }),
@@ -141,18 +141,18 @@ export class CursorAccountMcpBridge {
141
141
  ? `${server.tools.length} tools`
142
142
  : server.status})`)
143
143
  .join(", ");
144
- this.logger(`[agent-serve] Cursor account MCP connection "${ref.name}": ${catalog.servers.length === 0
144
+ this.logger(`[agentkit] Cursor account MCP connection "${ref.name}": ${catalog.servers.length === 0
145
145
  ? "no matching connectors on this account — connect servers in Cursor (dashboard → MCP) or fix the `servers` filter"
146
146
  : summary}`);
147
147
  const needsAuth = catalog.servers.filter((server) => server.status === "needsAuth");
148
148
  if (needsAuth.length > 0) {
149
- this.logger(`[agent-serve] Cursor account MCP connection "${ref.name}": ${needsAuth
149
+ this.logger(`[agentkit] Cursor account MCP connection "${ref.name}": ${needsAuth
150
150
  .map((server) => server.serverIdentifier)
151
151
  .join(", ")} need re-authorization in Cursor before their tools appear`);
152
152
  }
153
153
  })
154
154
  .catch((error) => {
155
- this.logger(`[agent-serve] Cursor account MCP connection "${ref.name}" preflight failed: ${describeError(error)}`);
155
+ this.logger(`[agentkit] Cursor account MCP connection "${ref.name}" preflight failed: ${describeError(error)}`);
156
156
  });
157
157
  }
158
158
  }
@@ -332,7 +332,7 @@ export class CursorBackendClient {
332
332
  value: body.data.accessToken,
333
333
  expiresAtMs: jwtExpiryMs(body.data.accessToken),
334
334
  };
335
- this.logger("[agent-serve] cursor account: minted a fresh access token");
335
+ this.logger("[agentkit] cursor account: minted a fresh access token");
336
336
  return body.data.accessToken;
337
337
  });
338
338
  }
@@ -35,10 +35,12 @@ declare const storedCredentialsSchema: z.ZodObject<{
35
35
  }, "strip">;
36
36
  export type StoredCredentials = z.infer<typeof storedCredentialsSchema>;
37
37
  /**
38
- * `~/.config/agent-serve/credentials.json` (0600), honoring
39
- * `XDG_CONFIG_HOME`. `AGENT_SERVE_CONFIG_DIR` pins the directory outright
40
- * (tests, containers).
38
+ * `~/.config/agent-serve/` (honoring `XDG_CONFIG_HOME`), the host-level
39
+ * config directory for credentials and the update-check cache.
40
+ * `AGENT_SERVE_CONFIG_DIR` pins the directory outright (tests, containers).
41
41
  */
42
+ export declare function configDirPath(): string;
43
+ /** `<configDir>/credentials.json` (0600). */
42
44
  export declare function credentialsFilePath(): string;
43
45
  export declare function readStoredCredentials(): Promise<StoredCredentials | undefined>;
44
46
  export declare function writeStoredCredentials(credentials: StoredCredentials): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAGxE,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;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,mBAAmB,IAAI,MAAM,CAQ5C;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,iBAAiB,GAAG,SAAS,CAC9B,CAsBA;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D;AAMD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;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,CActC;AAED,yEAAyE;AACzE,eAAO,MAAM,YAAY,EAAE,MAA8F,CAAC;AAQ1H,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,CAmG3B"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAGxE,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;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,CAQtC;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,iBAAiB,GAAG,SAAS,CAC9B,CAsBA;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D;AAMD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;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,CActC;AAED,yEAAyE;AACzE,eAAO,MAAM,YAAY,EAAE,MAA8F,CAAC;AAQ1H,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,CAmG3B"}
@@ -65,14 +65,17 @@ const storedCredentialsSchema = z.object({
65
65
  apiKey: z.string().min(1),
66
66
  });
67
67
  /**
68
- * `~/.config/agent-serve/credentials.json` (0600), honoring
69
- * `XDG_CONFIG_HOME`. `AGENT_SERVE_CONFIG_DIR` pins the directory outright
70
- * (tests, containers).
68
+ * `~/.config/agent-serve/` (honoring `XDG_CONFIG_HOME`), the host-level
69
+ * config directory for credentials and the update-check cache.
70
+ * `AGENT_SERVE_CONFIG_DIR` pins the directory outright (tests, containers).
71
71
  */
72
- export function credentialsFilePath() {
72
+ export function configDirPath() {
73
73
  var _a, _b;
74
- const configDir = (_a = process.env.AGENT_SERVE_CONFIG_DIR) !== null && _a !== void 0 ? _a : join((_b = process.env.XDG_CONFIG_HOME) !== null && _b !== void 0 ? _b : join(homedir(), ".config"), "agent-serve");
75
- return join(configDir, "credentials.json");
74
+ return ((_a = process.env.AGENT_SERVE_CONFIG_DIR) !== null && _a !== void 0 ? _a : join((_b = process.env.XDG_CONFIG_HOME) !== null && _b !== void 0 ? _b : join(homedir(), ".config"), "agent-serve"));
75
+ }
76
+ /** `<configDir>/credentials.json` (0600). */
77
+ export function credentialsFilePath() {
78
+ return join(configDirPath(), "credentials.json");
76
79
  }
77
80
  export function readStoredCredentials() {
78
81
  return __awaiter(this, void 0, void 0, function* () {
@@ -115,13 +115,13 @@ export class CursorGithubCredentialProvider {
115
115
  this.installGhToken(result.token);
116
116
  this.scheduleRefresh();
117
117
  }
118
- this.logger(`[agent-serve] GitHub auth: refreshed Cursor account credential for ${this.repos.length} repo(s)`);
118
+ this.logger(`[agentkit] GitHub auth: refreshed Cursor account credential for ${this.repos.length} repo(s)`);
119
119
  return result.token;
120
120
  }
121
121
  catch (error) {
122
122
  const message = error instanceof Error ? error.message : String(error);
123
123
  if (this.cached !== undefined && this.now() < this.cached.expiresAtMs) {
124
- this.logger(`[agent-serve] GitHub auth: Cursor account credential refresh failed; using the current lease: ${message}`);
124
+ this.logger(`[agentkit] GitHub auth: Cursor account credential refresh failed; using the current lease: ${message}`);
125
125
  this.cached.refreshAtMs = Math.min(this.cached.expiresAtMs, this.now() + REFRESH_RETRY_MS);
126
126
  if (this.started) {
127
127
  this.scheduleRetry();
@@ -164,7 +164,7 @@ export class CursorGithubCredentialProvider {
164
164
  }
165
165
  this.refreshTimer = setTimeout(() => {
166
166
  void this.getToken().catch((error) => {
167
- this.logger(`[agent-serve] GitHub auth: Cursor account credential refresh failed: ${error instanceof Error ? error.message : String(error)}`);
167
+ this.logger(`[agentkit] GitHub auth: Cursor account credential refresh failed: ${error instanceof Error ? error.message : String(error)}`);
168
168
  this.scheduleRetry();
169
169
  });
170
170
  }, delayMs);
@@ -52,7 +52,10 @@ export interface CursorEventRelayOptions {
52
52
  repos: readonly string[];
53
53
  events: readonly string[];
54
54
  stateDir: string;
55
- /** Called for each matching event; failures are logged, not retried. */
55
+ /**
56
+ * Called for each matching event; failures retry a bounded number of
57
+ * times, then log and skip.
58
+ */
56
59
  dispatch: (event: CursorScmEvent) => Promise<void>;
57
60
  logger: (line: string) => void;
58
61
  /** Test seam. Defaults to global fetch. */
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-event-relay.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-event-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-event-relay.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-event-relay.ts"],"names":[],"mappings":"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"}
@@ -129,6 +129,12 @@ export class CursorEventRelay {
129
129
  events: [...this.options.events],
130
130
  })),
131
131
  }),
132
+ // Empty subscriptions drop this consumer's registration on clean stop
133
+ // instead of leaving it to lapse by TTL.
134
+ buildDeregistrationBody: (consumerId) => ({
135
+ consumerId,
136
+ subscriptions: [],
137
+ }),
132
138
  applyRegistrationResponse: (json) => {
133
139
  var _a, _b;
134
140
  const result = json;
@@ -164,7 +170,7 @@ export class CursorEventRelay {
164
170
  if (!this.subscribedRepos.has(event.repo)) {
165
171
  if (!this.loggedSkippedRepos.has(event.repo)) {
166
172
  this.loggedSkippedRepos.add(event.repo);
167
- this.options.logger(`[agent-serve] cursor-events: skipping events for ${event.repo}: not in this host's subscription (another consumer of this API key likely subscribed it)`);
173
+ this.options.logger(`[agentkit] cursor-events: skipping events for ${event.repo}: not in this host's subscription (another consumer of this API key likely subscribed it)`);
168
174
  }
169
175
  return false;
170
176
  }
@@ -26,7 +26,7 @@ export declare function describeRelayError(error: unknown): string;
26
26
  export interface RelayAdapter<TEvent extends {
27
27
  offset: string;
28
28
  }> {
29
- /** Log fragment, e.g. `cursor-events` → `[agent-serve] cursor-events: …`. */
29
+ /** Log fragment, e.g. `cursor-events` → `[agentkit] cursor-events: …`. */
30
30
  readonly logPrefix: string;
31
31
  /** Subscription registration path, e.g. `/v0/scm-events/subscriptions`. */
32
32
  readonly subscribePath: string;
@@ -34,6 +34,14 @@ export interface RelayAdapter<TEvent extends {
34
34
  readonly pollPath: string;
35
35
  /** The registration request body for this consumer id. */
36
36
  buildRegistrationBody(consumerId: string): unknown;
37
+ /**
38
+ * The empty-scope registration body used to deregister this consumer on a
39
+ * clean stop. When present, `stop()` best-effort PUTs it so the consumer's
40
+ * registration does not linger as a ghost until its server-side TTL (a
41
+ * ghost with this host's agent names makes name routing ambiguous for a
42
+ * redeployed sibling until it expires).
43
+ */
44
+ buildDeregistrationBody?(consumerId: string): unknown;
37
45
  /**
38
46
  * Apply the (ok) registration response: update the accepted-scope filter
39
47
  * and return the human-readable outcome lines to log. The core logs them
@@ -47,7 +55,10 @@ export interface RelayAdapter<TEvent extends {
47
55
  * the offset but are not dispatched.
48
56
  */
49
57
  shouldDispatch(event: TEvent): boolean;
50
- /** Handle one matching event. Failures are logged, not retried. */
58
+ /**
59
+ * Handle one matching event. Failures retry a bounded number of times
60
+ * ({@link DISPATCH_ATTEMPTS}), then log and skip.
61
+ */
51
62
  dispatch(event: TEvent): Promise<void>;
52
63
  }
53
64
  export interface CursorRelayCoreOptions<TEvent extends {
@@ -76,6 +87,14 @@ export declare class CursorRelayCore<TEvent extends {
76
87
  private consumerId;
77
88
  /** undefined until the first registration, so a clean first success logs. */
78
89
  private lastRegistrationLog;
90
+ /** Whether any registration succeeded (gates the stop-time deregister). */
91
+ private registeredOnce;
92
+ /**
93
+ * The in-flight heartbeat re-registration, if any. `stop()` awaits it
94
+ * before deregistering so a just-sent heartbeat cannot land after the
95
+ * deregistration PUT and resurrect the registration for a full TTL.
96
+ */
97
+ private heartbeatPromise;
79
98
  constructor(options: CursorRelayCoreOptions<TEvent>);
80
99
  start(): void;
81
100
  /**
@@ -92,6 +111,14 @@ export declare class CursorRelayCore<TEvent extends {
92
111
  */
93
112
  resolveConsumerId(): Promise<string>;
94
113
  stop(): Promise<void>;
114
+ /**
115
+ * Best-effort empty-scope PUT on clean stop, so this consumer's
116
+ * registration is dropped immediately instead of lingering until its
117
+ * server-side TTL. A ghost registration keeps this host's agent names
118
+ * live and makes name routing ambiguous for a redeployed sibling with a
119
+ * fresh consumer id. Failures only log — the TTL still cleans up.
120
+ */
121
+ private deregister;
95
122
  private log;
96
123
  private request;
97
124
  /** Retry registration with backoff until it succeeds or the relay stops. */
@@ -105,6 +132,14 @@ export declare class CursorRelayCore<TEvent extends {
105
132
  /** Log registration outcome lines only when they change (heartbeat-quiet). */
106
133
  private logRegistrationOutcome;
107
134
  private consumeLoop;
135
+ /**
136
+ * Dispatch one event with a small bounded retry before the offset advances
137
+ * past it. Transient local failures (e.g. a connection reset while POSTing
138
+ * to the channel) used to drop the event outright; a poison event still
139
+ * only costs {@link DISPATCH_ATTEMPTS} tries and is then skipped, keeping
140
+ * at-least-once semantics without a retry loop.
141
+ */
142
+ private dispatchWithRetry;
108
143
  /** Log the failure, sleep, and return the backoff for the NEXT failure. */
109
144
  private backoffAfterHttpFailure;
110
145
  private sleep;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-relay-core.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-relay-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,8DAA8D;AAC9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEjD,OAAO,KAAK,QAAQ,GAEnB;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAcxC;IAEK,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxC;CACF;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE;AASD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IAC7D,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IACnD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,eAAe,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IAWhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,UAAU,CAAM;IACxB,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,YAA6B,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAGnE;IAED,KAAK,IAAI,IAAI,CAKZ;IAED;;;;OAIG;YACW,GAAG;IAWjB;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BzC;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB1B;IAED,OAAO,CAAC,GAAG;YAMG,OAAO;IAiBrB,4EAA4E;YAC9D,oBAAoB;IAYlC;;;;OAIG;YACW,YAAY;IA6B1B,8EAA8E;IAC9E,OAAO,CAAC,sBAAsB;YAShB,WAAW;IA4FzB,2EAA2E;YAC7D,uBAAuB;IAgBrC,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"cursor-relay-core.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-relay-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6BH,8DAA8D;AAC9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,EAAI;IAEjD,OAAO,KAAK,QAAQ,GAEnB;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAcxC;IAEK,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxC;CACF;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE;AASD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IAC7D,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD;;;;;;OAMG;IACH,uBAAuB,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IACnD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,eAAe,CAAC,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;IAmBhD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlBpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,UAAU,CAAM;IACxB,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB,CAAqB;IAChD,2EAA2E;IAC3E,OAAO,CAAC,cAAc,CAAS;IAC/B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,YAA6B,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAGnE;IAED,KAAK,IAAI,IAAI,CAKZ;IAED;;;;OAIG;YACW,GAAG;IAWjB;;;;;OAKG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BzC;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB1B;IAED;;;;;;OAMG;YACW,UAAU;IAuCxB,OAAO,CAAC,GAAG;YAMG,OAAO;IAiBrB,4EAA4E;YAC9D,oBAAoB;IAYlC;;;;OAIG;YACW,YAAY;IA8B1B,8EAA8E;IAC9E,OAAO,CAAC,sBAAsB;YAShB,WAAW;IAsFzB;;;;;;OAMG;YACW,iBAAiB;IA8B/B,2EAA2E;YAC7D,uBAAuB;IAgBrC,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,OAAO;CAKhB"}