@cursor/bdk 0.2.5 → 0.2.6

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 (176) hide show
  1. package/dist/bin/agent-serve.js +17 -11
  2. package/dist/channels/github/github-channel.d.ts +4 -4
  3. package/dist/channels/github/github-channel.js +5 -5
  4. package/dist/channels/slack/eval-directive.js +1 -1
  5. package/dist/docs/404.html +2 -2
  6. package/dist/docs/assets/{app.94Iu5dyD.js → app.CJLKDVza.js} +4 -4
  7. package/dist/docs/assets/chunks/@localSearchIndexroot.Bq-pxRXm.js +1 -0
  8. package/dist/docs/assets/chunks/{VPLocalSearchBox.DTKFDlBr.js → VPLocalSearchBox.BW9mrQmq.js} +1 -1
  9. package/dist/docs/assets/chunks/{arc.DuzwHEeg.js → arc.D8ZOvM1m.js} +1 -1
  10. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C6lyhLs0.js → architectureDiagram-Q4EWVU46.CXEKhLW-.js} +1 -1
  11. package/dist/docs/assets/chunks/{baseUniq.DUNEWlY8.js → baseUniq.BJkVKblr.js} +1 -1
  12. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CXOQGI0O.js → blockDiagram-DXYQGD6D.DQDbHxor.js} +1 -1
  13. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BYdPE-Oe.js → c4Diagram-AHTNJAMY.ByMD6LYM.js} +1 -1
  14. package/dist/docs/assets/chunks/channel.DCU8W1RP.js +1 -0
  15. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.YIV9HeX0.js → chunk-4BX2VUAB.Dtq1aVI9.js} +1 -1
  16. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.BG80DEOc.js → chunk-4TB4RGXK.BL_XrkoQ.js} +1 -1
  17. package/dist/docs/assets/chunks/{chunk-55IACEB6.BDKJSZQc.js → chunk-55IACEB6.BDPXu94_.js} +1 -1
  18. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.CtYnQqts.js → chunk-EDXVE4YY.DhGOQj4k.js} +1 -1
  19. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CityOth-.js → chunk-FMBD7UC4.DSF5nr8v.js} +1 -1
  20. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMD22CQX.js → chunk-OYMX7WX6.Day7wayw.js} +1 -1
  21. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.WWpc3ND0.js → chunk-QZHKN3VN.CpBEC0zA.js} +1 -1
  22. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.BMg-yhj3.js → chunk-YZCP3GAM.X_7rY1rx.js} +1 -1
  23. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DwpXsM06.js +1 -0
  24. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DwpXsM06.js +1 -0
  25. package/dist/docs/assets/chunks/clone.DH6Mx2zB.js +1 -0
  26. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Buu_LC5q.js → cose-bilkent-S5V4N54A.BVRmi2ko.js} +1 -1
  27. package/dist/docs/assets/chunks/{dagre-KV5264BT.DW7onj6E.js → dagre-KV5264BT.Dei9oslB.js} +1 -1
  28. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.B3NxIbEV.js → diagram-5BDNPKRD._M-efGt7.js} +1 -1
  29. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.BJvN6Vkv.js → diagram-G4DWMVQ6.D1Vmhfsj.js} +1 -1
  30. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.wfRWrexs.js → diagram-MMDJMWI5.cE1bmvAC.js} +1 -1
  31. package/dist/docs/assets/chunks/{diagram-TYMM5635.7QtjSYio.js → diagram-TYMM5635.DkXAfznP.js} +1 -1
  32. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.jxPgDH1t.js → erDiagram-SMLLAGMA.DH_pSwPg.js} +1 -1
  33. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BhDWA-TO.js → flowDiagram-DWJPFMVM.kAWVN9j1.js} +1 -1
  34. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.Ijq8iYKv.js → ganttDiagram-T4ZO3ILL.8r0w49-p.js} +1 -1
  35. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DXpfW4YG.js → gitGraphDiagram-UUTBAWPF.BDa7Bi1i.js} +1 -1
  36. package/dist/docs/assets/chunks/{graph.CoPlssRl.js → graph.BMPXHz_B.js} +1 -1
  37. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.eJuv_EOz.js → infoDiagram-42DDH7IO.BmlcqewS.js} +1 -1
  38. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A._OEzenCR.js → ishikawaDiagram-UXIWVN3A.CVSEQSul.js} +1 -1
  39. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CwlTjirB.js → journeyDiagram-VCZTEJTY.BpeWJ5n-.js} +1 -1
  40. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DSp_C8cZ.js → kanban-definition-6JOO6SKY.DHbDXuxB.js} +1 -1
  41. package/dist/docs/assets/chunks/{layout.Bms9s7uB.js → layout.CzrCDgkP.js} +1 -1
  42. package/dist/docs/assets/chunks/{linear.BjnmB4je.js → linear.HwBsflwN.js} +1 -1
  43. package/dist/docs/assets/chunks/{min.CKkYlMsn.js → min.DqGHolT3.js} +1 -1
  44. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.T2d0vJ7X.js → mindmap-definition-QFDTVHPH.ZYGlOawh.js} +1 -1
  45. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DU0RoCvx.js → pieDiagram-DEJITSTG.C2KRXlNR.js} +1 -1
  46. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.9QZjM-x0.js → quadrantDiagram-34T5L4WZ.CHj3Qefp.js} +1 -1
  47. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CZpylJMd.js → requirementDiagram-MS252O5E.B1L4Tf7k.js} +1 -1
  48. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.CnFdfW95.js → sankeyDiagram-XADWPNL6.dNR2yi1B.js} +1 -1
  49. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.-jC0PP1t.js → sequenceDiagram-FGHM5R23.BrvQ3C6m.js} +1 -1
  50. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.DG7yBRUU.js → stateDiagram-FHFEXIEX.BtehEykA.js} +1 -1
  51. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.kzD0-U89.js +1 -0
  52. package/dist/docs/assets/chunks/{theme.B3O9koXV.js → theme.BDHBZUkP.js} +2 -2
  53. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bf9u4Ebb.js → timeline-definition-GMOUNBTQ.Bn7nhqEN.js} +1 -1
  54. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BjhbbYE6.js → vennDiagram-DHZGUBPP.DKhc38sz.js} +1 -1
  55. package/dist/docs/assets/chunks/wardley-RL74JXVD.DOXQ0w8J.js +162 -0
  56. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.8fRb4Nb5.js → wardleyDiagram-NUSXRM2D.Bbq5B2Ic.js} +1 -1
  57. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.DoOP3zZM.js → xychartDiagram-5P7HB3ND.B77HE1K8.js} +1 -1
  58. package/dist/docs/assets/{evals.md.LRCSn6Ik.js → evals.md.C851kViu.js} +1 -1
  59. package/dist/docs/assets/{reference_skills.md.C0guGcH0.js → reference_skills.md.ClkMoQsV.js} +3 -3
  60. package/dist/docs/assets/{templates_agentic-owners.md.vtjfwxbf.js → templates_agentic-owners.md.CvmABtia.js} +1 -1
  61. package/dist/docs/assets/{templates_agentic-owners.md.vtjfwxbf.lean.js → templates_agentic-owners.md.CvmABtia.lean.js} +1 -1
  62. package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.js → templates_security-reviewer.md.Gh6EF9Us.js} +3 -2
  63. package/dist/docs/assets/{templates_security-reviewer.md.CX9l9bcg.lean.js → templates_security-reviewer.md.Gh6EF9Us.lean.js} +1 -1
  64. package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.js → templates_thermo-quality-review.md.B77UyTrX.js} +1 -1
  65. package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.js → templates_thermo-review.md.DRJ7mC5U.js} +1 -1
  66. package/dist/docs/assets/{templates_triage.md.BFlQhWXf.js → templates_triage.md.CNN6b0JZ.js} +3 -3
  67. package/dist/docs/assets/{templates_triage.md.BFlQhWXf.lean.js → templates_triage.md.CNN6b0JZ.lean.js} +1 -1
  68. package/dist/docs/building-with-agents.html +35 -35
  69. package/dist/docs/deployment.html +35 -35
  70. package/dist/docs/evals.html +37 -37
  71. package/dist/docs/evals.md +2 -2
  72. package/dist/docs/guides/agent-to-agent.html +35 -35
  73. package/dist/docs/guides/bitbucket.html +35 -35
  74. package/dist/docs/guides/cloud-agents.html +35 -35
  75. package/dist/docs/guides/convert-automation.html +35 -35
  76. package/dist/docs/guides/github.html +35 -35
  77. package/dist/docs/guides/gitlab.html +35 -35
  78. package/dist/docs/guides/grokbot-agents.html +35 -35
  79. package/dist/docs/guides/hooks.html +35 -35
  80. package/dist/docs/guides/improve.html +35 -35
  81. package/dist/docs/guides/jev.html +35 -35
  82. package/dist/docs/guides/mcp-oauth.html +35 -35
  83. package/dist/docs/guides/opentelemetry.html +35 -35
  84. package/dist/docs/guides/slack.html +35 -35
  85. package/dist/docs/guides/webhooks.html +35 -35
  86. package/dist/docs/hashmap.json +1 -1
  87. package/dist/docs/hillclimbing.html +35 -35
  88. package/dist/docs/index.html +35 -35
  89. package/dist/docs/llms-full.txt +21 -15
  90. package/dist/docs/quickstart.html +35 -35
  91. package/dist/docs/reference/agent-config.html +35 -35
  92. package/dist/docs/reference/artifacts.html +35 -35
  93. package/dist/docs/reference/channels.html +35 -35
  94. package/dist/docs/reference/cli.html +35 -35
  95. package/dist/docs/reference/connections.html +35 -35
  96. package/dist/docs/reference/evals.html +35 -35
  97. package/dist/docs/reference/extensions.html +35 -35
  98. package/dist/docs/reference/hooks.html +35 -35
  99. package/dist/docs/reference/http-api.html +35 -35
  100. package/dist/docs/reference/instructions.html +35 -35
  101. package/dist/docs/reference/playground.html +35 -35
  102. package/dist/docs/reference/project-layout.html +35 -35
  103. package/dist/docs/reference/prompt.html +35 -35
  104. package/dist/docs/reference/schedules.html +35 -35
  105. package/dist/docs/reference/sessions.html +35 -35
  106. package/dist/docs/reference/skills.html +38 -38
  107. package/dist/docs/reference/subagents.html +35 -35
  108. package/dist/docs/reference/tools.html +35 -35
  109. package/dist/docs/templates/agentic-owners.html +37 -37
  110. package/dist/docs/templates/agentic-owners.md +2 -0
  111. package/dist/docs/templates/grokbot-agents.html +35 -35
  112. package/dist/docs/templates/security-reviewer.html +38 -37
  113. package/dist/docs/templates/security-reviewer.md +7 -8
  114. package/dist/docs/templates/thermo-quality-review.html +37 -37
  115. package/dist/docs/templates/thermo-quality-review.md +2 -2
  116. package/dist/docs/templates/thermo-review.html +37 -37
  117. package/dist/docs/templates/thermo-review.md +2 -2
  118. package/dist/docs/templates/triage.html +38 -38
  119. package/dist/docs/templates/triage.md +6 -1
  120. package/dist/docs/troubleshooting.html +35 -35
  121. package/dist/evals.d.ts +2 -2
  122. package/dist/internal/cli-ax.d.ts.map +1 -1
  123. package/dist/internal/cli-ax.js +14 -7
  124. package/dist/internal/eval-runner.js +7 -4
  125. package/dist/internal/init-interview.d.ts +0 -1
  126. package/dist/internal/init-interview.d.ts.map +1 -1
  127. package/dist/internal/init-interview.js +15 -24
  128. package/dist/internal/legacy-command-guard.d.ts +4 -1
  129. package/dist/internal/legacy-command-guard.d.ts.map +1 -1
  130. package/dist/internal/legacy-command-guard.js +11 -2
  131. package/dist/internal/platform-timers.d.ts +8 -1
  132. package/dist/internal/platform-timers.d.ts.map +1 -1
  133. package/dist/internal/platform-timers.js +10 -2
  134. package/dist/internal/reminder-control-plane-protocol.d.ts +8 -1
  135. package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -1
  136. package/dist/internal/reminder-runner.d.ts +5 -0
  137. package/dist/internal/reminder-runner.d.ts.map +1 -1
  138. package/dist/internal/reminder-runner.js +27 -1
  139. package/dist/internal/resolve-prod-target.d.ts +3 -0
  140. package/dist/internal/resolve-prod-target.d.ts.map +1 -1
  141. package/dist/internal/resolve-prod-target.js +2 -1
  142. package/dist/internal/run-client.d.ts +10 -1
  143. package/dist/internal/run-client.d.ts.map +1 -1
  144. package/dist/internal/run-client.js +152 -51
  145. package/dist/internal/server.d.ts +6 -0
  146. package/dist/internal/server.d.ts.map +1 -1
  147. package/dist/internal/server.js +20 -8
  148. package/dist/internal/session-links.d.ts.map +1 -1
  149. package/dist/internal/session-links.js +8 -7
  150. package/dist/internal/sessions-client.d.ts +1 -0
  151. package/dist/internal/sessions-client.d.ts.map +1 -1
  152. package/dist/internal/sessions-client.js +2 -0
  153. package/docs/evals.md +2 -2
  154. package/docs/templates/agentic-owners.md +2 -0
  155. package/docs/templates/security-reviewer.md +7 -8
  156. package/docs/templates/thermo-quality-review.md +2 -2
  157. package/docs/templates/thermo-review.md +2 -2
  158. package/docs/templates/triage.md +6 -1
  159. package/package.json +1 -1
  160. package/templates/agents-md/evals/agents.eval.ts +1 -0
  161. package/templates/code-wiki/bot/instructions.md +4 -4
  162. package/templates/security-reviewer/README.md +5 -3
  163. package/templates/security-reviewer/bot/tools/post_findings.ts +8 -8
  164. package/templates/thermo-quality-review/bot/tools/post_findings.ts +8 -8
  165. package/templates/thermo-review/bot/tools/post_findings.ts +8 -8
  166. package/dist/docs/assets/chunks/@localSearchIndexroot.BITLoOQa.js +0 -1
  167. package/dist/docs/assets/chunks/channel.B46uXH41.js +0 -1
  168. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.0cmCFsSf.js +0 -1
  169. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.0cmCFsSf.js +0 -1
  170. package/dist/docs/assets/chunks/clone.1vTOFZT1.js +0 -1
  171. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CbsZcOOu.js +0 -1
  172. package/dist/docs/assets/chunks/wardley-RL74JXVD.DEA21akR.js +0 -162
  173. /package/dist/docs/assets/{evals.md.LRCSn6Ik.lean.js → evals.md.C851kViu.lean.js} +0 -0
  174. /package/dist/docs/assets/{reference_skills.md.C0guGcH0.lean.js → reference_skills.md.ClkMoQsV.lean.js} +0 -0
  175. /package/dist/docs/assets/{templates_thermo-quality-review.md.95qmTmr1.lean.js → templates_thermo-quality-review.md.B77UyTrX.lean.js} +0 -0
  176. /package/dist/docs/assets/{templates_thermo-review.md.DQh6Q0C-.lean.js → templates_thermo-review.md.DRJ7mC5U.lean.js} +0 -0
