@cursor/july 0.1.28 → 0.1.29

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 (122) hide show
  1. package/dist/bin/agent-serve.js +20 -2
  2. package/dist/channels/slack/slack-channel.d.ts +19 -1
  3. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  4. package/dist/channels/slack/slack-channel.js +29 -0
  5. package/dist/docs/404.html +1 -1
  6. package/dist/docs/ab.html +2 -2
  7. package/dist/docs/assets/{app.CqjrYaT2.js → app.QdunVQKg.js} +1 -1
  8. package/dist/docs/assets/chunks/@localSearchIndexroot.DGe61XHA.js +1 -0
  9. package/dist/docs/assets/chunks/{VPLocalSearchBox.ag-MwUel.js → VPLocalSearchBox.B6EpUXYf.js} +1 -1
  10. package/dist/docs/assets/chunks/{theme.BS-DJWat.js → theme.BOTJVqh7.js} +2 -2
  11. package/dist/docs/building-with-agents.html +2 -2
  12. package/dist/docs/concepts.html +2 -2
  13. package/dist/docs/deployment.html +2 -2
  14. package/dist/docs/evals.html +2 -2
  15. package/dist/docs/example-agents/approval-buddy.html +2 -2
  16. package/dist/docs/example-agents/benny.html +2 -2
  17. package/dist/docs/example-agents/bugbot.html +2 -2
  18. package/dist/docs/example-agents/codebase-wiki.html +2 -2
  19. package/dist/docs/example-agents/codeowners-review.html +2 -2
  20. package/dist/docs/example-agents/concierge.html +2 -2
  21. package/dist/docs/example-agents/fsd.html +2 -2
  22. package/dist/docs/example-agents/index.html +2 -2
  23. package/dist/docs/example-agents/knowledge-base.html +2 -2
  24. package/dist/docs/example-agents/oncall.html +2 -2
  25. package/dist/docs/example-agents/security-reviewer.html +2 -2
  26. package/dist/docs/example-agents/slack-agent.html +2 -2
  27. package/dist/docs/example-agents/weather-agent.html +2 -2
  28. package/dist/docs/guides/agent-to-agent.html +2 -2
  29. package/dist/docs/guides/cloud-runtime.html +2 -2
  30. package/dist/docs/guides/github.html +2 -2
  31. package/dist/docs/guides/human-in-the-loop.html +2 -2
  32. package/dist/docs/guides/mcp-oauth.html +2 -2
  33. package/dist/docs/guides/slack.html +2 -2
  34. package/dist/docs/guides/webhooks.html +2 -2
  35. package/dist/docs/hillclimbing.html +2 -2
  36. package/dist/docs/index.html +2 -2
  37. package/dist/docs/quickstart.html +2 -2
  38. package/dist/docs/reference/agent-config.html +2 -2
  39. package/dist/docs/reference/channels.html +2 -2
  40. package/dist/docs/reference/cli.html +2 -2
  41. package/dist/docs/reference/connections.html +2 -2
  42. package/dist/docs/reference/hooks.html +2 -2
  43. package/dist/docs/reference/http-api.html +2 -2
  44. package/dist/docs/reference/instructions.html +2 -2
  45. package/dist/docs/reference/playground.html +2 -2
  46. package/dist/docs/reference/project-layout.html +2 -2
  47. package/dist/docs/reference/prompt.html +2 -2
  48. package/dist/docs/reference/schedules.html +2 -2
  49. package/dist/docs/reference/sessions.html +2 -2
  50. package/dist/docs/reference/skills.html +2 -2
  51. package/dist/docs/reference/subagents.html +2 -2
  52. package/dist/docs/reference/tools.html +2 -2
  53. package/dist/docs/scaffolding-agents.html +2 -2
  54. package/dist/docs/storage.html +2 -2
  55. package/dist/docs/troubleshooting.html +2 -2
  56. package/dist/internal/cloud-turn-cost.d.ts +34 -0
  57. package/dist/internal/cloud-turn-cost.d.ts.map +1 -0
  58. package/dist/internal/cloud-turn-cost.js +106 -0
  59. package/dist/internal/discovery.d.ts.map +1 -1
  60. package/dist/internal/discovery.js +1 -1
  61. package/dist/internal/event-log.d.ts +6 -0
  62. package/dist/internal/event-log.d.ts.map +1 -1
  63. package/dist/internal/event-log.js +16 -0
  64. package/dist/internal/host-platforms.d.ts +13 -0
  65. package/dist/internal/host-platforms.d.ts.map +1 -1
  66. package/dist/internal/host-platforms.js +25 -16
  67. package/dist/internal/http-channel.d.ts.map +1 -1
  68. package/dist/internal/http-channel.js +3 -1
  69. package/dist/internal/local-control-plane.d.ts +25 -0
  70. package/dist/internal/local-control-plane.d.ts.map +1 -0
  71. package/dist/internal/local-control-plane.js +172 -0
  72. package/dist/internal/platform-schedule-sync.d.ts +17 -0
  73. package/dist/internal/platform-schedule-sync.d.ts.map +1 -0
  74. package/dist/internal/platform-schedule-sync.js +72 -0
  75. package/dist/internal/platform-timers.d.ts +28 -0
  76. package/dist/internal/platform-timers.d.ts.map +1 -0
  77. package/dist/internal/platform-timers.js +120 -0
  78. package/dist/internal/reminder-runner.d.ts +16 -12
  79. package/dist/internal/reminder-runner.d.ts.map +1 -1
  80. package/dist/internal/reminder-runner.js +112 -61
  81. package/dist/internal/reminder-store.d.ts +5 -4
  82. package/dist/internal/reminder-store.d.ts.map +1 -1
  83. package/dist/internal/reminder-store.js +5 -4
  84. package/dist/internal/sdk-runner.d.ts.map +1 -1
  85. package/dist/internal/sdk-runner.js +44 -1
  86. package/dist/internal/server.d.ts.map +1 -1
  87. package/dist/internal/server.js +105 -11
  88. package/dist/internal/session-engine.d.ts +22 -1
  89. package/dist/internal/session-engine.d.ts.map +1 -1
  90. package/dist/internal/session-engine.js +110 -4
  91. package/dist/internal/storage-coordinator.d.ts +4 -15
  92. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  93. package/dist/internal/storage-coordinator.js +4 -30
  94. package/dist/playground/assets/index-CquRB-l0.js +85 -0
  95. package/dist/playground/assets/{index-Bul1WfrB.css → index-Dj0bWpkn.css} +1 -1
  96. package/dist/playground/index.html +2 -2
  97. package/dist/storage.d.ts +0 -3
  98. package/dist/storage.d.ts.map +1 -1
  99. package/dist/storage.js +0 -3
  100. package/dist/types.d.ts +11 -2
  101. package/dist/types.d.ts.map +1 -1
  102. package/package.json +1 -1
  103. package/src/bin/agent-serve.ts +21 -2
  104. package/src/channels/slack/slack-channel.ts +46 -0
  105. package/src/internal/cloud-turn-cost.ts +158 -0
  106. package/src/internal/discovery.ts +1 -0
  107. package/src/internal/event-log.ts +17 -0
  108. package/src/internal/host-platforms.ts +40 -18
  109. package/src/internal/http-channel.ts +3 -1
  110. package/src/internal/local-control-plane.ts +188 -0
  111. package/src/internal/platform-schedule-sync.ts +81 -0
  112. package/src/internal/platform-timers.ts +173 -0
  113. package/src/internal/reminder-runner.ts +131 -67
  114. package/src/internal/reminder-store.ts +5 -4
  115. package/src/internal/sdk-runner.ts +49 -1
  116. package/src/internal/server.ts +121 -6
  117. package/src/internal/session-engine.ts +138 -3
  118. package/src/internal/storage-coordinator.ts +4 -41
  119. package/src/storage.ts +0 -5
  120. package/src/types.ts +11 -2
  121. package/dist/docs/assets/chunks/@localSearchIndexroot.VWQoPFJ1.js +0 -1
  122. package/dist/playground/assets/index-CkN74U_L.js +0 -87
