@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
@@ -35,7 +35,7 @@ export const PROD_ENGINE_WAKE_HEADERS = {
35
35
  */
36
36
  export function resolveProdTarget(options) {
37
37
  return __awaiter(this, void 0, void 0, function* () {
38
- var _a;
38
+ var _a, _b;
39
39
  const err = (_a = options.err) !== null && _a !== void 0 ? _a : ((text) => void process.stderr.write(text));
40
40
  const slug = resolveProdSlug(options);
41
41
  const auth = yield resolveDeployAuth({
@@ -47,30 +47,48 @@ export function resolveProdTarget(options) {
47
47
  if (typeof auth === "number") {
48
48
  throw new Error(`Could not resolve Cursor credentials/team for --prod (see above).`);
49
49
  }
50
+ // A hibernated engine can briefly omit engineAccess while getPod fails
51
+ // during wake. Retry a few times before surfacing "not reachable yet".
52
+ const maxReachabilityAttempts = 5;
53
+ const sleep = (_b = options.sleep) !== null && _b !== void 0 ? _b : sleepMs;
50
54
  let detail;
51
- try {
52
- detail = yield auth.client.getDeployment({
53
- teamId: auth.teamId,
54
- slug,
55
- });
56
- }
57
- catch (error) {
58
- if (error instanceof DeployApiError) {
59
- throw new Error(`Deployment "${slug}" (team ${auth.teamId}): ${error.message}`);
55
+ for (let attempt = 0; attempt < maxReachabilityAttempts; attempt++) {
56
+ try {
57
+ detail = yield auth.client.getDeployment({
58
+ teamId: auth.teamId,
59
+ slug,
60
+ });
61
+ }
62
+ catch (error) {
63
+ if (error instanceof DeployApiError) {
64
+ throw new Error(`Deployment "${slug}" (team ${auth.teamId}): ${error.message}`);
65
+ }
66
+ throw error;
67
+ }
68
+ // `degraded` still serves the previous ACTIVE engine; allow runtime access
69
+ // when the control plane minted engineAccess for it.
70
+ const statusOk = detail.status === "running" || detail.status === "degraded";
71
+ if (!statusOk) {
72
+ const lastError = detail.lastError === null || detail.lastError === undefined
73
+ ? ""
74
+ : ` ${sanitizeCustomerFacingDetail(detail.lastError)}`;
75
+ throw new Error(`Deployment "${slug}" is ${detail.status}, not running.${lastError}\n` +
76
+ `Deploy or wait: \`${CLI} deploy --slug ${slug}\` / \`${CLI} deployment ${slug}\``);
77
+ }
78
+ if (detail.engineAccess !== null && detail.engineAccess !== undefined) {
79
+ break;
80
+ }
81
+ if (attempt + 1 < maxReachabilityAttempts) {
82
+ if (attempt === 0) {
83
+ err(`${stderrPalette().dim(`Deployment "${slug}" is waking; waiting for engine access…`)}\n`);
84
+ }
85
+ yield sleep(1000 * (attempt + 1));
60
86
  }
61
- throw error;
62
87
  }
63
- // `degraded` still serves the previous ACTIVE engine; allow runtime access
64
- // when the control plane minted engineAccess for it.
65
- const access = detail.engineAccess;
66
- const statusOk = detail.status === "running" || detail.status === "degraded";
67
- if (!statusOk) {
68
- const lastError = detail.lastError === null || detail.lastError === undefined
69
- ? ""
70
- : ` ${sanitizeCustomerFacingDetail(detail.lastError)}`;
71
- throw new Error(`Deployment "${slug}" is ${detail.status}, not running.${lastError}\n` +
72
- `Deploy or wait: \`${CLI} deploy --slug ${slug}\` / \`${CLI} deployment ${slug}\``);
88
+ if (detail === undefined) {
89
+ throw new Error(`Deployment "${slug}" lookup failed.`);
73
90
  }
91
+ const access = detail.engineAccess;
74
92
  if (access === null || access === undefined) {
75
93
  throw new Error(`Deployment "${slug}" is ${detail.status} but is not reachable yet. ` +
76
94
  `Try \`${CLI} deployment ${slug}\` or redeploy.`);
@@ -92,6 +110,11 @@ function sanitizeCustomerFacingDetail(message) {
92
110
  .replace(/\banyrun\b/gi, "runtime")
93
111
  .replace(/\bcursorvm\.com\b/gi, "host");
94
112
  }
113
+ function sleepMs(ms) {
114
+ return new Promise((resolve) => {
115
+ setTimeout(resolve, ms);
116
+ });
117
+ }
95
118
  /** Resolve the deployment slug the same way `deploy` does for a single dir. */
96
119
  export function resolveProdSlug(options) {
97
120
  var _a;
@@ -23,7 +23,7 @@ export function validateMountConnectionsConfig(args) {
23
23
  if (filteredRefs.length === 0) {
24
24
  return;
25
25
  }
26
- throw new Error(`[agent-serve] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
26
+ throw new Error(`[agentkit] agent "${label}" has Cursor account MCP connections with \`servers\` filters (${filteredRefs
27
27
  .map((ref) => ref.name)
28
28
  .join(", ")}) but no --public-url; cloud-runtime turns cannot honor those filters without a public bridge URL. Set --public-url or remove the \`servers\` filter.`);
29
29
  }
@@ -37,14 +37,14 @@ export function assertCloudCanHonorAccountServersFilters(args) {
37
37
  if (blocked.length === 0) {
38
38
  return;
39
39
  }
40
- throw new Error(`[agent-serve] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
40
+ throw new Error(`[agentkit] cloud turn cannot honor Cursor account \`servers\` filters (${blocked
41
41
  .map((connection) => connection.name)
42
42
  .join(", ")}) without --public-url; set --public-url so cloud turns reach the filtered account bridge instead of falling back to native connectors.`);
43
43
  }
44
44
  /** Fail closed when anonymous HTTP admission would expose account connectors. */
45
45
  export function assertAccountConnectionsNotAnonymous(args) {
46
46
  if (args.allowAnonymous === true && args.hasAccountConnections) {
47
- throw new Error("[agent-serve] --allow-anonymous cannot be used with Cursor account MCP connections (defineConnection({ cursorAccount: true })); use --bearer-token or remove the account MCP connections.");
47
+ throw new Error("[agentkit] --allow-anonymous cannot be used with Cursor account MCP connections (defineConnection({ cursorAccount: true })); use --bearer-token or remove the account MCP connections.");
48
48
  }
49
49
  }
50
50
  export function resolveMountConnections(args) {
@@ -56,7 +56,7 @@ export function resolveMountConnections(args) {
56
56
  const peers = resolvePeerConnections(Object.assign(Object.assign({ refs: args.peerRefs, serverUrl: args.serverUrl }, (args.publicUrl === undefined ? {} : { publicUrl: args.publicUrl })), (args.authToken === undefined ? {} : { authToken: args.authToken })));
57
57
  resolved.push(...peers);
58
58
  if (cloudCapable && args.publicUrl === undefined) {
59
- args.logger(`[agent-serve] warning: agent "${label}" has peer MCP connections (${peers
59
+ args.logger(`[agentkit] warning: agent "${label}" has peer MCP connections (${peers
60
60
  .map((peer) => peer.name)
61
61
  .join(", ")}) but no --public-url; cloud-runtime turns cannot reach this host's loopback address, so peers are omitted from cloud turns.`);
62
62
  }
@@ -66,7 +66,7 @@ export function resolveMountConnections(args) {
66
66
  // Non-blocking startup DX: connector statuses land in the serve log.
67
67
  args.accountBridge.logPreflight(args.accountRefs);
68
68
  if (cloudCapable && args.publicUrl === undefined) {
69
- args.logger(`[agent-serve] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`);
69
+ args.logger(`[agentkit] agent "${label}": cloud-runtime turns omit the account bridge without --public-url (cloud agents fall back to the account's native connectors).`);
70
70
  }
71
71
  }
72
72
  return resolved;
@@ -68,7 +68,7 @@ export class ScheduleRunner {
68
68
  for (const schedule of this.schedules) {
69
69
  if (schedule.cron.matches(now)) {
70
70
  void this.dispatch(schedule.name).catch((error) => {
71
- this.logger(`[agent-serve] schedule "${schedule.name}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
71
+ this.logger(`[agentkit] schedule "${schedule.name}" dispatch failed: ${error instanceof Error ? error.message : String(error)}`);
72
72
  });
73
73
  }
74
74
  }
@@ -123,10 +123,10 @@ export function startServer(mounts_1) {
123
123
  if (options.allowAnonymousCursorGithub !== true) {
124
124
  throw new Error("githubChannel({ cursorAccount: true }) cannot be served with --allow-anonymous because admitted callers could use the signed-in account's GitHub access. If every admitted caller is trusted (e.g. behind an SSO proxy), opt in with --allow-anonymous-cursor-github.");
125
125
  }
126
- logger("[agent-serve] warning: --allow-anonymous-cursor-github — every admitted HTTP caller can drive sessions holding the signed-in account's repo-scoped GitHub credential; serve this only behind a trusted boundary (e.g. an SSO proxy)");
126
+ logger("[agentkit] warning: --allow-anonymous-cursor-github — every admitted HTTP caller can drive sessions holding the signed-in account's repo-scoped GitHub credential; serve this only behind a trusted boundary (e.g. an SSO proxy)");
127
127
  }
128
128
  if (cursorGithubConfig.scope.permissions === "contents-write") {
129
- logger('[agent-serve] warning: Cursor GitHub credentials include contents:write — the host holds a push-capable token shared with model-driven tools and untrusted webhook content; prefer permissions: "pr-write" unless this agent must push code');
129
+ logger('[agentkit] warning: Cursor GitHub credentials include contents:write — the host holds a push-capable token shared with model-driven tools and untrusted webhook content; prefer permissions: "pr-write" unless this agent must push code');
130
130
  }
131
131
  const provider = new CursorGithubCredentialProvider({
132
132
  client: new CursorBackendClient({
@@ -161,7 +161,7 @@ export function startServer(mounts_1) {
161
161
  yield ensureDocsSiteBundle(logger);
162
162
  }
163
163
  if (options.allowAnonymous === true) {
164
- logger("[agent-serve] warning: --allow-anonymous admits every HTTP caller as the same principal; use only on a trusted network (e.g. Tailscale) and prefer --bearer-token for shared hosts");
164
+ logger("[agentkit] warning: --allow-anonymous admits every HTTP caller as the same principal; use only on a trusted network (e.g. Tailscale) and prefer --bearer-token for shared hosts");
165
165
  }
166
166
  const runner = (_l = options.runner) !== null && _l !== void 0 ? _l : new CursorSdkRunner(accountKey === undefined ? {} : { apiKey: accountKey.apiKey });
167
167
  const router = new Router();
@@ -279,7 +279,7 @@ export function startServer(mounts_1) {
279
279
  yield definition.onStart(startArgs);
280
280
  }
281
281
  catch (error) {
282
- logger(`[agent-serve] channel "${channel.id}" onStart failed: ${error instanceof Error
282
+ logger(`[agentkit] channel "${channel.id}" onStart failed: ${error instanceof Error
283
283
  ? ((_o = error.stack) !== null && _o !== void 0 ? _o : error.message)
284
284
  : String(error)}`);
285
285
  }
@@ -567,7 +567,7 @@ export function startServer(mounts_1) {
567
567
  yield stop();
568
568
  }
569
569
  catch (error) {
570
- logger(`[agent-serve] channel onStop failed: ${error instanceof Error
570
+ logger(`[agentkit] channel onStop failed: ${error instanceof Error
571
571
  ? ((_a = error.stack) !== null && _a !== void 0 ? _a : error.message)
572
572
  : String(error)}`);
573
573
  }
@@ -1043,7 +1043,7 @@ function requireCursorEventsAuth(config, accountKey) {
1043
1043
  var _a, _b, _c;
1044
1044
  const apiKey = ((_b = (_a = config.apiKey) !== null && _a !== void 0 ? _a : accountKey === null || accountKey === void 0 ? void 0 : accountKey.apiKey) !== null && _b !== void 0 ? _b : "").trim();
1045
1045
  if (apiKey === "") {
1046
- throw new Error(`[agent-serve] --cursor-events (serve({ cursorEvents })) requires a signed-in Cursor account: the SCM event stream is read as the host's user. ${SIGN_IN_HINT}`);
1046
+ throw new Error(`[agentkit] --cursor-events (serve({ cursorEvents })) requires a signed-in Cursor account: the SCM event stream is read as the host's user. ${SIGN_IN_HINT}`);
1047
1047
  }
1048
1048
  return {
1049
1049
  apiKey,
@@ -1067,13 +1067,13 @@ function startCursorEventRelay(input) {
1067
1067
  }
1068
1068
  const repos = [...new Set(config.repos.map((repo) => repo.trim()))].filter((repo) => repo.length > 0);
1069
1069
  if (repos.length === 0) {
1070
- logger("[agent-serve] cursor-events: no repos configured (pass --repo owner/name); relay disabled");
1070
+ logger("[agentkit] cursor-events: no repos configured (pass --repo owner/name); relay disabled");
1071
1071
  return undefined;
1072
1072
  }
1073
1073
  const githubTargets = findGitHubChannelTargets(mounts);
1074
1074
  const events = [...new Set(githubTargets.flatMap((target) => target.events))];
1075
1075
  if (events.length === 0) {
1076
- logger("[agent-serve] cursor-events: no mounted agent declares a github channel; relay disabled");
1076
+ logger("[agentkit] cursor-events: no mounted agent declares a github channel; relay disabled");
1077
1077
  return undefined;
1078
1078
  }
1079
1079
  const baseStateRoot = stateRoot !== null && stateRoot !== void 0 ? stateRoot : join((_b = (_a = mounts[0]) === null || _a === void 0 ? void 0 : _a.project.rootDir) !== null && _b !== void 0 ? _b : process.cwd(), ".agent-serve");
@@ -1110,11 +1110,11 @@ function startCursorEventRelay(input) {
1110
1110
  const outcomes = result.targets
1111
1111
  .map((target) => `${target.slug || "default"}:${target.status}`)
1112
1112
  .join(", ");
1113
- logger(`[agent-serve] cursor-events: dispatched ${formatCursorScmEventLog(event)}${outcomes === "" ? "" : ` → ${outcomes}`}`);
1113
+ logger(`[agentkit] cursor-events: dispatched ${formatCursorScmEventLog(event)}${outcomes === "" ? "" : ` → ${outcomes}`}`);
1114
1114
  }),
1115
1115
  });
1116
1116
  relay.start();
1117
- logger(`[agent-serve] cursor-events: relaying ${events.length} event kind(s) for ${repos.join(", ")} from ${auth.baseUrl}`);
1117
+ logger(`[agentkit] cursor-events: relaying ${events.length} event kind(s) for ${repos.join(", ")} from ${auth.baseUrl}`);
1118
1118
  return relay;
1119
1119
  }
1120
1120
  function collectCursorGithubTargets(mounts) {
@@ -1244,7 +1244,7 @@ function startCursorSlackRelay(input) {
1244
1244
  runtime: target.runtime,
1245
1245
  channelId: target.channelId,
1246
1246
  });
1247
- logger(`[agent-serve] cursor-slack: dispatching ${formatCursorSlackEventLog(envelope)} → ${target.runtime.slug || "default"}`);
1247
+ logger(`[agentkit] cursor-slack: dispatching ${formatCursorSlackEventLog(envelope)} → ${target.runtime.slug || "default"}`);
1248
1248
  yield dispatchCursorSlackEnvelope({
1249
1249
  runtime: target.accountRuntime,
1250
1250
  envelope,
@@ -1266,7 +1266,7 @@ function startCursorSlackRelay(input) {
1266
1266
  }));
1267
1267
  }
1268
1268
  relay.start();
1269
- logger(`[agent-serve] cursor-slack: relaying Slack for ${targets
1269
+ logger(`[agentkit] cursor-slack: relaying Slack for ${targets
1270
1270
  .map((target) => `${target.agentName} (${target.runtime.slug || "default"})`)
1271
1271
  .join(", ")} from ${baseUrl} — mention "@Cursor <agent name> …" in the linked workspace`);
1272
1272
  return relay;
@@ -1331,7 +1331,7 @@ function handleRequest(router, req, res, logger) {
1331
1331
  response = errorResponse(403, "forbidden", error.message);
1332
1332
  }
1333
1333
  else {
1334
- logger(`[agent-serve] request failed: ${error instanceof Error
1334
+ logger(`[agentkit] request failed: ${error instanceof Error
1335
1335
  ? ((_c = error.stack) !== null && _c !== void 0 ? _c : error.message)
1336
1336
  : String(error)}`);
1337
1337
  response = errorResponse(500, "internal_error", "Internal server error.");
@@ -1341,7 +1341,7 @@ function handleRequest(router, req, res, logger) {
1341
1341
  yield writeFetchResponse(response, res, method);
1342
1342
  }
1343
1343
  catch (error) {
1344
- logger(`[agent-serve] response write failed: ${error instanceof Error ? error.message : String(error)}`);
1344
+ logger(`[agentkit] response write failed: ${error instanceof Error ? error.message : String(error)}`);
1345
1345
  res.destroy();
1346
1346
  }
1347
1347
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EAInB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAG1B,KAAK,eAAe,EACpB,KAAK,YAAY,EAIjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAe9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQ9D,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,SAAS,EAAE,MAAM,EAK5B;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,SAAS,EAAE,MAAM,EAK5B;CACF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAS,EAAE,MAAM,EAG5B;CACF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAGvC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE;IAFvC,YACE,QAAQ,EAAE,MAAM,EACP,kBAAkB,EAAE,MAAM,EAAE,EAItC;CACF;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,QAAQ,EAAE,MAAM,EAK3B;CACF;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAGrD;CACF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,SAAS,EAAE,MAAM,EAG5B;CACF;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAG5C;CACF;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAK5C;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACjD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IACJ,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAA8C;IAExE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IACjE,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,WAAW,CAA2B;IAC9C,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,YAAY,OAAO,EAAE,oBAAoB,EA+CxC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAapE;IAED,+DAA+D;IAC/D,IAAI,IAAI,IAAI,WAAW,CAOtB;IAED,oEAAoE;IACpE,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI,CAEhD;IAMD;;;;OAIG;IACG,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA0EzB;IAED;;;;;;OAMG;YACW,SAAS;IAyCvB;;;OAGG;YACW,SAAS;IAmBvB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBvB,oDAAoD;IAC9C,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhC;IAED,qEAAqE;IAC/D,OAAO,CACX,OAAO,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,MAAM,EAC3D,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC,CAwBzB;IAED,+DAA+D;IACzD,OAAO,CAAC,IAAI,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAO7D;IAMD;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;YAYH,SAAS;IAyDvB;;;;OAIG;YACW,mBAAmB;IAQjC;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnD;IAED;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CASxC;IAED;;;;OAIG;IACH,OAAO,CAAC,WAAW;YAOL,WAAW;IA4IzB,OAAO,CAAC,gBAAgB;IA4FxB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,gBAAgB;IAuGxB;;;;OAIG;YACW,eAAe;YA8Df,qBAAqB;IAenC,uEAAuE;IACjE,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAUxE;IAED;;;;;;;OAOG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,eAAe,CAAC,CAqB1B;YAEa,qBAAqB;IAgBnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC,CA0I1B;YAMa,WAAW;IAUzB,OAAO,CAAC,aAAa;YAqBP,aAAa;IA4E3B,OAAO,CAAC,uBAAuB;IAazB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAY/D;IAED;;;;;;;OAOG;IACG,YAAY,CAChB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC,CA6B3B;IAED;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACjC,OAAO,CAAC,UAAU,CAAC,CA0DrB;IAEK,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,UAAU,SAAI,GACb,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGrC;IAED;;;;OAIG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzE;IAED,kEAAkE;IAC5D,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAG3E;IAEK,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO,CAAC,IAAI,CAAC,CAKf;IAED,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAIxC;IAED,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAc9C;IAED,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,mBAAmB;IAc3B,sEAAsE;IACtE,OAAO,CAAC,YAAY;IA6BpB;;;;;;;;;;;OAWG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB3C;YAEa,cAAc;IA4F5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;YAqBtB,gCAAgC;IAyB9C;;;;;OAKG;YACW,kBAAkB;IAYhC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAO/C;IAED,yEAAyE;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAU3B;CACF"}
1
+ {"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"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"}
@@ -133,7 +133,7 @@ export class SessionEngine {
133
133
  this.runner = options.runner;
134
134
  this.logger = (_c = options.logger) !== null && _c !== void 0 ? _c : (() => { });
135
135
  this.sessions = new SessionStore(join(options.stateRoot, "sessions"));
136
- this.logs = new EventLogStore((sessionId) => this.sessions.eventFilePath(sessionId), (sessionId, error) => this.logger(`[agent-serve] failed to persist events for ${sessionId}: ${describeError(error)}`));
136
+ this.logs = new EventLogStore((sessionId) => this.sessions.eventFilePath(sessionId), (sessionId, error) => this.logger(`[agentkit] failed to persist events for ${sessionId}: ${describeError(error)}`));
137
137
  this.storage =
138
138
  options.project.storage === undefined
139
139
  ? undefined
@@ -288,7 +288,7 @@ export class SessionEngine {
288
288
  }
289
289
  }
290
290
  catch (error) {
291
- this.logger(`[agent-serve] ab "${experiment.name}" enrollment failed (sticky skip): ${describeError(error)}`);
291
+ this.logger(`[agentkit] ab "${experiment.name}" enrollment failed (sticky skip): ${describeError(error)}`);
292
292
  variant = null;
293
293
  }
294
294
  abs[experiment.name] = variant;
@@ -511,7 +511,7 @@ export class SessionEngine {
511
511
  this.queueDispatch(sessionId, event);
512
512
  }
513
513
  catch (error) {
514
- this.logger(`[agent-serve] failed to record event for ${sessionId}: ${describeError(error)}`);
514
+ this.logger(`[agentkit] failed to record event for ${sessionId}: ${describeError(error)}`);
515
515
  }
516
516
  };
517
517
  const mapper = new TurnEventMapper(emit);
@@ -1041,7 +1041,7 @@ export class SessionEngine {
1041
1041
  const next = chain
1042
1042
  .then(() => this.dispatchEvent(sessionId, event))
1043
1043
  .catch((error) => {
1044
- this.logger(`[agent-serve] event dispatch failed for ${sessionId}: ${describeError(error)}`);
1044
+ this.logger(`[agentkit] event dispatch failed for ${sessionId}: ${describeError(error)}`);
1045
1045
  })
1046
1046
  .then(() => {
1047
1047
  var _a;
@@ -1082,7 +1082,7 @@ export class SessionEngine {
1082
1082
  yield handler(event, channelCtx, sessionCtx);
1083
1083
  }
1084
1084
  catch (error) {
1085
- this.logger(`[agent-serve] channel "${record.channelId}" handler for ${event.type} threw: ${describeError(error)}`);
1085
+ this.logger(`[agentkit] channel "${record.channelId}" handler for ${event.type} threw: ${describeError(error)}`);
1086
1086
  }
1087
1087
  }
1088
1088
  // Handlers mutate channel state in place; persist after each batch.
@@ -1108,7 +1108,7 @@ export class SessionEngine {
1108
1108
  });
1109
1109
  }
1110
1110
  catch (error) {
1111
- this.logger(`[agent-serve] hook "${hook.name}" handler for ${event.type} threw: ${describeError(error)}`);
1111
+ this.logger(`[agentkit] hook "${hook.name}" handler for ${event.type} threw: ${describeError(error)}`);
1112
1112
  }
1113
1113
  }
1114
1114
  }
@@ -1222,7 +1222,7 @@ export class SessionEngine {
1222
1222
  });
1223
1223
  }
1224
1224
  catch (error) {
1225
- this.logger(`[agent-serve] ab persistSnapshots.save threw: ${describeError(error)}`);
1225
+ this.logger(`[agentkit] ab persistSnapshots.save threw: ${describeError(error)}`);
1226
1226
  }
1227
1227
  }
1228
1228
  else {
@@ -1388,7 +1388,7 @@ export class SessionEngine {
1388
1388
  yield this.runBulkRestore(storage, policy);
1389
1389
  }
1390
1390
  catch (error) {
1391
- this.logger(`[agent-serve] session restore failed: ${describeError(error)}`);
1391
+ this.logger(`[agentkit] session restore failed: ${describeError(error)}`);
1392
1392
  }
1393
1393
  });
1394
1394
  }
@@ -1433,7 +1433,7 @@ export class SessionEngine {
1433
1433
  return { record, events };
1434
1434
  }
1435
1435
  catch (error) {
1436
- this.logger(`[agent-serve] failed to restore session ${record.sessionId}: ${describeError(error)}`);
1436
+ this.logger(`[agentkit] failed to restore session ${record.sessionId}: ${describeError(error)}`);
1437
1437
  return undefined;
1438
1438
  }
1439
1439
  })));
@@ -1448,7 +1448,7 @@ export class SessionEngine {
1448
1448
  const bytes = Buffer.byteLength(JSON.stringify(item.record), "utf8") +
1449
1449
  (ndjson === undefined ? 0 : Buffer.byteLength(ndjson, "utf8"));
1450
1450
  if (bytes > budget) {
1451
- this.logger(`[agent-serve] session restore stopped at the ${policy.maxTotalBytes}-byte budget after ${restored} session(s); remaining sessions restore lazily on resume`);
1451
+ this.logger(`[agentkit] session restore stopped at the ${policy.maxTotalBytes}-byte budget after ${restored} session(s); remaining sessions restore lazily on resume`);
1452
1452
  break outer;
1453
1453
  }
1454
1454
  try {
@@ -1457,12 +1457,12 @@ export class SessionEngine {
1457
1457
  restored += 1;
1458
1458
  }
1459
1459
  catch (error) {
1460
- this.logger(`[agent-serve] failed to restore session ${item.record.sessionId}: ${describeError(error)}`);
1460
+ this.logger(`[agentkit] failed to restore session ${item.record.sessionId}: ${describeError(error)}`);
1461
1461
  }
1462
1462
  }
1463
1463
  }
1464
1464
  if (restored > 0) {
1465
- this.logger(`[agent-serve] restored ${restored} session(s) from storage`);
1465
+ this.logger(`[agentkit] restored ${restored} session(s) from storage`);
1466
1466
  }
1467
1467
  });
1468
1468
  }
@@ -1503,7 +1503,7 @@ export class SessionEngine {
1503
1503
  }
1504
1504
  const events = yield storage.listSessionEvents(record.sessionId);
1505
1505
  yield this.materializeSession(record, eventsNdjson(events));
1506
- this.logger(`[agent-serve] lazily restored session ${record.sessionId} from storage`);
1506
+ this.logger(`[agentkit] lazily restored session ${record.sessionId} from storage`);
1507
1507
  return record;
1508
1508
  });
1509
1509
  }
@@ -16,6 +16,19 @@ export declare function fetchSessionEvents(args: {
16
16
  auth?: RequestAuth;
17
17
  fetchImpl?: typeof fetch;
18
18
  }): Promise<SessionEvent[]>;
19
+ /**
20
+ * Pick the previous (most recently updated) followable session for
21
+ * `resume` / `chat --resume` when no session id was passed.
22
+ * Followable = has a non-empty continuation token (task sessions without
23
+ * one are skipped).
24
+ */
25
+ export declare function pickPreviousSession(sessions: readonly SessionSummary[]): SessionSummary | undefined;
26
+ /** Look up the most recently updated followable session id. */
27
+ export declare function resolvePreviousSessionId(args: {
28
+ baseUrl: string;
29
+ auth?: RequestAuth;
30
+ fetchImpl?: typeof fetch;
31
+ }): Promise<string | undefined>;
19
32
  /** Format a sessions table (id, channel, mode, turns, running, updated). */
20
33
  export declare function formatSessionsTable(sessions: SessionSummary[]): string;
21
34
  //# sourceMappingURL=sessions-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions-client.d.ts","sourceRoot":"","sources":["../../src/internal/sessions-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8B5B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuE1B;AAgCD,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CActE"}
1
+ {"version":3,"file":"sessions-client.d.ts","sourceRoot":"","sources":["../../src/internal/sessions-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8B5B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuE1B;AAgCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,cAAc,GAAG,SAAS,CAU5B;AAED,+DAA+D;AAC/D,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO9B;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CActE"}
@@ -142,6 +142,31 @@ function parseSessionSummary(value) {
142
142
  externalUrl: typeof row.externalUrl === "string" ? row.externalUrl : undefined,
143
143
  };
144
144
  }
145
+ /**
146
+ * Pick the previous (most recently updated) followable session for
147
+ * `resume` / `chat --resume` when no session id was passed.
148
+ * Followable = has a non-empty continuation token (task sessions without
149
+ * one are skipped).
150
+ */
151
+ export function pickPreviousSession(sessions) {
152
+ const followable = sessions.filter((s) => typeof s.continuationToken === "string" && s.continuationToken !== "");
153
+ if (followable.length === 0) {
154
+ return undefined;
155
+ }
156
+ return [...followable].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))[0];
157
+ }
158
+ /** Look up the most recently updated followable session id. */
159
+ export function resolvePreviousSessionId(args) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ var _a;
162
+ const sessions = yield listSessions({
163
+ baseUrl: args.baseUrl,
164
+ auth: args.auth,
165
+ fetchImpl: args.fetchImpl,
166
+ });
167
+ return (_a = pickPreviousSession(sessions)) === null || _a === void 0 ? void 0 : _a.sessionId;
168
+ });
169
+ }
145
170
  /** Format a sessions table (id, channel, mode, turns, running, updated). */
