@cursor/bdk 0.2.10 → 0.2.12

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 (436) hide show
  1. package/dist/bin/agent-serve.js +28 -26
  2. package/dist/channels/bitbucket/api.js +8 -8
  3. package/dist/channels/bitbucket/binding.js +4 -4
  4. package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
  5. package/dist/channels/bitbucket/bitbucket-webhook.js +1 -1
  6. package/dist/channels/bitbucket/checks.js +1 -1
  7. package/dist/channels/bitbucket/cursor-account.js +1 -1
  8. package/dist/channels/bitbucket/events.js +1 -1
  9. package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
  10. package/dist/channels/checks.js +2 -2
  11. package/dist/channels/deployments/deployments-channel.js +1 -1
  12. package/dist/channels/github/cursor-account.js +3 -3
  13. package/dist/channels/github/defaults.js +3 -3
  14. package/dist/channels/github/events.js +1 -1
  15. package/dist/channels/github/forward.js +8 -8
  16. package/dist/channels/github/github-channel.js +2 -2
  17. package/dist/channels/gitlab/binding.js +4 -4
  18. package/dist/channels/gitlab/checks.js +1 -1
  19. package/dist/channels/gitlab/cursor-account.js +1 -1
  20. package/dist/channels/gitlab/events.js +1 -1
  21. package/dist/channels/gitlab/gitlab-channel.js +1 -1
  22. package/dist/channels/gitlab/gitlab-webhook.js +1 -1
  23. package/dist/channels/gitlab/replay.js +2 -2
  24. package/dist/channels/origin/binding.js +3 -3
  25. package/dist/channels/origin/checks.js +1 -1
  26. package/dist/channels/origin/cursor-account.js +1 -1
  27. package/dist/channels/origin/events.js +1 -1
  28. package/dist/channels/origin/origin-channel.js +1 -1
  29. package/dist/channels/origin/origin-webhook.js +2 -2
  30. package/dist/channels/slack/agentic-delivery.js +3 -3
  31. package/dist/channels/slack/agentic-signals.js +1 -1
  32. package/dist/channels/slack/api.js +5 -5
  33. package/dist/channels/slack/approvals.js +1 -1
  34. package/dist/channels/slack/attachments.js +3 -3
  35. package/dist/channels/slack/blocks.js +3 -3
  36. package/dist/channels/slack/bot-mentions.js +4 -4
  37. package/dist/channels/slack/channel-watch.js +4 -4
  38. package/dist/channels/slack/cli-project.js +3 -3
  39. package/dist/channels/slack/dispatch.js +1 -1
  40. package/dist/channels/slack/doctor.js +1 -1
  41. package/dist/channels/slack/eval-directive.js +1 -1
  42. package/dist/channels/slack/footer.js +1 -1
  43. package/dist/channels/slack/interactive.js +2 -2
  44. package/dist/channels/slack/log.d.ts.map +1 -1
  45. package/dist/channels/slack/log.js +1 -1
  46. package/dist/channels/slack/manifest.js +1 -1
  47. package/dist/channels/slack/nudge-carrier.js +1 -1
  48. package/dist/channels/slack/nudge-store.js +2 -2
  49. package/dist/channels/slack/recording-sink.js +6 -6
  50. package/dist/channels/slack/reply-options.js +6 -6
  51. package/dist/channels/slack/self-identity.d.ts +7 -4
  52. package/dist/channels/slack/self-identity.d.ts.map +1 -1
  53. package/dist/channels/slack/self-identity.js +17 -8
  54. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  55. package/dist/channels/slack/sender-name.js +2 -6
  56. package/dist/channels/slack/setup.d.ts.map +1 -1
  57. package/dist/channels/slack/setup.js +1 -1
  58. package/dist/channels/slack/slack-channel.js +2 -2
  59. package/dist/channels/slack/socket-mode.js +2 -2
  60. package/dist/channels/slack/thread-context.js +8 -8
  61. package/dist/channels/slack/tool-cards.js +1 -1
  62. package/dist/channels/slack/user-info.d.ts +2 -1
  63. package/dist/channels/slack/user-info.d.ts.map +1 -1
  64. package/dist/channels/slack/user-info.js +16 -1
  65. package/dist/channels.js +1 -1
  66. package/dist/docs/404.html +3 -3
  67. package/dist/docs/assets/{app.DXI7bwox.js → app.CKta5zX1.js} +4 -4
  68. package/dist/docs/assets/chunks/@localSearchIndexroot.DtlCe4t6.js +1 -0
  69. package/dist/docs/assets/chunks/{VPLocalSearchBox.BrbO5mEe.js → VPLocalSearchBox.4vRM3EDG.js} +2 -2
  70. package/dist/docs/assets/chunks/{arc.BOG1yms8.js → arc.CofbA8tA.js} +1 -1
  71. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.C0hsMZnZ.js → architectureDiagram-Q4EWVU46.Mt2UV5M-.js} +1 -1
  72. package/dist/docs/assets/chunks/{baseUniq.H044KjKs.js → baseUniq.C_W0Aqp4.js} +1 -1
  73. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.BsRW6GoB.js → blockDiagram-DXYQGD6D.dAc4goE-.js} +1 -1
  74. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.B9HV5PFR.js → c4Diagram-AHTNJAMY.dnbRC3Dm.js} +1 -1
  75. package/dist/docs/assets/chunks/channel.DpljPUVU.js +1 -0
  76. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CPoT_ajl.js → chunk-4BX2VUAB.B42ltSTd.js} +1 -1
  77. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DZBwWuCL.js → chunk-4TB4RGXK.2GbAul_E.js} +1 -1
  78. package/dist/docs/assets/chunks/{chunk-55IACEB6.CZ3yTiyq.js → chunk-55IACEB6.pjzY-v-B.js} +1 -1
  79. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.6DfvHSd8.js → chunk-EDXVE4YY.BB1GXLj2.js} +1 -1
  80. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.CpBj8HfK.js → chunk-FMBD7UC4.B2WxZkoA.js} +1 -1
  81. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BdKo8YqS.js → chunk-OYMX7WX6.BMvb2w73.js} +1 -1
  82. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnXNyxJx.js → chunk-QZHKN3VN.Bmu_2lNr.js} +1 -1
  83. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cg1OcF8G.js → chunk-YZCP3GAM.Cth65EaC.js} +1 -1
  84. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DFNHq2OM.js +1 -0
  85. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DFNHq2OM.js +1 -0
  86. package/dist/docs/assets/chunks/clone.DssygCzX.js +1 -0
  87. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.1SP8al9c.js → cose-bilkent-S5V4N54A.CrfA7Iw_.js} +1 -1
  88. package/dist/docs/assets/chunks/{dagre-KV5264BT.DS1L6hJt.js → dagre-KV5264BT.PCD6KQDb.js} +1 -1
  89. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.ChsausbG.js → diagram-5BDNPKRD.CGNlYlP1.js} +1 -1
  90. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.3XsptNWj.js → diagram-G4DWMVQ6.C0cvryPD.js} +1 -1
  91. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DPA9Dk_P.js → diagram-MMDJMWI5.DHlkZHNV.js} +1 -1
  92. package/dist/docs/assets/chunks/{diagram-TYMM5635.BVswXWrB.js → diagram-TYMM5635.DDGqH_4B.js} +1 -1
  93. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.BSak5OSP.js → erDiagram-SMLLAGMA.4gOY_C3v.js} +1 -1
  94. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.CQgN4TTz.js → flowDiagram-DWJPFMVM.8i7zsxuh.js} +1 -1
  95. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.GrT0kA4a.js → ganttDiagram-T4ZO3ILL.BEKHYdM-.js} +1 -1
  96. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CdS7Ucll.js → gitGraphDiagram-UUTBAWPF.ACzeLGiB.js} +1 -1
  97. package/dist/docs/assets/chunks/{graph.BVqKRmRo.js → graph.08C3hS6m.js} +1 -1
  98. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.C3C9FRto.js → infoDiagram-42DDH7IO.D8R9obOH.js} +1 -1
  99. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js → ishikawaDiagram-UXIWVN3A.CmgYpCWL.js} +1 -1
  100. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CaHMfK4b.js → journeyDiagram-VCZTEJTY.DUzjGfoZ.js} +1 -1
  101. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.CjhIUwcA.js → kanban-definition-6JOO6SKY.DbcW2iZ0.js} +1 -1
  102. package/dist/docs/assets/chunks/{layout.CGU3gfSf.js → layout.BaDEpJzu.js} +1 -1
  103. package/dist/docs/assets/chunks/{linear.DaihpW_n.js → linear.B_zRQgCU.js} +1 -1
  104. package/dist/docs/assets/chunks/{min.BS-j8kHQ.js → min.BYscCdSu.js} +1 -1
  105. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BVJ1Bbnk.js → mindmap-definition-QFDTVHPH.Ggu0jg86.js} +1 -1
  106. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.Cz1WIv9r.js → pieDiagram-DEJITSTG.D_q4SVDT.js} +1 -1
  107. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DKLFxcjy.js → quadrantDiagram-34T5L4WZ.D3zGj5ok.js} +1 -1
  108. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.BHegiK7x.js → requirementDiagram-MS252O5E.DVTg7zr2.js} +1 -1
  109. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.DYkY6yPc.js → sankeyDiagram-XADWPNL6.D3X8jm57.js} +1 -1
  110. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DYQ1QUrI.js → sequenceDiagram-FGHM5R23.Dpjai9YP.js} +1 -1
  111. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.Iru8BsFo.js → stateDiagram-FHFEXIEX.D_AbQBuP.js} +1 -1
  112. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CWKWRxRx.js +1 -0
  113. package/dist/docs/assets/chunks/{theme.DaplWQhQ.js → theme.BcgOnbZ6.js} +2 -2
  114. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BwFA8hiX.js → timeline-definition-GMOUNBTQ.Cp3DKBe2.js} +1 -1
  115. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZ60W1C_.js → vennDiagram-DHZGUBPP.Bcvg-Aqu.js} +1 -1
  116. package/dist/docs/assets/chunks/wardley-RL74JXVD.CCpdcUSq.js +162 -0
  117. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.B69D2r8-.js → wardleyDiagram-NUSXRM2D.L0yehCc5.js} +1 -1
  118. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CLPZEIU9.js → xychartDiagram-5P7HB3ND.Cw8-tJmw.js} +1 -1
  119. package/dist/docs/assets/{reference_connections.md.Bljpve-y.js → reference_connections.md.DLrgAd5f.js} +1 -1
  120. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.js → reference_hooks.md.B-eGa2km.js} +3 -3
  121. package/dist/docs/assets/{reference_hooks.md.C5LCJ1R3.lean.js → reference_hooks.md.B-eGa2km.lean.js} +1 -1
  122. package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.js → reference_sessions.md.CyM7ARz1.js} +1 -1
  123. package/dist/docs/assets/{reference_skills.md.C0guGcH0.js → reference_skills.md.ClkMoQsV.js} +3 -3
  124. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.js → reference_tools.md.DzIY9JzY.js} +3 -3
  125. package/dist/docs/assets/{reference_tools.md.v3SXVSs_.lean.js → reference_tools.md.DzIY9JzY.lean.js} +1 -1
  126. package/dist/docs/assets/{style.C130MVnH.css → style.Dwls12uf.css} +1 -1
  127. package/dist/docs/building-with-agents.html +37 -37
  128. package/dist/docs/deployment.html +37 -37
  129. package/dist/docs/evals.html +37 -37
  130. package/dist/docs/guides/agent-to-agent.html +37 -37
  131. package/dist/docs/guides/bitbucket.html +37 -37
  132. package/dist/docs/guides/cloud-agents.html +37 -37
  133. package/dist/docs/guides/convert-automation.html +37 -37
  134. package/dist/docs/guides/github.html +37 -37
  135. package/dist/docs/guides/gitlab.html +37 -37
  136. package/dist/docs/guides/grokbot-agents.html +37 -37
  137. package/dist/docs/guides/hooks.html +37 -37
  138. package/dist/docs/guides/improve.html +37 -37
  139. package/dist/docs/guides/jev.html +37 -37
  140. package/dist/docs/guides/mcp-oauth.html +37 -37
  141. package/dist/docs/guides/migrate.html +37 -37
  142. package/dist/docs/guides/opentelemetry.html +37 -37
  143. package/dist/docs/guides/slack.html +37 -37
  144. package/dist/docs/guides/webhooks.html +37 -37
  145. package/dist/docs/hashmap.json +1 -1
  146. package/dist/docs/hillclimbing.html +37 -37
  147. package/dist/docs/index.html +37 -37
  148. package/dist/docs/llms-full.txt +15 -2
  149. package/dist/docs/quickstart.html +37 -37
  150. package/dist/docs/reference/agent-config.html +37 -37
  151. package/dist/docs/reference/artifacts.html +37 -37
  152. package/dist/docs/reference/channels.html +37 -37
  153. package/dist/docs/reference/cli.html +37 -37
  154. package/dist/docs/reference/connections.html +39 -39
  155. package/dist/docs/reference/connections.md +2 -1
  156. package/dist/docs/reference/evals.html +37 -37
  157. package/dist/docs/reference/extensions.html +37 -37
  158. package/dist/docs/reference/hooks.html +39 -39
  159. package/dist/docs/reference/hooks.md +1 -0
  160. package/dist/docs/reference/http-api.html +37 -37
  161. package/dist/docs/reference/instructions.html +37 -37
  162. package/dist/docs/reference/playground.html +36 -36
  163. package/dist/docs/reference/project-layout.html +37 -37
  164. package/dist/docs/reference/prompt.html +37 -37
  165. package/dist/docs/reference/schedules.html +37 -37
  166. package/dist/docs/reference/sessions.html +37 -37
  167. package/dist/docs/reference/sessions.md +1 -1
  168. package/dist/docs/reference/skills.html +40 -40
  169. package/dist/docs/reference/subagents.html +37 -37
  170. package/dist/docs/reference/tools.html +39 -39
  171. package/dist/docs/reference/tools.md +11 -0
  172. package/dist/docs/templates/agentic-owners.html +37 -37
  173. package/dist/docs/templates/grokbot-agents.html +37 -37
  174. package/dist/docs/templates/security-reviewer.html +37 -37
  175. package/dist/docs/templates/thermo-quality-review.html +37 -37
  176. package/dist/docs/templates/thermo-review.html +37 -37
  177. package/dist/docs/templates/triage.html +37 -37
  178. package/dist/docs/troubleshooting.html +36 -36
  179. package/dist/evals/assertions.d.ts.map +1 -1
  180. package/dist/evals/assertions.js +21 -19
  181. package/dist/evals/expect.js +1 -1
  182. package/dist/evals/judge.js +1 -1
  183. package/dist/evals/reporters.js +8 -8
  184. package/dist/evals/run-facts.js +2 -2
  185. package/dist/evals.js +6 -6
  186. package/dist/extensions/cursor-cloud-agents/extension.d.ts +2 -0
  187. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  188. package/dist/extensions/cursor-cloud-agents/extension.js +2 -1
  189. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +16 -0
  190. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  191. package/dist/extensions/cursor-cloud-agents/lib/backend.js +44 -3
  192. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
  193. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts +23 -0
  194. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.d.ts.map +1 -0
  195. package/dist/extensions/cursor-cloud-agents/lib/launch-agent.js +32 -0
  196. package/dist/extensions/cursor-cloud-agents/lib/repos.js +2 -2
  197. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
  198. package/dist/extensions/cursor-cloud-agents/lib/watch.d.ts.map +1 -1
  199. package/dist/extensions/cursor-cloud-agents/lib/watch.js +1 -1
  200. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  201. package/dist/extensions/cursor-cloud-agents/tools/launch.js +3 -8
  202. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  203. package/dist/extensions/cursor-grokbot-agents/extension.js +3 -3
  204. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  205. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +3 -3
  206. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +4 -4
  207. package/dist/extensions/cursor-grokbot-agents/tools/list.js +1 -1
  208. package/dist/extensions/improve/skills/yourself.js +1 -1
  209. package/dist/extensions/jev/extension.js +2 -2
  210. package/dist/extensions/jev/tools/evaluate.js +1 -1
  211. package/dist/extensions/slack-communication/tools/react.js +1 -1
  212. package/dist/files-backends/cursor-hosted.js +8 -8
  213. package/dist/files-backends/local-fs.js +1 -1
  214. package/dist/filesystem.d.ts.map +1 -1
  215. package/dist/filesystem.js +15 -15
  216. package/dist/internal/advertise-tools.d.ts +3 -2
  217. package/dist/internal/advertise-tools.d.ts.map +1 -1
  218. package/dist/internal/advertise-tools.js +11 -9
  219. package/dist/internal/approval-gate.js +1 -1
  220. package/dist/internal/artifacts-store.js +13 -13
  221. package/dist/internal/as-of.js +2 -2
  222. package/dist/internal/authored-alias-hooks.js +1 -1
  223. package/dist/internal/builtin-tools/reminders.js +2 -2
  224. package/dist/internal/chat-client.js +5 -5
  225. package/dist/internal/cli-ax.js +14 -14
  226. package/dist/internal/cli-bitbucket.js +10 -10
  227. package/dist/internal/cli-convert-automation.js +2 -2
  228. package/dist/internal/cli-cursor.js +2 -2
  229. package/dist/internal/cli-deploy.d.ts.map +1 -1
  230. package/dist/internal/cli-deploy.js +40 -40
  231. package/dist/internal/cli-docs.js +5 -5
  232. package/dist/internal/cli-github.js +15 -15
  233. package/dist/internal/cli-gitlab.js +10 -10
  234. package/dist/internal/cli-images.js +16 -16
  235. package/dist/internal/cli-manifest.js +1 -1
  236. package/dist/internal/cli-mcp-oauth.js +5 -5
  237. package/dist/internal/cli-mcp.js +3 -3
  238. package/dist/internal/cli-migrate.js +1 -1
  239. package/dist/internal/cli-skills.js +2 -2
  240. package/dist/internal/cli-slack.js +5 -5
  241. package/dist/internal/cloud-turn-cost.js +1 -1
  242. package/dist/internal/continuation-identity.js +6 -6
  243. package/dist/internal/conversation-mirror.js +5 -5
  244. package/dist/internal/convert-automation/convert-workflow.js +24 -24
  245. package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
  246. package/dist/internal/cursor/account-mcp.js +20 -20
  247. package/dist/internal/cursor/backend-client.js +6 -6
  248. package/dist/internal/cursor/credentials.js +1 -1
  249. package/dist/internal/cursor/store-api-client.js +1 -1
  250. package/dist/internal/cursor-account-mcp-auth.js +9 -9
  251. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
  252. package/dist/internal/cursor-deployment-relay.js +9 -9
  253. package/dist/internal/cursor-event-relay.js +10 -10
  254. package/dist/internal/cursor-relay-core.js +2 -2
  255. package/dist/internal/deploy-client.d.ts.map +1 -1
  256. package/dist/internal/deploy-client.js +3 -0
  257. package/dist/internal/deploy-manifest.js +10 -10
  258. package/dist/internal/discovery/agent-config.js +2 -2
  259. package/dist/internal/discovery/agent.js +6 -6
  260. package/dist/internal/discovery/connections.js +5 -5
  261. package/dist/internal/discovery/cursor-plugin.js +12 -12
  262. package/dist/internal/discovery/extension-overlay.js +3 -3
  263. package/dist/internal/discovery/extensions.js +6 -6
  264. package/dist/internal/discovery/info.js +9 -9
  265. package/dist/internal/discovery/instructions.js +1 -1
  266. package/dist/internal/discovery/project.js +3 -3
  267. package/dist/internal/discovery/services.js +1 -1
  268. package/dist/internal/discovery/tools.js +1 -1
  269. package/dist/internal/docs-site.js +2 -2
  270. package/dist/internal/env-file.js +1 -1
  271. package/dist/internal/eval-run-store.js +7 -7
  272. package/dist/internal/eval-runner.d.ts.map +1 -1
  273. package/dist/internal/eval-runner.js +14 -14
  274. package/dist/internal/eval-transport.js +1 -1
  275. package/dist/internal/evals-client.js +4 -4
  276. package/dist/internal/event-log.js +8 -8
  277. package/dist/internal/event-mapper.js +13 -13
  278. package/dist/internal/expected-delivery-failure.js +2 -2
  279. package/dist/internal/filesystem/format.js +2 -2
  280. package/dist/internal/filesystem/nearest.js +3 -3
  281. package/dist/internal/filesystem/scratch.js +3 -3
  282. package/dist/internal/filesystem/tools.js +6 -6
  283. package/dist/internal/filesystem/walk.d.ts.map +1 -1
  284. package/dist/internal/filesystem/walk.js +2 -2
  285. package/dist/internal/framework-file-storage.d.ts.map +1 -1
  286. package/dist/internal/framework-file-storage.js +6 -5
  287. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  288. package/dist/internal/framework-storage-selection.js +4 -2
  289. package/dist/internal/github-fanout.d.ts.map +1 -1
  290. package/dist/internal/github-fanout.js +3 -3
  291. package/dist/internal/guest-network.js +4 -4
  292. package/dist/internal/host-files.js +1 -1
  293. package/dist/internal/host-kv.js +2 -2
  294. package/dist/internal/hosted-catch-protocol.js +1 -1
  295. package/dist/internal/hosted-catch.js +1 -1
  296. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  297. package/dist/internal/hosted-delivery-protocol.js +14 -14
  298. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  299. package/dist/internal/hosted-delivery.js +23 -9
  300. package/dist/internal/hosted-eval-cases.js +4 -4
  301. package/dist/internal/hosted-execution-diag.js +3 -3
  302. package/dist/internal/hosting.js +1 -1
  303. package/dist/internal/http-channel.js +1 -1
  304. package/dist/internal/http-control-plane-session.js +2 -2
  305. package/dist/internal/init-interview.js +7 -7
  306. package/dist/internal/init-project.d.ts.map +1 -1
  307. package/dist/internal/init-project.js +12 -12
  308. package/dist/internal/inline-stdio-mcp.js +2 -2
  309. package/dist/internal/install-cursor-skills.js +11 -11
  310. package/dist/internal/json-schema.js +1 -1
  311. package/dist/internal/local-control-plane.js +3 -3
  312. package/dist/internal/local-env.js +3 -3
  313. package/dist/internal/log-ring.js +1 -1
  314. package/dist/internal/logs-client.js +1 -1
  315. package/dist/internal/mcp-endpoint.js +8 -8
  316. package/dist/internal/mcp-host.d.ts.map +1 -1
  317. package/dist/internal/mcp-host.js +5 -5
  318. package/dist/internal/mcp-oauth-on-demand.js +3 -3
  319. package/dist/internal/mcp-oauth.js +5 -5
  320. package/dist/internal/net.js +2 -2
  321. package/dist/internal/otel/config.js +3 -3
  322. package/dist/internal/otel/runtime.js +13 -13
  323. package/dist/internal/peer-connections.js +2 -2
  324. package/dist/internal/persistent-stage-log-mirror.d.ts +57 -0
  325. package/dist/internal/persistent-stage-log-mirror.d.ts.map +1 -0
  326. package/dist/internal/persistent-stage-log-mirror.js +231 -0
  327. package/dist/internal/platform-schedule-sync.js +1 -1
  328. package/dist/internal/platform-timers.js +1 -1
  329. package/dist/internal/playground/static.js +2 -2
  330. package/dist/internal/playground/toolchain.js +2 -2
  331. package/dist/internal/playground-proxy.js +3 -3
  332. package/dist/internal/process-memory-telemetry.js +1 -1
  333. package/dist/internal/reminder-runner.d.ts +1 -1
  334. package/dist/internal/reminder-runner.d.ts.map +1 -1
  335. package/dist/internal/reminder-runner.js +14 -16
  336. package/dist/internal/reminder-store.js +1 -1
  337. package/dist/internal/resolved-connections.js +8 -8
  338. package/dist/internal/router.js +4 -4
  339. package/dist/internal/run-client.js +2 -2
  340. package/dist/internal/schedule-runner.js +6 -6
  341. package/dist/internal/sdk-runner.d.ts.map +1 -1
  342. package/dist/internal/sdk-runner.js +6 -6
  343. package/dist/internal/serve-restart.js +1 -1
  344. package/dist/internal/server.d.ts.map +1 -1
  345. package/dist/internal/server.js +93 -72
  346. package/dist/internal/session-cost.js +3 -3
  347. package/dist/internal/session-engine.d.ts +8 -0
  348. package/dist/internal/session-engine.d.ts.map +1 -1
  349. package/dist/internal/session-engine.js +183 -118
  350. package/dist/internal/session-live-publisher.d.ts +46 -0
  351. package/dist/internal/session-live-publisher.d.ts.map +1 -0
  352. package/dist/internal/session-live-publisher.js +352 -0
  353. package/dist/internal/session-run-log.js +6 -6
  354. package/dist/internal/sessions-client.js +3 -3
  355. package/dist/internal/skill-catalog.js +2 -2
  356. package/dist/internal/sleep.js +1 -1
  357. package/dist/internal/start-log-store.d.ts +5 -1
  358. package/dist/internal/start-log-store.d.ts.map +1 -1
  359. package/dist/internal/start-log-store.js +5 -3
  360. package/dist/internal/storage-coordinator.js +12 -12
  361. package/dist/internal/store-api-protocol.d.ts +51 -0
  362. package/dist/internal/store-api-protocol.d.ts.map +1 -1
  363. package/dist/internal/store-api-protocol.js +39 -2
  364. package/dist/internal/store-mirror.js +4 -4
  365. package/dist/internal/stream-progress.d.ts.map +1 -1
  366. package/dist/internal/stream-progress.js +4 -0
  367. package/dist/internal/terminal-style.js +2 -2
  368. package/dist/internal/tool-call-retry.d.ts +87 -0
  369. package/dist/internal/tool-call-retry.d.ts.map +1 -0
  370. package/dist/internal/tool-call-retry.js +387 -0
  371. package/dist/internal/tool-result.js +3 -3
  372. package/dist/internal/trajectory.js +7 -7
  373. package/dist/internal/turn-governor.js +2 -2
  374. package/dist/internal/turn-outbox.js +1 -1
  375. package/dist/internal/update-check.d.ts.map +1 -1
  376. package/dist/internal/update-check.js +4 -2
  377. package/dist/internal/v2-hosting.d.ts +6 -0
  378. package/dist/internal/v2-hosting.d.ts.map +1 -1
  379. package/dist/internal/v2-hosting.js +7 -1
  380. package/dist/internal/workspace.js +4 -4
  381. package/dist/kv/memory-kv.js +3 -3
  382. package/dist/playground/assets/{index-JekUQERK.js → index-HN5lOuAX.js} +42 -42
  383. package/dist/playground/assets/index-JY1wKCMg.css +1 -0
  384. package/dist/playground/index.html +2 -2
  385. package/dist/prompt.js +1 -1
  386. package/dist/storage-backends/cursor-hosted-v2.js +2 -2
  387. package/dist/storage-backends/file-kv.js +7 -7
  388. package/dist/storage-protocol.d.ts +7 -0
  389. package/dist/storage-protocol.d.ts.map +1 -1
  390. package/dist/storage-protocol.js +7 -0
  391. package/dist/storage.js +3 -3
  392. package/dist/types.d.ts +15 -0
  393. package/dist/types.d.ts.map +1 -1
  394. package/dist/types.js +4 -4
  395. package/docs/reference/connections.md +2 -1
  396. package/docs/reference/hooks.md +1 -0
  397. package/docs/reference/sessions.md +1 -1
  398. package/docs/reference/tools.md +11 -0
  399. package/package.json +6 -6
  400. package/templates/agentic-owners/bot/channels/github.ts +2 -2
  401. package/templates/agentic-owners/bot/lib/github.ts +7 -5
  402. package/templates/agentic-owners/bot/lib/owners/decision.ts +9 -9
  403. package/templates/agentic-owners/bot/lib/owners/handles.ts +2 -2
  404. package/templates/agentic-owners/bot/lib/owners/match.ts +5 -3
  405. package/templates/agentic-owners/bot/lib/owners/matching.ts +1 -1
  406. package/templates/agentic-owners/bot/lib/owners/parse.ts +4 -4
  407. package/templates/agentic-owners/bot/lib/owners/prompt.ts +1 -1
  408. package/templates/agentic-owners/bot/lib/review.ts +18 -17
  409. package/templates/agentic-owners/evals/owners.eval.ts +2 -2
  410. package/templates/agents-md/bot/lib/collect.ts +6 -6
  411. package/templates/agents-md/bot/lib/config.ts +1 -1
  412. package/templates/agents-md/bot/tools/apply_agents.ts +4 -4
  413. package/templates/code-wiki/bot/channels/github.ts +3 -3
  414. package/templates/code-wiki/bot/lib/repos.ts +1 -1
  415. package/templates/code-wiki/bot/tools/apply_wiki.ts +2 -2
  416. package/templates/demo/bot/lib/collect.ts +1 -1
  417. package/templates/demo/bot/lib/repos.ts +1 -1
  418. package/templates/demo/bot/tools/record_demo.ts +1 -1
  419. package/templates/pr-autofixer/bot/channels/github.ts +2 -2
  420. package/templates/pr-autofixer/bot/lib/merge-watch.ts +2 -2
  421. package/templates/pr-autofixer/bot/lib/repos.ts +2 -2
  422. package/templates/pr-autofixer/bot/lib/webhook-routing.ts +1 -1
  423. package/templates/security-help/bot/lib/repos.ts +1 -1
  424. package/templates/security-reviewer/bot/lib/repos.ts +1 -1
  425. package/templates/triage/bot/lib/actuate.ts +15 -15
  426. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +0 -1
  427. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +0 -1
  428. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +0 -1
  429. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +0 -1
  430. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +0 -1
  431. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +0 -1
  432. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +0 -162
  433. package/dist/playground/assets/index-DXm_VXAQ.css +0 -1
  434. /package/dist/docs/assets/{reference_connections.md.Bljpve-y.lean.js → reference_connections.md.DLrgAd5f.lean.js} +0 -0
  435. /package/dist/docs/assets/{reference_sessions.md.CM5zo3w4.lean.js → reference_sessions.md.CyM7ARz1.lean.js} +0 -0
  436. /package/dist/docs/assets/{reference_skills.md.C0guGcH0.lean.js → reference_skills.md.ClkMoQsV.lean.js} +0 -0