@@ -54,10 +54,13 @@ import { collectGitHubTriggerTargets, handleAgentServeTrigger, } from "./handleA
54
54
  import { createHostPlatforms, warmupHostGitHubAuth } from "./host-platforms.js";
55
55
  import { buildHttpChannelRoutes, errorResponse, jsonResponse, readJsonObject, requireSessionOwner, } from "./http-channel.js";
56
56
  import { validateToolInput } from "./json-schema.js";
57
+ import { createLocalControlPlane, } from "./local-control-plane.js";
57
58
  import { createLogRing } from "./log-ring.js";
58
59
  import { createAgentMcpEndpoint, MCP_ENDPOINT_PATH } from "./mcp-endpoint.js";
59
60
  import { isLoopbackAddress } from "./net.js";
60
61
  import { collectPeerConnections } from "./peer-connections.js";
62
+ import { PLATFORM_SCHEDULE_CATALOG_FILENAME, syncHostedPlatformSchedules, } from "./platform-schedule-sync.js";
63
+ import { createCursorHostedPlatformTimers } from "./platform-timers.js";
61
64
  import { renderAgentsIndexHtml, renderPlaygroundAsset, renderPlaygroundIndexHtml, } from "./playground/static.js";
62
65
  import { ensurePlaygroundBundle, playgroundDevBaseFromEnv, playgroundDevBasePath, startPlaygroundDevServer, } from "./playground/toolchain.js";