146
171
  export function formatSessionsTable(sessions) {
147
172
  if (sessions.length === 0) {
@@ -252,7 +252,7 @@ export class StorageCoordinator {
252
252
  // Index entry without its record (e.g. the record write was shed
253
253
  // under at-most-once). The session is unrecoverable; treat as a miss
254
254
  // so the conversation can continue rather than failing forever.
255
- this.logger(`[agent-serve] storage continuation entry points at missing session ${sessionId}; treating as a miss`);
255
+ this.logger(`[agentkit] storage continuation entry points at missing session ${sessionId}; treating as a miss`);
256
256
  return undefined;
257
257
  }
258
258
  // The sink must answer for the exact key it was asked about — a
@@ -383,7 +383,7 @@ export class StorageCoordinator {
383
383
  return value == null ? undefined : value;
384
384
  }
385
385
  catch (error) {
386
- this.logger(`[agent-serve] storage get(ab-snapshot) failed: ${describeError(error)}`);
386
+ this.logger(`[agentkit] storage get(ab-snapshot) failed: ${describeError(error)}`);
387
387
  return undefined;
388
388
  }
389
389
  });
@@ -415,7 +415,7 @@ export class StorageCoordinator {
415
415
  ]);
416
416
  clearTimeout(timer);
417
417
  if (!drained) {
418
- this.logger(`[agent-serve] storage shutdown drain timed out after ${CLOSE_DRAIN_TIMEOUT_MS}ms with ${this.pending} write(s) undelivered`);
418
+ this.logger(`[agentkit] storage shutdown drain timed out after ${CLOSE_DRAIN_TIMEOUT_MS}ms with ${this.pending} write(s) undelivered`);
419
419
  }