@@ -115,7 +115,7 @@ export async function loadAgent(ctx, agentDir, options) {
115
115
  hasRoot,
116
116
  tools: authoredAllowlist,
117
117
  }));
118
- const clash = tools.find(tool => {
118
+ const clash = tools.find((tool) => {
119
119
  if (reservedNames.has(tool.name)) {
120
120
  return true;
121
121
  }
@@ -176,7 +176,7 @@ export async function loadAgent(ctx, agentDir, options) {
176
176
  // non-local agent that declares them must fail at serve start — never
177
177
  // run without the connection's tools or identity. (Hybrid per-send
178
178
  // cloud sessions fail closed in the session engine.)
179
- const perSessionConnection = connections.find(connection => connection.advertiseTools === true || connection.auth !== undefined);
179
+ const perSessionConnection = connections.find((connection) => connection.advertiseTools === true || connection.auth !== undefined);
180
180
  if (perSessionConnection !== undefined && runtime !== "local") {
181
181
  ctx.diagnostics.push({
182
182
  severity: "error",
@@ -189,7 +189,7 @@ export async function loadAgent(ctx, agentDir, options) {
189
189
  // strands authored scripts deserves a loud diagnostic, not silence.
190
190
  if (allowedTools !== undefined &&
191
191
  !allowedTools.includes("shell") &&
192
- tools.some(tool => tool.execution === "agent")) {
192
+ tools.some((tool) => tool.execution === "agent")) {
193
193
  ctx.diagnostics.push({
194
194
  severity: "warning",
195
195
  path: displayPath(ctx, join(agentDir, "agent.ts")),
@@ -227,7 +227,7 @@ export async function loadAgent(ctx, agentDir, options) {
227
227
  }
228
228
  if (runtime === "cloud") {
229
229
  warnCloudRuntimeLimitations(ctx, agentDir, {
230
- agentTools: tools.filter(tool => tool.execution === "agent").length,
230
+ agentTools: tools.filter((tool) => tool.execution === "agent").length,
231
231
  skills: skills.length,
232
232
  seedFiles: seedFiles.length,
233
233
  hasCloudOptions: cloud !== undefined,
@@ -237,8 +237,8 @@ export async function loadAgent(ctx, agentDir, options) {
237
237
  // After appendBuiltinTools so opted-in built-ins (server-executed) count.
238
238
  if (runtime === "grokbot") {
239
239
  checkGrokBotRuntimeLimitations(ctx, agentDir, {
240
- serverTools: tools.filter(tool => tool.execution === "server").length,
241
- agentTools: tools.filter(tool => tool.execution === "agent").length,
240
+ serverTools: tools.filter((tool) => tool.execution === "server").length,
241
+ agentTools: tools.filter((tool) => tool.execution === "agent").length,
242
242
  skills: skills.length,
243
243
  seedFiles: seedFiles.length,
244
244
  connections: connections.length + hostConnections.length,
@@ -27,7 +27,7 @@ function hasAuthorizationHeader(headers) {
27
27
  if (headers === undefined) {
28
28
  return false;
29
29
  }
30
- return Object.keys(headers).some(key => key.toLowerCase() === "authorization");
30
+ return Object.keys(headers).some((key) => key.toLowerCase() === "authorization");
31
31
  }
32
32
  function parseConnectionEffects(effects) {
33
33
  if (effects === undefined) {
@@ -53,7 +53,7 @@ function parseConnectionTools(tools) {
53
53
  if (!Array.isArray(tools) || tools.length === 0) {
54
54
  return { ok: false };
55
55
  }
56
- if (tools.some(name => typeof name !== "string")) {
56
+ if (tools.some((name) => typeof name !== "string")) {
57
57
  return { ok: false };
58
58
  }
59
59
  const normalized = normalizeConnectionTools(tools);
@@ -107,7 +107,7 @@ function connectionTransport(connection) {
107
107
  export async function loadHostConnections(ctx, agentDir, modelConnections) {
108
108
  const hostDir = join(agentDir, "host-connections");
109
109
  const loaded = await loadConnections(ctx, hostDir, "host");
110
- const modelNames = new Set(modelConnections.map(connection => connection.name));
110
+ const modelNames = new Set(modelConnections.map((connection) => connection.name));
111
111
  const hostConnections = [];
112
112
  for (const connection of loaded) {
113
113
  if (modelNames.has(connection.name)) {
@@ -330,7 +330,7 @@ export async function compileConnection(ctx, entryPath, name, connection, role)
330
330
  }
331
331
  if ("cursorAccount" in transport &&
332
332
  transport.servers !== undefined &&
333
- (transport.servers.length === 0 || transport.servers.some(server => isBlank(server)))) {
333
+ (transport.servers.length === 0 || transport.servers.some((server) => isBlank(server)))) {
334
334
  ctx.diagnostics.push({
335
335
  severity: "error",
336
336
  path: displayPath(ctx, entryPath),
@@ -353,7 +353,7 @@ export async function compileConnection(ctx, entryPath, name, connection, role)
353
353
  ctx.diagnostics.push({
354
354
  severity: "warning",
355
355
  path: displayPath(ctx, entryPath),
356
- message: `MCP connection "${name}" templates ${unresolved.map(variable => `\${${variable}}`).join(", ")}, which the environment does not set. The value resolves when the connection opens, so hosted deployments are fine; locally, set it before the turn or the credential is empty.`,
356
+ message: `MCP connection "${name}" templates ${unresolved.map((variable) => `\${${variable}}`).join(", ")}, which the environment does not set. The value resolves when the connection opens, so hosted deployments are fine; locally, set it before the turn or the credential is empty.`,
357
357
  });
358
358
  }
359
359
  return {
@@ -21,12 +21,12 @@ const PLUGIN_ROOT_VARIABLES = new Set(["CURSOR_PLUGIN_ROOT", "CLAUDE_PLUGIN_ROOT
21
21
  /** A component slot's declaration: one directory or a list of paths. */
22
22
  const pathsSchema = z
23
23
  .union([z.string(), z.array(z.string())])
24
- .transform(value => (typeof value === "string" ? [value] : value));
24
+ .transform((value) => (typeof value === "string" ? [value] : value));
25
25
  /** A blank or null value reads as absent, as a missing key would. */
26
26
  const text = z
27
27
  .string()
28
28
  .nullish()
29
- .transform(value => value === undefined || value === null || value.trim() === "" ? undefined : value);
29
+ .transform((value) => value === undefined || value === null || value.trim() === "" ? undefined : value);
30
30
  const manifestSchema = z.object({
31
31
  description: text.optional(),
32
32
  skills: pathsSchema.optional(),
@@ -41,11 +41,11 @@ const manifestSchema = z.object({
41
41
  z.array(z.union([z.string(), z.record(z.unknown())])),
42
42
  ])
43
43
  .optional()
44
- .transform(value => {
44
+ .transform((value) => {
45
45
  const items = value === undefined || Array.isArray(value) ? (value ?? []) : [value];
46
46
  return {
47
- paths: items.filter(item => typeof item === "string"),
48
- inline: items.filter(item => typeof item !== "string"),
47
+ paths: items.filter((item) => typeof item === "string"),
48
+ inline: items.filter((item) => typeof item !== "string"),
49
49
  };
50
50
  }),
51
51
  });
@@ -84,7 +84,7 @@ export async function readCursorPlugin(ctx, root, mountPath, variables, overlaid
84
84
  };
85
85
  const skills = await loadPluginSkills(plugin, manifest.data.skills);
86
86
  for (const command of await loadPluginCommands(plugin, manifest.data.commands)) {
87
- if (skills.some(skill => skill.name === command.name)) {
87
+ if (skills.some((skill) => skill.name === command.name)) {
88
88
  ctx.diagnostics.push({
89
89
  severity: "warning",
90
90
  path: displayPath(ctx, root),
@@ -170,7 +170,7 @@ async function loadPluginSkills(plugin, declared) {
170
170
  const skills = [];
171
171
  for (const dir of dirs) {
172
172
  const skill = await readSkillDir(plugin, dir);
173
- if (skill !== undefined && !skills.some(s => s.name === skill.name)) {
173
+ if (skill !== undefined && !skills.some((s) => s.name === skill.name)) {
174
174
  skills.push(skill);
175
175
  }
176
176
  }
@@ -226,7 +226,7 @@ async function loadPluginAgents(plugin, declared) {
226
226
  for (const path of await componentFiles(plugin, declared, "agents", MARKDOWN_EXTENSIONS)) {
227
227
  const { data, body } = await readMarkdown(plugin, path);
228
228
  const name = componentName(plugin, data.name ?? fileStem(path), path);
229
- if (name === undefined || agents.some(agent => agent.name === name)) {
229
+ if (name === undefined || agents.some((agent) => agent.name === name)) {
230
230
  continue;
231
231
  }
232
232
  if (isBlank(body)) {
@@ -311,7 +311,7 @@ function mcpServersOf(data) {
311
311
  }
312
312
  function serverConnection(plugin, name, raw, path) {
313
313
  const unresolved = new Set();
314
- const expanded = expandPlaceholders(raw, key => {
314
+ const expanded = expandPlaceholders(raw, (key) => {
315
315
  if (PLUGIN_ROOT_VARIABLES.has(key)) {
316
316
  return plugin.root;
317
317
  }
@@ -321,7 +321,7 @@ function serverConnection(plugin, name, raw, path) {
321
321
  plugin.ctx.diagnostics.push({
322
322
  severity: "error",
323
323
  path: displayPath(plugin.ctx, path),
324
- message: `MCP server "${name}" needs ${[...unresolved].map(v => `\${${v}}`).join(", ")}. Pass it in cursorPlugin({ variables }) or set it in the environment.`,
324
+ message: `MCP server "${name}" needs ${[...unresolved].map((v) => `\${${v}}`).join(", ")}. Pass it in cursorPlugin({ variables }) or set it in the environment.`,
325
325
  });
326
326
  return undefined;
327
327
  }
@@ -395,7 +395,7 @@ function expandPlaceholders(value, lookup, unresolved) {
395
395
  });
396
396
  }
397
397
  if (Array.isArray(value)) {
398
- return value.map(item => expandPlaceholders(item, lookup, unresolved));
398
+ return value.map((item) => expandPlaceholders(item, lookup, unresolved));
399
399
  }
400
400
  if (isRecord(value)) {
401
401
  const out = {};
@@ -433,7 +433,7 @@ async function componentFiles(plugin, declared, folder, extensions) {
433
433
  files.push(path);
434
434
  }
435
435
  }
436
- return files.filter(file => extensions.has(extname(file)));
436
+ return files.filter((file) => extensions.has(extname(file)));
437
437
  }
438
438
  /** Manifest paths resolve against the plugin root; escaping ones are refused, as in Cursor. */
439
439
  function declaredPaths(plugin, declared) {
@@ -34,13 +34,13 @@ export async function overlaySlot(ctx, site, contributed, entries, slot) {
34
34
  }
35
35
  }
36
36
  export async function overlaySkills(ctx, site, contributed, dir) {
37
- await overlayNamed(ctx, site, contributed, dir, "disableSkill", onDisable => loadSkills(ctx, dir, onDisable));
37
+ await overlayNamed(ctx, site, contributed, dir, "disableSkill", (onDisable) => loadSkills(ctx, dir, onDisable));
38
38
  }
39
39
  export async function overlayHooks(ctx, site, contributed, dir) {
40
- await overlayNamed(ctx, site, contributed, dir, "disableHook", onDisable => loadHooks(ctx, dir, onDisable));
40
+ await overlayNamed(ctx, site, contributed, dir, "disableHook", (onDisable) => loadHooks(ctx, dir, onDisable));
41
41
  }
42
42
  export async function overlaySchedules(ctx, site, contributed, dir) {
43
- await overlayNamed(ctx, site, contributed, dir, "disableSchedule", onDisable => loadSchedules(ctx, dir, onDisable));
43
+ await overlayNamed(ctx, site, contributed, dir, "disableSchedule", (onDisable) => loadSchedules(ctx, dir, onDisable));
44
44
  }
45
45
  export async function overlayChannels(ctx, site, contributed, dir) {
46
46
  if (!(await isDirectory(dir))) {
@@ -38,7 +38,7 @@ export async function appendExtensions(ctx, extensionsDir, into) {
38
38
  if (site === undefined) {
39
39
  continue;
40
40
  }
41
- if (extensions.some(extension => extension.name === site.ns)) {
41
+ if (extensions.some((extension) => extension.name === site.ns)) {
42
42
  ctx.diagnostics.push({
43
43
  severity: "error",
44
44
  path: displayPath(ctx, path),
@@ -129,7 +129,7 @@ async function mountExtension(ctx, site, mount, into) {
129
129
  for (const agent of tree.agents) {
130
130
  subagents.set(agent.name, subagent(agent.name, agent));
131
131
  }
132
- const seedFiles = new Map(tree.seedFiles.map(seed => [seed.relativePath, seed]));
132
+ const seedFiles = new Map(tree.seedFiles.map((seed) => [seed.relativePath, seed]));
133
133
  let artifacts = tree.artifacts;
134
134
  let instructions = tree.instructions;
135
135
  if (site.overlayDir !== undefined) {
@@ -231,7 +231,7 @@ async function mountExtension(ctx, site, mount, into) {
231
231
  mounted.instructions = true;
232
232
  }
233
233
  for (const seed of seedFiles.values()) {
234
- if (into.seedFiles.some(existing => existing.relativePath === seed.relativePath)) {
234
+ if (into.seedFiles.some((existing) => existing.relativePath === seed.relativePath)) {
235
235
  ctx.diagnostics.push({
236
236
  severity: "warning",
237
237
  path: displayPath(ctx, seed.sourcePath),
@@ -272,7 +272,7 @@ async function readExtensionTree(ctx, site, mount, root) {
272
272
  const connectionOverlay = site.overlayDir === undefined
273
273
  ? []
274
274
  : await moduleEntries(ctx, join(site.overlayDir, "mcp-connections"), "connection");
275
- const plugin = await readCursorPlugin(ctx, root, site.mountPath, mount.extension.variables, new Set(connectionOverlay.map(entry => entry.name)));
275
+ const plugin = await readCursorPlugin(ctx, root, site.mountPath, mount.extension.variables, new Set(connectionOverlay.map((entry) => entry.name)));
276
276
  if (plugin === undefined) {
277
277
  return undefined;
278
278
  }
@@ -323,10 +323,10 @@ function namespaceSubagent(composed, child) {
323
323
  };
324
324
  }
325
325
  function byName(items) {
326
- return new Map(items.map(item => [item.name, item]));
326
+ return new Map(items.map((item) => [item.name, item]));
327
327
  }
328
328
  function byId(items) {
329
- return new Map(items.map(item => [item.id, item]));
329
+ return new Map(items.map((item) => [item.id, item]));
330
330
  }
331
331
  /**
332
332
  * Agent-singleton slots: one runtime (`agent.ts`), one storage backend,
@@ -54,7 +54,7 @@ export function projectInfo(project) {
54
54
  ? `${agent.instructions.slice(0, 277)}...`
55
55
  : agent.instructions,
56
56
  },
57
- tools: agent.tools.map(tool => ({
57
+ tools: agent.tools.map((tool) => ({
58
58
  name: tool.name,
59
59
  description: tool.description,
60
60
  execution: tool.execution,
@@ -62,12 +62,12 @@ export function projectInfo(project) {
62
62
  effect: tool.effect,
63
63
  inputSchema: tool.inputSchema,
64
64
  })),
65
- skills: agent.skills.map(skill => ({
65
+ skills: agent.skills.map((skill) => ({
66
66
  name: skill.name,
67
67
  description: skill.description,
68
68
  })),
69
69
  extensions: agent.extensions ?? [],
70
- connections: agent.connections.map(connection => ({
70
+ connections: agent.connections.map((connection) => ({
71
71
  name: connection.name,
72
72
  transport: connectionTransportLabel(connection.transport),
73
73
  advertiseTools: connection.advertiseTools,
@@ -77,17 +77,17 @@ export function projectInfo(project) {
77
77
  disallowedTools: connection.disallowedTools,
78
78
  cursorAccountServers: "cursorAccount" in connection.transport ? (connection.transport.servers ?? "*") : undefined,
79
79
  })),
80
- subagents: agent.subagents.map(subagent => ({
80
+ subagents: agent.subagents.map((subagent) => ({
81
81
  name: subagent.name,
82
82
  description: subagent.description,
83
83
  model: subagent.model,
84
84
  })),
85
85
  channels: [
86
86
  { id: "http", routes: httpRoutes },
87
- ...project.channels.map(channel => {
87
+ ...project.channels.map((channel) => {
88
88
  const info = {
89
89
  id: channel.id,
90
- routes: (channel.definition.routes ?? []).map(r => {
90
+ routes: (channel.definition.routes ?? []).map((r) => {
91
91
  const routeInfo = {
92
92
  method: r.method,
93
93
  path: r.path,
@@ -136,17 +136,17 @@ export function projectInfo(project) {
136
136
  return info;
137
137
  }),
138
138
  ],
139
- schedules: project.schedules.map(schedule => ({
139
+ schedules: project.schedules.map((schedule) => ({
140
140
  name: schedule.name,
141
141
  cron: schedule.cron,
142
142
  kind: schedule.kind,
143
143
  })),
144
144
  reminders: (project.reminders ?? []).length === 0
145
145
  ? undefined
146
- : (project.reminders ?? []).map(reminder => ({
146
+ : (project.reminders ?? []).map((reminder) => ({
147
147
  name: reminder.name,
148
148
  })),
149
- hooks: project.hooks.map(hook => hook.name),
149
+ hooks: project.hooks.map((hook) => hook.name),
150
150
  storage: project.storage === undefined ? undefined : { name: project.storage.name },
151
151
  artifacts: project.artifacts === undefined
152
152
  ? undefined
@@ -40,7 +40,7 @@ export async function loadInstructions(ctx, agentDir, config, isRoot) {
40
40
  if (config?.instructions !== undefined && !isBlank(config.instructions)) {
41
41
  parts.push(config.instructions.trim());
42
42
  }
43
- const combined = parts.filter(part => part !== "").join("\n\n");
43
+ const combined = parts.filter((part) => part !== "").join("\n\n");
44
44
  if (combined === "") {
45
45
  if (isRoot) {
46
46
  ctx.diagnostics.push({
@@ -167,7 +167,7 @@ export async function loadAgentProject(dir, options = {}) {
167
167
  });
168
168
  const { channels, httpChannelDefinition } = await loadChannels(ctx, join(agentDir, "channels"));
169
169
  for (const channel of projectSlots.channels) {
170
- if (channel.id === "http" || channels.some(c => c.id === channel.id)) {
170
+ if (channel.id === "http" || channels.some((c) => c.id === channel.id)) {
171
171
  ctx.diagnostics.push({
172
172
  severity: "error",
173
173
  path: displayPath(ctx, join(agentDir, "extensions")),
@@ -256,11 +256,11 @@ async function mergeProjectArtifacts(ctx, agentDir, extra) {
256
256
  }
257
257
  /** True when the project has diagnostics that must block serving. */
258
258
  export function hasErrorDiagnostics(project) {
259
- return project.diagnostics.some(d => d.severity === "error");
259
+ return project.diagnostics.some((d) => d.severity === "error");
260
260
  }
261
261
  export function formatDiagnostics(diagnostics) {
262
262
  return diagnostics
263
- .map(d => {
263
+ .map((d) => {
264
264
  const location = d.path === undefined ? "" : ` (${d.path})`;
265
265
  return `${d.severity}: ${d.message}${location}`;
266
266
  })
@@ -104,7 +104,7 @@ export async function appendArtifactTool(ctx, agentDir, agent, artifacts) {
104
104
  return;
105
105
  }
106
106
  const artifactsPath = displayPath(ctx, (await findModuleFile(agentDir, "artifacts")) ?? join(agentDir, "artifacts.ts"));
107
- if (agent.tools.some(t => t.name === TAG_ARTIFACT_TOOL_NAME)) {
107
+ if (agent.tools.some((t) => t.name === TAG_ARTIFACT_TOOL_NAME)) {
108
108
  ctx.diagnostics.push({
109
109
  severity: "warning",
110
110
  path: artifactsPath,
@@ -129,7 +129,7 @@ export function appendBuiltinTools(ctx, agentDir, tools, config) {
129
129
  }
130
130
  const agentPath = displayPath(ctx, join(agentDir, "agent.ts"));
131
131
  for (const tool of builtin) {
132
- const existing = tools.find(t => t.name === tool.name);
132
+ const existing = tools.find((t) => t.name === tool.name);
133
133
  if (existing !== undefined) {
134
134
  const owner = existing.extension === undefined ? "Authored" : `Extension "${existing.extension}"`;
135
135
  ctx.diagnostics.push({
@@ -86,7 +86,7 @@ export function docsSiteExists(distDir = docsDistDir()) {
86
86
  export function resolveDocsFile(requestPath, distDir = docsDistDir()) {
87
87
  const decoded = requestPath
88
88
  .split("/")
89
- .filter(part => part !== "")
89
+ .filter((part) => part !== "")
90
90
  .join("/");
91
91
  const normalized = normalize(decoded === "" ? "." : decoded);
92
92
  if (normalized.startsWith("..") || normalized.includes(`..${sep}`)) {
@@ -161,7 +161,7 @@ export async function ensureDocsSiteBundle(logger = console.log) {
161
161
  stdio: "inherit",
162
162
  });
163
163
  child.on("error", reject);
164
- child.on("exit", exitCode => resolve(exitCode ?? 1));
164
+ child.on("exit", (exitCode) => resolve(exitCode ?? 1));
165
165
  });
166
166
  if (code !== 0) {
167
167
  throw new Error(`docs vitepress build failed (exit ${code})`);
@@ -62,7 +62,7 @@ export async function ensureEnvLocalGitignored(dir) {
62
62
  const existing = await readOptionalFile(path);
63
63
  const covered = existing
64
64
  .split(/\r?\n/)
65
- .some(line => /^\.env(\.local\*?|\.\*|\*)$/.test(line.trim()));
65
+ .some((line) => /^\.env(\.local\*?|\.\*|\*)$/.test(line.trim()));
66
66
  if (covered) {
67
67
  return false;
68
68
  }
@@ -29,7 +29,7 @@ export class EvalRunStore {
29
29
  await this.hydrate();
30
30
  const { evals, config } = await discoverEvals(this.projectRoot);
31
31
  return {
32
- evals: evals.map(e => ({
32
+ evals: evals.map((e) => ({
33
33
  id: e.id,
34
34
  fileId: e.fileId,
35
35
  ...(e.definition.description === undefined
@@ -86,7 +86,7 @@ export class EvalRunStore {
86
86
  throw new EvalRunEmptyError();
87
87
  }
88
88
  const runId = `evalrun_${randomUUID().replace(/-/g, "").slice(0, 16)}`;
89
- const cases = selected.map(e => discoveredToPending(e));
89
+ const cases = selected.map((e) => discoveredToPending(e));
90
90
  const snapshot = {
91
91
  runId,
92
92
  status: "running",
@@ -259,12 +259,12 @@ export class EvalRunStore {
259
259
  ...(opts.bearerToken === undefined ? {} : { bearerToken: opts.bearerToken }),
260
260
  ...(opts.verbose === undefined ? {} : { verbose: opts.verbose }),
261
261
  ...(opts.timeoutMs === undefined ? {} : { timeoutMs: opts.timeoutMs }),
262
- onCaseStart: id => {
262
+ onCaseStart: (id) => {
263
263
  const run = this.runs.get(runId);
264
264
  if (run === undefined || run.status === "cancelled") {
265
265
  return;
266
266
  }
267
- const c = run.cases.find(x => x.id === id);
267
+ const c = run.cases.find((x) => x.id === id);
268
268
  if (c !== undefined) {
269
269
  c.status = "running";
270
270
  c.inputs = [];
@@ -281,7 +281,7 @@ export class EvalRunStore {
281
281
  if (run === undefined) {
282
282
  return;
283
283
  }
284
- const c = run.cases.find(x => x.id === id);
284
+ const c = run.cases.find((x) => x.id === id);
285
285
  if (c === undefined) {
286
286
  return;
287
287
  }
@@ -300,7 +300,7 @@ export class EvalRunStore {
300
300
  c.finalText = event.data.text;
301
301
  }
302
302
  },
303
- onCaseDone: result => {
303
+ onCaseDone: (result) => {
304
304
  this.applyCaseResult(runId, result);
305
305
  const run = this.runs.get(runId);
306
306
  if (run !== undefined) {
@@ -347,7 +347,7 @@ export class EvalRunStore {
347
347
  if (run === undefined) {
348
348
  return;
349
349
  }
350
- const c = run.cases.find(x => x.id === result.id);
350
+ const c = run.cases.find((x) => x.id === result.id);
351
351
  if (c === undefined) {
352
352
  return;
353
353
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
@@ -123,13 +123,13 @@ export function expandEvalModule(fileId, defaultExport) {
123
123
  export function filterDiscoveredEvals(evals, options = {}) {
124
124
  let selected = evals;
125
125
  if (options.filterIds !== undefined && options.filterIds.length > 0) {
126
- selected = selected.filter(e => options.filterIds.some(f => matchesEvalIdFilter(e.id, f)));
126
+ selected = selected.filter((e) => options.filterIds.some((f) => matchesEvalIdFilter(e.id, f)));
127
127
  }
128
128
  if (options.tags !== undefined && options.tags.length > 0) {
129
- selected = selected.filter(e => (e.definition.tags ?? []).some(t => options.tags.includes(t)));
129
+ selected = selected.filter((e) => (e.definition.tags ?? []).some((t) => options.tags.includes(t)));
130
130
  }
131
131
  // Suite aggregators (`summary` tag) need sibling cases from the same file.
132
- return expandSummarySuiteSelection(evals, selected, e => isEvalSummaryCase(e.definition.tags));
132
+ return expandSummarySuiteSelection(evals, selected, (e) => isEvalSummaryCase(e.definition.tags));
133
133
  }
134
134
  export async function runDiscoveredEvals(options) {
135
135
  let selected;
@@ -185,7 +185,7 @@ export async function runDiscoveredEvals(options) {
185
185
  configModel: config.judge?.model,
186
186
  caller: options.judgeCaller ?? callJudgeModel,
187
187
  },
188
- onEvent: event => {
188
+ onEvent: (event) => {
189
189
  options.onCaseEvent?.(discovered.id, event);
190
190
  options.onEvent?.(event);
191
191
  },
@@ -215,7 +215,7 @@ export async function runDiscoveredEvals(options) {
215
215
  function buildReporterHub(options, config, selected) {
216
216
  const skip = options.skipReport === true;
217
217
  const runWide = [...(options.reporters ?? []), ...(skip ? [] : (config.reporters ?? []))];
218
- const perEval = skip ? [] : selected.flatMap(e => e.definition.reporters ?? []);
218
+ const perEval = skip ? [] : selected.flatMap((e) => e.definition.reporters ?? []);
219
219
  const everyReporter = [...new Set([...runWide, ...perEval])];
220
220
  if (everyReporter.length === 0) {
221
221
  return undefined;
@@ -228,7 +228,7 @@ function buildReporterHub(options, config, selected) {
228
228
  const all = combineReporters(everyReporter, onError);
229
229
  return {
230
230
  async runStart(evals, target) {
231
- await all.onRunStart?.(evals.map(e => ({
231
+ await all.onRunStart?.(evals.map((e) => ({
232
232
  id: e.id,
233
233
  fileId: e.fileId,
234
234
  description: e.definition.description,
@@ -279,7 +279,7 @@ export function groupEvalsForIterationSchedule(evals) {
279
279
  }
280
280
  group.push(discovered);
281
281
  }
282
- return order.map(key => {
282
+ return order.map((key) => {
283
283
  const group = groups.get(key);
284
284
  return group.sort((a, b) => (a.definition.iteration ?? 1) - (b.definition.iteration ?? 1));
285
285
  });
@@ -323,8 +323,8 @@ async function runOneEval(discovered, opts) {
323
323
  const inputs = [];
324
324
  const turns = [];
325
325
  let reply = null;
326
- const toolsUsed = () => buildTrajectory(allEvents).turns.flatMap(t => t.toolCalls.map(c => c.toolName));
327
- const toolCallIo = () => buildTrajectory(allEvents).turns.flatMap(turn => turn.toolCalls.map(c => ({
326
+ const toolsUsed = () => buildTrajectory(allEvents).turns.flatMap((t) => t.toolCalls.map((c) => c.toolName));
327
+ const toolCallIo = () => buildTrajectory(allEvents).turns.flatMap((turn) => turn.toolCalls.map((c) => ({
328
328
  toolName: c.toolName,
329
329
  ...(c.args === undefined ? {} : { args: c.args }),
330
330
  ...(c.output === undefined ? {} : { output: c.output }),
@@ -366,8 +366,8 @@ async function runOneEval(discovered, opts) {
366
366
  });
367
367
  const judge = createJudgeSurface({
368
368
  recorder,
369
- grader: name => EVAL_JUDGE_GRADERS[name],
370
- resolveModel: callModel => resolveJudgeModel({
369
+ grader: (name) => EVAL_JUDGE_GRADERS[name],
370
+ resolveModel: (callModel) => resolveJudgeModel({
371
371
  call: callModel,
372
372
  evalLevel: def.judge?.model,
373
373
  config: opts.judge.configModel,
@@ -375,7 +375,7 @@ async function runOneEval(discovered, opts) {
375
375
  }),
376
376
  caller: opts.judge.caller,
377
377
  defaultValue: () => reply,
378
- onUnavailable: message => {
378
+ onUnavailable: (message) => {
379
379
  judgeUnavailable = judgeUnavailable ?? message;
380
380
  },
381
381
  });
@@ -436,12 +436,12 @@ async function runOneEval(discovered, opts) {
436
436
  message: result.trajectory.finalText,
437
437
  sessionId: result.sessionId,
438
438
  events: turnEvents,
439
- toolCalls: result.trajectory.turns.flatMap(turn => turn.toolCalls.map(c => c.toolName)),
439
+ toolCalls: result.trajectory.turns.flatMap((turn) => turn.toolCalls.map((c) => c.toolName)),
440
440
  ok: result.ok,
441
441
  index,
442
442
  expectOk() {
443
443
  if (!result.ok) {
444
- throw new Error(`turn[${index}] failed: ${result.trajectory.turns.find(x => x.failed)?.error ?? "unknown error"}`);
444
+ throw new Error(`turn[${index}] failed: ${result.trajectory.turns.find((x) => x.failed)?.error ?? "unknown error"}`);
445
445
  }
446
446
  return turn;
447
447
  },
@@ -2,7 +2,7 @@ import { runSession } from "./run-client.js";
2
2
  /** An agent served over HTTP: the local eval server, a `--url`, or the playground host. */
3
3
  export function localHttpEvalTransport(input) {
4
4
  return {
5
- send: turn => runSession({
5
+ send: (turn) => runSession({
6
6
  baseUrl: input.baseUrl,
7
7
  messages: [turn.message],
8
8
  sessionId: turn.sessionId,
@@ -89,13 +89,13 @@ export async function listRemoteEvals(args) {
89
89
  }
90
90
  let selected = listed;
91
91
  if (args.filterIds !== undefined && args.filterIds.length > 0) {
92
- selected = selected.filter(e => args.filterIds.some(f => matchesEvalIdFilter(e.id, f)));
92
+ selected = selected.filter((e) => args.filterIds.some((f) => matchesEvalIdFilter(e.id, f)));
93
93
  }
94
94
  if (args.tags !== undefined && args.tags.length > 0) {
95
- selected = selected.filter(e => (e.tags ?? []).some(t => args.tags.includes(t)));
95
+ selected = selected.filter((e) => (e.tags ?? []).some((t) => args.tags.includes(t)));
96
96
  }
97
97
  // Match server-side filterDiscoveredEvals: summary → whole file.
98
- return expandSummarySuiteSelection(listed, selected, e => isEvalSummaryCase(e.tags));
98
+ return expandSummarySuiteSelection(listed, selected, (e) => isEvalSummaryCase(e.tags));
99
99
  }
100
100
  export async function startRemoteEvalRun(args) {
101
101
  const baseUrl = args.baseUrl.replace(/\/$/, "");
@@ -258,7 +258,7 @@ export async function pollRemoteEvalRun(args) {
258
258
  }
259
259
  }
260
260
  export function snapshotToEvalRunResults(snapshot) {
261
- return snapshot.cases.map(c => ({
261
+ return snapshot.cases.map((c) => ({
262
262
  id: c.id,
263
263
  path: c.fileId,
264
264
  ...(c.description === undefined ? {} : { description: c.description }),