63
66
  import { ReminderRunner, ReminderValidationError, UnknownReminderError, } from "./reminder-runner.js";
@@ -95,6 +98,7 @@ export function startServer(mounts_1) {
95
98
  const logger = logRing.wrap((_d = options.logger) !== null && _d !== void 0 ? _d : ((line) => console.log(line)));
96
99
  const dev = (_e = options.dev) !== null && _e !== void 0 ? _e : false;
97
100
  const playground = (_f = options.playground) !== null && _f !== void 0 ? _f : true;
101
+ const noControlPlane = options.noControlPlane === true;
98
102
  const runSchedules = (_g = options.schedules) !== null && _g !== void 0 ? _g : !dev;
99
103
  const runReminders = (_h = options.reminders) !== null && _h !== void 0 ? _h : !dev;
100
104
  // Identify this process to the Cursor backend as agentkit (the SDK reads
@@ -258,7 +262,20 @@ export function startServer(mounts_1) {
258
262
  githubAuthWarmed = true;
259
263
  }
260
264
  const scheduleRunner = new ScheduleRunner(engine, project, logger);
261
- const reminderRunner = new ReminderRunner(engine, logger);
265
+ let reminderRunner;
266
+ const localControlPlane = noControlPlane
267
+ ? undefined
268
+ : yield createLocalControlPlane({
269
+ fireSchedule: (name) => scheduleRunner.dispatch(name),
270
+ fireReminder: (id, fireCount) => reminderRunner.dispatch(id, { expectedFireCount: fireCount }),
271
+ stateDir: join(stateRoot, "control-plane"),
272
+ armReminderClocks: runReminders,
273
+ logger,
274
+ });
275
+ const timerClient = noControlPlane
276
+ ? createCursorHostedPlatformTimers()
277
+ : localControlPlane;
278
+ reminderRunner = new ReminderRunner(engine, logger, timerClient);
262
279
  const evalRuns = new EvalRunStore(project.rootDir, logger,
263
280
  // Playground eval history mirrors onto the defineStorage evals table.
264
281
  (_b = engine.storage) === null || _b === void 0 ? void 0 : _b.evalRuns());
@@ -281,18 +298,19 @@ export function startServer(mounts_1) {
281
298
  start: (input) => evalRuns.start(input),
282
299
  cancel: (runId) => evalRuns.cancel(runId),
283
300
  });
284
- const runtime = {
285
- slug,
301
+ const runtime = Object.assign({ slug,
286
302
  project,
287
303
  engine,
288
304
  scheduleRunner,
289
305
  reminderRunner,
290
- evalRuns,
291
- };
306
+ evalRuns }, (localControlPlane === undefined
307
+ ? {}
308
+ : { controlPlane: localControlPlane }));
292
309
  runtimes.push(runtime);
293
310
  const accountRefs = accountRefsBySlug.get(slug);