420
420
  });
421
421
  }
@@ -455,7 +455,7 @@ export class StorageCoordinator {
455
455
  return Array.isArray(entries) ? entries : [];
456
456
  }
457
457
  catch (error) {
458
- this.logger(`[agent-serve] storage list(${prefix}) failed: ${describeError(error)}`);
458
+ this.logger(`[agentkit] storage list(${prefix}) failed: ${describeError(error)}`);
459
459
  return [];
460
460
  }
461
461
  });
@@ -467,7 +467,7 @@ export class StorageCoordinator {
467
467
  if (this.pending + ops.length > MAX_PENDING_OPS) {
468
468
  this.dropped += ops.length;
469
469
  if (this.dropped <= ops.length || this.dropped % 1000 < ops.length) {
470
- this.logger(`[agent-serve] storage queue full (${MAX_PENDING_OPS} pending writes); dropped ${this.dropped} write(s) so far — the sink is too slow for the traffic`);
470
+ this.logger(`[agentkit] storage queue full (${MAX_PENDING_OPS} pending writes); dropped ${this.dropped} write(s) so far — the sink is too slow for the traffic`);
471
471
  }
472
472
  return;
473
473
  }
@@ -485,7 +485,7 @@ export class StorageCoordinator {
485
485
  }
486
486
  }