@@ -94,40 +94,31 @@ export function runTemplateInit(input) {
94
94
  }
95
95
  });
96
96
  }
97
- export function parseTemplateAnswers(spec, raw) {
98
- var _a;
99
- const answers = {};
100
- for (const question of spec.questions) {
101
- if (!(question.id in raw)) {
102
- continue;
103
- }
104
- const parsed = parseQuestionValue(question, (_a = raw[question.id]) !== null && _a !== void 0 ? _a : "");
105
- if (!parsed.ok) {
106
- return parsed;
107
- }
108
- answers[question.id] = parsed.value;
109
- }
110
- return { ok: true, answers };
111
- }
112
97
  export function collectTemplateAnswers(input) {
113
98
  return __awaiter(this, void 0, void 0, function* () {
114
- var _a, _b, _c, _d;
115
- const vars = (_a = input.vars) !== null && _a !== void 0 ? _a : {};
99
+ var _a;
100
+ var _b, _c, _d;
101
+ const vars = (_b = input.vars) !== null && _b !== void 0 ? _b : {};
116
102
  const answers = {};
117
- const ask = (_b = input.ask) !== null && _b !== void 0 ? _b : promptTemplateQuestion;
118
- const out = (_c = input.out) !== null && _c !== void 0 ? _c : (text => process.stdout.write(text));
103
+ const ask = (_c = input.ask) !== null && _c !== void 0 ? _c : promptTemplateQuestion;
104
+ const out = (_d = input.out) !== null && _d !== void 0 ? _d : (text => process.stdout.write(text));
119
105
  for (const question of input.spec.questions) {
120
- if (question.id in vars) {
121
- const parsed = parseQuestionValue(question, (_d = vars[question.id]) !== null && _d !== void 0 ? _d : "");
106
+ if (question.id in vars || !input.interactive) {
107
+ const raw = ((_a = vars[question.id]) === null || _a === void 0 ? void 0 : _a.trim()) || question.default;
108
+ if (raw === undefined) {
109
+ // Skipping would scaffold the template's sample answer (e.g. owner/repo).
110
+ return {
111
+ ok: false,
112
+ error: `${question.id} is required: pass --var ${question.id}=... (${question.prompt})`,
113
+ };
114
+ }
115
+ const parsed = parseQuestionValue(question, raw);
122
116
  if (!parsed.ok) {
123
117
  return parsed;
124
118
  }
125
119
  answers[question.id] = parsed.value;
126
120
  continue;
127
121
  }
128
- if (!input.interactive) {
129
- continue;
130
- }
131
122
  for (;;) {
132
123
  const line = yield ask(question);
133
124
  const value = line.trim() === "" && question.default !== undefined ? question.default : line;
@@ -14,11 +14,14 @@ export declare function deploymentArchitecture(args: {
14
14
  }): Promise<"v1" | "v2">;
15
15
  /** `run --prod` returns a delivery; read the session after it is allocated. */
16
16
  export declare function v2HostedVerifyHint(slug?: string): string;
17
- export declare function unsupportedV2LegacyCommandError(slug: string): DeployApiError;
17
+ /** Legacy `--prod` commands whose v2 rejection names the v2 alternative. */
18
+ export type LegacyProdCommand = "eval" | "logs";
19
+ export declare function unsupportedV2LegacyCommandError(slug: string, command?: LegacyProdCommand): DeployApiError;
18
20
  export declare function isUnsupportedV2LegacyCommandError(error: unknown): error is DeployApiError;
19
21
  export declare function rejectV2ForLegacyCommand(args: {
20
22
  client: AgentServeDeployClient;
21
23
  teamId: number;
22
24
  slug: string;
25
+ command?: LegacyProdCommand;
23
26
  }): Promise<void>;
24
27
  //# sourceMappingURL=legacy-command-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-command-guard.d.ts","sourceRoot":"","sources":["../../src/internal/legacy-command-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGjF;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAavB;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,IAAI,SAAW,GAAG,MAAM,CAO1D;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAM5E;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAMzF;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB"}
1
+ {"version":3,"file":"legacy-command-guard.d.ts","sourceRoot":"","sources":["../../src/internal/legacy-command-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGjF;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAavB;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,IAAI,SAAW,GAAG,MAAM,CAO1D;AAED,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAShD,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAahB;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAMzF;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB"}
@@ -41,7 +41,16 @@ export function v2HostedVerifyHint(slug = "<slug>") {
41
41
  `Poll the delivery until the session is allocated, then ` +
42
42
  `\`${CLI_COMMAND_NAME} session <ses_> --prod --slug ${slug}\`.`);
43
43
  }
44
- export function unsupportedV2LegacyCommandError(slug) {
44
+ const V2_ALTERNATIVE = {
45
+ eval: () => `Run \`${CLI_COMMAND_NAME} eval\` locally, or pass --url for a running server.`,
46
+ logs: slug => `Use \`${CLI_COMMAND_NAME} deployment ${slug}\` for rollout status and ` +
47
+ `\`${CLI_COMMAND_NAME} session <ses_> --prod --slug ${slug}\` for a session's runs and logs.`,
48
+ };
49
+ export function unsupportedV2LegacyCommandError(slug, command) {
50
+ if (command !== undefined) {
51
+ return new DeployApiError(`\`${CLI_COMMAND_NAME} ${command} --prod\` is not supported for architecture v2 deployment "${slug}". ` +
52
+ V2_ALTERNATIVE[command](slug), 409);
53
+ }
45
54
  return new DeployApiError(`This command is not supported for architecture v2 deployment "${slug}". ` +
46
55
  `call and sessions stay on the v1 API. ${v2HostedVerifyHint(slug)}`, 409);
47
56
  }
@@ -54,7 +63,7 @@ export function rejectV2ForLegacyCommand(args) {
54
63
  return __awaiter(this, void 0, void 0, function* () {
55
64
  const architecture = yield deploymentArchitecture(args);
56
65
  if (architecture === "v2") {
57
- throw unsupportedV2LegacyCommandError(args.slug);
66
+ throw unsupportedV2LegacyCommandError(args.slug, args.command);
58
67
  }
59
68
  });
60
69
  }
@@ -17,7 +17,14 @@ export interface PlatformTimers {
17
17
  deleteSchedule(name: string): Promise<void>;
18
18
  putReminder(record: ReminderRecord): Promise<void>;
19
19
  getReminder(id: string): Promise<ReminderRecord | undefined>;
20
- listReminders(): Promise<ReminderRecord[]>;
20
+ /**
21
+ * Same signature as the v2 control plane. v1 timed-work has no key filter;
22
+ * callers that pass one still receive the page and filter it locally.
23
+ */
24
+ listReminders(filter?: {
25
+ purpose?: string;
26
+ continuationToken?: string;
27
+ }): Promise<ReminderRecord[]>;
21
28
  deleteReminder(id: string): Promise<void>;
22
29
  }
23
30
  export interface CursorHostedPlatformTimersOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"platform-timers.d.ts","sourceRoot":"","sources":["../../src/internal/platform-timers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAqED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,cAAc,CAoEhB;AAuED;;;;GAIG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,GAAE,iCAAsC,GAC9C,oBAAoB,CAgHtB"}
1
+ {"version":3,"file":"platform-timers.d.ts","sourceRoot":"","sources":["../../src/internal/platform-timers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAqED,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,cAAc,CAoEhB;AAuED;;;;GAIG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,GAAE,iCAAsC,GAC9C,oBAAoB,CAwHtB"}
@@ -215,9 +215,17 @@ export function createCursorHostedReminderControlPlane(options = {}) {
215
215
  return isReminderRecord(parsed) ? parsed : undefined;
216
216
  });
217
217
  },
218
- listReminders() {
218
+ listReminders(filter) {
219
219
  return __awaiter(this, void 0, void 0, function* () {
220
- const response = yield timedWorkJsonFetch(options, "GET", `${AGENTSDK_REMINDERS_PREFIX}/reminders`);
220
+ const params = new URLSearchParams();
221
+ if ((filter === null || filter === void 0 ? void 0 : filter.continuationToken) !== undefined && filter.continuationToken !== "") {
222
+ params.set("continuationToken", filter.continuationToken);
223
+ }
224
+ if ((filter === null || filter === void 0 ? void 0 : filter.purpose) !== undefined && filter.purpose !== "") {
225
+ params.set("purpose", filter.purpose);
226
+ }
227
+ const query = params.toString();
228
+ const response = yield timedWorkJsonFetch(options, "GET", `${AGENTSDK_REMINDERS_PREFIX}/reminders${query === "" ? "" : `?${query}`}`);
221
229
  if (!response.ok) {
222
230
  throw yield reminderCpReadError("list", response);
223
231
  }
@@ -133,7 +133,14 @@ export interface ReminderControlPlane {
133
133
  readonly protocolVersion: ReminderCpProtocolVersion;
134
134
  createReminder(intent: ReminderCreateIntent): Promise<ReminderRecord>;
135
135
  getReminder(id: string): Promise<ReminderRecord | undefined>;
136
- listReminders(): Promise<ReminderRecord[]>;
136
+ /**
137
+ * Unfiltered list is one page. `continuationToken` and `purpose` are
138
+ * applied before that page so a keyed read is not hidden by older rows.
139
+ */
140
+ listReminders(filter?: {
141
+ purpose?: string;
142
+ continuationToken?: string;
143
+ }): Promise<ReminderRecord[]>;
137
144
  cancelReminder(id: string, reason?: string): Promise<ReminderRecord | undefined>;
138
145
  /**
139
146
  * Re-key armed (and in-flight) reminders for a continuation rotation.
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-control-plane-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-control-plane-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,kEAAkE;AAClE,eAAO,MAAM,4BAA4B,EAAG,CAAU,CAAC;AACvD,+EAA+E;AAC/E,eAAO,MAAM,qCAAqC,EAAG,KAAe,CAAC;AAErE,MAAM,MAAM,yBAAyB,GAAG,OAAO,4BAA4B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,EAAE,oBAAoB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IACE,qEAAqE;IACrE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GACzC;IACE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;IAC1F,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEN,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAClC,UAAU,EAAE,sBAAsB,KAC/B,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,yBAAyB,CAAC;IACpD,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACtE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC7D,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACjF;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvF,oBAAoB,CAClB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAWA;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CAC7B,GAAG,oBAAoB,CAsBvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAmBtE;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB,GAAG,sBAAsB,CASzB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,GAAE,MAAmB,GACzB,cAAc,CA2ChB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,sBAAsB,CAuBxB;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,sBAAsB,GAAG,iBAAiB,CAMzF;AAgBD,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAUpF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAErE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,wBAAwB,EACjC,KAAK,GAAE,MAAmB,GACzB,0BAA0B,CA2F5B"}
1
+ {"version":3,"file":"reminder-control-plane-protocol.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-control-plane-protocol.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,11 @@ export declare class ReminderRunner {
121
121
  * arm duplicates or miss rows to cancel. v1 keeps the best-effort form.
122
122
  */
123
123
  private allRecords;
124
+ /**
125
+ * A keyed list asks the control plane for that key. An unfiltered list
126
+ * still uses allRecords. Do not replace the in-memory map with the keyed page.
127
+ */
128
+ private recordsForList;
124
129
  stop(): void;
125
130
  create(input: ReminderCreateInput): Promise<ReminderInfo>;
126
131
  list(filter?: {
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminder-runner.d.ts","sourceRoot":"","sources":["../../src/internal/reminder-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAIlB,mBAAmB,EAKnB,YAAY,EACZ,cAAc,EAGf,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAG5B,MAAM,sCAAsC,CAAC;AAU9C,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,MAAkB,CAAC;AAEzD,qBAAa,oBAAqB,SAAQ,KAAK;IAG3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE;IAFzC,YACE,UAAU,EAAE,MAAM,EACT,oBAAoB,EAAE,MAAM,EAAE,EAIxC;CACF;AAOD,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;CAChD;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GACjC,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,eAAe,GACf,UAAU,GACV,MAAM,GACN,iBAAiB,GACjB,YAAY,CAAC;AAEjB,eAAO,MAAM,4BAA4B,oCAAoC,CAAC;AA4C9E;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAEV;AA0GD,qBAAa,cAAc;IAqBvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAtBlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE;;;OAGG;IACH,OAAO,CAAC,6BAA6B,CAAS;IAE9C,YACmB,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACzC,cAAc,CAAC,EAAE,cAAc,YAAA,EAChD,OAAO,GAAE,qBAA0B,EAUpC;IAED,qEAAqE;IACrE,OAAO,KAAK,wBAAwB,GAEnC;IAED;;;;;OAKG;IACH,OAAO,KAAK,cAAc,GAKzB;IAED,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAqD7B;IAED,4EAA4E;IACtE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC3B;YAEa,OAAO;YAOP,SAAS;IAoBvB;;;;OAIG;YACW,UAAU;IAoBxB;;;OAGG;YACW,cAAc;IA4B5B,IAAI,IAAI,IAAI,CAOX;IAEK,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CA8I9D;IAEK,IAAI,CAAC,MAAM,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA+B1B;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAoB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CA8BtF;IAED,iFAAiF;IAC3E,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUtF;IAED;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB9F;IAED,uEAAuE;IACjE,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAO,GACxC,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAeD;IAED;;;;OAIG;IACG,WAAW,CAAC,UAAU,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAsBvF;YAEa,OAAO;IAyErB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,QAAQ;IAoChB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,mBAAmB;YAIb,IAAI;YAkHJ,aAAa;IAM3B,OAAO,CAAC,eAAe;IAgBvB;;;OAGG;YACW,mBAAmB;YAWnB,aAAa;IAI3B;;;;;;OAMG;YACW,qBAAqB;YAuBrB,iBAAiB;YAmDjB,cAAc;IAiB5B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mCAAmC;IAe3C;;;;;OAKG;YACW,cAAc;YAgBd,YAAY;IA+C1B,OAAO,CAAC,gBAAgB;IA4DxB,OAAO,CAAC,iBAAiB;YAeX,MAAM;YAYN,SAAS;CAmFxB;AAGD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -334,6 +334,32 @@ export class ReminderRunner {
334
334
  return [...this.records.values()];
335
335
  });
336
336
  }
337
+ /**
338
+ * A keyed list asks the control plane for that key. An unfiltered list
339
+ * still uses allRecords. Do not replace the in-memory map with the keyed page.
340
+ */
341
+ recordsForList(filter) {
342
+ return __awaiter(this, void 0, void 0, function* () {
343
+ if (this.usesControlPlaneProtocol &&
344
+ ((filter === null || filter === void 0 ? void 0 : filter.purpose) !== undefined || (filter === null || filter === void 0 ? void 0 : filter.continuationToken) !== undefined)) {
345
+ try {
346
+ const remote = yield this.controlPlane.listReminders(Object.assign(Object.assign({}, (filter.purpose === undefined ? {} : { purpose: filter.purpose })), (filter.continuationToken === undefined
347
+ ? {}
348
+ : { continuationToken: filter.continuationToken })));
349
+ this.controlPlaneReadFailureLogged = false;
350
+ for (const record of remote) {
351
+ this.records.set(record.id, record);
352
+ }
353
+ return remote;
354
+ }
355
+ catch (error) {
356
+ this.logControlPlaneReadFailure("list", error);
357
+ throw error;
358
+ }
359
+ }
360
+ return this.allRecords();
361
+ });
362
+ }
337
363
  stop() {
338
364
  this.started = false;
339
365
  for (const timer of this.timers.values()) {
@@ -469,7 +495,7 @@ export class ReminderRunner {
469
495
  }
470
496
  list(filter) {
471
497
  return __awaiter(this, void 0, void 0, function* () {
472
- const all = yield this.allRecords();
498
+ const all = yield this.recordsForList(filter);
473
499
  return all
474
500
  .filter(r => {
475
501
  if ((filter === null || filter === void 0 ? void 0 : filter.status) !== undefined) {
@@ -6,6 +6,7 @@
6
6
  * (Cursor API key on the management API; `X-Anyrun-Port-Token` on the
7
7
  * engine). Alias tokens are out of scope here.
8
8
  */
9
+ import { type LegacyProdCommand } from "./legacy-command-guard.js";
9
10
  /**
10
11
  * Interactive CLI keep-alive for hosted engines. Without these, a hibernated
11
12
  * Anyrun pod returns 417 `pod_hibernated` and never wakes. Matches the
@@ -23,6 +24,8 @@ export interface ResolveProdTargetOptions {
23
24
  err?: (text: string) => void;
24
25
  /** Skip when the caller already ran {@link rejectV2ForLegacyCommand}. */
25
26
  skipLegacyArchitectureCheck?: boolean;
27
+ /** Names the command in the {@link rejectV2ForLegacyCommand} v2 error. */
28
+ command?: LegacyProdCommand;
26
29
  /** Test seam for reachability-retry backoff. */
27
30
  sleep?: (ms: number) => Promise<void>;
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-prod-target.d.ts","sourceRoot":"","sources":["../../src/internal/resolve-prod-target.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGrE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAFxD,YACE,OAAO,EAAE,MAAM,EACN,OAAO,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAiB,EAItE;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA6F7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAsCjC;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,2BAA2B,CAAC,CAoBtC;AAwDD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB7F"}
1
+ {"version":3,"file":"resolve-prod-target.d.ts","sourceRoot":"","sources":["../../src/internal/resolve-prod-target.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,2BAA2B,CAAC;AAInC;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGrE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAFxD,YACE,OAAO,EAAE,MAAM,EACN,OAAO,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAiB,EAItE;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA8F7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAsCjC;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,2BAA2B,CAAC,CAoBtC;AAwDD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB7F"}
@@ -20,7 +20,7 @@ import { resolveDeployAuth } from "./cli-deploy.js";
20
20
  import { cursorWebsiteUrl } from "./cursor/credentials.js";
21
21
  import { DeployApiError, slugFromDirectoryName, validateDeploymentSlug, } from "./deploy-client.js";
22
22
  import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
23
- import { deploymentArchitecture, rejectV2ForLegacyCommand } from "./legacy-command-guard.js";
23
+ import { deploymentArchitecture, rejectV2ForLegacyCommand, } from "./legacy-command-guard.js";
24
24
  import { sleep as defaultSleep } from "./sleep.js";
25
25
  import { stderrPalette } from "./terminal-style.js";
26
26
  /**
@@ -75,6 +75,7 @@ export function resolveProdTarget(options) {
75
75
  client: auth.client,
76
76
  teamId: auth.teamId,
77
77
  slug,
78
+ command: options.command,
78
79
  });
79
80
  }
80
81
  // A hibernated engine can briefly omit engineAccess while getPod fails
@@ -11,12 +11,21 @@ import { type Trajectory } from "./trajectory.js";
11
11
  /** Thrown when a turn stream exceeds `timeoutMs`; carries the session id. */
12
12
  export declare class RunSessionTimeoutError extends Error {
13
13
  readonly sessionId: string;
14
- constructor(message: string, sessionId: string);
14
+ /** Events the turn recorded before the deadline. */
15
+ readonly events: SessionEvent[];
16
+ constructor(message: string, sessionId: string,
17
+ /** Events the turn recorded before the deadline. */
18
+ events: SessionEvent[]);
15
19
  }
16
20
  export interface RunClientOptions extends RequestAuth {
17
21
  baseUrl: string;
18
22
  /** Abort a hung turn. */
19
23
  timeoutMs?: number;
24
+ /**
25
+ * Stream silence that ends a connection so the session's durable log can
26
+ * settle the turn. Also bounds each log read. Default 5s.
27
+ */
28
+ stallCheckMs?: number;
20
29
  /** External cancel (combined with {@link timeoutMs} when both are set). */
21
30
  signal?: AbortSignal;
22
31
  /** Called for each stream event as it arrives (for CLI progress). */
@@ -1 +1 @@
1
- {"version":3,"file":"run-client.d.ts","sourceRoot":"","sources":["../../src/internal/run-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAF5B,YACE,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,MAAM,EAI3B;CACF;AACD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,GAAG;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,CAAC,CAyD3B"}
1
+ {"version":3,"file":"run-client.d.ts","sourceRoot":"","sources":["../../src/internal/run-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtF,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE;IAJjC,YACE,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,MAAM;IAC1B,oDAAoD;IAC3C,MAAM,EAAE,YAAY,EAAE,EAIhC;CACF;AACD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,GAAG;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gEAAgE;IAChE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,GACA,OAAO,CAAC,gBAAgB,CAAC,CA0D3B"}
@@ -14,17 +14,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  step((generator = generator.apply(thisArg, _arguments || [])).next());
15
15
  });
16
16
  };
17
+ import { setTimeout as sleep } from "node:timers/promises";
17
18
  import { mergeRequestHeaders } from "./request-headers.js";
18
- import { buildTrajectory } from "./trajectory.js";
19
+ import { fetchSessionEvents } from "./sessions-client.js";
20
+ import { buildTrajectory, parseEventsNdjson } from "./trajectory.js";
19
21
  /** Thrown when a turn stream exceeds `timeoutMs`; carries the session id. */
20
22
  export class RunSessionTimeoutError extends Error {
21
- constructor(message, sessionId) {
23
+ constructor(message, sessionId,
24
+ /** Events the turn recorded before the deadline. */
25
+ events) {
22
26
  super(message);
23
27
  this.sessionId = sessionId;
28
+ this.events = events;
24
29
  this.name = "RunSessionTimeoutError";
25
30
  }
26
31
  }
27
32
  const TERMINAL_TYPES = new Set(["session.waiting", "session.completed", "session.failed"]);
33
+ const STALL_CHECK_MS = 5000;
34
+ /** Pause before reopening a stream the server closed; doubles while closes bring nothing. */
35
+ const REOPEN_DELAY_MS = 500;
36
+ const MAX_REOPEN_DELAY_MS = 8000;
28
37
  /**
29
38
  * Run one or more messages against a live agent-serve base URL
30
39
  * (e.g. `http://127.0.0.1:3000/weather-agent`).
@@ -53,6 +62,7 @@ export function runSession(options) {
53
62
  startIndex: sessionId === undefined ? 0 : nextEventIndex,
54
63
  auth,
55
64
  timeoutMs: options.timeoutMs,
65
+ stallCheckMs: options.stallCheckMs,
56
66
  signal: options.signal,
57
67
  onEvent: options.onEvent,
58
68
  purpose: sessionId === undefined ? options.purpose : undefined,
@@ -120,6 +130,7 @@ function runOneTurn(args) {
120
130
  startIndex: args.startIndex,
121
131
  auth: args.auth,
122
132
  timeoutMs: args.timeoutMs,
133
+ stallCheckMs: args.stallCheckMs,
123
134
  signal: args.signal,
124
135
  onEvent: args.onEvent,
125
136
  });
@@ -128,84 +139,174 @@ function runOneTurn(args) {
128
139
  return Object.assign(Object.assign({ sessionId }, (continuationToken === undefined ? {} : { continuationToken })), { events, ok: !turnFailed && !sessionFailed });
129
140
  });
130
141
  }
142
+ /** One turn's events in log order. Replays of events already seen are dropped. */
143
+ class TurnEvents {
144
+ constructor(start, onEvent) {
145
+ this.onEvent = onEvent;
146
+ this.events = [];
147
+ this.ended = false;
148
+ this.asks = new Set();
149
+ this.cursor = start;
150
+ }
151
+ /** First event index this turn has not recorded. */
152
+ get next() {
153
+ return this.cursor;
154
+ }
155
+ /** The turn's terminal event is recorded. */
156
+ get done() {
157
+ return this.ended;
158
+ }
159
+ /**
160
+ * Waiting on an unanswered approval or auth request. The engine holds the
161
+ * turn open without a terminal event until someone answers.
162
+ */
163
+ get parked() {
164
+ return this.asks.size > 0;
165
+ }
166
+ add(event) {
167
+ var _a;
168
+ if (this.ended || event.index < this.cursor) {
169
+ return;
170
+ }
171
+ this.cursor = event.index + 1;
172
+ this.events.push(event);
173
+ (_a = this.onEvent) === null || _a === void 0 ? void 0 : _a.call(this, event);
174
+ if (event.type === "action.approval_requested" || event.type === "action.auth_requested") {
175
+ this.asks.add(event.data.callId);
176
+ }
177
+ else if (event.type === "action.approval_resolved" || event.type === "action.auth_resolved") {
178
+ this.asks.delete(event.data.callId);
179
+ }
180
+ this.ended = TERMINAL_TYPES.has(event.type);
181
+ }
182
+ }
183
+ /**
184
+ * Collect one turn's events from `startIndex` through its terminal event.
185
+ *
186
+ * The live stream is the fast path, not the source of truth. Whenever a
187
+ * connection ends without the terminal event (the server closes it, it breaks
188
+ * mid-body, or it goes quiet), the session's durable log decides: a finished
189
+ * turn or one parked on an unanswered approval returns, anything else reopens
190
+ * the stream after the last event recorded. The deadline reads the log once
191
+ * more before timing out.
192
+ */
131
193
  function collectStream(args) {
132
194
  return __awaiter(this, void 0, void 0, function* () {
133
- var _a, _b, _c;
134
- var _d, _e;
135
- const controller = new AbortController();
136
- const onExternalAbort = () => {
137
- controller.abort();
138
- };
139
- if (args.signal !== undefined) {
140
- if (args.signal.aborted) {
141
- controller.abort();
195
+ var _a;
196
+ var _b;
197
+ const turn = new TurnEvents(args.startIndex, args.onEvent);
198
+ const deadline = new AbortController();
199
+ const timer = args.timeoutMs === undefined ? undefined : setTimeout(() => deadline.abort(), args.timeoutMs);
200
+ const signal = args.signal === undefined ? deadline.signal : AbortSignal.any([args.signal, deadline.signal]);
201
+ try {
202
+ for (let closes = 0;;) {
203
+ const seen = turn.next;
204
+ const end = yield followStream(args, turn, signal);
205
+ if (end === "done" || (yield settled(args, turn, signal))) {
206
+ return turn.events;
207
+ }
208
+ if (end === "closed") {
209
+ closes = turn.next > seen ? 0 : closes + 1;
210
+ yield sleep(Math.min(REOPEN_DELAY_MS * Math.pow(2, closes), MAX_REOPEN_DELAY_MS), undefined, {
211
+ signal,
212
+ });
213
+ }
214
+ }
215
+ }
216
+ catch (error) {
217
+ if (!signal.aborted) {
218
+ throw error;
219
+ }
220
+ if ((_a = args.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
221
+ throw new Error("cancelled");
142
222
  }
143
- else {
144
- args.signal.addEventListener("abort", onExternalAbort, { once: true });
223
+ if (yield settled(args, turn)) {
224
+ return turn.events;
145
225
  }
226
+ throw new RunSessionTimeoutError(`turn timed out after ${(_b = args.timeoutMs) !== null && _b !== void 0 ? _b : "?"}ms (session ${args.sessionId})`, args.sessionId, turn.events);
146
227
  }
147
- const timer = args.timeoutMs === undefined ? undefined : setTimeout(() => controller.abort(), args.timeoutMs);
228
+ finally {
229
+ clearTimeout(timer);
230
+ }
231
+ });
232
+ }
233
+ /**
234
+ * Follow one stream connection until the turn's terminal event (`done`), the
235
+ * connection closes or breaks mid-body (`closed`), or it stays silent for
236
+ * `stallCheckMs` (`quiet`). A stream that cannot be opened throws.
237
+ */
238
+ function followStream(args, turn, signal) {
239
+ return __awaiter(this, void 0, void 0, function* () {
240
+ var _a;
241
+ const quiet = new AbortController();
242
+ const idle = setTimeout(() => quiet.abort(), (_a = args.stallCheckMs) !== null && _a !== void 0 ? _a : STALL_CHECK_MS);
243
+ let opened = false;
148
244
  try {
149
- const resp = yield fetch(`${args.baseUrl}/v1/session/${args.sessionId}/stream?startIndex=${args.startIndex}`, {
245
+ const resp = yield fetch(`${args.baseUrl}/v1/session/${args.sessionId}/stream?startIndex=${turn.next}`, {
150
246
  headers: mergeRequestHeaders(args.auth),
151
- signal: controller.signal,
247
+ signal: AbortSignal.any([signal, quiet.signal]),
152
248
  });
153
249
  if (!resp.ok || resp.body === null) {
154
250
  throw new Error(`stream failed (${resp.status})`);
155
251
  }
252
+ opened = true;
156
253
  const reader = resp.body.getReader();
157
254
  const decoder = new TextDecoder();
158
255
  let buffer = "";
159
- const events = [];
160
256
  for (;;) {
161
257
  const chunk = yield reader.read();
162
258
  if (chunk.done) {
163
- break;
259
+ return "closed";
164
260
  }
261
+ idle.refresh();
165
262
  buffer += decoder.decode(chunk.value, { stream: true });
166
- const lines = buffer.split("\n");
167
- buffer = (_d = lines.pop()) !== null && _d !== void 0 ? _d : "";
168
- let stop = false;
169
- for (const line of lines) {
170
- if (line.trim() === "") {
171
- continue;
172
- }
173
- let event;
174
- try {
175
- event = JSON.parse(line);
176
- }
177
- catch (_f) {
178
- continue;
179
- }
180
- events.push(event);
181
- (_a = args.onEvent) === null || _a === void 0 ? void 0 : _a.call(args, event);
182
- if (TERMINAL_TYPES.has(event.type)) {
183
- stop = true;
184
- break;
185
- }
263
+ const lines = buffer.lastIndexOf("\n") + 1;
264
+ for (const event of parseEventsNdjson(buffer.slice(0, lines))) {
265
+ turn.add(event);
186
266
  }
187
- if (stop) {
188
- break;
267
+ buffer = buffer.slice(lines);
268
+ if (turn.done) {
269
+ return "done";
189
270
  }
190
271
  }
191
- yield reader.cancel().catch(() => { });
192
- return events;
193
272
  }
194
273
  catch (error) {
195
- if (error instanceof Error && error.name === "AbortError") {
196
- if ((_b = args.signal) === null || _b === void 0 ? void 0 : _b.aborted) {
197
- throw new Error("cancelled");
198
- }
199
- throw new RunSessionTimeoutError(`turn timed out after ${(_e = args.timeoutMs) !== null && _e !== void 0 ? _e : "?"}ms (session ${args.sessionId})`, args.sessionId);
274
+ if (signal.aborted) {
275
+ throw error;
276
+ }
277
+ if (quiet.signal.aborted) {
278
+ return "quiet";
279
+ }
280
+ if (opened) {
281
+ return "closed";
200
282
  }
201
283
  throw error;
202
284
  }
203
285
  finally {
204
- (_c = args.signal) === null || _c === void 0 ? void 0 : _c.removeEventListener("abort", onExternalAbort);
205
- if (timer !== undefined) {
206
- clearTimeout(timer);
207
- }
286
+ clearTimeout(idle);
287
+ quiet.abort();
288
+ }
289
+ });
290
+ }
291
+ /**
292
+ * Record the turn's events from the session's durable log. True when the turn
293
+ * finished or parked on an unanswered approval. Each read is bounded so a
294
+ * slow log cannot hold a turn the stream would deliver.
295
+ */
296
+ function settled(args, turn, signal) {
297
+ return __awaiter(this, void 0, void 0, function* () {
298
+ var _a;
299
+ const budget = AbortSignal.timeout((_a = args.stallCheckMs) !== null && _a !== void 0 ? _a : STALL_CHECK_MS);
300
+ const events = yield fetchSessionEvents({
301
+ baseUrl: args.baseUrl,
302
+ sessionId: args.sessionId,
303
+ auth: args.auth,
304
+ signal: signal === undefined ? budget : AbortSignal.any([signal, budget]),
305
+ }).catch(() => []);
306
+ for (const event of events) {
307
+ turn.add(event);
208
308
  }
309
+ return turn.done || turn.parked;
209
310
  });
210
311
  }
211
312
  function postJson(baseUrl, path, body, auth) {
@@ -24,6 +24,12 @@ export interface StartServerInternalOptions {
24
24
  sessionRunLog?: ReturnType<typeof selectSessionRunLogStore>;
25
25
  /** Test seam: persist the engine start.log tee without a live store. */
26
26
  startLogStore?: ReturnType<typeof selectStartLogStore>;
27
+ /**
28
+ * `bdk eval` server. Cases drive seeded sessions, so live SCM and deployment
29
+ * ingest stay off, and a Cursor account GitHub credential that cannot be
30
+ * minted fails only the calls that need it.
31
+ */
32
+ evals?: boolean;
27
33
  }
28
34
  /**
29
35
  * Start an HTTP server hosting one or more agents. A single agent with an