294
311
  mountAgentRoutes(router, runtime, Object.assign(Object.assign(Object.assign({ dev,
295
312
  playground,
313
+ noControlPlane,
296
314
  multi,
297
315
  logger,
298
316
  logRing }, (options.authToken === undefined
@@ -334,12 +352,18 @@ export function startServer(mounts_1) {
334
352
  }
335
353
  }
336
354
  }
337
- if (runSchedules) {
338
- scheduleRunner.start();
355
+ if (timerClient !== undefined && runSchedules) {
356
+ yield syncHostedPlatformSchedules({
357
+ timers: timerClient,
358
+ schedules: project.schedules,
359
+ catalogPath: join(stateRoot, PLATFORM_SCHEDULE_CATALOG_FILENAME),
360
+ logger,
361
+ });
339
362
  }
340
- if (runReminders) {
341
- yield reminderRunner.start();
363
+ if (timerClient !== undefined) {
364
+ yield reminderRunner.hydrate();
342
365
  }
366
+ localControlPlane === null || localControlPlane === void 0 ? void 0 : localControlPlane.startClocks();
343
367
  }
344
368
  if (docsSite) {
345
369
  // The framework documentation site, mounted at /docs in both layouts
@@ -604,10 +628,12 @@ export function startServer(mounts_1) {
604
628
  },
605
629
  close: () => __awaiter(this, void 0, void 0, function* () {
606
630
  var _a;
631
+ var _b;
607
632
  playgroundDev === null || playgroundDev === void 0 ? void 0 : playgroundDev.stop();
608
633
  yield cursorEventRelay === null || cursorEventRelay === void 0 ? void 0 : cursorEventRelay.stop();
609
634
  yield cursorSlackRelay === null || cursorSlackRelay === void 0 ? void 0 : cursorSlackRelay.stop();
610
635
  for (const runtime of runtimes) {
636
+ (_a = runtime.controlPlane) === null || _a === void 0 ? void 0 : _a.stop();
611
637
  runtime.scheduleRunner.stop();
612
638
  runtime.reminderRunner.stop();
613
639
  // Before the engines close their storage coordinators, so the
@@ -620,7 +646,7 @@ export function startServer(mounts_1) {
620
646
  }
621
647
  catch (error) {
622
648
  logger(`[agentkit] channel onStop failed: ${error instanceof Error
623
- ? ((_a = error.stack) !== null && _a !== void 0 ? _a : error.message)
649
+ ? ((_b = error.stack) !== null && _b !== void 0 ? _b : error.message)
624
650
  : String(error)}`);
625
651
  }
626
652
  }
@@ -646,7 +672,7 @@ export function startServer(mounts_1) {
646
672
  function mountAgentRoutes(router, runtime, args) {
647
673
  var _a, _b, _c;
648
674
  const { slug, project, engine, scheduleRunner, reminderRunner } = runtime;
649
- const { dev, playground, multi, logger, logRing } = args;
675
+ const { dev, playground, noControlPlane, multi, logger, logRing } = args;
650
676
  // "" (single) -> "/v1/..."; "my-agent" (multi) -> "/my-agent/v1/...".
651
677
  const base = slug === "" ? "" : `/${slug}`;
652
678
  // The Cursor account MCP bridge for this mount's account MCP connections:
@@ -674,6 +700,18 @@ function mountAgentRoutes(router, runtime, args) {
674
700
  ? [allowAll()]
675
701
  : [localDevStrict()];
676
702
  const httpAuth = (_a = project.httpChannel.auth) !== null && _a !== void 0 ? _a : defaultAuth;
703
+ // Temporal posts this marker on a direct pod port-token fetch. The alias
704
+ // proxy strips it, so webhook/playground tokens cannot present it.
705
+ const platformTimerFireAuth = (request) => {
706
+ if (request.headers.get("x-agent-serve-timed-work") === "1") {
707
+ return {
708
+ authenticator: "app",
709
+ principalId: "agent-serve:timed-work",
710
+ principalType: "runtime",
711
+ };
712
+ }
713
+ return null;
714
+ };
677
715
  // Playground lists/opens Slack (and other channel) sessions across
678
716
  // principals when `--dev` (loopback) or `--allow-anonymous` (trusted
679
717
  // shared host, e.g. corp Okta ALB). Never when bearer / custom channel
@@ -1008,6 +1046,62 @@ function mountAgentRoutes(router, runtime, args) {
1008
1046
  }
1009
1047
  }),
1010
1048
  });
1049
+ if (noControlPlane === true) {
1050
+ router.add({
1051
+ method: "POST",
1052
+ pattern: `${base}/v1/internal/schedules/:scheduleId/fire`,
1053
+ auth: [platformTimerFireAuth],
1054
+ handler: (_request, ctx) => __awaiter(this, void 0, void 0, function* () {
1055
+ var _a;
1056
+ const scheduleId = (_a = ctx.params.scheduleId) !== null && _a !== void 0 ? _a : "";
1057
+ try {
1058
+ const { sessionIds } = yield scheduleRunner.dispatch(scheduleId);
1059
+ return jsonResponse({ scheduleId, sessionIds });
1060
+ }
1061
+ catch (error) {
1062
+ if (error instanceof UnknownScheduleError) {
1063
+ return jsonResponse({
1064
+ ok: false,
1065
+ error: "unknown_schedule",
1066
+ availableScheduleIds: error.availableScheduleIds,
1067
+ }, { status: 404 });
1068
+ }
1069
+ throw error;
1070
+ }
1071
+ }),
1072
+ });
1073
+ router.add({
1074
+ method: "POST",
1075
+ pattern: `${base}/v1/internal/reminders/:reminderId/fire`,
1076
+ auth: [platformTimerFireAuth],
1077
+ handler: (request, ctx) => __awaiter(this, void 0, void 0, function* () {
1078
+ var _a;
1079
+ const reminderId = (_a = ctx.params.reminderId) !== null && _a !== void 0 ? _a : "";
1080
+ const fireCountRaw = new URL(request.url).searchParams.get("fireCount");
1081
+ const expectedFireCount = fireCountRaw === null ? undefined : Number(fireCountRaw);
1082
+ try {
1083
+ const result = yield reminderRunner.dispatch(reminderId, expectedFireCount !== undefined &&
1084
+ Number.isInteger(expectedFireCount)
1085
+ ? { expectedFireCount }
1086
+ : {});
1087
+ return jsonResponse(result);
1088
+ }
1089
+ catch (error) {
1090
+ if (error instanceof UnknownReminderError) {
1091
+ return jsonResponse({
1092
+ ok: false,
1093
+ error: "unknown_reminder",
1094
+ availableReminderIds: error.availableReminderIds,
1095
+ }, { status: 404 });
1096
+ }
1097
+ if (error instanceof ReminderValidationError) {
1098
+ return jsonResponse({ ok: false, error: "invalid_reminder", message: error.message }, { status: 400 });
1099
+ }
1100
+ throw error;
1101
+ }
1102
+ }),
1103
+ });
1104
+ }
1011
1105
  if (dev) {
1012
1106
  router.add({
1013
1107
  method: "POST",
@@ -9,6 +9,7 @@
9
9
  import { SlackAskDedupeStore, SlackNudgeStore } from "../channels/slack/nudge-store.js";
10
10
  import { type AgentProject, type ApprovalDecision, type ArtifactListFilter, type ArtifactRecord, type ArtifactsApi, type AuthContext, type CallToolOptions, type ChannelDefinition, type ChannelSession, type HostContext, type HttpChannelDefinition, type PendingApproval, type ReceiveInput, type SendMessageOptions, type SessionEvent, type SessionInfo, type SessionListSource, type SessionRecord, type SessionSummary, type ToolCallOutcome, type TurnOutcome } from "../types.js";
11
11
  import { type ABSnapshot } from "./ab-snapshot.js";
12
+ import { type CloudAgentUsage } from "./cloud-turn-cost.js";
12
13
  import { type HostPlatforms } from "./host-platforms.js";
13
14
  import type { AgentRunner } from "./sdk-runner.js";
14
15
  import { SessionStore } from "./session-store.js";
@@ -52,6 +53,12 @@ export interface SessionEngineOptions {
52
53
  runner: AgentRunner;
53
54
  logger?: (line: string) => void;
54
55
  platforms?: HostPlatforms;
56
+ /**
57
+ * Test seam / override for cloud billed usage (`Agent.getUsage`). Used to
58
+ * backfill `turn.completed` rows that older engines persisted without
59
+ * usage/cost so the playground Trace tab can still show an estimate.
60
+ */
61
+ getCloudUsage?: (sdkAgentId: string) => Promise<CloudAgentUsage | undefined>;
55
62
  }
56
63
  /**
57
64
  * A connection the serve host resolved once it was listening — a **peer**
@@ -137,6 +144,11 @@ export declare class SessionEngine {
137
144
  private readonly artifactsStore;
138
145
  /** Serve-time resolved connections (see {@link setResolvedConnections}). */
139
146
  private resolvedConnections;
147
+ private readonly getCloudUsage;
148
+ /** Sessions whose completed turns are fully priced (no further backfill). */
149
+ private readonly cloudCostBackfillDone;
150
+ /** Deduped in-flight cloud cost backfills, keyed by session id. */
151
+ private readonly cloudCostBackfill;
140
152
  constructor(options: SessionEngineOptions);
141
153
  /**
142
154
  * Attach serve-time resolved connections (peers, Cursor account bridge).
@@ -390,7 +402,16 @@ export declare class SessionEngine {
390
402
  */
391
403
  emitAssistantMessage(sessionId: string, text: string): Promise<void>;
392
404
  /** Snapshot of recorded events (for download / offline trace). */
393
- listEvents(sessionId: string, startIndex?: number): Promise<SessionEvent[]>;
405
+ listEvents(sessionId: string, startIndex?: number, options?: {
406
+ backfillCloudCost?: boolean;
407
+ }): Promise<SessionEvent[]>;
408
+ /**
409
+ * Historical cloud turns may lack usage/cost on `turn.completed` (pre-0.1.29
410
+ * engines, or getUsage still zero at turn end). Fill them from billed usage
411
+ * before the playground replays the stream so Trace can show est. cost.
412
+ */
413
+ private backfillCloudTurnCosts;
414
+ private runCloudTurnCostBackfill;
394
415
  setContinuationToken(sessionId: string, token: string | null): Promise<void>;
395
416
  isTurnRunning(sessionId: string): boolean;
396
417
  sessionInfo(record: SessionRecord): SessionInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-engine.d.ts","sourceRoot":"","sources":["../../src/internal/session-engine.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ import { dirname, join } from "node:path";
31
31
  import { mergeABInstructions, resolveABMaxPlaygroundSessions, resolveABSplit, } from "../ab.js";
32
32
  import { slackThreadPermalink } from "../channels/slack/links.js";
33
33
  import { SlackAskDedupeStore, SlackNudgeStore, } from "../channels/slack/nudge-store.js";
34
+ import { resolveDedicatedSlackHostBinding } from "../channels/slack/slack-channel.js";
34
35
  import { DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isHostOauthConnectionTransport, isSymbolicConnectionTransport, } from "../types.js";
35
36
  import { ABCollector } from "./ab-collector.js";
36
37
  import { foldABStream } from "./ab-fold.js";
@@ -39,11 +40,12 @@ import { ApprovalGate } from "./approval-gate.js";
39
40
  import { ArtifactsStore } from "./artifacts-store.js";
40
41
  import { samePrincipal } from "./auth.js";
41
42
  import { mergeCloudOptions, resolveSessionRuntime } from "./cloud-merge.js";
43
+ import { applyCloudUsageToEvents, cloudSdkAgentIdFromEvents, isUnpricedCompletedTurn, mapSdkTokenUsage, } from "./cloud-turn-cost.js";
42
44
  import { isDevMode } from "./dev-mode.js";
43
45
  import { EventLogStore } from "./event-log.js";
44
46
  import { TurnEventMapper } from "./event-mapper.js";
45
47
  import { createHostKvApi } from "./host-kv.js";
46
- import { createHostPlatforms } from "./host-platforms.js";
48
+ import { createHostPlatforms, createHostSlackClient, } from "./host-platforms.js";
47
49
  import { formatContinuationToken, newContinuationKey, newSessionId, newToolCallId, } from "./ids.js";
48
50
  import { validateToolInput } from "./json-schema.js";
49
51
  import { McpHost } from "./mcp-host.js";
@@ -114,7 +116,7 @@ export class ApprovalInterruptedError extends Error {
114
116
  }
115
117
  export class SessionEngine {
116
118
  constructor(options) {
117
- var _a, _b;
119
+ var _a, _b, _c;
118
120
  /** In-flight lazy restores, deduped per channel + continuation key. */
119
121
  this.restoreInFlight = new Map();
120
122
  this.channelsById = new Map();
@@ -142,10 +144,15 @@ export class SessionEngine {
142
144
  this.approvals = new ApprovalGate();
143
145
  /** Serve-time resolved connections (see {@link setResolvedConnections}). */
144
146
  this.resolvedConnections = [];
147
+ /** Sessions whose completed turns are fully priced (no further backfill). */
148
+ this.cloudCostBackfillDone = new Set();
149
+ /** Deduped in-flight cloud cost backfills, keyed by session id. */
150
+ this.cloudCostBackfill = new Map();
145
151
  this.project = options.project;
146
152
  this.stateRoot = options.stateRoot;
147
153
  this.runner = options.runner;
148
154
  this.logger = (_a = options.logger) !== null && _a !== void 0 ? _a : (() => { });
155
+ this.getCloudUsage = (_b = options.getCloudUsage) !== null && _b !== void 0 ? _b : defaultGetCloudUsage;
149
156
  this.turnGovernor = new TurnGovernor(options.project.agent.concurrency);
150
157
  this.sessions = new SessionStore(join(options.stateRoot, "sessions"));
151
158
  this.nudgeStore = new SlackNudgeStore(join(options.stateRoot, "slack-nudges"));
@@ -173,7 +180,18 @@ export class SessionEngine {
173
180
  // resolves them; the host-side MCP registry starts with the concrete
174
181
  // connections and gains the rest via setResolvedConnections.
175
182
  this.mcpHost = new McpHost(options.project.agent.connections.filter((connection) => !isSymbolicConnectionTransport(connection.transport)));
176
- this.platforms = (_b = options.platforms) !== null && _b !== void 0 ? _b : createHostPlatforms();
183
+ const basePlatforms = (_c = options.platforms) !== null && _c !== void 0 ? _c : createHostPlatforms();
184
+ const slackBinding = resolveDedicatedSlackHostBinding(options.project.channels);
185
+ this.platforms =
186
+ slackBinding === undefined
187
+ ? basePlatforms
188
+ : {
189
+ github: basePlatforms.github,
190
+ slack: createHostSlackClient({
191
+ credentials: slackBinding.credentials,
192
+ envPrefix: slackBinding.envPrefix,
193
+ }),
194
+ };
177
195
  for (const channel of options.project.channels) {
178
196
  this.channelsById.set(channel.id, channel.definition);
179
197
  }
@@ -1706,6 +1724,9 @@ export class SessionEngine {
1706
1724
  }
1707
1725
  eventStream(sessionId_1) {
1708
1726
  return __awaiter(this, arguments, void 0, function* (sessionId, startIndex = 0) {
1727
+ // Playground Trace replays this stream; backfill before the snapshot
1728
+ // so historical Sherlock-style cloud turns can show est. cost.
1729
+ yield this.backfillCloudTurnCosts(sessionId);
1709
1730
  const log = yield this.logs.get(sessionId);
1710
1731
  return log.stream(startIndex);
1711
1732
  });
@@ -1753,11 +1774,78 @@ export class SessionEngine {
1753
1774
  }
1754
1775
  /** Snapshot of recorded events (for download / offline trace). */
1755
1776
  listEvents(sessionId_1) {
1756
- return __awaiter(this, arguments, void 0, function* (sessionId, startIndex = 0) {
1777
+ return __awaiter(this, arguments, void 0, function* (sessionId, startIndex = 0, options) {
1778
+ if ((options === null || options === void 0 ? void 0 : options.backfillCloudCost) === true) {
1779
+ yield this.backfillCloudTurnCosts(sessionId);
1780
+ }
1757
1781
  const log = yield this.logs.get(sessionId);
1758
1782
  return log.snapshot(startIndex);
1759
1783
  });
1760
1784
  }
1785
+ /**
1786
+ * Historical cloud turns may lack usage/cost on `turn.completed` (pre-0.1.29
1787
+ * engines, or getUsage still zero at turn end). Fill them from billed usage
1788
+ * before the playground replays the stream so Trace can show est. cost.
1789
+ */
1790
+ backfillCloudTurnCosts(sessionId) {
1791
+ if (this.cloudCostBackfillDone.has(sessionId)) {
1792
+ return Promise.resolve();
1793
+ }
1794
+ const pending = this.cloudCostBackfill.get(sessionId);
1795
+ if (pending !== undefined) {
1796
+ return pending;
1797
+ }
1798
+ const work = this.runCloudTurnCostBackfill(sessionId)
1799
+ .catch((error) => {
1800
+ this.logger(`[agentkit] cloud cost backfill failed for ${sessionId}: ${describeError(error)}`);
1801
+ })
1802
+ .finally(() => {
1803
+ this.cloudCostBackfill.delete(sessionId);
1804
+ });
1805
+ this.cloudCostBackfill.set(sessionId, work);
1806
+ return work;
1807
+ }
1808
+ runCloudTurnCostBackfill(sessionId) {
1809
+ return __awaiter(this, void 0, void 0, function* () {
1810
+ var _a, _b;
1811
+ const log = yield this.logs.get(sessionId);
1812
+ const events = log.snapshot(0);
1813
+ if (!events.some((event) => isUnpricedCompletedTurn(event))) {
1814
+ if (!this.isTurnRunning(sessionId) &&
1815
+ events.some((event) => event.type === "turn.completed")) {
1816
+ this.cloudCostBackfillDone.add(sessionId);
1817
+ }
1818
+ return;
1819
+ }
1820
+ const record = yield this.sessions.get(sessionId);
1821
+ const sdkAgentId = (_a = ((record === null || record === void 0 ? void 0 : record.sdkAgentId) !== undefined && record.sdkAgentId.startsWith("bc-")
1822
+ ? record.sdkAgentId
1823
+ : undefined)) !== null && _a !== void 0 ? _a : cloudSdkAgentIdFromEvents(events);
1824
+ if (sdkAgentId === undefined) {
1825
+ return;
1826
+ }
1827
+ const billed = yield this.getCloudUsage(sdkAgentId);
1828
+ if (billed === undefined) {
1829
+ return;
1830
+ }
1831
+ const model = (_b = this.project.agent.model) !== null && _b !== void 0 ? _b : DEFAULT_MODEL;
1832
+ const patched = applyCloudUsageToEvents(events, billed, model);
1833
+ if (patched === undefined) {
1834
+ return;
1835
+ }
1836
+ for (let i = 0; i < patched.length; i++) {
1837
+ const next = patched[i];
1838
+ const prev = events[i];
1839
+ if (next === undefined || prev === next) {
1840
+ continue;
1841
+ }
1842
+ log.replace(i, next);
1843
+ }
1844
+ if (!log.snapshot(0).some((event) => isUnpricedCompletedTurn(event))) {
1845
+ this.cloudCostBackfillDone.add(sessionId);
1846
+ }
1847
+ });
1848
+ }
1761
1849
  setContinuationToken(sessionId, token) {
1762
1850
  return __awaiter(this, void 0, void 0, function* () {
1763
1851
  var _a;
@@ -2099,6 +2187,24 @@ function buildRunnerSubagents(agent) {
2099
2187
  function describeError(error) {
2100
2188
  return error instanceof Error ? error.message : String(error);
2101
2189
  }
2190
+ function defaultGetCloudUsage(sdkAgentId) {
2191
+ return __awaiter(this, void 0, void 0, function* () {
2192
+ try {
2193
+ const { Agent } = yield import("@cursor/sdk");
2194
+ const billed = yield Agent.getUsage(sdkAgentId);
2195
+ return {
2196
+ usage: mapSdkTokenUsage(billed.usage),
2197
+ runs: billed.runs.map((run) => ({
2198
+ runId: run.runId,
2199
+ usage: mapSdkTokenUsage(run.usage),
2200
+ })),
2201
+ };
2202
+ }
2203
+ catch (_a) {
2204
+ return undefined;
2205
+ }
2206
+ });
2207
+ }
2102
2208
  /** Detects the `{ content, isError: true }` rich-result error envelope. */
2103
2209
  function isErrorEnvelope(result) {
2104
2210
  return (typeof result === "object" &&
@@ -10,16 +10,16 @@
10
10
  * failures — a throwing sink is logged and its write dropped; storage
11
11
  * must never stall or fail a turn.
12
12
  *
13
- * Scaling shape: sessions and reminders reduce to keyed puts on the KV
14
- * sink; eval runs and A/B metrics go to their dedicated tables
15
- * (`evals` / `abs`). Everything shares one bounded, serialized queue.
13
+ * Scaling shape: sessions reduce to keyed puts on the KV sink; eval runs
14
+ * and A/B metrics go to their dedicated tables (`evals` / `abs`).
15
+ * Reminder documents live on the control plane. Everything shares one
16
+ * bounded, serialized queue.
16
17
  */
17
18
  import type { ABMetricSample } from "../ab.js";
18
19
  import { type ResolvedStoragePolicy, type StorageContext, type StorageDefinition } from "../storage.js";
19
20
  import type { JsonValue, SessionEvent, SessionRecord } from "../types.js";
20
21
  import type { ABSnapshot } from "./ab-snapshot.js";
21
22
  import type { EvalRunStorage } from "./eval-run-store.js";
22
- import { type ReminderRecord } from "./reminder-store.js";
23
23
  export interface StorageCoordinatorOptions {
24
24
  definition: StorageDefinition;
25
25
  agentName: string;
@@ -113,17 +113,6 @@ export declare class StorageCoordinator {
113
113
  * `get`) resolves undefined.
114
114
  */
115
115
  getSessionByContinuation(channelId: string, continuationKey: string): Promise<SessionRecord | undefined>;
116
- /**
117
- * Mirror one reminder record (create / fire / cancel / disarm). Local
118
- * disk under `--state-root/reminders` remains the live source of truth;
119
- * this is the durable copy for host replacement.
120
- */
121
- reminder(record: ReminderRecord): void;
122
- /**
123
- * Saved reminder records for this agent (startup hydrate into local
124
- * disk). Errors read as empty — same posture as session bulk restore.
125
- */
126
- listReminders(): Promise<ReminderRecord[]>;
127
116
  /**
128
117
  * Whether the sink can serve awaited author reads/writes (`get` is
129
118
  * required — `put` is always present on {@link StorageConfig}).
@@ -1 +1 @@
1
- {"version":3,"file":"storage-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/storage-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-coordinator.d.ts","sourceRoot":"","sources":["../../src/internal/storage-coordinator.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,10 @@
10
10
  * failures — a throwing sink is logged and its write dropped; storage
11
11
  * must never stall or fail a turn.
12
12
  *
13
- * Scaling shape: sessions and reminders reduce to keyed puts on the KV
14
- * sink; eval runs and A/B metrics go to their dedicated tables
15
- * (`evals` / `abs`). Everything shares one bounded, serialized queue.
13
+ * Scaling shape: sessions reduce to keyed puts on the KV sink; eval runs
14
+ * and A/B metrics go to their dedicated tables (`evals` / `abs`).
15
+ * Reminder documents live on the control plane. Everything shares one
16
+ * bounded, serialized queue.
16
17
  */
17
18
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
19
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -26,7 +27,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
26
27
  import { resolveStoragePolicy, storageKeys, } from "../storage.js";
27
28
  import { isCursorHostedStorage } from "../storage-backends/cursor-hosted.js";
28
29
  import { describeError } from "./describe-error.js";
29
- import { isReminderRecord } from "./reminder-store.js";
30
30
  /** Event types that close a unit of work — flush point for turn-end batching. */
31
31
  const TURN_BOUNDARY_EVENTS = new Set([
32
32
  "turn.completed",
@@ -321,32 +321,6 @@ export class StorageCoordinator {
321
321
  });
322
322
  }
323
323
  // ==========================================================================
324
- // Reminders
325
- // ==========================================================================
326
- /**
327
- * Mirror one reminder record (create / fire / cancel / disarm). Local
328
- * disk under `--state-root/reminders` remains the live source of truth;
329
- * this is the durable copy for host replacement.
330
- */
331
- reminder(record) {
332
- if (this.closed) {
333
- return;
334
- }
335
- this.enqueue([
336
- this.putOp(storageKeys.reminder(this.agentName, record.id), record),
337
- ], "policy");
338
- }
339
- /**
340
- * Saved reminder records for this agent (startup hydrate into local
341
- * disk). Errors read as empty — same posture as session bulk restore.
342
- */
343
- listReminders() {
344
- return __awaiter(this, void 0, void 0, function* () {
345
- const entries = yield this.tryList(storageKeys.reminderPrefix(this.agentName));
346
- return entries.flatMap((entry) => isReminderRecord(entry.value) ? [entry.value] : []);
347
- });
348
- }
349
- // ==========================================================================
350
324
  // Author KV ({@link HostContext.kv})
351
325
  // ==========================================================================
352
326
  /**