487
487
  catch (error) {
488
- this.logger(`[agent-serve] storage ${op.op}(${op.key}) failed: ${describeError(error)}`);
488
+ this.logger(`[agentkit] storage ${op.op}(${op.key}) failed: ${describeError(error)}`);
489
489
  }
490
490
  finally {
491
491
  this.pending -= 1;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Outdated-version warning + `agentkit update`.
3
+ *
4
+ * Every CLI run of a published install compares its own version against the
5
+ * npm registry's `latest` dist-tag and warns on stderr when behind. The
6
+ * registry lookup is cached under the config dir
7
+ * (`~/.config/agent-serve/update-check.json`) so most runs never touch the
8
+ * network; a stale cache refreshes inline under a short timeout, and any
9
+ * network failure is silent (the warning is best-effort, never a blocker).
10
+ *
11
+ * `agentkit update` re-runs the lookup fresh, figures out how this copy was
12
+ * installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
13
+ * matching install command.
14
+ */
15
+ import { z } from "zod";
16
+ /**
17
+ * Semver-style ordering: negative when `a < b`, 0 when equal, positive when
18
+ * `a > b`. Unparseable versions compare equal (never warn on garbage).
19
+ */
20
+ export declare function compareVersions(a: string, b: string): number;
21
+ /**
22
+ * Latest published version of the package, from the registry's `latest`
23
+ * dist-tag. Returns undefined on any failure (offline, 404 pre-publish, …).
24
+ */
25
+ export declare function fetchLatestPublishedVersion(options?: {
26
+ fetchImpl?: typeof fetch;
27
+ timeoutMs?: number;
28
+ packageName?: string;
29
+ }): Promise<string | undefined>;
30
+ declare const cacheSchema: z.ZodObject<{
31
+ checkedAt: z.ZodNumber;
32
+ latestVersion: z.ZodOptional<z.ZodString>;
33
+ }, "strip">;
34
+ export type UpdateCheckCache = z.infer<typeof cacheSchema>;
35
+ export declare function updateCheckCachePath(configDir?: string): string;
36
+ export declare function readUpdateCheckCache(configDir?: string): Promise<UpdateCheckCache | undefined>;
37
+ export declare function writeUpdateCheckCache(cache: UpdateCheckCache, configDir?: string): Promise<void>;
38
+ export interface WarnIfOutdatedOptions {
39
+ /** Defaults to the running package's own version. */
40
+ currentVersion?: string;
41
+ /** Test seam; defaults to the shared config dir. */
42
+ configDir?: string;
43
+ fetchImpl?: typeof fetch;
44
+ /** Test seam; defaults to Date.now(). */
45
+ now?: number;
46
+ env?: NodeJS.ProcessEnv;
47
+ /** Defaults to process.stderr.write. */
48
+ err?: (text: string) => void;
49
+ /** Skip the source-checkout guard (tests exercise the full path). */
50
+ force?: boolean;
51
+ }
52
+ /**
53
+ * Print an outdated-version warning to stderr when a newer release exists.
54
+ *
55
+ * Never throws and never blocks longer than {@link WARN_FETCH_TIMEOUT_MS}.
56
+ * Suppressed on source-checkout runs (there is no installed copy to update),
57
+ * in CI, and via NO_UPDATE_NOTIFIER / AGENT_SERVE_NO_UPDATE_CHECK.
58
+ */
59
+ export declare function warnIfOutdated(options?: WarnIfOutdatedOptions): Promise<void>;
60
+ export interface UpdateCommand {
61
+ cmd: string;
62
+ args: string[];
63
+ /** Working directory for local project installs. */
64
+ cwd?: string;
65
+ /** One-line human description of what will run and why. */
66
+ reason: string;
67
+ }
68
+ /**
69
+ * Figure out how the running copy was installed and which command upgrades
70
+ * it. Detection is path-shape based (global stores have recognizable
71
+ * layouts), then falls back to walking up to the project that declares the
72
+ * dependency. Returns undefined for layouts we cannot safely upgrade
73
+ * (npx cache, unrecognized stores).
74
+ */
75
+ export declare function detectUpdateCommand(args: {
76
+ packageRoot: string;
77
+ packageName?: string;
78
+ }): Promise<UpdateCommand | undefined>;
79
+ export interface UpdateCliOptions {
80
+ /** Test seams. */
81
+ fetchImpl?: typeof fetch;
82
+ currentVersion?: string;
83
+ packageRoot?: string;
84
+ configDir?: string;
85
+ runCommand?: (command: UpdateCommand) => Promise<number>;
86
+ compiled?: boolean;
87
+ out?: (text: string) => void;
88
+ err?: (text: string) => void;
89
+ }
90
+ /** `agentkit update` — upgrade this install to the latest published version. */
91
+ export declare function cmdUpdate(options?: UpdateCliOptions): Promise<number>;
92
+ export {};
93
+ //# sourceMappingURL=update-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"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"}