@cursor/bdk 0.2.1

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 (2104) hide show
  1. package/AGENTS.md +341 -0
  2. package/LICENSE.md +3 -0
  3. package/README.md +1190 -0
  4. package/dist/artifacts.d.ts +34 -0
  5. package/dist/artifacts.d.ts.map +1 -0
  6. package/dist/artifacts.js +51 -0
  7. package/dist/bin/agent-sdk.js +2 -0
  8. package/dist/bin/agent-serve.d.ts +19 -0
  9. package/dist/bin/agent-serve.d.ts.map +1 -0
  10. package/dist/bin/agent-serve.js +1578 -0
  11. package/dist/channels/bitbucket/api.d.ts +217 -0
  12. package/dist/channels/bitbucket/api.d.ts.map +1 -0
  13. package/dist/channels/bitbucket/api.js +664 -0
  14. package/dist/channels/bitbucket/binding.d.ts +75 -0
  15. package/dist/channels/bitbucket/binding.d.ts.map +1 -0
  16. package/dist/channels/bitbucket/binding.js +277 -0
  17. package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
  18. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
  19. package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
  20. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
  21. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
  22. package/dist/channels/bitbucket/bitbucket-webhook.js +384 -0
  23. package/dist/channels/bitbucket/checks.d.ts +67 -0
  24. package/dist/channels/bitbucket/checks.d.ts.map +1 -0
  25. package/dist/channels/bitbucket/checks.js +102 -0
  26. package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
  27. package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
  28. package/dist/channels/bitbucket/cursor-account.js +65 -0
  29. package/dist/channels/bitbucket/defaults.d.ts +26 -0
  30. package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
  31. package/dist/channels/bitbucket/defaults.js +67 -0
  32. package/dist/channels/bitbucket/events.d.ts +22 -0
  33. package/dist/channels/bitbucket/events.d.ts.map +1 -0
  34. package/dist/channels/bitbucket/events.js +60 -0
  35. package/dist/channels/bitbucket/index.d.ts +34 -0
  36. package/dist/channels/bitbucket/index.d.ts.map +1 -0
  37. package/dist/channels/bitbucket/index.js +33 -0
  38. package/dist/channels/bitbucket/replay.d.ts +63 -0
  39. package/dist/channels/bitbucket/replay.d.ts.map +1 -0
  40. package/dist/channels/bitbucket/replay.js +302 -0
  41. package/dist/channels/bitbucket/state.d.ts +35 -0
  42. package/dist/channels/bitbucket/state.d.ts.map +1 -0
  43. package/dist/channels/bitbucket/state.js +21 -0
  44. package/dist/channels/bitbucket/types.d.ts +227 -0
  45. package/dist/channels/bitbucket/types.d.ts.map +1 -0
  46. package/dist/channels/bitbucket/types.js +1 -0
  47. package/dist/channels/change-monitors/change-monitors-channel.d.ts +5 -0
  48. package/dist/channels/change-monitors/change-monitors-channel.d.ts.map +1 -0
  49. package/dist/channels/change-monitors/change-monitors-channel.js +45 -0
  50. package/dist/channels/change-monitors/index.d.ts +4 -0
  51. package/dist/channels/change-monitors/index.d.ts.map +1 -0
  52. package/dist/channels/change-monitors/index.js +2 -0
  53. package/dist/channels/change-monitors/types.d.ts +42 -0
  54. package/dist/channels/change-monitors/types.d.ts.map +1 -0
  55. package/dist/channels/change-monitors/types.js +1 -0
  56. package/dist/channels/checks.d.ts +121 -0
  57. package/dist/channels/checks.d.ts.map +1 -0
  58. package/dist/channels/checks.js +86 -0
  59. package/dist/channels/deployments/deployments-channel.d.ts +95 -0
  60. package/dist/channels/deployments/deployments-channel.d.ts.map +1 -0
  61. package/dist/channels/deployments/deployments-channel.js +196 -0
  62. package/dist/channels/deployments/index.d.ts +25 -0
  63. package/dist/channels/deployments/index.d.ts.map +1 -0
  64. package/dist/channels/deployments/index.js +24 -0
  65. package/dist/channels/deployments/types.d.ts +83 -0
  66. package/dist/channels/deployments/types.d.ts.map +1 -0
  67. package/dist/channels/deployments/types.js +7 -0
  68. package/dist/channels/github/api.d.ts +133 -0
  69. package/dist/channels/github/api.d.ts.map +1 -0
  70. package/dist/channels/github/api.js +320 -0
  71. package/dist/channels/github/auth.d.ts +67 -0
  72. package/dist/channels/github/auth.d.ts.map +1 -0
  73. package/dist/channels/github/auth.js +233 -0
  74. package/dist/channels/github/binding.d.ts +86 -0
  75. package/dist/channels/github/binding.d.ts.map +1 -0
  76. package/dist/channels/github/binding.js +114 -0
  77. package/dist/channels/github/checks.d.ts +64 -0
  78. package/dist/channels/github/checks.d.ts.map +1 -0
  79. package/dist/channels/github/checks.js +98 -0
  80. package/dist/channels/github/cursor-account.d.ts +102 -0
  81. package/dist/channels/github/cursor-account.d.ts.map +1 -0
  82. package/dist/channels/github/cursor-account.js +194 -0
  83. package/dist/channels/github/defaults.d.ts +23 -0
  84. package/dist/channels/github/defaults.d.ts.map +1 -0
  85. package/dist/channels/github/defaults.js +157 -0
  86. package/dist/channels/github/events.d.ts +18 -0
  87. package/dist/channels/github/events.d.ts.map +1 -0
  88. package/dist/channels/github/events.js +56 -0
  89. package/dist/channels/github/forward.d.ts +139 -0
  90. package/dist/channels/github/forward.d.ts.map +1 -0
  91. package/dist/channels/github/forward.js +267 -0
  92. package/dist/channels/github/github-channel.d.ts +146 -0
  93. package/dist/channels/github/github-channel.d.ts.map +1 -0
  94. package/dist/channels/github/github-channel.js +1804 -0
  95. package/dist/channels/github/index.d.ts +54 -0
  96. package/dist/channels/github/index.d.ts.map +1 -0
  97. package/dist/channels/github/index.js +53 -0
  98. package/dist/channels/github/progress.d.ts +84 -0
  99. package/dist/channels/github/progress.d.ts.map +1 -0
  100. package/dist/channels/github/progress.js +236 -0
  101. package/dist/channels/github/replay.d.ts +115 -0
  102. package/dist/channels/github/replay.d.ts.map +1 -0
  103. package/dist/channels/github/replay.js +278 -0
  104. package/dist/channels/github/state.d.ts +47 -0
  105. package/dist/channels/github/state.d.ts.map +1 -0
  106. package/dist/channels/github/state.js +53 -0
  107. package/dist/channels/github/types.d.ts +491 -0
  108. package/dist/channels/github/types.d.ts.map +1 -0
  109. package/dist/channels/github/types.js +1 -0
  110. package/dist/channels/gitlab/api.d.ts +118 -0
  111. package/dist/channels/gitlab/api.d.ts.map +1 -0
  112. package/dist/channels/gitlab/api.js +234 -0
  113. package/dist/channels/gitlab/binding.d.ts +63 -0
  114. package/dist/channels/gitlab/binding.d.ts.map +1 -0
  115. package/dist/channels/gitlab/binding.js +147 -0
  116. package/dist/channels/gitlab/checks.d.ts +110 -0
  117. package/dist/channels/gitlab/checks.d.ts.map +1 -0
  118. package/dist/channels/gitlab/checks.js +122 -0
  119. package/dist/channels/gitlab/cursor-account.d.ts +36 -0
  120. package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
  121. package/dist/channels/gitlab/cursor-account.js +64 -0
  122. package/dist/channels/gitlab/defaults.d.ts +25 -0
  123. package/dist/channels/gitlab/defaults.d.ts.map +1 -0
  124. package/dist/channels/gitlab/defaults.js +55 -0
  125. package/dist/channels/gitlab/events.d.ts +12 -0
  126. package/dist/channels/gitlab/events.d.ts.map +1 -0
  127. package/dist/channels/gitlab/events.js +26 -0
  128. package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
  129. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
  130. package/dist/channels/gitlab/gitlab-channel.js +120 -0
  131. package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
  132. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
  133. package/dist/channels/gitlab/gitlab-webhook.js +388 -0
  134. package/dist/channels/gitlab/index.d.ts +31 -0
  135. package/dist/channels/gitlab/index.d.ts.map +1 -0
  136. package/dist/channels/gitlab/index.js +30 -0
  137. package/dist/channels/gitlab/replay.d.ts +105 -0
  138. package/dist/channels/gitlab/replay.d.ts.map +1 -0
  139. package/dist/channels/gitlab/replay.js +199 -0
  140. package/dist/channels/gitlab/state.d.ts +33 -0
  141. package/dist/channels/gitlab/state.d.ts.map +1 -0
  142. package/dist/channels/gitlab/state.js +23 -0
  143. package/dist/channels/gitlab/types.d.ts +211 -0
  144. package/dist/channels/gitlab/types.d.ts.map +1 -0
  145. package/dist/channels/gitlab/types.js +1 -0
  146. package/dist/channels/issues/index.d.ts +4 -0
  147. package/dist/channels/issues/index.d.ts.map +1 -0
  148. package/dist/channels/issues/index.js +2 -0
  149. package/dist/channels/issues/issues-channel.d.ts +5 -0
  150. package/dist/channels/issues/issues-channel.d.ts.map +1 -0
  151. package/dist/channels/issues/issues-channel.js +35 -0
  152. package/dist/channels/issues/types.d.ts +33 -0
  153. package/dist/channels/issues/types.d.ts.map +1 -0
  154. package/dist/channels/issues/types.js +1 -0
  155. package/dist/channels/origin/api.d.ts +157 -0
  156. package/dist/channels/origin/api.d.ts.map +1 -0
  157. package/dist/channels/origin/api.js +379 -0
  158. package/dist/channels/origin/binding.d.ts +57 -0
  159. package/dist/channels/origin/binding.d.ts.map +1 -0
  160. package/dist/channels/origin/binding.js +57 -0
  161. package/dist/channels/origin/checks.d.ts +119 -0
  162. package/dist/channels/origin/checks.d.ts.map +1 -0
  163. package/dist/channels/origin/checks.js +145 -0
  164. package/dist/channels/origin/cursor-account.d.ts +24 -0
  165. package/dist/channels/origin/cursor-account.d.ts.map +1 -0
  166. package/dist/channels/origin/cursor-account.js +35 -0
  167. package/dist/channels/origin/defaults.d.ts +43 -0
  168. package/dist/channels/origin/defaults.d.ts.map +1 -0
  169. package/dist/channels/origin/defaults.js +109 -0
  170. package/dist/channels/origin/events.d.ts +10 -0
  171. package/dist/channels/origin/events.d.ts.map +1 -0
  172. package/dist/channels/origin/events.js +25 -0
  173. package/dist/channels/origin/index.d.ts +35 -0
  174. package/dist/channels/origin/index.d.ts.map +1 -0
  175. package/dist/channels/origin/index.js +34 -0
  176. package/dist/channels/origin/origin-channel.d.ts +72 -0
  177. package/dist/channels/origin/origin-channel.d.ts.map +1 -0
  178. package/dist/channels/origin/origin-channel.js +634 -0
  179. package/dist/channels/origin/origin-webhook.d.ts +69 -0
  180. package/dist/channels/origin/origin-webhook.d.ts.map +1 -0
  181. package/dist/channels/origin/origin-webhook.js +231 -0
  182. package/dist/channels/origin/reactions.d.ts +56 -0
  183. package/dist/channels/origin/reactions.d.ts.map +1 -0
  184. package/dist/channels/origin/reactions.js +58 -0
  185. package/dist/channels/origin/state.d.ts +32 -0
  186. package/dist/channels/origin/state.d.ts.map +1 -0
  187. package/dist/channels/origin/state.js +23 -0
  188. package/dist/channels/origin/types.d.ts +257 -0
  189. package/dist/channels/origin/types.d.ts.map +1 -0
  190. package/dist/channels/origin/types.js +1 -0
  191. package/dist/channels/slack/agentic-delivery.d.ts +23 -0
  192. package/dist/channels/slack/agentic-delivery.d.ts.map +1 -0
  193. package/dist/channels/slack/agentic-delivery.js +566 -0
  194. package/dist/channels/slack/agentic-posted.d.ts +30 -0
  195. package/dist/channels/slack/agentic-posted.d.ts.map +1 -0
  196. package/dist/channels/slack/agentic-posted.js +102 -0
  197. package/dist/channels/slack/agentic-signals.d.ts +48 -0
  198. package/dist/channels/slack/agentic-signals.d.ts.map +1 -0
  199. package/dist/channels/slack/agentic-signals.js +199 -0
  200. package/dist/channels/slack/api.d.ts +171 -0
  201. package/dist/channels/slack/api.d.ts.map +1 -0
  202. package/dist/channels/slack/api.js +613 -0
  203. package/dist/channels/slack/approvals.d.ts +48 -0
  204. package/dist/channels/slack/approvals.d.ts.map +1 -0
  205. package/dist/channels/slack/approvals.js +233 -0
  206. package/dist/channels/slack/assistant.d.ts +23 -0
  207. package/dist/channels/slack/assistant.d.ts.map +1 -0
  208. package/dist/channels/slack/assistant.js +67 -0
  209. package/dist/channels/slack/attachments.d.ts +82 -0
  210. package/dist/channels/slack/attachments.d.ts.map +1 -0
  211. package/dist/channels/slack/attachments.js +503 -0
  212. package/dist/channels/slack/auth.d.ts +46 -0
  213. package/dist/channels/slack/auth.d.ts.map +1 -0
  214. package/dist/channels/slack/auth.js +95 -0
  215. package/dist/channels/slack/blocks.d.ts +61 -0
  216. package/dist/channels/slack/blocks.d.ts.map +1 -0
  217. package/dist/channels/slack/blocks.js +90 -0
  218. package/dist/channels/slack/bot-mentions.d.ts +108 -0
  219. package/dist/channels/slack/bot-mentions.d.ts.map +1 -0
  220. package/dist/channels/slack/bot-mentions.js +257 -0
  221. package/dist/channels/slack/channel-watch.d.ts +76 -0
  222. package/dist/channels/slack/channel-watch.d.ts.map +1 -0
  223. package/dist/channels/slack/channel-watch.js +264 -0
  224. package/dist/channels/slack/cli-project.d.ts +19 -0
  225. package/dist/channels/slack/cli-project.d.ts.map +1 -0
  226. package/dist/channels/slack/cli-project.js +228 -0
  227. package/dist/channels/slack/code-fences.d.ts +17 -0
  228. package/dist/channels/slack/code-fences.d.ts.map +1 -0
  229. package/dist/channels/slack/code-fences.js +166 -0
  230. package/dist/channels/slack/constants.d.ts +25 -0
  231. package/dist/channels/slack/constants.d.ts.map +1 -0
  232. package/dist/channels/slack/constants.js +35 -0
  233. package/dist/channels/slack/credentials.d.ts +35 -0
  234. package/dist/channels/slack/credentials.d.ts.map +1 -0
  235. package/dist/channels/slack/credentials.js +88 -0
  236. package/dist/channels/slack/defaults.d.ts +50 -0
  237. package/dist/channels/slack/defaults.d.ts.map +1 -0
  238. package/dist/channels/slack/defaults.js +630 -0
  239. package/dist/channels/slack/dispatch.d.ts +141 -0
  240. package/dist/channels/slack/dispatch.d.ts.map +1 -0
  241. package/dist/channels/slack/dispatch.js +730 -0
  242. package/dist/channels/slack/doctor.d.ts +40 -0
  243. package/dist/channels/slack/doctor.d.ts.map +1 -0
  244. package/dist/channels/slack/doctor.js +291 -0
  245. package/dist/channels/slack/eval-directive.d.ts +59 -0
  246. package/dist/channels/slack/eval-directive.d.ts.map +1 -0
  247. package/dist/channels/slack/eval-directive.js +269 -0
  248. package/dist/channels/slack/event-id-dedupe.d.ts +10 -0
  249. package/dist/channels/slack/event-id-dedupe.d.ts.map +1 -0
  250. package/dist/channels/slack/event-id-dedupe.js +23 -0
  251. package/dist/channels/slack/external-policy.d.ts +28 -0
  252. package/dist/channels/slack/external-policy.d.ts.map +1 -0
  253. package/dist/channels/slack/external-policy.js +64 -0
  254. package/dist/channels/slack/footer.d.ts +33 -0
  255. package/dist/channels/slack/footer.d.ts.map +1 -0
  256. package/dist/channels/slack/footer.js +85 -0
  257. package/dist/channels/slack/inbound.d.ts +98 -0
  258. package/dist/channels/slack/inbound.d.ts.map +1 -0
  259. package/dist/channels/slack/inbound.js +314 -0
  260. package/dist/channels/slack/index.d.ts +53 -0
  261. package/dist/channels/slack/index.d.ts.map +1 -0
  262. package/dist/channels/slack/index.js +52 -0
  263. package/dist/channels/slack/init.d.ts +45 -0
  264. package/dist/channels/slack/init.d.ts.map +1 -0
  265. package/dist/channels/slack/init.js +126 -0
  266. package/dist/channels/slack/interactive.d.ts +65 -0
  267. package/dist/channels/slack/interactive.d.ts.map +1 -0
  268. package/dist/channels/slack/interactive.js +310 -0
  269. package/dist/channels/slack/links.d.ts +10 -0
  270. package/dist/channels/slack/links.d.ts.map +1 -0
  271. package/dist/channels/slack/links.js +19 -0
  272. package/dist/channels/slack/live-delivery.d.ts +77 -0
  273. package/dist/channels/slack/live-delivery.d.ts.map +1 -0
  274. package/dist/channels/slack/live-delivery.js +399 -0
  275. package/dist/channels/slack/log.d.ts +25 -0
  276. package/dist/channels/slack/log.d.ts.map +1 -0
  277. package/dist/channels/slack/log.js +44 -0
  278. package/dist/channels/slack/manifest.d.ts +80 -0
  279. package/dist/channels/slack/manifest.d.ts.map +1 -0
  280. package/dist/channels/slack/manifest.js +159 -0
  281. package/dist/channels/slack/message-body.d.ts +13 -0
  282. package/dist/channels/slack/message-body.d.ts.map +1 -0
  283. package/dist/channels/slack/message-body.js +74 -0
  284. package/dist/channels/slack/nudge-carrier.d.ts +21 -0
  285. package/dist/channels/slack/nudge-carrier.d.ts.map +1 -0
  286. package/dist/channels/slack/nudge-carrier.js +213 -0
  287. package/dist/channels/slack/nudge-store.d.ts +77 -0
  288. package/dist/channels/slack/nudge-store.d.ts.map +1 -0
  289. package/dist/channels/slack/nudge-store.js +315 -0
  290. package/dist/channels/slack/paint-start.d.ts +22 -0
  291. package/dist/channels/slack/paint-start.d.ts.map +1 -0
  292. package/dist/channels/slack/paint-start.js +91 -0
  293. package/dist/channels/slack/placeholder.d.ts +62 -0
  294. package/dist/channels/slack/placeholder.d.ts.map +1 -0
  295. package/dist/channels/slack/placeholder.js +266 -0
  296. package/dist/channels/slack/pr-ref.d.ts +24 -0
  297. package/dist/channels/slack/pr-ref.d.ts.map +1 -0
  298. package/dist/channels/slack/pr-ref.js +55 -0
  299. package/dist/channels/slack/progress-delivery.d.ts +28 -0
  300. package/dist/channels/slack/progress-delivery.d.ts.map +1 -0
  301. package/dist/channels/slack/progress-delivery.js +122 -0
  302. package/dist/channels/slack/reasoning-card.d.ts +38 -0
  303. package/dist/channels/slack/reasoning-card.d.ts.map +1 -0
  304. package/dist/channels/slack/reasoning-card.js +103 -0
  305. package/dist/channels/slack/reasoning-chip.d.ts +8 -0
  306. package/dist/channels/slack/reasoning-chip.d.ts.map +1 -0
  307. package/dist/channels/slack/reasoning-chip.js +30 -0
  308. package/dist/channels/slack/recording-sink.d.ts +29 -0
  309. package/dist/channels/slack/recording-sink.d.ts.map +1 -0
  310. package/dist/channels/slack/recording-sink.js +140 -0
  311. package/dist/channels/slack/redact.d.ts +2 -0
  312. package/dist/channels/slack/redact.d.ts.map +1 -0
  313. package/dist/channels/slack/redact.js +5 -0
  314. package/dist/channels/slack/reply-options.d.ts +47 -0
  315. package/dist/channels/slack/reply-options.d.ts.map +1 -0
  316. package/dist/channels/slack/reply-options.js +193 -0
  317. package/dist/channels/slack/setup.d.ts +33 -0
  318. package/dist/channels/slack/setup.d.ts.map +1 -0
  319. package/dist/channels/slack/setup.js +101 -0
  320. package/dist/channels/slack/slack-channel.d.ts +43 -0
  321. package/dist/channels/slack/slack-channel.d.ts.map +1 -0
  322. package/dist/channels/slack/slack-channel.js +534 -0
  323. package/dist/channels/slack/socket-mode.d.ts +26 -0
  324. package/dist/channels/slack/socket-mode.d.ts.map +1 -0
  325. package/dist/channels/slack/socket-mode.js +114 -0
  326. package/dist/channels/slack/stop.d.ts +14 -0
  327. package/dist/channels/slack/stop.d.ts.map +1 -0
  328. package/dist/channels/slack/stop.js +22 -0
  329. package/dist/channels/slack/stream.d.ts +38 -0
  330. package/dist/channels/slack/stream.d.ts.map +1 -0
  331. package/dist/channels/slack/stream.js +30 -0
  332. package/dist/channels/slack/thread-context.d.ts +79 -0
  333. package/dist/channels/slack/thread-context.d.ts.map +1 -0
  334. package/dist/channels/slack/thread-context.js +396 -0
  335. package/dist/channels/slack/tool-approval-events.d.ts +38 -0
  336. package/dist/channels/slack/tool-approval-events.d.ts.map +1 -0
  337. package/dist/channels/slack/tool-approval-events.js +224 -0
  338. package/dist/channels/slack/tool-cards.d.ts +22 -0
  339. package/dist/channels/slack/tool-cards.d.ts.map +1 -0
  340. package/dist/channels/slack/tool-cards.js +172 -0
  341. package/dist/channels/slack/tool-chip.d.ts +9 -0
  342. package/dist/channels/slack/tool-chip.d.ts.map +1 -0
  343. package/dist/channels/slack/tool-chip.js +23 -0
  344. package/dist/channels/slack/types.d.ts +751 -0
  345. package/dist/channels/slack/types.d.ts.map +1 -0
  346. package/dist/channels/slack/types.js +4 -0
  347. package/dist/channels/slack/upload.d.ts +13 -0
  348. package/dist/channels/slack/upload.d.ts.map +1 -0
  349. package/dist/channels/slack/upload.js +135 -0
  350. package/dist/channels.d.ts +175 -0
  351. package/dist/channels.d.ts.map +1 -0
  352. package/dist/channels.js +417 -0
  353. package/dist/connections.d.ts +131 -0
  354. package/dist/connections.d.ts.map +1 -0
  355. package/dist/connections.js +131 -0
  356. package/dist/dashboard-session-url.d.ts +15 -0
  357. package/dist/dashboard-session-url.d.ts.map +1 -0
  358. package/dist/dashboard-session-url.js +25 -0
  359. package/dist/docs/404.html +24 -0
  360. package/dist/docs/architecture.svg +59 -0
  361. package/dist/docs/assets/app.JVQvbRO-.js +309 -0
  362. package/dist/docs/assets/building-with-agents.md.-fcjCmJU.js +9 -0
  363. package/dist/docs/assets/building-with-agents.md.-fcjCmJU.lean.js +1 -0
  364. package/dist/docs/assets/chunks/@localSearchIndexroot.Caw9W1pM.js +1 -0
  365. package/dist/docs/assets/chunks/VPLocalSearchBox.BkhY63uW.js +9 -0
  366. package/dist/docs/assets/chunks/arc.Cc1unYd3.js +1 -0
  367. package/dist/docs/assets/chunks/architectureDiagram-Q4EWVU46.CAY_TPVz.js +36 -0
  368. package/dist/docs/assets/chunks/baseUniq.my2VD3Xm.js +1 -0
  369. package/dist/docs/assets/chunks/blockDiagram-DXYQGD6D.CQXAOmqd.js +132 -0
  370. package/dist/docs/assets/chunks/c4Diagram-AHTNJAMY.D0AsQFSX.js +10 -0
  371. package/dist/docs/assets/chunks/channel.Sapo9HJZ.js +1 -0
  372. package/dist/docs/assets/chunks/chunk-4BX2VUAB.DZjhgNls.js +1 -0
  373. package/dist/docs/assets/chunks/chunk-4TB4RGXK.qdcp_qbo.js +206 -0
  374. package/dist/docs/assets/chunks/chunk-55IACEB6.BHXoZhJ-.js +1 -0
  375. package/dist/docs/assets/chunks/chunk-EDXVE4YY.Cds_Vwj3.js +1 -0
  376. package/dist/docs/assets/chunks/chunk-FMBD7UC4.CSl0HknT.js +15 -0
  377. package/dist/docs/assets/chunks/chunk-OYMX7WX6.DJMvAt5N.js +231 -0
  378. package/dist/docs/assets/chunks/chunk-QZHKN3VN.BYQzBK9D.js +1 -0
  379. package/dist/docs/assets/chunks/chunk-YZCP3GAM.BAvw7N4o.js +1 -0
  380. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.NPiy3Hz7.js +1 -0
  381. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.NPiy3Hz7.js +1 -0
  382. package/dist/docs/assets/chunks/clone.zl2qolPE.js +1 -0
  383. package/dist/docs/assets/chunks/cose-bilkent-S5V4N54A.Buf3seya.js +1 -0
  384. package/dist/docs/assets/chunks/cytoscape.esm.BQk4lpUV.js +331 -0
  385. package/dist/docs/assets/chunks/dagre-KV5264BT.DMGGa3uA.js +4 -0
  386. package/dist/docs/assets/chunks/defaultLocale.C4B-KCzX.js +1 -0
  387. package/dist/docs/assets/chunks/diagram-5BDNPKRD.DDjnwRmY.js +10 -0
  388. package/dist/docs/assets/chunks/diagram-G4DWMVQ6.RwyrIr8Q.js +24 -0
  389. package/dist/docs/assets/chunks/diagram-MMDJMWI5.DRvQV16Z.js +43 -0
  390. package/dist/docs/assets/chunks/diagram-TYMM5635.Dw8W9BTk.js +24 -0
  391. package/dist/docs/assets/chunks/erDiagram-SMLLAGMA.DQT1Hnwf.js +85 -0
  392. package/dist/docs/assets/chunks/flowDiagram-DWJPFMVM.6_Aky-ut.js +162 -0
  393. package/dist/docs/assets/chunks/framework.BNw1pucY.js +19 -0
  394. package/dist/docs/assets/chunks/ganttDiagram-T4ZO3ILL.DHIwqnqN.js +292 -0
  395. package/dist/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.CGd_eJbn.js +106 -0
  396. package/dist/docs/assets/chunks/graph.ChMEylkh.js +1 -0
  397. package/dist/docs/assets/chunks/infoDiagram-42DDH7IO.Cd4gMyAz.js +2 -0
  398. package/dist/docs/assets/chunks/init.Gi6I4Gst.js +1 -0
  399. package/dist/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.D1uw7MXq.js +70 -0
  400. package/dist/docs/assets/chunks/journeyDiagram-VCZTEJTY.AWLXtelc.js +139 -0
  401. package/dist/docs/assets/chunks/kanban-definition-6JOO6SKY.CagPhAn5.js +89 -0
  402. package/dist/docs/assets/chunks/katex.DkKDou_j.js +257 -0
  403. package/dist/docs/assets/chunks/layout.ClTBBkE_.js +1 -0
  404. package/dist/docs/assets/chunks/linear.SwS2rOLA.js +1 -0
  405. package/dist/docs/assets/chunks/min.By_x-Btb.js +1 -0
  406. package/dist/docs/assets/chunks/mindmap-definition-QFDTVHPH.By_RAMaP.js +96 -0
  407. package/dist/docs/assets/chunks/ordinal.DBvzRdQf.js +1 -0
  408. package/dist/docs/assets/chunks/pieDiagram-DEJITSTG.DfAl9sy4.js +30 -0
  409. package/dist/docs/assets/chunks/quadrantDiagram-34T5L4WZ.CNuqFRBj.js +7 -0
  410. package/dist/docs/assets/chunks/requirementDiagram-MS252O5E.DJ5CmTCl.js +84 -0
  411. package/dist/docs/assets/chunks/sankeyDiagram-XADWPNL6.D-T_AKJj.js +10 -0
  412. package/dist/docs/assets/chunks/sequenceDiagram-FGHM5R23.BRn9WcrR.js +157 -0
  413. package/dist/docs/assets/chunks/stateDiagram-FHFEXIEX.F12urmm7.js +1 -0
  414. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2._auCa3fR.js +1 -0
  415. package/dist/docs/assets/chunks/theme.zK3OJa_C.js +2 -0
  416. package/dist/docs/assets/chunks/timeline-definition-GMOUNBTQ.B7GiQBeC.js +120 -0
  417. package/dist/docs/assets/chunks/vennDiagram-DHZGUBPP.D0niwuY_.js +34 -0
  418. package/dist/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js +1 -0
  419. package/dist/docs/assets/chunks/wardley-RL74JXVD.1zhHNRsx.js +162 -0
  420. package/dist/docs/assets/chunks/wardleyDiagram-NUSXRM2D.DKaqpT7K.js +20 -0
  421. package/dist/docs/assets/chunks/xychartDiagram-5P7HB3ND.e8BPicch.js +7 -0
  422. package/dist/docs/assets/deployment.md.nGo1yIsa.js +32 -0
  423. package/dist/docs/assets/deployment.md.nGo1yIsa.lean.js +1 -0
  424. package/dist/docs/assets/evals.md.CCAtNcuL.js +72 -0
  425. package/dist/docs/assets/evals.md.CCAtNcuL.lean.js +1 -0
  426. package/dist/docs/assets/guides_agent-to-agent.md.CGkicXeB.js +41 -0
  427. package/dist/docs/assets/guides_agent-to-agent.md.CGkicXeB.lean.js +1 -0
  428. package/dist/docs/assets/guides_bitbucket.md.Cb3LPKt3.js +145 -0
  429. package/dist/docs/assets/guides_bitbucket.md.Cb3LPKt3.lean.js +1 -0
  430. package/dist/docs/assets/guides_cloud-agents.md.BuEkDCwo.js +10 -0
  431. package/dist/docs/assets/guides_cloud-agents.md.BuEkDCwo.lean.js +1 -0
  432. package/dist/docs/assets/guides_convert-automation.md.Ci-Y2iD5.js +43 -0
  433. package/dist/docs/assets/guides_convert-automation.md.Ci-Y2iD5.lean.js +1 -0
  434. package/dist/docs/assets/guides_github.md.C2_DSWlE.js +156 -0
  435. package/dist/docs/assets/guides_github.md.C2_DSWlE.lean.js +1 -0
  436. package/dist/docs/assets/guides_gitlab.md.BM27P43u.js +153 -0
  437. package/dist/docs/assets/guides_gitlab.md.BM27P43u.lean.js +1 -0
  438. package/dist/docs/assets/guides_grokbot-agents.md.yxVbSlKA.js +16 -0
  439. package/dist/docs/assets/guides_grokbot-agents.md.yxVbSlKA.lean.js +1 -0
  440. package/dist/docs/assets/guides_hooks.md.BWoiNaMq.js +50 -0
  441. package/dist/docs/assets/guides_hooks.md.BWoiNaMq.lean.js +1 -0
  442. package/dist/docs/assets/guides_improve.md.COtL-6ft.js +22 -0
  443. package/dist/docs/assets/guides_improve.md.COtL-6ft.lean.js +1 -0
  444. package/dist/docs/assets/guides_jev.md.BNDm14Gy.js +151 -0
  445. package/dist/docs/assets/guides_jev.md.BNDm14Gy.lean.js +1 -0
  446. package/dist/docs/assets/guides_mcp-oauth.md.Cu6mhZ_3.js +50 -0
  447. package/dist/docs/assets/guides_mcp-oauth.md.Cu6mhZ_3.lean.js +1 -0
  448. package/dist/docs/assets/guides_opentelemetry.md.DLlIB5rv.js +35 -0
  449. package/dist/docs/assets/guides_opentelemetry.md.DLlIB5rv.lean.js +1 -0
  450. package/dist/docs/assets/guides_slack.md.ZbHQETOT.js +70 -0
  451. package/dist/docs/assets/guides_slack.md.ZbHQETOT.lean.js +1 -0
  452. package/dist/docs/assets/guides_webhooks.md.D0furjw0.js +92 -0
  453. package/dist/docs/assets/guides_webhooks.md.D0furjw0.lean.js +1 -0
  454. package/dist/docs/assets/hillclimbing.md.Biy0m-Qb.js +7 -0
  455. package/dist/docs/assets/hillclimbing.md.Biy0m-Qb.lean.js +1 -0
  456. package/dist/docs/assets/index.md.CVc_oOA3.js +27 -0
  457. package/dist/docs/assets/index.md.CVc_oOA3.lean.js +1 -0
  458. package/dist/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  459. package/dist/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  460. package/dist/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  461. package/dist/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  462. package/dist/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  463. package/dist/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  464. package/dist/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  465. package/dist/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  466. package/dist/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  467. package/dist/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  468. package/dist/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  469. package/dist/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  470. package/dist/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  471. package/dist/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  472. package/dist/docs/assets/quickstart.md.wG4shE1f.js +168 -0
  473. package/dist/docs/assets/quickstart.md.wG4shE1f.lean.js +1 -0
  474. package/dist/docs/assets/reference_agent-config.md.DzGI777n.js +32 -0
  475. package/dist/docs/assets/reference_agent-config.md.DzGI777n.lean.js +1 -0
  476. package/dist/docs/assets/reference_artifacts.md.IFFC5Zln.js +18 -0
  477. package/dist/docs/assets/reference_artifacts.md.IFFC5Zln.lean.js +1 -0
  478. package/dist/docs/assets/reference_channels.md.mbNtKCiR.js +23 -0
  479. package/dist/docs/assets/reference_channels.md.mbNtKCiR.lean.js +1 -0
  480. package/dist/docs/assets/reference_cli.md.BK2QUH67.js +97 -0
  481. package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +1 -0
  482. package/dist/docs/assets/reference_connections.md._XpKiOaF.js +63 -0
  483. package/dist/docs/assets/reference_connections.md._XpKiOaF.lean.js +1 -0
  484. package/dist/docs/assets/reference_evals.md.DqNyHMA6.js +56 -0
  485. package/dist/docs/assets/reference_evals.md.DqNyHMA6.lean.js +1 -0
  486. package/dist/docs/assets/reference_extensions.md.CPPrkWlJ.js +58 -0
  487. package/dist/docs/assets/reference_extensions.md.CPPrkWlJ.lean.js +1 -0
  488. package/dist/docs/assets/reference_hooks.md.Dg3dEugd.js +45 -0
  489. package/dist/docs/assets/reference_hooks.md.Dg3dEugd.lean.js +1 -0
  490. package/dist/docs/assets/reference_http-api.md.BZOvhCqY.js +11 -0
  491. package/dist/docs/assets/reference_http-api.md.BZOvhCqY.lean.js +1 -0
  492. package/dist/docs/assets/reference_instructions.md.Bdwscs4G.js +14 -0
  493. package/dist/docs/assets/reference_instructions.md.Bdwscs4G.lean.js +1 -0
  494. package/dist/docs/assets/reference_playground.md.BdQzRJc2.js +1 -0
  495. package/dist/docs/assets/reference_playground.md.BdQzRJc2.lean.js +1 -0
  496. package/dist/docs/assets/reference_project-layout.md.CpLQ9j4K.js +25 -0
  497. package/dist/docs/assets/reference_project-layout.md.CpLQ9j4K.lean.js +1 -0
  498. package/dist/docs/assets/reference_prompt.md.BQZB4eaV.js +9 -0
  499. package/dist/docs/assets/reference_prompt.md.BQZB4eaV.lean.js +1 -0
  500. package/dist/docs/assets/reference_schedules.md.BVU5EFbz.js +47 -0
  501. package/dist/docs/assets/reference_schedules.md.BVU5EFbz.lean.js +1 -0
  502. package/dist/docs/assets/reference_sessions.md.BtpTjZmh.js +1 -0
  503. package/dist/docs/assets/reference_sessions.md.BtpTjZmh.lean.js +1 -0
  504. package/dist/docs/assets/reference_skills.md.Cy00QMKS.js +15 -0
  505. package/dist/docs/assets/reference_skills.md.Cy00QMKS.lean.js +1 -0
  506. package/dist/docs/assets/reference_subagents.md.B8oyeXOI.js +10 -0
  507. package/dist/docs/assets/reference_subagents.md.B8oyeXOI.lean.js +1 -0
  508. package/dist/docs/assets/reference_tools.md.hg2Wi5Bq.js +90 -0
  509. package/dist/docs/assets/reference_tools.md.hg2Wi5Bq.lean.js +1 -0
  510. package/dist/docs/assets/style.C130MVnH.css +1 -0
  511. package/dist/docs/assets/templates_agentic-owners.md.BykUiZ8j.js +14 -0
  512. package/dist/docs/assets/templates_agentic-owners.md.BykUiZ8j.lean.js +1 -0
  513. package/dist/docs/assets/templates_security-reviewer.md.DXMmKl_o.js +2 -0
  514. package/dist/docs/assets/templates_security-reviewer.md.DXMmKl_o.lean.js +1 -0
  515. package/dist/docs/assets/templates_thermo-quality-review.md.Dg1p1MsG.js +3 -0
  516. package/dist/docs/assets/templates_thermo-quality-review.md.Dg1p1MsG.lean.js +1 -0
  517. package/dist/docs/assets/templates_thermo-review.md.Dlylkowj.js +3 -0
  518. package/dist/docs/assets/templates_thermo-review.md.Dlylkowj.lean.js +1 -0
  519. package/dist/docs/assets/templates_triage.md.CvJyx81N.js +9 -0
  520. package/dist/docs/assets/templates_triage.md.CvJyx81N.lean.js +1 -0
  521. package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +1 -0
  522. package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.lean.js +1 -0
  523. package/dist/docs/building-with-agents.html +68 -0
  524. package/dist/docs/building-with-agents.md +135 -0
  525. package/dist/docs/deployment.html +91 -0
  526. package/dist/docs/deployment.md +211 -0
  527. package/dist/docs/evals.html +131 -0
  528. package/dist/docs/evals.md +257 -0
  529. package/dist/docs/guides/agent-to-agent.html +100 -0
  530. package/dist/docs/guides/agent-to-agent.md +152 -0
  531. package/dist/docs/guides/bitbucket.html +204 -0
  532. package/dist/docs/guides/bitbucket.md +288 -0
  533. package/dist/docs/guides/cloud-agents.html +69 -0
  534. package/dist/docs/guides/cloud-agents.md +90 -0
  535. package/dist/docs/guides/convert-automation.html +102 -0
  536. package/dist/docs/guides/convert-automation.md +183 -0
  537. package/dist/docs/guides/github.html +215 -0
  538. package/dist/docs/guides/github.md +326 -0
  539. package/dist/docs/guides/gitlab.html +212 -0
  540. package/dist/docs/guides/gitlab.md +294 -0
  541. package/dist/docs/guides/grokbot-agents.html +75 -0
  542. package/dist/docs/guides/grokbot-agents.md +142 -0
  543. package/dist/docs/guides/hooks.html +109 -0
  544. package/dist/docs/guides/hooks.md +114 -0
  545. package/dist/docs/guides/improve.html +81 -0
  546. package/dist/docs/guides/improve.md +134 -0
  547. package/dist/docs/guides/jev.html +210 -0
  548. package/dist/docs/guides/jev.md +294 -0
  549. package/dist/docs/guides/mcp-oauth.html +109 -0
  550. package/dist/docs/guides/mcp-oauth.md +162 -0
  551. package/dist/docs/guides/opentelemetry.html +94 -0
  552. package/dist/docs/guides/opentelemetry.md +153 -0
  553. package/dist/docs/guides/slack.html +129 -0
  554. package/dist/docs/guides/slack.md +273 -0
  555. package/dist/docs/guides/webhooks.html +151 -0
  556. package/dist/docs/guides/webhooks.md +236 -0
  557. package/dist/docs/hashmap.json +1 -0
  558. package/dist/docs/hillclimbing.html +66 -0
  559. package/dist/docs/hillclimbing.md +137 -0
  560. package/dist/docs/index.html +86 -0
  561. package/dist/docs/index.md +114 -0
  562. package/dist/docs/llms-full.txt +8439 -0
  563. package/dist/docs/llms.txt +62 -0
  564. package/dist/docs/quickstart.html +227 -0
  565. package/dist/docs/quickstart.md +306 -0
  566. package/dist/docs/reference/agent-config.html +91 -0
  567. package/dist/docs/reference/agent-config.md +188 -0
  568. package/dist/docs/reference/artifacts.html +77 -0
  569. package/dist/docs/reference/artifacts.md +116 -0
  570. package/dist/docs/reference/channels.html +82 -0
  571. package/dist/docs/reference/channels.md +198 -0
  572. package/dist/docs/reference/cli.html +156 -0
  573. package/dist/docs/reference/cli.md +904 -0
  574. package/dist/docs/reference/connections.html +122 -0
  575. package/dist/docs/reference/connections.md +272 -0
  576. package/dist/docs/reference/evals.html +115 -0
  577. package/dist/docs/reference/evals.md +287 -0
  578. package/dist/docs/reference/extensions.html +117 -0
  579. package/dist/docs/reference/extensions.md +193 -0
  580. package/dist/docs/reference/hooks.html +104 -0
  581. package/dist/docs/reference/hooks.md +190 -0
  582. package/dist/docs/reference/http-api.html +70 -0
  583. package/dist/docs/reference/http-api.md +231 -0
  584. package/dist/docs/reference/instructions.html +73 -0
  585. package/dist/docs/reference/instructions.md +63 -0
  586. package/dist/docs/reference/playground.html +60 -0
  587. package/dist/docs/reference/playground.md +42 -0
  588. package/dist/docs/reference/project-layout.html +84 -0
  589. package/dist/docs/reference/project-layout.md +115 -0
  590. package/dist/docs/reference/prompt.html +68 -0
  591. package/dist/docs/reference/prompt.md +50 -0
  592. package/dist/docs/reference/schedules.html +106 -0
  593. package/dist/docs/reference/schedules.md +170 -0
  594. package/dist/docs/reference/sessions.html +60 -0
  595. package/dist/docs/reference/sessions.md +160 -0
  596. package/dist/docs/reference/skills.html +74 -0
  597. package/dist/docs/reference/skills.md +75 -0
  598. package/dist/docs/reference/subagents.html +69 -0
  599. package/dist/docs/reference/subagents.md +62 -0
  600. package/dist/docs/reference/tools.html +149 -0
  601. package/dist/docs/reference/tools.md +324 -0
  602. package/dist/docs/templates/agentic-owners.html +73 -0
  603. package/dist/docs/templates/agentic-owners.md +95 -0
  604. package/dist/docs/templates/security-reviewer.html +61 -0
  605. package/dist/docs/templates/security-reviewer.md +85 -0
  606. package/dist/docs/templates/thermo-quality-review.html +62 -0
  607. package/dist/docs/templates/thermo-quality-review.md +78 -0
  608. package/dist/docs/templates/thermo-review.html +62 -0
  609. package/dist/docs/templates/thermo-review.md +77 -0
  610. package/dist/docs/templates/triage.html +68 -0
  611. package/dist/docs/templates/triage.md +97 -0
  612. package/dist/docs/troubleshooting.html +60 -0
  613. package/dist/docs/troubleshooting.md +143 -0
  614. package/dist/docs/vp-icons.css +0 -0
  615. package/dist/evals/assertions.d.ts +199 -0
  616. package/dist/evals/assertions.d.ts.map +1 -0
  617. package/dist/evals/assertions.js +459 -0
  618. package/dist/evals/expect.d.ts +95 -0
  619. package/dist/evals/expect.d.ts.map +1 -0
  620. package/dist/evals/expect.js +187 -0
  621. package/dist/evals/judge.d.ts +133 -0
  622. package/dist/evals/judge.d.ts.map +1 -0
  623. package/dist/evals/judge.js +224 -0
  624. package/dist/evals/loaders.d.ts +51 -0
  625. package/dist/evals/loaders.d.ts.map +1 -0
  626. package/dist/evals/loaders.js +124 -0
  627. package/dist/evals/matchers.d.ts +95 -0
  628. package/dist/evals/matchers.d.ts.map +1 -0
  629. package/dist/evals/matchers.js +142 -0
  630. package/dist/evals/reporters.d.ts +70 -0
  631. package/dist/evals/reporters.d.ts.map +1 -0
  632. package/dist/evals/reporters.js +220 -0
  633. package/dist/evals/results.d.ts +103 -0
  634. package/dist/evals/results.d.ts.map +1 -0
  635. package/dist/evals/results.js +27 -0
  636. package/dist/evals/run-facts.d.ts +77 -0
  637. package/dist/evals/run-facts.d.ts.map +1 -0
  638. package/dist/evals/run-facts.js +214 -0
  639. package/dist/evals.d.ts +446 -0
  640. package/dist/evals.d.ts.map +1 -0
  641. package/dist/evals.js +292 -0
  642. package/dist/extensions/cursor-cloud-agents/extension.d.ts +57 -0
  643. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -0
  644. package/dist/extensions/cursor-cloud-agents/extension.js +66 -0
  645. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
  646. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
  647. package/dist/extensions/cursor-cloud-agents/lib/backend.js +280 -0
  648. package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts +25 -0
  649. package/dist/extensions/cursor-cloud-agents/lib/fleet.d.ts.map +1 -0
  650. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +81 -0
  651. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
  652. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
  653. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
  654. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts +15 -0
  655. package/dist/extensions/cursor-cloud-agents/lib/repos.d.ts.map +1 -0
  656. package/dist/extensions/cursor-cloud-agents/lib/repos.js +53 -0
  657. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
  658. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
  659. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
  660. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +37 -0
  661. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
  662. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
  663. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
  664. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
  665. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
  666. package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
  667. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
  668. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
  669. package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
  670. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts +4 -0
  671. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -0
  672. package/dist/extensions/cursor-cloud-agents/tools/launch.js +59 -0
  673. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts +4 -0
  674. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -0
  675. package/dist/extensions/cursor-cloud-agents/tools/list.js +36 -0
  676. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
  677. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
  678. package/dist/extensions/cursor-cloud-agents/tools/reply.js +35 -0
  679. package/dist/extensions/improve/extension.d.ts +48 -0
  680. package/dist/extensions/improve/extension.d.ts.map +1 -0
  681. package/dist/extensions/improve/extension.js +43 -0
  682. package/dist/extensions/improve/skills/yourself.d.ts +4 -0
  683. package/dist/extensions/improve/skills/yourself.d.ts.map +1 -0
  684. package/dist/extensions/improve/skills/yourself.js +43 -0
  685. package/dist/extensions/jev/extension.d.ts +43 -0
  686. package/dist/extensions/jev/extension.d.ts.map +1 -0
  687. package/dist/extensions/jev/extension.js +47 -0
  688. package/dist/extensions/jev/lib/evaluate.d.ts +101 -0
  689. package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -0
  690. package/dist/extensions/jev/lib/evaluate.js +167 -0
  691. package/dist/extensions/jev/skills/gated-write.md +25 -0
  692. package/dist/extensions/jev/skills/questions.md +33 -0
  693. package/dist/extensions/jev/tools/evaluate.d.ts +4 -0
  694. package/dist/extensions/jev/tools/evaluate.d.ts.map +1 -0
  695. package/dist/extensions/jev/tools/evaluate.js +83 -0
  696. package/dist/extensions/slack-communication/extension.d.ts +28 -0
  697. package/dist/extensions/slack-communication/extension.d.ts.map +1 -0
  698. package/dist/extensions/slack-communication/extension.js +32 -0
  699. package/dist/extensions/slack-communication/skills/slack-voice.d.ts +5 -0
  700. package/dist/extensions/slack-communication/skills/slack-voice.d.ts.map +1 -0
  701. package/dist/extensions/slack-communication/skills/slack-voice.js +52 -0
  702. package/dist/extensions/slack-communication/tools/delete-message.d.ts +4 -0
  703. package/dist/extensions/slack-communication/tools/delete-message.d.ts.map +1 -0
  704. package/dist/extensions/slack-communication/tools/delete-message.js +29 -0
  705. package/dist/extensions/slack-communication/tools/edit-message.d.ts +4 -0
  706. package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -0
  707. package/dist/extensions/slack-communication/tools/edit-message.js +37 -0
  708. package/dist/extensions/slack-communication/tools/post-card.d.ts +4 -0
  709. package/dist/extensions/slack-communication/tools/post-card.d.ts.map +1 -0
  710. package/dist/extensions/slack-communication/tools/post-card.js +25 -0
  711. package/dist/extensions/slack-communication/tools/post-file.d.ts +4 -0
  712. package/dist/extensions/slack-communication/tools/post-file.d.ts.map +1 -0
  713. package/dist/extensions/slack-communication/tools/post-file.js +75 -0
  714. package/dist/extensions/slack-communication/tools/post-update.d.ts +4 -0
  715. package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -0
  716. package/dist/extensions/slack-communication/tools/post-update.js +36 -0
  717. package/dist/extensions/slack-communication/tools/react.d.ts +4 -0
  718. package/dist/extensions/slack-communication/tools/react.d.ts.map +1 -0
  719. package/dist/extensions/slack-communication/tools/react.js +27 -0
  720. package/dist/extensions/slack-communication/tools/set-status.d.ts +4 -0
  721. package/dist/extensions/slack-communication/tools/set-status.d.ts.map +1 -0
  722. package/dist/extensions/slack-communication/tools/set-status.js +18 -0
  723. package/dist/extensions.d.ts +85 -0
  724. package/dist/extensions.d.ts.map +1 -0
  725. package/dist/extensions.js +140 -0
  726. package/dist/files-backends/agent-store-presigned-url.d.ts +3 -0
  727. package/dist/files-backends/agent-store-presigned-url.d.ts.map +1 -0
  728. package/dist/files-backends/agent-store-presigned-url.js +223 -0
  729. package/dist/files-backends/cursor-hosted.d.ts +126 -0
  730. package/dist/files-backends/cursor-hosted.d.ts.map +1 -0
  731. package/dist/files-backends/cursor-hosted.js +978 -0
  732. package/dist/files-backends/local-fs.d.ts +33 -0
  733. package/dist/files-backends/local-fs.d.ts.map +1 -0
  734. package/dist/files-backends/local-fs.js +195 -0
  735. package/dist/files.d.ts +225 -0
  736. package/dist/files.d.ts.map +1 -0
  737. package/dist/files.js +152 -0
  738. package/dist/filesystem.d.ts +484 -0
  739. package/dist/filesystem.d.ts.map +1 -0
  740. package/dist/filesystem.js +1698 -0
  741. package/dist/hooks.d.ts +25 -0
  742. package/dist/hooks.d.ts.map +1 -0
  743. package/dist/hooks.js +25 -0
  744. package/dist/index.d.ts +84 -0
  745. package/dist/index.d.ts.map +1 -0
  746. package/dist/index.js +109 -0
  747. package/dist/internal/advertise-tools.d.ts +95 -0
  748. package/dist/internal/advertise-tools.d.ts.map +1 -0
  749. package/dist/internal/advertise-tools.js +265 -0
  750. package/dist/internal/approval-gate.d.ts +33 -0
  751. package/dist/internal/approval-gate.d.ts.map +1 -0
  752. package/dist/internal/approval-gate.js +80 -0
  753. package/dist/internal/artifacts-store.d.ts +125 -0
  754. package/dist/internal/artifacts-store.d.ts.map +1 -0
  755. package/dist/internal/artifacts-store.js +737 -0
  756. package/dist/internal/as-of.d.ts +37 -0
  757. package/dist/internal/as-of.d.ts.map +1 -0
  758. package/dist/internal/as-of.js +207 -0
  759. package/dist/internal/auth.d.ts +12 -0
  760. package/dist/internal/auth.d.ts.map +1 -0
  761. package/dist/internal/auth.js +34 -0
  762. package/dist/internal/authored-alias-hooks.d.ts +42 -0
  763. package/dist/internal/authored-alias-hooks.d.ts.map +1 -0
  764. package/dist/internal/authored-alias-hooks.js +93 -0
  765. package/dist/internal/authored-loaders.d.ts +50 -0
  766. package/dist/internal/authored-loaders.d.ts.map +1 -0
  767. package/dist/internal/authored-loaders.js +182 -0
  768. package/dist/internal/bounded-int.d.ts +11 -0
  769. package/dist/internal/bounded-int.d.ts.map +1 -0
  770. package/dist/internal/bounded-int.js +13 -0
  771. package/dist/internal/bounded.d.ts +7 -0
  772. package/dist/internal/bounded.d.ts.map +1 -0
  773. package/dist/internal/bounded.js +32 -0
  774. package/dist/internal/brand.d.ts +6 -0
  775. package/dist/internal/brand.d.ts.map +1 -0
  776. package/dist/internal/brand.js +17 -0
  777. package/dist/internal/browser-origin-guard.d.ts +19 -0
  778. package/dist/internal/browser-origin-guard.d.ts.map +1 -0
  779. package/dist/internal/browser-origin-guard.js +51 -0
  780. package/dist/internal/builtin-tools/artifacts.d.ts +10 -0
  781. package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -0
  782. package/dist/internal/builtin-tools/artifacts.js +66 -0
  783. package/dist/internal/builtin-tools/index.d.ts +17 -0
  784. package/dist/internal/builtin-tools/index.d.ts.map +1 -0
  785. package/dist/internal/builtin-tools/index.js +40 -0
  786. package/dist/internal/builtin-tools/reminders.d.ts +9 -0
  787. package/dist/internal/builtin-tools/reminders.d.ts.map +1 -0
  788. package/dist/internal/builtin-tools/reminders.js +134 -0
  789. package/dist/internal/channel-dispatch.d.ts +43 -0
  790. package/dist/internal/channel-dispatch.d.ts.map +1 -0
  791. package/dist/internal/channel-dispatch.js +75 -0
  792. package/dist/internal/channel-route-dispatch.d.ts +13 -0
  793. package/dist/internal/channel-route-dispatch.d.ts.map +1 -0
  794. package/dist/internal/channel-route-dispatch.js +62 -0
  795. package/dist/internal/channel-state.d.ts +17 -0
  796. package/dist/internal/channel-state.d.ts.map +1 -0
  797. package/dist/internal/channel-state.js +69 -0
  798. package/dist/internal/chat-client.d.ts +45 -0
  799. package/dist/internal/chat-client.d.ts.map +1 -0
  800. package/dist/internal/chat-client.js +478 -0
  801. package/dist/internal/cli-ax.d.ts +233 -0
  802. package/dist/internal/cli-ax.d.ts.map +1 -0
  803. package/dist/internal/cli-ax.js +1864 -0
  804. package/dist/internal/cli-bitbucket.d.ts +33 -0
  805. package/dist/internal/cli-bitbucket.d.ts.map +1 -0
  806. package/dist/internal/cli-bitbucket.js +360 -0
  807. package/dist/internal/cli-convert-automation.d.ts +39 -0
  808. package/dist/internal/cli-convert-automation.d.ts.map +1 -0
  809. package/dist/internal/cli-convert-automation.js +281 -0
  810. package/dist/internal/cli-cursor.d.ts +38 -0
  811. package/dist/internal/cli-cursor.d.ts.map +1 -0
  812. package/dist/internal/cli-cursor.js +226 -0
  813. package/dist/internal/cli-deploy.d.ts +164 -0
  814. package/dist/internal/cli-deploy.d.ts.map +1 -0
  815. package/dist/internal/cli-deploy.js +1930 -0
  816. package/dist/internal/cli-docs.d.ts +34 -0
  817. package/dist/internal/cli-docs.d.ts.map +1 -0
  818. package/dist/internal/cli-docs.js +173 -0
  819. package/dist/internal/cli-github.d.ts +47 -0
  820. package/dist/internal/cli-github.d.ts.map +1 -0
  821. package/dist/internal/cli-github.js +639 -0
  822. package/dist/internal/cli-gitlab.d.ts +37 -0
  823. package/dist/internal/cli-gitlab.d.ts.map +1 -0
  824. package/dist/internal/cli-gitlab.js +379 -0
  825. package/dist/internal/cli-images.d.ts +68 -0
  826. package/dist/internal/cli-images.d.ts.map +1 -0
  827. package/dist/internal/cli-images.js +604 -0
  828. package/dist/internal/cli-manifest.d.ts +19 -0
  829. package/dist/internal/cli-manifest.d.ts.map +1 -0
  830. package/dist/internal/cli-manifest.js +49 -0
  831. package/dist/internal/cli-mcp-oauth.d.ts +51 -0
  832. package/dist/internal/cli-mcp-oauth.d.ts.map +1 -0
  833. package/dist/internal/cli-mcp-oauth.js +318 -0
  834. package/dist/internal/cli-mcp.d.ts +75 -0
  835. package/dist/internal/cli-mcp.d.ts.map +1 -0
  836. package/dist/internal/cli-mcp.js +684 -0
  837. package/dist/internal/cli-skills.d.ts +21 -0
  838. package/dist/internal/cli-skills.d.ts.map +1 -0
  839. package/dist/internal/cli-skills.js +77 -0
  840. package/dist/internal/cli-slack-manual.d.ts +42 -0
  841. package/dist/internal/cli-slack-manual.d.ts.map +1 -0
  842. package/dist/internal/cli-slack-manual.js +325 -0
  843. package/dist/internal/cli-slack.d.ts +59 -0
  844. package/dist/internal/cli-slack.d.ts.map +1 -0
  845. package/dist/internal/cli-slack.js +695 -0
  846. package/dist/internal/cloud-merge.d.ts +25 -0
  847. package/dist/internal/cloud-merge.d.ts.map +1 -0
  848. package/dist/internal/cloud-merge.js +36 -0
  849. package/dist/internal/cloud-turn-cost.d.ts +42 -0
  850. package/dist/internal/cloud-turn-cost.d.ts.map +1 -0
  851. package/dist/internal/cloud-turn-cost.js +113 -0
  852. package/dist/internal/continuation-channel.d.ts +48 -0
  853. package/dist/internal/continuation-channel.d.ts.map +1 -0
  854. package/dist/internal/continuation-channel.js +154 -0
  855. package/dist/internal/continuation-identity.d.ts +113 -0
  856. package/dist/internal/continuation-identity.d.ts.map +1 -0
  857. package/dist/internal/continuation-identity.js +749 -0
  858. package/dist/internal/conversation-mirror.d.ts +85 -0
  859. package/dist/internal/conversation-mirror.d.ts.map +1 -0
  860. package/dist/internal/conversation-mirror.js +342 -0
  861. package/dist/internal/convert-automation/convert-workflow.d.ts +10 -0
  862. package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -0
  863. package/dist/internal/convert-automation/convert-workflow.js +998 -0
  864. package/dist/internal/convert-automation/slug.d.ts +9 -0
  865. package/dist/internal/convert-automation/slug.d.ts.map +1 -0
  866. package/dist/internal/convert-automation/slug.js +28 -0
  867. package/dist/internal/convert-automation/types.d.ts +202 -0
  868. package/dist/internal/convert-automation/types.d.ts.map +1 -0
  869. package/dist/internal/convert-automation/types.js +13 -0
  870. package/dist/internal/cron.d.ts +17 -0
  871. package/dist/internal/cron.d.ts.map +1 -0
  872. package/dist/internal/cron.js +60 -0
  873. package/dist/internal/cursor/account-mcp.d.ts +135 -0
  874. package/dist/internal/cursor/account-mcp.d.ts.map +1 -0
  875. package/dist/internal/cursor/account-mcp.js +510 -0
  876. package/dist/internal/cursor/backend-client.d.ts +224 -0
  877. package/dist/internal/cursor/backend-client.d.ts.map +1 -0
  878. package/dist/internal/cursor/backend-client.js +720 -0
  879. package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
  880. package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
  881. package/dist/internal/cursor/bound-secret-file.js +88 -0
  882. package/dist/internal/cursor/credentials.d.ts +195 -0
  883. package/dist/internal/cursor/credentials.d.ts.map +1 -0
  884. package/dist/internal/cursor/credentials.js +475 -0
  885. package/dist/internal/cursor/cursor-api-transport.d.ts +37 -0
  886. package/dist/internal/cursor/cursor-api-transport.d.ts.map +1 -0
  887. package/dist/internal/cursor/cursor-api-transport.js +44 -0
  888. package/dist/internal/cursor/github-credentials.d.ts +44 -0
  889. package/dist/internal/cursor/github-credentials.d.ts.map +1 -0
  890. package/dist/internal/cursor/github-credentials.js +191 -0
  891. package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
  892. package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
  893. package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
  894. package/dist/internal/cursor/hosted-deployment-secrets.d.ts +30 -0
  895. package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -0
  896. package/dist/internal/cursor/hosted-deployment-secrets.js +81 -0
  897. package/dist/internal/cursor/hosted-store-secrets.d.ts +63 -0
  898. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -0
  899. package/dist/internal/cursor/hosted-store-secrets.js +112 -0
  900. package/dist/internal/cursor/session-token.d.ts +45 -0
  901. package/dist/internal/cursor/session-token.d.ts.map +1 -0
  902. package/dist/internal/cursor/session-token.js +97 -0
  903. package/dist/internal/cursor/store-api-client.d.ts +82 -0
  904. package/dist/internal/cursor/store-api-client.d.ts.map +1 -0
  905. package/dist/internal/cursor/store-api-client.js +226 -0
  906. package/dist/internal/cursor-account-mcp-auth.d.ts +66 -0
  907. package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -0
  908. package/dist/internal/cursor-account-mcp-auth.js +241 -0
  909. package/dist/internal/cursor-agent-template.d.ts +9 -0
  910. package/dist/internal/cursor-agent-template.d.ts.map +1 -0
  911. package/dist/internal/cursor-agent-template.js +43 -0
  912. package/dist/internal/cursor-deployment-relay.d.ts +95 -0
  913. package/dist/internal/cursor-deployment-relay.d.ts.map +1 -0
  914. package/dist/internal/cursor-deployment-relay.js +233 -0
  915. package/dist/internal/cursor-event-relay.d.ts +243 -0
  916. package/dist/internal/cursor-event-relay.d.ts.map +1 -0
  917. package/dist/internal/cursor-event-relay.js +424 -0
  918. package/dist/internal/cursor-relay-core.d.ts +160 -0
  919. package/dist/internal/cursor-relay-core.d.ts.map +1 -0
  920. package/dist/internal/cursor-relay-core.js +470 -0
  921. package/dist/internal/deferred-channel-session.d.ts +20 -0
  922. package/dist/internal/deferred-channel-session.d.ts.map +1 -0
  923. package/dist/internal/deferred-channel-session.js +62 -0
  924. package/dist/internal/deploy-client.d.ts +576 -0
  925. package/dist/internal/deploy-client.d.ts.map +1 -0
  926. package/dist/internal/deploy-client.js +987 -0
  927. package/dist/internal/deploy-manifest.d.ts +135 -0
  928. package/dist/internal/deploy-manifest.d.ts.map +1 -0
  929. package/dist/internal/deploy-manifest.js +231 -0
  930. package/dist/internal/deploy-source.d.ts +38 -0
  931. package/dist/internal/deploy-source.d.ts.map +1 -0
  932. package/dist/internal/deploy-source.js +136 -0
  933. package/dist/internal/describe-error.d.ts +4 -0
  934. package/dist/internal/describe-error.d.ts.map +1 -0
  935. package/dist/internal/describe-error.js +29 -0
  936. package/dist/internal/dev-mode.d.ts +13 -0
  937. package/dist/internal/dev-mode.d.ts.map +1 -0
  938. package/dist/internal/dev-mode.js +17 -0
  939. package/dist/internal/discovery/agent-config.d.ts +48 -0
  940. package/dist/internal/discovery/agent-config.d.ts.map +1 -0
  941. package/dist/internal/discovery/agent-config.js +224 -0
  942. package/dist/internal/discovery/agent.d.ts +16 -0
  943. package/dist/internal/discovery/agent.d.ts.map +1 -0
  944. package/dist/internal/discovery/agent.js +326 -0
  945. package/dist/internal/discovery/channels.d.ts +10 -0
  946. package/dist/internal/discovery/channels.d.ts.map +1 -0
  947. package/dist/internal/discovery/channels.js +97 -0
  948. package/dist/internal/discovery/connections.d.ts +13 -0
  949. package/dist/internal/discovery/connections.d.ts.map +1 -0
  950. package/dist/internal/discovery/connections.js +429 -0
  951. package/dist/internal/discovery/context.d.ts +20 -0
  952. package/dist/internal/discovery/context.d.ts.map +1 -0
  953. package/dist/internal/discovery/context.js +30 -0
  954. package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
  955. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
  956. package/dist/internal/discovery/cursor-plugin.js +549 -0
  957. package/dist/internal/discovery/extension-overlay.d.ts +31 -0
  958. package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
  959. package/dist/internal/discovery/extension-overlay.js +173 -0
  960. package/dist/internal/discovery/extensions.d.ts +27 -0
  961. package/dist/internal/discovery/extensions.d.ts.map +1 -0
  962. package/dist/internal/discovery/extensions.js +352 -0
  963. package/dist/internal/discovery/fs.d.ts +15 -0
  964. package/dist/internal/discovery/fs.d.ts.map +1 -0
  965. package/dist/internal/discovery/fs.js +115 -0
  966. package/dist/internal/discovery/hooks.d.ts +7 -0
  967. package/dist/internal/discovery/hooks.d.ts.map +1 -0
  968. package/dist/internal/discovery/hooks.js +61 -0
  969. package/dist/internal/discovery/info.d.ts +6 -0
  970. package/dist/internal/discovery/info.d.ts.map +1 -0
  971. package/dist/internal/discovery/info.js +168 -0
  972. package/dist/internal/discovery/instructions.d.ts +7 -0
  973. package/dist/internal/discovery/instructions.d.ts.map +1 -0
  974. package/dist/internal/discovery/instructions.js +95 -0
  975. package/dist/internal/discovery/modules.d.ts +20 -0
  976. package/dist/internal/discovery/modules.d.ts.map +1 -0
  977. package/dist/internal/discovery/modules.js +104 -0
  978. package/dist/internal/discovery/names.d.ts +12 -0
  979. package/dist/internal/discovery/names.d.ts.map +1 -0
  980. package/dist/internal/discovery/names.js +37 -0
  981. package/dist/internal/discovery/project.d.ts +51 -0
  982. package/dist/internal/discovery/project.d.ts.map +1 -0
  983. package/dist/internal/discovery/project.js +290 -0
  984. package/dist/internal/discovery/reminders.d.ts +7 -0
  985. package/dist/internal/discovery/reminders.d.ts.map +1 -0
  986. package/dist/internal/discovery/reminders.js +65 -0
  987. package/dist/internal/discovery/runtime.d.ts +34 -0
  988. package/dist/internal/discovery/runtime.d.ts.map +1 -0
  989. package/dist/internal/discovery/runtime.js +97 -0
  990. package/dist/internal/discovery/schedules.d.ts +7 -0
  991. package/dist/internal/discovery/schedules.d.ts.map +1 -0
  992. package/dist/internal/discovery/schedules.js +118 -0
  993. package/dist/internal/discovery/seed-files.d.ts +7 -0
  994. package/dist/internal/discovery/seed-files.d.ts.map +1 -0
  995. package/dist/internal/discovery/seed-files.js +41 -0
  996. package/dist/internal/discovery/services.d.ts +26 -0
  997. package/dist/internal/discovery/services.d.ts.map +1 -0
  998. package/dist/internal/discovery/services.js +138 -0
  999. package/dist/internal/discovery/skills.d.ts +11 -0
  1000. package/dist/internal/discovery/skills.d.ts.map +1 -0
  1001. package/dist/internal/discovery/skills.js +156 -0
  1002. package/dist/internal/discovery/subagent.d.ts +16 -0
  1003. package/dist/internal/discovery/subagent.d.ts.map +1 -0
  1004. package/dist/internal/discovery/subagent.js +129 -0
  1005. package/dist/internal/discovery/tools.d.ts +18 -0
  1006. package/dist/internal/discovery/tools.d.ts.map +1 -0
  1007. package/dist/internal/discovery/tools.js +155 -0
  1008. package/dist/internal/discovery.d.ts +15 -0
  1009. package/dist/internal/discovery.d.ts.map +1 -0
  1010. package/dist/internal/discovery.js +13 -0
  1011. package/dist/internal/distribution.d.ts +65 -0
  1012. package/dist/internal/distribution.d.ts.map +1 -0
  1013. package/dist/internal/distribution.js +102 -0
  1014. package/dist/internal/docs-site.d.ts +41 -0
  1015. package/dist/internal/docs-site.d.ts.map +1 -0
  1016. package/dist/internal/docs-site.js +234 -0
  1017. package/dist/internal/duration.d.ts +8 -0
  1018. package/dist/internal/duration.d.ts.map +1 -0
  1019. package/dist/internal/duration.js +35 -0
  1020. package/dist/internal/env-file.d.ts +19 -0
  1021. package/dist/internal/env-file.d.ts.map +1 -0
  1022. package/dist/internal/env-file.js +90 -0
  1023. package/dist/internal/eval-judge-model.d.ts +59 -0
  1024. package/dist/internal/eval-judge-model.d.ts.map +1 -0
  1025. package/dist/internal/eval-judge-model.js +129 -0
  1026. package/dist/internal/eval-run-store.d.ts +119 -0
  1027. package/dist/internal/eval-run-store.d.ts.map +1 -0
  1028. package/dist/internal/eval-run-store.js +468 -0
  1029. package/dist/internal/eval-runner.d.ts +98 -0
  1030. package/dist/internal/eval-runner.d.ts.map +1 -0
  1031. package/dist/internal/eval-runner.js +615 -0
  1032. package/dist/internal/evals-client.d.ts +104 -0
  1033. package/dist/internal/evals-client.d.ts.map +1 -0
  1034. package/dist/internal/evals-client.js +303 -0
  1035. package/dist/internal/event-log.d.ts +94 -0
  1036. package/dist/internal/event-log.d.ts.map +1 -0
  1037. package/dist/internal/event-log.js +347 -0
  1038. package/dist/internal/event-mapper.d.ts +123 -0
  1039. package/dist/internal/event-mapper.d.ts.map +1 -0
  1040. package/dist/internal/event-mapper.js +370 -0
  1041. package/dist/internal/expected-delivery-failure.d.ts +3 -0
  1042. package/dist/internal/expected-delivery-failure.d.ts.map +1 -0
  1043. package/dist/internal/expected-delivery-failure.js +28 -0
  1044. package/dist/internal/factory-resource-channel.d.ts +33 -0
  1045. package/dist/internal/factory-resource-channel.d.ts.map +1 -0
  1046. package/dist/internal/factory-resource-channel.js +77 -0
  1047. package/dist/internal/filesystem/errors.d.ts +64 -0
  1048. package/dist/internal/filesystem/errors.d.ts.map +1 -0
  1049. package/dist/internal/filesystem/errors.js +172 -0
  1050. package/dist/internal/filesystem/format.d.ts +28 -0
  1051. package/dist/internal/filesystem/format.d.ts.map +1 -0
  1052. package/dist/internal/filesystem/format.js +212 -0
  1053. package/dist/internal/filesystem/merge.d.ts +34 -0
  1054. package/dist/internal/filesystem/merge.d.ts.map +1 -0
  1055. package/dist/internal/filesystem/merge.js +196 -0
  1056. package/dist/internal/filesystem/nearest.d.ts +14 -0
  1057. package/dist/internal/filesystem/nearest.d.ts.map +1 -0
  1058. package/dist/internal/filesystem/nearest.js +101 -0
  1059. package/dist/internal/filesystem/scratch.d.ts +59 -0
  1060. package/dist/internal/filesystem/scratch.d.ts.map +1 -0
  1061. package/dist/internal/filesystem/scratch.js +204 -0
  1062. package/dist/internal/filesystem/sdk-schemas.d.ts +29 -0
  1063. package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -0
  1064. package/dist/internal/filesystem/sdk-schemas.js +153 -0
  1065. package/dist/internal/filesystem/tools.d.ts +42 -0
  1066. package/dist/internal/filesystem/tools.d.ts.map +1 -0
  1067. package/dist/internal/filesystem/tools.js +631 -0
  1068. package/dist/internal/filesystem/walk.d.ts +77 -0
  1069. package/dist/internal/filesystem/walk.d.ts.map +1 -0
  1070. package/dist/internal/filesystem/walk.js +350 -0
  1071. package/dist/internal/framework-file-storage.d.ts +75 -0
  1072. package/dist/internal/framework-file-storage.d.ts.map +1 -0
  1073. package/dist/internal/framework-file-storage.js +338 -0
  1074. package/dist/internal/framework-storage-selection.d.ts +66 -0
  1075. package/dist/internal/framework-storage-selection.d.ts.map +1 -0
  1076. package/dist/internal/framework-storage-selection.js +123 -0
  1077. package/dist/internal/frontmatter.d.ts +20 -0
  1078. package/dist/internal/frontmatter.d.ts.map +1 -0
  1079. package/dist/internal/frontmatter.js +87 -0
  1080. package/dist/internal/github-fanout.d.ts +32 -0
  1081. package/dist/internal/github-fanout.d.ts.map +1 -0
  1082. package/dist/internal/github-fanout.js +120 -0
  1083. package/dist/internal/guest-network.d.ts +98 -0
  1084. package/dist/internal/guest-network.d.ts.map +1 -0
  1085. package/dist/internal/guest-network.js +326 -0
  1086. package/dist/internal/handleAgentServeTrigger.d.ts +91 -0
  1087. package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -0
  1088. package/dist/internal/handleAgentServeTrigger.js +199 -0
  1089. package/dist/internal/host-files.d.ts +29 -0
  1090. package/dist/internal/host-files.d.ts.map +1 -0
  1091. package/dist/internal/host-files.js +274 -0
  1092. package/dist/internal/host-kv.d.ts +21 -0
  1093. package/dist/internal/host-kv.d.ts.map +1 -0
  1094. package/dist/internal/host-kv.js +77 -0
  1095. package/dist/internal/host-otel.d.ts +25 -0
  1096. package/dist/internal/host-otel.d.ts.map +1 -0
  1097. package/dist/internal/host-otel.js +162 -0
  1098. package/dist/internal/host-platforms.d.ts +58 -0
  1099. package/dist/internal/host-platforms.d.ts.map +1 -0
  1100. package/dist/internal/host-platforms.js +126 -0
  1101. package/dist/internal/hosted-admission-adapter.d.ts +36 -0
  1102. package/dist/internal/hosted-admission-adapter.d.ts.map +1 -0
  1103. package/dist/internal/hosted-admission-adapter.js +7 -0
  1104. package/dist/internal/hosted-admission-context.d.ts +20 -0
  1105. package/dist/internal/hosted-admission-context.d.ts.map +1 -0
  1106. package/dist/internal/hosted-admission-context.js +31 -0
  1107. package/dist/internal/hosted-catch-protocol.d.ts +51 -0
  1108. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -0
  1109. package/dist/internal/hosted-catch-protocol.js +87 -0
  1110. package/dist/internal/hosted-catch.d.ts +40 -0
  1111. package/dist/internal/hosted-catch.d.ts.map +1 -0
  1112. package/dist/internal/hosted-catch.js +146 -0
  1113. package/dist/internal/hosted-delivery-protocol.d.ts +199 -0
  1114. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -0
  1115. package/dist/internal/hosted-delivery-protocol.js +516 -0
  1116. package/dist/internal/hosted-delivery.d.ts +110 -0
  1117. package/dist/internal/hosted-delivery.d.ts.map +1 -0
  1118. package/dist/internal/hosted-delivery.js +768 -0
  1119. package/dist/internal/hosted-execution-diag.d.ts +75 -0
  1120. package/dist/internal/hosted-execution-diag.d.ts.map +1 -0
  1121. package/dist/internal/hosted-execution-diag.js +220 -0
  1122. package/dist/internal/hosted-execution-flush.d.ts +50 -0
  1123. package/dist/internal/hosted-execution-flush.d.ts.map +1 -0
  1124. package/dist/internal/hosted-execution-flush.js +71 -0
  1125. package/dist/internal/hosted-execution-latency.d.ts +80 -0
  1126. package/dist/internal/hosted-execution-latency.d.ts.map +1 -0
  1127. package/dist/internal/hosted-execution-latency.js +218 -0
  1128. package/dist/internal/hosted-managed-automation.d.ts +30 -0
  1129. package/dist/internal/hosted-managed-automation.d.ts.map +1 -0
  1130. package/dist/internal/hosted-managed-automation.js +83 -0
  1131. package/dist/internal/hosting.d.ts +53 -0
  1132. package/dist/internal/hosting.d.ts.map +1 -0
  1133. package/dist/internal/hosting.js +93 -0
  1134. package/dist/internal/http-channel-define.d.ts +11 -0
  1135. package/dist/internal/http-channel-define.d.ts.map +1 -0
  1136. package/dist/internal/http-channel-define.js +18 -0
  1137. package/dist/internal/http-channel.d.ts +54 -0
  1138. package/dist/internal/http-channel.d.ts.map +1 -0
  1139. package/dist/internal/http-channel.js +534 -0
  1140. package/dist/internal/http-control-plane-session.d.ts +34 -0
  1141. package/dist/internal/http-control-plane-session.d.ts.map +1 -0
  1142. package/dist/internal/http-control-plane-session.js +93 -0
  1143. package/dist/internal/ids.d.ts +19 -0
  1144. package/dist/internal/ids.d.ts.map +1 -0
  1145. package/dist/internal/ids.js +34 -0
  1146. package/dist/internal/incoming-headers-to-fetch.d.ts +10 -0
  1147. package/dist/internal/incoming-headers-to-fetch.d.ts.map +1 -0
  1148. package/dist/internal/incoming-headers-to-fetch.js +41 -0
  1149. package/dist/internal/init-interview.d.ts +67 -0
  1150. package/dist/internal/init-interview.d.ts.map +1 -0
  1151. package/dist/internal/init-interview.js +295 -0
  1152. package/dist/internal/init-project.d.ts +175 -0
  1153. package/dist/internal/init-project.d.ts.map +1 -0
  1154. package/dist/internal/init-project.js +531 -0
  1155. package/dist/internal/init-scaffold.d.ts +9 -0
  1156. package/dist/internal/init-scaffold.d.ts.map +1 -0
  1157. package/dist/internal/init-scaffold.js +172 -0
  1158. package/dist/internal/inline-stdio-define-stub.d.ts +3 -0
  1159. package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -0
  1160. package/dist/internal/inline-stdio-define-stub.js +4 -0
  1161. package/dist/internal/inline-stdio-mcp.d.ts +34 -0
  1162. package/dist/internal/inline-stdio-mcp.d.ts.map +1 -0
  1163. package/dist/internal/inline-stdio-mcp.js +176 -0
  1164. package/dist/internal/install-cursor-skills.d.ts +164 -0
  1165. package/dist/internal/install-cursor-skills.d.ts.map +1 -0
  1166. package/dist/internal/install-cursor-skills.js +498 -0
  1167. package/dist/internal/is-record.d.ts +2 -0
  1168. package/dist/internal/is-record.d.ts.map +1 -0
  1169. package/dist/internal/is-record.js +3 -0
  1170. package/dist/internal/json-schema.d.ts +25 -0
  1171. package/dist/internal/json-schema.d.ts.map +1 -0
  1172. package/dist/internal/json-schema.js +76 -0
  1173. package/dist/internal/legacy-command-guard.d.ts +22 -0
  1174. package/dist/internal/legacy-command-guard.d.ts.map +1 -0
  1175. package/dist/internal/legacy-command-guard.js +51 -0
  1176. package/dist/internal/listen-port.d.ts +22 -0
  1177. package/dist/internal/listen-port.d.ts.map +1 -0
  1178. package/dist/internal/listen-port.js +77 -0
  1179. package/dist/internal/local-control-plane.d.ts +59 -0
  1180. package/dist/internal/local-control-plane.d.ts.map +1 -0
  1181. package/dist/internal/local-control-plane.js +351 -0
  1182. package/dist/internal/local-env.d.ts +10 -0
  1183. package/dist/internal/local-env.d.ts.map +1 -0
  1184. package/dist/internal/local-env.js +55 -0
  1185. package/dist/internal/local-ingress.d.ts +35 -0
  1186. package/dist/internal/local-ingress.d.ts.map +1 -0
  1187. package/dist/internal/local-ingress.js +44 -0
  1188. package/dist/internal/log-ring.d.ts +23 -0
  1189. package/dist/internal/log-ring.d.ts.map +1 -0
  1190. package/dist/internal/log-ring.js +42 -0
  1191. package/dist/internal/logs-client.d.ts +79 -0
  1192. package/dist/internal/logs-client.d.ts.map +1 -0
  1193. package/dist/internal/logs-client.js +350 -0
  1194. package/dist/internal/map-pool.d.ts +11 -0
  1195. package/dist/internal/map-pool.d.ts.map +1 -0
  1196. package/dist/internal/map-pool.js +48 -0
  1197. package/dist/internal/mcp-endpoint.d.ts +72 -0
  1198. package/dist/internal/mcp-endpoint.d.ts.map +1 -0
  1199. package/dist/internal/mcp-endpoint.js +530 -0
  1200. package/dist/internal/mcp-host.d.ts +84 -0
  1201. package/dist/internal/mcp-host.d.ts.map +1 -0
  1202. package/dist/internal/mcp-host.js +391 -0
  1203. package/dist/internal/mcp-oauth-on-demand.d.ts +68 -0
  1204. package/dist/internal/mcp-oauth-on-demand.d.ts.map +1 -0
  1205. package/dist/internal/mcp-oauth-on-demand.js +287 -0
  1206. package/dist/internal/mcp-oauth-persist.d.ts +42 -0
  1207. package/dist/internal/mcp-oauth-persist.d.ts.map +1 -0
  1208. package/dist/internal/mcp-oauth-persist.js +90 -0
  1209. package/dist/internal/mcp-oauth.d.ts +118 -0
  1210. package/dist/internal/mcp-oauth.d.ts.map +1 -0
  1211. package/dist/internal/mcp-oauth.js +450 -0
  1212. package/dist/internal/net.d.ts +5 -0
  1213. package/dist/internal/net.d.ts.map +1 -0
  1214. package/dist/internal/net.js +28 -0
  1215. package/dist/internal/open-browser.d.ts +5 -0
  1216. package/dist/internal/open-browser.d.ts.map +1 -0
  1217. package/dist/internal/open-browser.js +34 -0
  1218. package/dist/internal/otel/attrs.d.ts +7 -0
  1219. package/dist/internal/otel/attrs.d.ts.map +1 -0
  1220. package/dist/internal/otel/attrs.js +13 -0
  1221. package/dist/internal/otel/collector.d.ts +43 -0
  1222. package/dist/internal/otel/collector.d.ts.map +1 -0
  1223. package/dist/internal/otel/collector.js +650 -0
  1224. package/dist/internal/otel/config.d.ts +40 -0
  1225. package/dist/internal/otel/config.d.ts.map +1 -0
  1226. package/dist/internal/otel/config.js +231 -0
  1227. package/dist/internal/otel/http.d.ts +13 -0
  1228. package/dist/internal/otel/http.d.ts.map +1 -0
  1229. package/dist/internal/otel/http.js +95 -0
  1230. package/dist/internal/otel/mcp.d.ts +16 -0
  1231. package/dist/internal/otel/mcp.d.ts.map +1 -0
  1232. package/dist/internal/otel/mcp.js +55 -0
  1233. package/dist/internal/otel/propagation.d.ts +6 -0
  1234. package/dist/internal/otel/propagation.d.ts.map +1 -0
  1235. package/dist/internal/otel/propagation.js +14 -0
  1236. package/dist/internal/otel/runtime.d.ts +46 -0
  1237. package/dist/internal/otel/runtime.d.ts.map +1 -0
  1238. package/dist/internal/otel/runtime.js +333 -0
  1239. package/dist/internal/package-inline-stdio.d.ts +12 -0
  1240. package/dist/internal/package-inline-stdio.d.ts.map +1 -0
  1241. package/dist/internal/package-inline-stdio.js +99 -0
  1242. package/dist/internal/peer-connections.d.ts +44 -0
  1243. package/dist/internal/peer-connections.d.ts.map +1 -0
  1244. package/dist/internal/peer-connections.js +67 -0
  1245. package/dist/internal/platform-schedule-sync.d.ts +17 -0
  1246. package/dist/internal/platform-schedule-sync.d.ts.map +1 -0
  1247. package/dist/internal/platform-schedule-sync.js +70 -0
  1248. package/dist/internal/platform-timers.d.ts +35 -0
  1249. package/dist/internal/platform-timers.d.ts.map +1 -0
  1250. package/dist/internal/platform-timers.js +277 -0
  1251. package/dist/internal/playground/static.d.ts +52 -0
  1252. package/dist/internal/playground/static.d.ts.map +1 -0
  1253. package/dist/internal/playground/static.js +231 -0
  1254. package/dist/internal/playground/toolchain.d.ts +57 -0
  1255. package/dist/internal/playground/toolchain.d.ts.map +1 -0
  1256. package/dist/internal/playground/toolchain.js +229 -0
  1257. package/dist/internal/playground-proxy.d.ts +69 -0
  1258. package/dist/internal/playground-proxy.d.ts.map +1 -0
  1259. package/dist/internal/playground-proxy.js +474 -0
  1260. package/dist/internal/process-memory-telemetry.d.ts +89 -0
  1261. package/dist/internal/process-memory-telemetry.d.ts.map +1 -0
  1262. package/dist/internal/process-memory-telemetry.js +244 -0
  1263. package/dist/internal/project-layout.d.ts +7 -0
  1264. package/dist/internal/project-layout.d.ts.map +1 -0
  1265. package/dist/internal/project-layout.js +24 -0
  1266. package/dist/internal/prompt-context.d.ts +38 -0
  1267. package/dist/internal/prompt-context.d.ts.map +1 -0
  1268. package/dist/internal/prompt-context.js +89 -0
  1269. package/dist/internal/reminder-control-plane-protocol.d.ts +189 -0
  1270. package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -0
  1271. package/dist/internal/reminder-control-plane-protocol.js +246 -0
  1272. package/dist/internal/reminder-runner.d.ts +208 -0
  1273. package/dist/internal/reminder-runner.d.ts.map +1 -0
  1274. package/dist/internal/reminder-runner.js +1231 -0
  1275. package/dist/internal/reminder-schedule.d.ts +25 -0
  1276. package/dist/internal/reminder-schedule.d.ts.map +1 -0
  1277. package/dist/internal/reminder-schedule.js +82 -0
  1278. package/dist/internal/reminder-store.d.ts +78 -0
  1279. package/dist/internal/reminder-store.d.ts.map +1 -0
  1280. package/dist/internal/reminder-store.js +126 -0
  1281. package/dist/internal/request-error-status.d.ts +14 -0
  1282. package/dist/internal/request-error-status.d.ts.map +1 -0
  1283. package/dist/internal/request-error-status.js +76 -0
  1284. package/dist/internal/request-headers.d.ts +11 -0
  1285. package/dist/internal/request-headers.d.ts.map +1 -0
  1286. package/dist/internal/request-headers.js +14 -0
  1287. package/dist/internal/resolve-prod-target.d.ts +84 -0
  1288. package/dist/internal/resolve-prod-target.d.ts.map +1 -0
  1289. package/dist/internal/resolve-prod-target.js +259 -0
  1290. package/dist/internal/resolved-connections.d.ts +62 -0
  1291. package/dist/internal/resolved-connections.d.ts.map +1 -0
  1292. package/dist/internal/resolved-connections.js +93 -0
  1293. package/dist/internal/router.d.ts +33 -0
  1294. package/dist/internal/router.d.ts.map +1 -0
  1295. package/dist/internal/router.js +93 -0
  1296. package/dist/internal/run-client.d.ts +68 -0
  1297. package/dist/internal/run-client.d.ts.map +1 -0
  1298. package/dist/internal/run-client.js +239 -0
  1299. package/dist/internal/runtime-dispatch-runner.d.ts +24 -0
  1300. package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -0
  1301. package/dist/internal/runtime-dispatch-runner.js +54 -0
  1302. package/dist/internal/sanitize-mcp-tool-name.d.ts +20 -0
  1303. package/dist/internal/sanitize-mcp-tool-name.d.ts.map +1 -0
  1304. package/dist/internal/sanitize-mcp-tool-name.js +28 -0
  1305. package/dist/internal/schedule-runner.d.ts +31 -0
  1306. package/dist/internal/schedule-runner.d.ts.map +1 -0
  1307. package/dist/internal/schedule-runner.js +127 -0
  1308. package/dist/internal/scm/pr-url.d.ts +56 -0
  1309. package/dist/internal/scm/pr-url.d.ts.map +1 -0
  1310. package/dist/internal/scm/pr-url.js +152 -0
  1311. package/dist/internal/sdk-runner.d.ts +190 -0
  1312. package/dist/internal/sdk-runner.d.ts.map +1 -0
  1313. package/dist/internal/sdk-runner.js +714 -0
  1314. package/dist/internal/serve-restart.d.ts +42 -0
  1315. package/dist/internal/serve-restart.d.ts.map +1 -0
  1316. package/dist/internal/serve-restart.js +85 -0
  1317. package/dist/internal/server.d.ts +34 -0
  1318. package/dist/internal/server.d.ts.map +1 -0
  1319. package/dist/internal/server.js +2464 -0
  1320. package/dist/internal/session-cost.d.ts +50 -0
  1321. package/dist/internal/session-cost.d.ts.map +1 -0
  1322. package/dist/internal/session-cost.js +157 -0
  1323. package/dist/internal/session-engine.d.ts +912 -0
  1324. package/dist/internal/session-engine.d.ts.map +1 -0
  1325. package/dist/internal/session-engine.js +4493 -0
  1326. package/dist/internal/session-links.d.ts +14 -0
  1327. package/dist/internal/session-links.d.ts.map +1 -0
  1328. package/dist/internal/session-links.js +67 -0
  1329. package/dist/internal/session-run-log.d.ts +122 -0
  1330. package/dist/internal/session-run-log.d.ts.map +1 -0
  1331. package/dist/internal/session-run-log.js +345 -0
  1332. package/dist/internal/session-store.d.ts +73 -0
  1333. package/dist/internal/session-store.d.ts.map +1 -0
  1334. package/dist/internal/session-store.js +310 -0
  1335. package/dist/internal/session-urls.d.ts +10 -0
  1336. package/dist/internal/session-urls.d.ts.map +1 -0
  1337. package/dist/internal/session-urls.js +25 -0
  1338. package/dist/internal/sessions-client.d.ts +50 -0
  1339. package/dist/internal/sessions-client.d.ts.map +1 -0
  1340. package/dist/internal/sessions-client.js +207 -0
  1341. package/dist/internal/skill-catalog.d.ts +28 -0
  1342. package/dist/internal/skill-catalog.d.ts.map +1 -0
  1343. package/dist/internal/skill-catalog.js +41 -0
  1344. package/dist/internal/skills-sync.d.ts +24 -0
  1345. package/dist/internal/skills-sync.d.ts.map +1 -0
  1346. package/dist/internal/skills-sync.js +56 -0
  1347. package/dist/internal/slack-provision-client.d.ts +198 -0
  1348. package/dist/internal/slack-provision-client.d.ts.map +1 -0
  1349. package/dist/internal/slack-provision-client.js +346 -0
  1350. package/dist/internal/slack-thread-key.d.ts +7 -0
  1351. package/dist/internal/slack-thread-key.d.ts.map +1 -0
  1352. package/dist/internal/slack-thread-key.js +10 -0
  1353. package/dist/internal/sleep.d.ts +2 -0
  1354. package/dist/internal/sleep.d.ts.map +1 -0
  1355. package/dist/internal/sleep.js +3 -0
  1356. package/dist/internal/start-log-store.d.ts +60 -0
  1357. package/dist/internal/start-log-store.d.ts.map +1 -0
  1358. package/dist/internal/start-log-store.js +149 -0
  1359. package/dist/internal/steering.d.ts +15 -0
  1360. package/dist/internal/steering.d.ts.map +1 -0
  1361. package/dist/internal/steering.js +18 -0
  1362. package/dist/internal/storage-coordinator.d.ts +203 -0
  1363. package/dist/internal/storage-coordinator.d.ts.map +1 -0
  1364. package/dist/internal/storage-coordinator.js +705 -0
  1365. package/dist/internal/storage-roles.d.ts +78 -0
  1366. package/dist/internal/storage-roles.d.ts.map +1 -0
  1367. package/dist/internal/storage-roles.js +24 -0
  1368. package/dist/internal/storage.d.ts +2 -0
  1369. package/dist/internal/storage.d.ts.map +1 -0
  1370. package/dist/internal/storage.js +1 -0
  1371. package/dist/internal/store-api-protocol.d.ts +134 -0
  1372. package/dist/internal/store-api-protocol.d.ts.map +1 -0
  1373. package/dist/internal/store-api-protocol.js +124 -0
  1374. package/dist/internal/store-mirror.d.ts +29 -0
  1375. package/dist/internal/store-mirror.d.ts.map +1 -0
  1376. package/dist/internal/store-mirror.js +70 -0
  1377. package/dist/internal/stream-progress.d.ts +14 -0
  1378. package/dist/internal/stream-progress.d.ts.map +1 -0
  1379. package/dist/internal/stream-progress.js +229 -0
  1380. package/dist/internal/terminal-style.d.ts +40 -0
  1381. package/dist/internal/terminal-style.d.ts.map +1 -0
  1382. package/dist/internal/terminal-style.js +94 -0
  1383. package/dist/internal/testing/factory-resource-fixtures.d.ts +48 -0
  1384. package/dist/internal/testing/factory-resource-fixtures.d.ts.map +1 -0
  1385. package/dist/internal/testing/factory-resource-fixtures.js +41 -0
  1386. package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
  1387. package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
  1388. package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
  1389. package/dist/internal/tool-catalog.d.ts +31 -0
  1390. package/dist/internal/tool-catalog.d.ts.map +1 -0
  1391. package/dist/internal/tool-catalog.js +70 -0
  1392. package/dist/internal/tool-policy.d.ts +110 -0
  1393. package/dist/internal/tool-policy.d.ts.map +1 -0
  1394. package/dist/internal/tool-policy.js +138 -0
  1395. package/dist/internal/tool-result.d.ts +20 -0
  1396. package/dist/internal/tool-result.d.ts.map +1 -0
  1397. package/dist/internal/tool-result.js +45 -0
  1398. package/dist/internal/trajectory.d.ts +69 -0
  1399. package/dist/internal/trajectory.d.ts.map +1 -0
  1400. package/dist/internal/trajectory.js +351 -0
  1401. package/dist/internal/turn-cost.d.ts +41 -0
  1402. package/dist/internal/turn-cost.d.ts.map +1 -0
  1403. package/dist/internal/turn-cost.js +109 -0
  1404. package/dist/internal/turn-governor.d.ts +54 -0
  1405. package/dist/internal/turn-governor.d.ts.map +1 -0
  1406. package/dist/internal/turn-governor.js +111 -0
  1407. package/dist/internal/turn-lease-store.d.ts +44 -0
  1408. package/dist/internal/turn-lease-store.d.ts.map +1 -0
  1409. package/dist/internal/turn-lease-store.js +139 -0
  1410. package/dist/internal/turn-outbox.d.ts +24 -0
  1411. package/dist/internal/turn-outbox.d.ts.map +1 -0
  1412. package/dist/internal/turn-outbox.js +80 -0
  1413. package/dist/internal/update-check.d.ts +93 -0
  1414. package/dist/internal/update-check.d.ts.map +1 -0
  1415. package/dist/internal/update-check.js +427 -0
  1416. package/dist/internal/v2-hosting.d.ts +31 -0
  1417. package/dist/internal/v2-hosting.d.ts.map +1 -0
  1418. package/dist/internal/v2-hosting.js +33 -0
  1419. package/dist/internal/workspace-sync.d.ts +47 -0
  1420. package/dist/internal/workspace-sync.d.ts.map +1 -0
  1421. package/dist/internal/workspace-sync.js +104 -0
  1422. package/dist/internal/workspace.d.ts +151 -0
  1423. package/dist/internal/workspace.d.ts.map +1 -0
  1424. package/dist/internal/workspace.js +455 -0
  1425. package/dist/kv/memory-kv.d.ts +24 -0
  1426. package/dist/kv/memory-kv.d.ts.map +1 -0
  1427. package/dist/kv/memory-kv.js +104 -0
  1428. package/dist/kv.d.ts +18 -0
  1429. package/dist/kv.d.ts.map +1 -0
  1430. package/dist/kv.js +16 -0
  1431. package/dist/memory.d.ts +138 -0
  1432. package/dist/memory.d.ts.map +1 -0
  1433. package/dist/memory.js +401 -0
  1434. package/dist/otel-public.d.ts +7 -0
  1435. package/dist/otel-public.d.ts.map +1 -0
  1436. package/dist/otel-public.js +5 -0
  1437. package/dist/otel.d.ts +131 -0
  1438. package/dist/otel.d.ts.map +1 -0
  1439. package/dist/otel.js +186 -0
  1440. package/dist/playground/assets/cursor-icons-16-4RnoYH3n.woff2 +0 -0
  1441. package/dist/playground/assets/index-BMV_IcEE.css +1 -0
  1442. package/dist/playground/assets/index-FFdUqTt_.js +71 -0
  1443. package/dist/playground/index.html +17 -0
  1444. package/dist/prompt.d.ts +39 -0
  1445. package/dist/prompt.d.ts.map +1 -0
  1446. package/dist/prompt.js +70 -0
  1447. package/dist/reminders.d.ts +42 -0
  1448. package/dist/reminders.d.ts.map +1 -0
  1449. package/dist/reminders.js +45 -0
  1450. package/dist/schedules.d.ts +23 -0
  1451. package/dist/schedules.d.ts.map +1 -0
  1452. package/dist/schedules.js +26 -0
  1453. package/dist/skills.d.ts +22 -0
  1454. package/dist/skills.d.ts.map +1 -0
  1455. package/dist/skills.js +22 -0
  1456. package/dist/storage-backends/cursor-hosted-v2.d.ts +82 -0
  1457. package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -0
  1458. package/dist/storage-backends/cursor-hosted-v2.js +171 -0
  1459. package/dist/storage-backends/cursor-hosted.d.ts +107 -0
  1460. package/dist/storage-backends/cursor-hosted.d.ts.map +1 -0
  1461. package/dist/storage-backends/cursor-hosted.js +278 -0
  1462. package/dist/storage-backends/file-kv.d.ts +42 -0
  1463. package/dist/storage-backends/file-kv.d.ts.map +1 -0
  1464. package/dist/storage-backends/file-kv.js +254 -0
  1465. package/dist/storage-protocol.d.ts +142 -0
  1466. package/dist/storage-protocol.d.ts.map +1 -0
  1467. package/dist/storage-protocol.js +201 -0
  1468. package/dist/storage.d.ts +254 -0
  1469. package/dist/storage.d.ts.map +1 -0
  1470. package/dist/storage.js +154 -0
  1471. package/dist/tools.d.ts +132 -0
  1472. package/dist/tools.d.ts.map +1 -0
  1473. package/dist/tools.js +77 -0
  1474. package/dist/types.d.ts +3375 -0
  1475. package/dist/types.d.ts.map +1 -0
  1476. package/dist/types.js +189 -0
  1477. package/docs/README.md +119 -0
  1478. package/docs/building-with-agents.md +140 -0
  1479. package/docs/deployment.md +216 -0
  1480. package/docs/evals.md +262 -0
  1481. package/docs/guides/agent-to-agent.md +157 -0
  1482. package/docs/guides/bitbucket.md +293 -0
  1483. package/docs/guides/cloud-agents.md +95 -0
  1484. package/docs/guides/convert-automation.md +188 -0
  1485. package/docs/guides/github.md +331 -0
  1486. package/docs/guides/gitlab.md +299 -0
  1487. package/docs/guides/grokbot-agents.md +147 -0
  1488. package/docs/guides/hooks.md +119 -0
  1489. package/docs/guides/improve.md +139 -0
  1490. package/docs/guides/jev.md +299 -0
  1491. package/docs/guides/mcp-oauth.md +167 -0
  1492. package/docs/guides/opentelemetry.md +158 -0
  1493. package/docs/guides/slack.md +278 -0
  1494. package/docs/guides/webhooks.md +241 -0
  1495. package/docs/hillclimbing.md +142 -0
  1496. package/docs/quickstart.md +311 -0
  1497. package/docs/reference/agent-config.md +193 -0
  1498. package/docs/reference/artifacts.md +121 -0
  1499. package/docs/reference/channels.md +203 -0
  1500. package/docs/reference/cli.md +909 -0
  1501. package/docs/reference/connections.md +277 -0
  1502. package/docs/reference/evals.md +292 -0
  1503. package/docs/reference/extensions.md +198 -0
  1504. package/docs/reference/hooks.md +195 -0
  1505. package/docs/reference/http-api.md +236 -0
  1506. package/docs/reference/instructions.md +68 -0
  1507. package/docs/reference/playground.md +47 -0
  1508. package/docs/reference/project-layout.md +120 -0
  1509. package/docs/reference/prompt.md +55 -0
  1510. package/docs/reference/schedules.md +175 -0
  1511. package/docs/reference/sessions.md +165 -0
  1512. package/docs/reference/skills.md +80 -0
  1513. package/docs/reference/subagents.md +67 -0
  1514. package/docs/reference/tools.md +329 -0
  1515. package/docs/templates/agentic-owners.md +100 -0
  1516. package/docs/templates/security-reviewer.md +90 -0
  1517. package/docs/templates/thermo-quality-review.md +83 -0
  1518. package/docs/templates/thermo-review.md +82 -0
  1519. package/docs/templates/triage.md +102 -0
  1520. package/docs/troubleshooting.md +148 -0
  1521. package/package.json +384 -0
  1522. package/scripts/install-cursor-skills.mjs +29 -0
  1523. package/skills/create-agent/SKILL.md +170 -0
  1524. package/skills/debug/SKILL.md +43 -0
  1525. package/skills/deploy/SKILL.md +169 -0
  1526. package/skills/evals/SKILL.md +145 -0
  1527. package/skills/framework-map/SKILL.md +125 -0
  1528. package/skills/github/SKILL.md +110 -0
  1529. package/skills/hillclimb/SKILL.md +63 -0
  1530. package/skills/mcp-auth/SKILL.md +84 -0
  1531. package/skills/otel/SKILL.md +50 -0
  1532. package/skills/setup-slack/SKILL.md +149 -0
  1533. package/src/artifacts.ts +65 -0
  1534. package/src/bin/agent-serve.ts +1833 -0
  1535. package/src/channels/bitbucket/api.ts +891 -0
  1536. package/src/channels/bitbucket/binding.ts +417 -0
  1537. package/src/channels/bitbucket/bitbucket-channel.ts +162 -0
  1538. package/src/channels/bitbucket/bitbucket-webhook.ts +519 -0
  1539. package/src/channels/bitbucket/checks.ts +146 -0
  1540. package/src/channels/bitbucket/cursor-account.ts +106 -0
  1541. package/src/channels/bitbucket/defaults.ts +100 -0
  1542. package/src/channels/bitbucket/events.ts +74 -0
  1543. package/src/channels/bitbucket/index.ts +51 -0
  1544. package/src/channels/bitbucket/replay.ts +421 -0
  1545. package/src/channels/bitbucket/state.ts +59 -0
  1546. package/src/channels/bitbucket/types.ts +261 -0
  1547. package/src/channels/change-monitors/change-monitors-channel.ts +63 -0
  1548. package/src/channels/change-monitors/index.ts +8 -0
  1549. package/src/channels/change-monitors/types.ts +42 -0
  1550. package/src/channels/checks.ts +185 -0
  1551. package/src/channels/deployments/deployments-channel.ts +224 -0
  1552. package/src/channels/deployments/index.ts +25 -0
  1553. package/src/channels/deployments/types.ts +92 -0
  1554. package/src/channels/github/api.ts +526 -0
  1555. package/src/channels/github/auth.ts +254 -0
  1556. package/src/channels/github/binding.ts +233 -0
  1557. package/src/channels/github/checks.ts +145 -0
  1558. package/src/channels/github/cursor-account.ts +303 -0
  1559. package/src/channels/github/defaults.ts +168 -0
  1560. package/src/channels/github/events.ts +67 -0
  1561. package/src/channels/github/forward.ts +359 -0
  1562. package/src/channels/github/github-channel.ts +2334 -0
  1563. package/src/channels/github/index.ts +54 -0
  1564. package/src/channels/github/progress.ts +365 -0
  1565. package/src/channels/github/replay.ts +372 -0
  1566. package/src/channels/github/state.ts +124 -0
  1567. package/src/channels/github/types.ts +590 -0
  1568. package/src/channels/gitlab/api.ts +329 -0
  1569. package/src/channels/gitlab/binding.ts +231 -0
  1570. package/src/channels/gitlab/checks.ts +228 -0
  1571. package/src/channels/gitlab/cursor-account.ts +105 -0
  1572. package/src/channels/gitlab/defaults.ts +80 -0
  1573. package/src/channels/gitlab/events.ts +37 -0
  1574. package/src/channels/gitlab/gitlab-channel.ts +160 -0
  1575. package/src/channels/gitlab/gitlab-webhook.ts +509 -0
  1576. package/src/channels/gitlab/index.ts +44 -0
  1577. package/src/channels/gitlab/replay.ts +328 -0
  1578. package/src/channels/gitlab/state.ts +55 -0
  1579. package/src/channels/gitlab/types.ts +247 -0
  1580. package/src/channels/issues/index.ts +9 -0
  1581. package/src/channels/issues/issues-channel.ts +45 -0
  1582. package/src/channels/issues/types.ts +38 -0
  1583. package/src/channels/origin/api.ts +507 -0
  1584. package/src/channels/origin/binding.ts +114 -0
  1585. package/src/channels/origin/checks.ts +250 -0
  1586. package/src/channels/origin/cursor-account.ts +58 -0
  1587. package/src/channels/origin/defaults.ts +140 -0
  1588. package/src/channels/origin/events.ts +35 -0
  1589. package/src/channels/origin/index.ts +35 -0
  1590. package/src/channels/origin/origin-channel.ts +815 -0
  1591. package/src/channels/origin/origin-webhook.ts +296 -0
  1592. package/src/channels/origin/reactions.ts +72 -0
  1593. package/src/channels/origin/state.ts +54 -0
  1594. package/src/channels/origin/types.ts +295 -0
  1595. package/src/channels/slack/agentic-delivery.ts +634 -0
  1596. package/src/channels/slack/agentic-posted.ts +135 -0
  1597. package/src/channels/slack/agentic-signals.ts +231 -0
  1598. package/src/channels/slack/api.ts +761 -0
  1599. package/src/channels/slack/approvals.ts +279 -0
  1600. package/src/channels/slack/assistant.ts +76 -0
  1601. package/src/channels/slack/attachments.ts +596 -0
  1602. package/src/channels/slack/auth.ts +127 -0
  1603. package/src/channels/slack/blocks.ts +131 -0
  1604. package/src/channels/slack/bot-mentions.ts +318 -0
  1605. package/src/channels/slack/channel-watch.ts +314 -0
  1606. package/src/channels/slack/cli-project.ts +249 -0
  1607. package/src/channels/slack/code-fences.ts +171 -0
  1608. package/src/channels/slack/constants.ts +38 -0
  1609. package/src/channels/slack/credentials.ts +88 -0
  1610. package/src/channels/slack/defaults.ts +714 -0
  1611. package/src/channels/slack/dispatch.ts +1060 -0
  1612. package/src/channels/slack/doctor.ts +338 -0
  1613. package/src/channels/slack/eval-directive.ts +306 -0
  1614. package/src/channels/slack/event-id-dedupe.ts +30 -0
  1615. package/src/channels/slack/external-policy.ts +75 -0
  1616. package/src/channels/slack/footer.ts +106 -0
  1617. package/src/channels/slack/inbound.ts +416 -0
  1618. package/src/channels/slack/index.ts +53 -0
  1619. package/src/channels/slack/init.ts +169 -0
  1620. package/src/channels/slack/interactive.ts +406 -0
  1621. package/src/channels/slack/links.ts +23 -0
  1622. package/src/channels/slack/live-delivery.ts +489 -0
  1623. package/src/channels/slack/log.ts +70 -0
  1624. package/src/channels/slack/manifest.ts +239 -0
  1625. package/src/channels/slack/message-body.ts +82 -0
  1626. package/src/channels/slack/nudge-carrier.ts +224 -0
  1627. package/src/channels/slack/nudge-store.ts +334 -0
  1628. package/src/channels/slack/paint-start.ts +93 -0
  1629. package/src/channels/slack/placeholder.ts +358 -0
  1630. package/src/channels/slack/pr-ref.ts +74 -0
  1631. package/src/channels/slack/progress-delivery.ts +138 -0
  1632. package/src/channels/slack/reasoning-card.ts +125 -0
  1633. package/src/channels/slack/reasoning-chip.ts +41 -0
  1634. package/src/channels/slack/recording-sink.ts +167 -0
  1635. package/src/channels/slack/redact.ts +6 -0
  1636. package/src/channels/slack/reply-options.ts +279 -0
  1637. package/src/channels/slack/setup.ts +125 -0
  1638. package/src/channels/slack/slack-channel.ts +744 -0
  1639. package/src/channels/slack/socket-mode.ts +140 -0
  1640. package/src/channels/slack/stop.ts +25 -0
  1641. package/src/channels/slack/stream.ts +66 -0
  1642. package/src/channels/slack/thread-context.ts +485 -0
  1643. package/src/channels/slack/tool-approval-events.ts +233 -0
  1644. package/src/channels/slack/tool-cards.ts +198 -0
  1645. package/src/channels/slack/tool-chip.ts +34 -0
  1646. package/src/channels/slack/types.ts +782 -0
  1647. package/src/channels/slack/upload.ts +137 -0
  1648. package/src/channels.ts +543 -0
  1649. package/src/connections.ts +153 -0
  1650. package/src/dashboard-session-url.ts +30 -0
  1651. package/src/evals/assertions.ts +688 -0
  1652. package/src/evals/expect.ts +250 -0
  1653. package/src/evals/judge.ts +329 -0
  1654. package/src/evals/loaders.ts +111 -0
  1655. package/src/evals/matchers.ts +223 -0
  1656. package/src/evals/reporters.ts +257 -0
  1657. package/src/evals/results.ts +130 -0
  1658. package/src/evals/run-facts.ts +306 -0
  1659. package/src/evals.ts +709 -0
  1660. package/src/extensions/cursor-cloud-agents/extension.ts +114 -0
  1661. package/src/extensions/cursor-cloud-agents/lib/backend.ts +386 -0
  1662. package/src/extensions/cursor-cloud-agents/lib/fleet.ts +98 -0
  1663. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
  1664. package/src/extensions/cursor-cloud-agents/lib/repos.ts +68 -0
  1665. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +19 -0
  1666. package/src/extensions/cursor-cloud-agents/skills/handoff.md +37 -0
  1667. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
  1668. package/src/extensions/cursor-cloud-agents/tools/dump.ts +47 -0
  1669. package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
  1670. package/src/extensions/cursor-cloud-agents/tools/launch.ts +60 -0
  1671. package/src/extensions/cursor-cloud-agents/tools/list.ts +31 -0
  1672. package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
  1673. package/src/extensions/improve/extension.ts +69 -0
  1674. package/src/extensions/improve/skills/yourself.ts +50 -0
  1675. package/src/extensions/jev/extension.ts +95 -0
  1676. package/src/extensions/jev/lib/evaluate.ts +266 -0
  1677. package/src/extensions/jev/skills/gated-write.md +25 -0
  1678. package/src/extensions/jev/skills/questions.md +33 -0
  1679. package/src/extensions/jev/tools/evaluate.ts +82 -0
  1680. package/src/extensions/slack-communication/evals/harness.ts +705 -0
  1681. package/src/extensions/slack-communication/evals/slack-communication.eval.ts +830 -0
  1682. package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +172 -0
  1683. package/src/extensions/slack-communication/extension.ts +44 -0
  1684. package/src/extensions/slack-communication/skills/slack-voice.ts +56 -0
  1685. package/src/extensions/slack-communication/tools/delete-message.ts +33 -0
  1686. package/src/extensions/slack-communication/tools/edit-message.ts +42 -0
  1687. package/src/extensions/slack-communication/tools/post-card.ts +28 -0
  1688. package/src/extensions/slack-communication/tools/post-file.ts +82 -0
  1689. package/src/extensions/slack-communication/tools/post-update.ts +40 -0
  1690. package/src/extensions/slack-communication/tools/react.ts +30 -0
  1691. package/src/extensions/slack-communication/tools/set-status.ts +21 -0
  1692. package/src/extensions.ts +179 -0
  1693. package/src/files-backends/agent-store-presigned-url.ts +11 -0
  1694. package/src/files-backends/cursor-hosted.ts +1212 -0
  1695. package/src/files-backends/local-fs.ts +163 -0
  1696. package/src/files.ts +293 -0
  1697. package/src/filesystem.ts +2005 -0
  1698. package/src/hooks.ts +30 -0
  1699. package/src/index.ts +259 -0
  1700. package/src/internal/advertise-tools.ts +370 -0
  1701. package/src/internal/approval-gate.ts +103 -0
  1702. package/src/internal/artifacts-store.ts +825 -0
  1703. package/src/internal/as-of.ts +257 -0
  1704. package/src/internal/auth.ts +46 -0
  1705. package/src/internal/authored-alias-hooks.ts +138 -0
  1706. package/src/internal/authored-loaders.ts +188 -0
  1707. package/src/internal/bounded-int.ts +24 -0
  1708. package/src/internal/bounded.ts +25 -0
  1709. package/src/internal/brand.ts +28 -0
  1710. package/src/internal/browser-origin-guard.ts +67 -0
  1711. package/src/internal/builtin-tools/artifacts.ts +62 -0
  1712. package/src/internal/builtin-tools/index.ts +53 -0
  1713. package/src/internal/builtin-tools/reminders.ts +145 -0
  1714. package/src/internal/channel-dispatch.ts +129 -0
  1715. package/src/internal/channel-route-dispatch.ts +58 -0
  1716. package/src/internal/channel-state.ts +83 -0
  1717. package/src/internal/chat-client.ts +594 -0
  1718. package/src/internal/cli-ax.ts +2273 -0
  1719. package/src/internal/cli-bitbucket.ts +438 -0
  1720. package/src/internal/cli-convert-automation.ts +335 -0
  1721. package/src/internal/cli-cursor.ts +282 -0
  1722. package/src/internal/cli-deploy.ts +2486 -0
  1723. package/src/internal/cli-docs.ts +192 -0
  1724. package/src/internal/cli-github.ts +806 -0
  1725. package/src/internal/cli-gitlab.ts +452 -0
  1726. package/src/internal/cli-images.ts +672 -0
  1727. package/src/internal/cli-manifest.ts +56 -0
  1728. package/src/internal/cli-mcp-oauth.ts +395 -0
  1729. package/src/internal/cli-mcp.ts +808 -0
  1730. package/src/internal/cli-skills.ts +99 -0
  1731. package/src/internal/cli-slack-manual.ts +418 -0
  1732. package/src/internal/cli-slack.ts +874 -0
  1733. package/src/internal/cloud-merge.ts +51 -0
  1734. package/src/internal/cloud-turn-cost.ts +159 -0
  1735. package/src/internal/continuation-channel.ts +233 -0
  1736. package/src/internal/continuation-identity.ts +935 -0
  1737. package/src/internal/conversation-mirror.ts +423 -0
  1738. package/src/internal/convert-automation/convert-workflow.ts +1377 -0
  1739. package/src/internal/convert-automation/slug.ts +29 -0
  1740. package/src/internal/convert-automation/types.ts +212 -0
  1741. package/src/internal/cron.ts +76 -0
  1742. package/src/internal/cursor/account-mcp.ts +692 -0
  1743. package/src/internal/cursor/backend-client.ts +978 -0
  1744. package/src/internal/cursor/bound-secret-file.ts +101 -0
  1745. package/src/internal/cursor/credentials.ts +560 -0
  1746. package/src/internal/cursor/cursor-api-transport.ts +65 -0
  1747. package/src/internal/cursor/github-credentials.ts +228 -0
  1748. package/src/internal/cursor/hosted-bound-secrets.ts +71 -0
  1749. package/src/internal/cursor/hosted-deployment-secrets.ts +100 -0
  1750. package/src/internal/cursor/hosted-store-secrets.ts +152 -0
  1751. package/src/internal/cursor/session-token.ts +111 -0
  1752. package/src/internal/cursor/store-api-client.ts +323 -0
  1753. package/src/internal/cursor-account-mcp-auth.ts +303 -0
  1754. package/src/internal/cursor-agent-template.ts +50 -0
  1755. package/src/internal/cursor-deployment-relay.ts +315 -0
  1756. package/src/internal/cursor-event-relay.ts +675 -0
  1757. package/src/internal/cursor-relay-core.ts +563 -0
  1758. package/src/internal/deferred-channel-session.ts +61 -0
  1759. package/src/internal/deploy-client.ts +1504 -0
  1760. package/src/internal/deploy-manifest.ts +361 -0
  1761. package/src/internal/deploy-source.ts +144 -0
  1762. package/src/internal/describe-error.ts +32 -0
  1763. package/src/internal/dev-mode.ts +20 -0
  1764. package/src/internal/discovery/agent-config.ts +288 -0
  1765. package/src/internal/discovery/agent.ts +381 -0
  1766. package/src/internal/discovery/channels.ts +100 -0
  1767. package/src/internal/discovery/connections.ts +505 -0
  1768. package/src/internal/discovery/context.ts +38 -0
  1769. package/src/internal/discovery/cursor-plugin.ts +628 -0
  1770. package/src/internal/discovery/extension-overlay.ts +247 -0
  1771. package/src/internal/discovery/extensions.ts +490 -0
  1772. package/src/internal/discovery/fs.ts +103 -0
  1773. package/src/internal/discovery/hooks.ts +63 -0
  1774. package/src/internal/discovery/info.ts +174 -0
  1775. package/src/internal/discovery/instructions.ts +98 -0
  1776. package/src/internal/discovery/modules.ts +107 -0
  1777. package/src/internal/discovery/names.ts +45 -0
  1778. package/src/internal/discovery/project.ts +319 -0
  1779. package/src/internal/discovery/reminders.ts +65 -0
  1780. package/src/internal/discovery/runtime.ts +158 -0
  1781. package/src/internal/discovery/schedules.ts +120 -0
  1782. package/src/internal/discovery/seed-files.ts +34 -0
  1783. package/src/internal/discovery/services.ts +151 -0
  1784. package/src/internal/discovery/skills.ts +174 -0
  1785. package/src/internal/discovery/subagent.ts +138 -0
  1786. package/src/internal/discovery/tools.ts +170 -0
  1787. package/src/internal/discovery.ts +27 -0
  1788. package/src/internal/distribution.ts +126 -0
  1789. package/src/internal/docs-site.ts +248 -0
  1790. package/src/internal/duration.ts +37 -0
  1791. package/src/internal/env-file.ts +83 -0
  1792. package/src/internal/eval-judge-model.ts +142 -0
  1793. package/src/internal/eval-run-store.ts +585 -0
  1794. package/src/internal/eval-runner.ts +823 -0
  1795. package/src/internal/evals-client.ts +475 -0
  1796. package/src/internal/event-log.ts +342 -0
  1797. package/src/internal/event-mapper.ts +480 -0
  1798. package/src/internal/expected-delivery-failure.ts +34 -0
  1799. package/src/internal/factory-resource-channel.ts +103 -0
  1800. package/src/internal/filesystem/errors.ts +207 -0
  1801. package/src/internal/filesystem/format.ts +253 -0
  1802. package/src/internal/filesystem/merge.ts +192 -0
  1803. package/src/internal/filesystem/nearest.ts +112 -0
  1804. package/src/internal/filesystem/scratch.ts +239 -0
  1805. package/src/internal/filesystem/sdk-schemas.ts +204 -0
  1806. package/src/internal/filesystem/tools.ts +804 -0
  1807. package/src/internal/filesystem/walk.ts +366 -0
  1808. package/src/internal/fixtures/units-server.ts +52 -0
  1809. package/src/internal/framework-file-storage.ts +357 -0
  1810. package/src/internal/framework-storage-selection.ts +156 -0
  1811. package/src/internal/frontmatter.ts +108 -0
  1812. package/src/internal/github-fanout.ts +144 -0
  1813. package/src/internal/guest-network.ts +391 -0
  1814. package/src/internal/handleAgentServeTrigger.ts +286 -0
  1815. package/src/internal/host-files.ts +341 -0
  1816. package/src/internal/host-kv.ts +81 -0
  1817. package/src/internal/host-otel.ts +231 -0
  1818. package/src/internal/host-platforms.ts +170 -0
  1819. package/src/internal/hosted-admission-adapter.ts +47 -0
  1820. package/src/internal/hosted-admission-context.ts +37 -0
  1821. package/src/internal/hosted-catch-protocol.ts +112 -0
  1822. package/src/internal/hosted-catch.ts +179 -0
  1823. package/src/internal/hosted-delivery-protocol.ts +787 -0
  1824. package/src/internal/hosted-delivery.ts +1152 -0
  1825. package/src/internal/hosted-execution-diag.ts +291 -0
  1826. package/src/internal/hosted-execution-flush.ts +136 -0
  1827. package/src/internal/hosted-execution-latency.ts +301 -0
  1828. package/src/internal/hosted-managed-automation.ts +116 -0
  1829. package/src/internal/hosting.ts +107 -0
  1830. package/src/internal/http-channel-define.ts +25 -0
  1831. package/src/internal/http-channel.ts +669 -0
  1832. package/src/internal/http-control-plane-session.ts +110 -0
  1833. package/src/internal/ids.ts +39 -0
  1834. package/src/internal/incoming-headers-to-fetch.ts +45 -0
  1835. package/src/internal/init-interview.ts +360 -0
  1836. package/src/internal/init-project.ts +711 -0
  1837. package/src/internal/init-scaffold.ts +182 -0
  1838. package/src/internal/inline-stdio-define-stub.ts +4 -0
  1839. package/src/internal/inline-stdio-mcp.ts +230 -0
  1840. package/src/internal/install-cursor-skills.ts +601 -0
  1841. package/src/internal/is-record.ts +3 -0
  1842. package/src/internal/json-schema.ts +95 -0
  1843. package/src/internal/legacy-command-guard.ts +54 -0
  1844. package/src/internal/listen-port.ts +85 -0
  1845. package/src/internal/local-control-plane.ts +442 -0
  1846. package/src/internal/local-env.ts +59 -0
  1847. package/src/internal/local-ingress.ts +90 -0
  1848. package/src/internal/log-ring.ts +59 -0
  1849. package/src/internal/logs-client.ts +477 -0
  1850. package/src/internal/map-pool.ts +39 -0
  1851. package/src/internal/mcp-endpoint.ts +747 -0
  1852. package/src/internal/mcp-host.ts +481 -0
  1853. package/src/internal/mcp-oauth-on-demand.ts +337 -0
  1854. package/src/internal/mcp-oauth-persist.ts +118 -0
  1855. package/src/internal/mcp-oauth.ts +549 -0
  1856. package/src/internal/net.ts +29 -0
  1857. package/src/internal/open-browser.ts +41 -0
  1858. package/src/internal/otel/attrs.ts +16 -0
  1859. package/src/internal/otel/collector.ts +937 -0
  1860. package/src/internal/otel/config.ts +287 -0
  1861. package/src/internal/otel/http.ts +122 -0
  1862. package/src/internal/otel/mcp.ts +56 -0
  1863. package/src/internal/otel/propagation.ts +17 -0
  1864. package/src/internal/otel/runtime.ts +441 -0
  1865. package/src/internal/package-inline-stdio.ts +114 -0
  1866. package/src/internal/peer-connections.ts +96 -0
  1867. package/src/internal/platform-schedule-sync.ts +75 -0
  1868. package/src/internal/platform-timers.ts +365 -0
  1869. package/src/internal/playground/static.ts +278 -0
  1870. package/src/internal/playground/toolchain.ts +270 -0
  1871. package/src/internal/playground-proxy.ts +564 -0
  1872. package/src/internal/process-memory-telemetry.ts +334 -0
  1873. package/src/internal/project-layout.ts +31 -0
  1874. package/src/internal/prompt-context.ts +116 -0
  1875. package/src/internal/reminder-control-plane-protocol.ts +482 -0
  1876. package/src/internal/reminder-runner.ts +1559 -0
  1877. package/src/internal/reminder-schedule.ts +104 -0
  1878. package/src/internal/reminder-store.ts +176 -0
  1879. package/src/internal/request-error-status.ts +95 -0
  1880. package/src/internal/request-headers.ts +21 -0
  1881. package/src/internal/resolve-prod-target.ts +334 -0
  1882. package/src/internal/resolved-connections.ts +190 -0
  1883. package/src/internal/router.ts +143 -0
  1884. package/src/internal/run-client.ts +354 -0
  1885. package/src/internal/runtime-dispatch-runner.ts +50 -0
  1886. package/src/internal/sanitize-mcp-tool-name.ts +31 -0
  1887. package/src/internal/schedule-runner.ts +154 -0
  1888. package/src/internal/scm/pr-url.ts +245 -0
  1889. package/src/internal/sdk-runner.ts +948 -0
  1890. package/src/internal/serve-restart.ts +113 -0
  1891. package/src/internal/server.ts +3135 -0
  1892. package/src/internal/session-cost.ts +208 -0
  1893. package/src/internal/session-engine.ts +5602 -0
  1894. package/src/internal/session-links.ts +84 -0
  1895. package/src/internal/session-run-log.ts +535 -0
  1896. package/src/internal/session-store.ts +307 -0
  1897. package/src/internal/session-urls.ts +32 -0
  1898. package/src/internal/sessions-client.ts +239 -0
  1899. package/src/internal/skill-catalog.ts +66 -0
  1900. package/src/internal/skills-sync.ts +55 -0
  1901. package/src/internal/slack-provision-client.ts +544 -0
  1902. package/src/internal/slack-thread-key.ts +11 -0
  1903. package/src/internal/sleep.ts +3 -0
  1904. package/src/internal/start-log-store.ts +164 -0
  1905. package/src/internal/steering.ts +17 -0
  1906. package/src/internal/storage-coordinator.ts +800 -0
  1907. package/src/internal/storage-roles.ts +86 -0
  1908. package/src/internal/storage.ts +1 -0
  1909. package/src/internal/store-api-protocol.ts +205 -0
  1910. package/src/internal/store-mirror.ts +73 -0
  1911. package/src/internal/stream-progress.ts +294 -0
  1912. package/src/internal/terminal-style.ts +133 -0
  1913. package/src/internal/testing/factory-resource-fixtures.ts +84 -0
  1914. package/src/internal/testing/scm-continuation-fixtures.ts +285 -0
  1915. package/src/internal/tool-catalog.ts +104 -0
  1916. package/src/internal/tool-policy.ts +222 -0
  1917. package/src/internal/tool-result.ts +50 -0
  1918. package/src/internal/trajectory.ts +418 -0
  1919. package/src/internal/turn-cost.ts +136 -0
  1920. package/src/internal/turn-governor.ts +145 -0
  1921. package/src/internal/turn-lease-store.ts +144 -0
  1922. package/src/internal/turn-outbox.ts +77 -0
  1923. package/src/internal/update-check.ts +517 -0
  1924. package/src/internal/v2-hosting.ts +52 -0
  1925. package/src/internal/workspace-sync.ts +114 -0
  1926. package/src/internal/workspace.ts +505 -0
  1927. package/src/kv/memory-kv.ts +94 -0
  1928. package/src/kv.ts +18 -0
  1929. package/src/memory.ts +487 -0
  1930. package/src/otel-public.ts +24 -0
  1931. package/src/otel.ts +320 -0
  1932. package/src/prompt.ts +80 -0
  1933. package/src/reminders.ts +65 -0
  1934. package/src/schedules.ts +31 -0
  1935. package/src/skills.ts +27 -0
  1936. package/src/storage-backends/cursor-hosted-v2.ts +204 -0
  1937. package/src/storage-backends/cursor-hosted.ts +388 -0
  1938. package/src/storage-backends/file-kv.ts +276 -0
  1939. package/src/storage-protocol.ts +261 -0
  1940. package/src/storage.ts +408 -0
  1941. package/src/tools.ts +166 -0
  1942. package/src/types.ts +3725 -0
  1943. package/templates/agentic-owners/README.md +76 -0
  1944. package/templates/agentic-owners/bot/agent.ts +8 -0
  1945. package/templates/agentic-owners/bot/channels/github.ts +63 -0
  1946. package/templates/agentic-owners/bot/instructions.md +34 -0
  1947. package/templates/agentic-owners/bot/lib/config.ts +5 -0
  1948. package/templates/agentic-owners/bot/lib/github.ts +217 -0
  1949. package/templates/agentic-owners/bot/lib/owners/README.md +50 -0
  1950. package/templates/agentic-owners/bot/lib/owners/constants.ts +22 -0
  1951. package/templates/agentic-owners/bot/lib/owners/decision.ts +454 -0
  1952. package/templates/agentic-owners/bot/lib/owners/handles.ts +54 -0
  1953. package/templates/agentic-owners/bot/lib/owners/match.ts +219 -0
  1954. package/templates/agentic-owners/bot/lib/owners/matching.ts +78 -0
  1955. package/templates/agentic-owners/bot/lib/owners/parse.ts +565 -0
  1956. package/templates/agentic-owners/bot/lib/owners/policyMode.ts +57 -0
  1957. package/templates/agentic-owners/bot/lib/owners/prompt.ts +64 -0
  1958. package/templates/agentic-owners/bot/lib/owners/prompts/base-review.md +105 -0
  1959. package/templates/agentic-owners/bot/lib/owners/types.ts +50 -0
  1960. package/templates/agentic-owners/bot/lib/review.ts +722 -0
  1961. package/templates/agentic-owners/bot/tools/record_review.ts +62 -0
  1962. package/templates/agentic-owners/evals/evals.config.ts +5 -0
  1963. package/templates/agentic-owners/evals/owners.eval.ts +111 -0
  1964. package/templates/agentic-owners/package.json +20 -0
  1965. package/templates/agentic-owners/tsconfig.json +12 -0
  1966. package/templates/agents-md/README.md +42 -0
  1967. package/templates/agents-md/bot/agent.ts +8 -0
  1968. package/templates/agents-md/bot/channels/github.ts +10 -0
  1969. package/templates/agents-md/bot/channels/queue.ts +28 -0
  1970. package/templates/agents-md/bot/channels/slack.ts +9 -0
  1971. package/templates/agents-md/bot/instructions.md +39 -0
  1972. package/templates/agents-md/bot/lib/collect.ts +415 -0
  1973. package/templates/agents-md/bot/lib/config.ts +8 -0
  1974. package/templates/agents-md/bot/lib/paths.ts +49 -0
  1975. package/templates/agents-md/bot/schedules/weekly.ts +17 -0
  1976. package/templates/agents-md/bot/tools/apply_agents.ts +218 -0
  1977. package/templates/agents-md/evals/agents.eval.ts +135 -0
  1978. package/templates/agents-md/evals/evals.config.ts +5 -0
  1979. package/templates/agents-md/init.json +38 -0
  1980. package/templates/agents-md/package.json +18 -0
  1981. package/templates/agents-md/tsconfig.json +12 -0
  1982. package/templates/code-wiki/README.md +37 -0
  1983. package/templates/code-wiki/bot/agent.ts +8 -0
  1984. package/templates/code-wiki/bot/channels/github.ts +125 -0
  1985. package/templates/code-wiki/bot/instructions.md +39 -0
  1986. package/templates/code-wiki/bot/lib/repos.ts +5 -0
  1987. package/templates/code-wiki/bot/lib/wiki.ts +22 -0
  1988. package/templates/code-wiki/bot/tools/apply_wiki.ts +210 -0
  1989. package/templates/code-wiki/evals/evals.config.ts +5 -0
  1990. package/templates/code-wiki/evals/wiki.eval.ts +124 -0
  1991. package/templates/code-wiki/init.json +25 -0
  1992. package/templates/code-wiki/package.json +18 -0
  1993. package/templates/code-wiki/tsconfig.json +12 -0
  1994. package/templates/demo/README.md +40 -0
  1995. package/templates/demo/bot/agent.ts +8 -0
  1996. package/templates/demo/bot/channels/github.ts +48 -0
  1997. package/templates/demo/bot/channels/queue.ts +34 -0
  1998. package/templates/demo/bot/instructions.md +8 -0
  1999. package/templates/demo/bot/lib/collect.ts +66 -0
  2000. package/templates/demo/bot/lib/repos.ts +5 -0
  2001. package/templates/demo/bot/tools/record_demo.ts +37 -0
  2002. package/templates/demo/evals/demo.eval.ts +29 -0
  2003. package/templates/demo/evals/evals.config.ts +5 -0
  2004. package/templates/demo/init.json +25 -0
  2005. package/templates/demo/package.json +18 -0
  2006. package/templates/demo/tsconfig.json +12 -0
  2007. package/templates/grokbot-agents/README.md +29 -0
  2008. package/templates/grokbot-agents/bot/agent.ts +6 -0
  2009. package/templates/grokbot-agents/bot/extensions/grokbot.ts +5 -0
  2010. package/templates/grokbot-agents/bot/instructions.md +7 -0
  2011. package/templates/grokbot-agents/evals/evals.config.ts +5 -0
  2012. package/templates/grokbot-agents/evals/grokbot-agents.eval.ts +18 -0
  2013. package/templates/grokbot-agents/init.json +18 -0
  2014. package/templates/grokbot-agents/package.json +17 -0
  2015. package/templates/grokbot-agents/tsconfig.json +12 -0
  2016. package/templates/pr-autofixer/bot/agent.ts +11 -0
  2017. package/templates/pr-autofixer/bot/channels/drive.ts +37 -0
  2018. package/templates/pr-autofixer/bot/channels/github.ts +155 -0
  2019. package/templates/pr-autofixer/bot/channels/slack.ts +16 -0
  2020. package/templates/pr-autofixer/bot/hooks/bind-agent.ts +19 -0
  2021. package/templates/pr-autofixer/bot/instructions.md +83 -0
  2022. package/templates/pr-autofixer/bot/lib/affinity.ts +24 -0
  2023. package/templates/pr-autofixer/bot/lib/drive-schemas.ts +18 -0
  2024. package/templates/pr-autofixer/bot/lib/drive.ts +73 -0
  2025. package/templates/pr-autofixer/bot/lib/merge-watch.ts +116 -0
  2026. package/templates/pr-autofixer/bot/lib/pr-state.ts +40 -0
  2027. package/templates/pr-autofixer/bot/lib/repos.ts +18 -0
  2028. package/templates/pr-autofixer/bot/lib/start-drive.ts +113 -0
  2029. package/templates/pr-autofixer/bot/lib/webhook-buffer.ts +215 -0
  2030. package/templates/pr-autofixer/bot/lib/webhook-routing.ts +231 -0
  2031. package/templates/pr-autofixer/bot/tools/drive_pr.ts +22 -0
  2032. package/templates/pr-autofixer/evals/coordinator.eval.ts +16 -0
  2033. package/templates/pr-autofixer/evals/evals.config.ts +5 -0
  2034. package/templates/pr-autofixer/init.json +25 -0
  2035. package/templates/pr-autofixer/package.json +18 -0
  2036. package/templates/pr-autofixer/tsconfig.json +12 -0
  2037. package/templates/security-help/README.md +40 -0
  2038. package/templates/security-help/bot/agent.ts +17 -0
  2039. package/templates/security-help/bot/channels/github.ts +13 -0
  2040. package/templates/security-help/bot/channels/slack.ts +84 -0
  2041. package/templates/security-help/bot/instructions.md +19 -0
  2042. package/templates/security-help/bot/lib/pr-first-pass.ts +40 -0
  2043. package/templates/security-help/bot/lib/repos.ts +5 -0
  2044. package/templates/security-help/bot/skills/access-request.md +10 -0
  2045. package/templates/security-help/bot/skills/faq.md +31 -0
  2046. package/templates/security-help/bot/skills/security-playbooks.md +12 -0
  2047. package/templates/security-help/bot/skills/security-pr-first-pass.md +12 -0
  2048. package/templates/security-help/evals/evals.config.ts +5 -0
  2049. package/templates/security-help/evals/security-help.eval.ts +51 -0
  2050. package/templates/security-help/init.json +31 -0
  2051. package/templates/security-help/package.json +17 -0
  2052. package/templates/security-help/tsconfig.json +12 -0
  2053. package/templates/security-reviewer/README.md +34 -0
  2054. package/templates/security-reviewer/bot/agent.ts +8 -0
  2055. package/templates/security-reviewer/bot/channels/github.ts +43 -0
  2056. package/templates/security-reviewer/bot/instructions.md +22 -0
  2057. package/templates/security-reviewer/bot/lib/repos.ts +5 -0
  2058. package/templates/security-reviewer/bot/tools/post_findings.ts +68 -0
  2059. package/templates/security-reviewer/evals/evals.config.ts +5 -0
  2060. package/templates/security-reviewer/evals/review.eval.ts +50 -0
  2061. package/templates/security-reviewer/init.json +25 -0
  2062. package/templates/security-reviewer/package.json +18 -0
  2063. package/templates/security-reviewer/tsconfig.json +12 -0
  2064. package/templates/thermo-quality-review/README.md +38 -0
  2065. package/templates/thermo-quality-review/bot/agent.ts +8 -0
  2066. package/templates/thermo-quality-review/bot/channels/github.ts +39 -0
  2067. package/templates/thermo-quality-review/bot/instructions.md +43 -0
  2068. package/templates/thermo-quality-review/bot/tools/post_findings.ts +67 -0
  2069. package/templates/thermo-quality-review/evals/evals.config.ts +5 -0
  2070. package/templates/thermo-quality-review/evals/review.eval.ts +59 -0
  2071. package/templates/thermo-quality-review/package.json +18 -0
  2072. package/templates/thermo-quality-review/tsconfig.json +12 -0
  2073. package/templates/thermo-review/README.md +38 -0
  2074. package/templates/thermo-review/bot/agent.ts +8 -0
  2075. package/templates/thermo-review/bot/channels/github.ts +39 -0
  2076. package/templates/thermo-review/bot/instructions.md +40 -0
  2077. package/templates/thermo-review/bot/tools/post_findings.ts +67 -0
  2078. package/templates/thermo-review/evals/evals.config.ts +5 -0
  2079. package/templates/thermo-review/evals/review.eval.ts +50 -0
  2080. package/templates/thermo-review/package.json +18 -0
  2081. package/templates/thermo-review/tsconfig.json +12 -0
  2082. package/templates/triage/README.md +50 -0
  2083. package/templates/triage/bot/agent.ts +8 -0
  2084. package/templates/triage/bot/channels/queue.ts +40 -0
  2085. package/templates/triage/bot/channels/webhook.ts +44 -0
  2086. package/templates/triage/bot/hooks/memory.ts +3 -0
  2087. package/templates/triage/bot/instructions.md +38 -0
  2088. package/templates/triage/bot/lib/actuate.ts +703 -0
  2089. package/templates/triage/bot/lib/parse-queue-event.ts +166 -0
  2090. package/templates/triage/bot/lib/tracker.ts +5 -0
  2091. package/templates/triage/bot/lib/types.ts +48 -0
  2092. package/templates/triage/bot/lib/verify-webhook.ts +79 -0
  2093. package/templates/triage/bot/skills/triage-rubric.md +44 -0
  2094. package/templates/triage/bot/tools/record_triage.ts +29 -0
  2095. package/templates/triage/evals/evals.config.ts +5 -0
  2096. package/templates/triage/evals/triage.eval.ts +64 -0
  2097. package/templates/triage/overlays/jira/README.md +24 -0
  2098. package/templates/triage/overlays/jira/bot/lib/tracker.ts +8 -0
  2099. package/templates/triage/overlays/jira/bot/mcp-connections/tracker.ts +6 -0
  2100. package/templates/triage/overlays/linear/README.md +24 -0
  2101. package/templates/triage/overlays/linear/bot/lib/tracker.ts +8 -0
  2102. package/templates/triage/overlays/linear/bot/mcp-connections/tracker.ts +6 -0
  2103. package/templates/triage/package.json +18 -0
  2104. package/templates/triage/tsconfig.json +12 -0
@@ -0,0 +1,168 @@
1
+ import{_ as i,c as a,o as n,a3 as t}from"./chunks/framework.BNw1pucY.js";const g=JSON.parse('{"title":"Build a PR reviewer","description":"Create a BDK bot or agent that reviews pull requests by complexity, approves safe changes, and handles GitHub webhook events.","frontmatter":{"title":"Build a PR reviewer","description":"Create a BDK bot or agent that reviews pull requests by complexity, approves safe changes, and handles GitHub webhook events."},"headers":[],"relativePath":"quickstart.md","filePath":"quickstart.md"}'),h={name:"quickstart.md"};function l(p,s,e,k,r,E){return n(),a("div",null,[...s[0]||(s[0]=[t(`<h1 id="build-a-pr-reviewer-with-bdk" tabindex="-1">Build a PR reviewer with BDK <a class="header-anchor" href="#build-a-pr-reviewer-with-bdk" aria-label="Permalink to &quot;Build a PR reviewer with BDK&quot;">​</a></h1><p>Build a Grok Bot Development Kit (BDK) PR reviewer that classifies changes as <code>trivial</code>, <code>moderate</code>, or <code>large</code>, then approves safe changes or requests human review.</p><h2 id="prerequisites" tabindex="-1">Prerequisites <a class="header-anchor" href="#prerequisites" aria-label="Permalink to &quot;Prerequisites&quot;">​</a></h2><ul><li><p>Node 22.13 or newer.</p></li><li><p>The docs-ahead BDK package and CLI. <code>@cursor/bdk</code> is not on npm yet, so these commands will not run until publication. See <a href="/docs/#bdk-package-availability">BDK package availability</a>.</p></li></ul><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>npm install -g @cursor/bdk</span></span></code></pre></div><ul><li>A Cursor credential for model turns. After publication, sign in once:</li></ul><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk login</span></span></code></pre></div><h2 id="create-and-run-the-project" tabindex="-1">Create and run the project <a class="header-anchor" href="#create-and-run-the-project" aria-label="Permalink to &quot;Create and run the project&quot;">​</a></h2><p>The preferred BDK workflow uses <code>bdk init</code> and <code>bdk dev</code>.</p><blockquote><p><strong>Docs ahead:</strong> <code>@cursor/bdk</code> is not on npm yet. This block shows future CLI syntax and will not run until the package publishes.</p></blockquote><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk init ./pr-reviewer</span></span>
2
+ <span class="line"><span>cd pr-reviewer</span></span>
3
+ <span class="line"><span>bdk dev</span></span></code></pre></div><p>Keep <code>bdk dev</code> running. In a second terminal, run:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk run --dir . --message &quot;Introduce yourself in one sentence.&quot;</span></span></code></pre></div><p>Confirm the agent replies.</p><h2 id="add-review-instructions" tabindex="-1">Add review instructions <a class="header-anchor" href="#add-review-instructions" aria-label="Permalink to &quot;Add review instructions&quot;">​</a></h2><p>Replace <code>bot/instructions.md</code>:</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;"># PR reviewer</span></span>
4
+ <span class="line"></span>
5
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">You review GitHub pull requests. Be specific and brief.</span></span>
6
+ <span class="line"></span>
7
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">For every pull request:</span></span>
8
+ <span class="line"></span>
9
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">1.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Call </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\`inspect_pr\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> first. Never judge a change you haven&#39;t fetched.</span></span>
10
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">2.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Match your review to the complexity it reports:</span></span>
11
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \`trivial\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: read the patches. If the diff does what the title says</span></span>
12
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> and nothing looks risky, call </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\`submit_review\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> with verdict</span></span>
13
+ <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \`approve\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span></span>
14
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \`moderate\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: read every patch. Approve only when you understand the</span></span>
15
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> whole change and see no risk. Otherwise ask for a human review and</span></span>
16
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> say which files worry you.</span></span>
17
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \`large\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: call </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\`submit_review\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> with verdict </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\`request_human_review\`</span></span>
18
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> right away. Use the stats you already have to point the reviewer at</span></span>
19
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> the biggest files; don&#39;t dig further.</span></span>
20
+ <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">3.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Never approve a draft. Point out anything surprising, even when you</span></span>
21
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> approve.</span></span>
22
+ <span class="line"></span>
23
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">End with one sentence: the verdict and why.</span></span></code></pre></div><h2 id="add-the-inspect-tool" tabindex="-1">Add the inspect tool <a class="header-anchor" href="#add-the-inspect-tool" aria-label="Permalink to &quot;Add the inspect tool&quot;">​</a></h2><p>Create <code>bot/tools/inspect_pr.ts</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { defineTool } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk/tools&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
24
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { z } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;zod&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
25
+ <span class="line"></span>
26
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Complexity</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;trivial&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;moderate&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;large&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
27
+ <span class="line"></span>
28
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> rateComplexity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">linesChanged</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">changedFiles</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Complexity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
29
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (linesChanged </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 25</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> changedFiles </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
30
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;trivial&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
31
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
32
+ <span class="line"></span>
33
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (linesChanged </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 400</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> changedFiles </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 15</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
34
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;moderate&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
35
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
36
+ <span class="line"></span>
37
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;large&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
38
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
39
+ <span class="line"></span>
40
+ <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">/** Keep one oversized file from flooding the model&#39;s context. */</span></span>
41
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> trimPatch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">patch</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> undefined</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> undefined</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
42
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (patch </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> undefined</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> patch.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">length</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &lt;=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
43
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> patch;</span></span>
44
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
45
+ <span class="line"></span>
46
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> \`\${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">patch</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">slice</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3000</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">[... patch trimmed ...]\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
47
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
48
+ <span class="line"></span>
49
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineTool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
50
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description:</span></span>
51
+ <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Fetch a pull request&#39;s title, stats, and per-file patches, plus a deterministic complexity rating (trivial, moderate, or large). Call this before any review decision.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
52
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inputSchema: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
53
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> prUrl: z</span></span>
54
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
55
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">describe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Pull request URL: https://github.com/owner/repo/pull/123&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">),</span></span>
56
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }),</span></span>
57
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({ </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">prUrl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
58
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> url</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> URL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(prUrl);</span></span>
59
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">owner</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">repo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">pulls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> url.pathname.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">split</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;/&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(Boolean);</span></span>
60
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> pull_number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Number.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(number </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">??</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
61
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (pulls </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!==</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;pull&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> owner </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> undefined</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Number.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isNaN</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(pull_number)) {</span></span>
62
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`Not a pull request URL: \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prUrl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
63
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
64
+ <span class="line"></span>
65
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> octokit</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx.host.github.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getOctokit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">();</span></span>
66
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">pr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> octokit.rest.pulls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">get</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
67
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> owner,</span></span>
68
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> repo,</span></span>
69
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pull_number,</span></span>
70
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span>
71
+ <span class="line"></span>
72
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">files</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> octokit.rest.pulls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">listFiles</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
73
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> owner,</span></span>
74
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> repo,</span></span>
75
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pull_number,</span></span>
76
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> per_page: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">100</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
77
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span>
78
+ <span class="line"></span>
79
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> complexity</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> rateComplexity</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span></span>
80
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pr.additions </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pr.deletions,</span></span>
81
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pr.changed_files</span></span>
82
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> );</span></span>
83
+ <span class="line"></span>
84
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
85
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> title: pr.title,</span></span>
86
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> author: pr.user?.login,</span></span>
87
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> state: pr.state,</span></span>
88
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> draft: pr.draft </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">??</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
89
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> additions: pr.additions,</span></span>
90
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> deletions: pr.deletions,</span></span>
91
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> changedFiles: pr.changed_files,</span></span>
92
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> complexity,</span></span>
93
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> files: files.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">((</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">file</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ({</span></span>
94
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> path: file.filename,</span></span>
95
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> additions: file.additions,</span></span>
96
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> deletions: file.deletions,</span></span>
97
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(complexity </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;large&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { patch: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">trimPatch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(file.patch) }),</span></span>
98
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> })),</span></span>
99
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> };</span></span>
100
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
101
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><h2 id="verify-complexity-classification" tabindex="-1">Verify complexity classification <a class="header-anchor" href="#verify-complexity-classification" aria-label="Permalink to &quot;Verify complexity classification&quot;">​</a></h2><p>Run <code>inspect_pr</code> against a small pull request:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk call inspect_pr --dir . \\</span></span>
102
+ <span class="line"><span> --input &#39;{&quot;prUrl&quot;:&quot;https://github.com/facebook/react/pull/35623&quot;}&#39;</span></span></code></pre></div><p>Confirm the result contains <code>&quot;complexity&quot;: &quot;trivial&quot;</code>.</p><p>Run it against a large pull request:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk call inspect_pr --dir . \\</span></span>
103
+ <span class="line"><span> --input &#39;{&quot;prUrl&quot;:&quot;https://github.com/facebook/react/pull/25229&quot;}&#39;</span></span></code></pre></div><p>Confirm the result contains <code>&quot;complexity&quot;: &quot;large&quot;</code> and no <code>patch</code> fields.</p><h2 id="add-the-review-tool" tabindex="-1">Add the review tool <a class="header-anchor" href="#add-the-review-tool" aria-label="Permalink to &quot;Add the review tool&quot;">​</a></h2><p>Create <code>bot/tools/submit_review.ts</code> to post each verdict:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { defineTool } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk/tools&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
104
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { z } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;zod&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
105
+ <span class="line"></span>
106
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineTool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
107
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description:</span></span>
108
+ <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Post the review decision to GitHub: approve the pull request, or comment asking for a human review.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
109
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inputSchema: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
110
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> prUrl: z</span></span>
111
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
112
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">describe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Pull request URL: https://github.com/owner/repo/pull/123&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">),</span></span>
113
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> verdict: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">enum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;approve&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;request_human_review&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]),</span></span>
114
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> summary: z</span></span>
115
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
116
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">describe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;One or two sentences explaining the verdict.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">),</span></span>
117
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }),</span></span>
118
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> async</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> execute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({ </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">prUrl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">verdict</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">summary</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span>
119
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> url</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> URL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(prUrl);</span></span>
120
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">owner</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">repo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">pulls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> url.pathname.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">split</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;/&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(Boolean);</span></span>
121
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> pull_number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Number.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">parseInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(number </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">??</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
122
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (pulls </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!==</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;pull&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> owner </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> undefined</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Number.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isNaN</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(pull_number)) {</span></span>
123
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`Not a pull request URL: \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prUrl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
124
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
125
+ <span class="line"></span>
126
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> review</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span></span>
127
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> verdict </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;approve&quot;</span></span>
128
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { event: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;APPROVE&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> as</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, body: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`PR reviewer: \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">summary</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
129
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> :</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
130
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> event: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;COMMENT&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> as</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
131
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> body: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`PR reviewer: this change needs a human review. \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">summary</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
132
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> };</span></span>
133
+ <span class="line"></span>
134
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> octokit</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx.host.github.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getOctokit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">();</span></span>
135
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> octokit.rest.pulls.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">createReview</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
136
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> owner,</span></span>
137
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> repo,</span></span>
138
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pull_number,</span></span>
139
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> event: review.event,</span></span>
140
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> body: review.body,</span></span>
141
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> });</span></span>
142
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { posted: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">review };</span></span>
143
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
144
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><p>Use a GitHub credential with write access and a pull request you didn&#39;t author.</p><h2 id="review-a-pull-request" tabindex="-1">Review a pull request <a class="header-anchor" href="#review-a-pull-request" aria-label="Permalink to &quot;Review a pull request&quot;">​</a></h2><p>Review an open pull request:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk run --dir . \\</span></span>
145
+ <span class="line"><span> --message &quot;Review https://github.com/acme/checkout/pull/42&quot;</span></span></code></pre></div><p>Confirm <code>inspect_pr</code> runs before <code>submit_review</code>, then verify the review on GitHub.</p><h2 id="trigger-reviews-from-github" tabindex="-1">Trigger reviews from GitHub <a class="header-anchor" href="#trigger-reviews-from-github" aria-label="Permalink to &quot;Trigger reviews from GitHub&quot;">​</a></h2><p>Create <code>bot/channels/github.ts</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
146
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> defaultGitHubAuth,</span></span>
147
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> githubChannel,</span></span>
148
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk/channels/github&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
149
+ <span class="line"></span>
150
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> REVIEW_ACTIONS</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Set</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;opened&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;reopened&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;ready_for_review&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span>
151
+ <span class="line"></span>
152
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> githubChannel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
153
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> botName: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;bdk-pr-reviewer&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
154
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> cursorAccount: { repos: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;acme/checkout&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">] },</span></span>
155
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> onPullRequest</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">pr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
156
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">REVIEW_ACTIONS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">has</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(pr.action) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> pr.draft) {</span></span>
157
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> null</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
158
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
159
+ <span class="line"></span>
160
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
161
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> auth: </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">defaultGitHubAuth</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(ctx),</span></span>
162
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> title: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`Review \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ctx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">repository</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">fullName</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}#\${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">pr</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">number</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
163
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> context: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`Review \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">pr</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}. Inspect it first, then submit your verdict with submit_review.\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
164
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> };</span></span>
165
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
166
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><p>Keep <code>bdk dev</code> running. In a second terminal, replay an open pull request. Pull access is enough; repo admin isn&#39;t required:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>bdk github replay https://github.com/acme/checkout/pull/42 \\</span></span>
167
+ <span class="line"><span> --dir . --action opened</span></span></code></pre></div><p>Open the playground and confirm <code>Review acme/checkout#42</code> contains the trigger, both tool calls, and the verdict.</p><h2 id="run-options" tabindex="-1">Run options <a class="header-anchor" href="#run-options" aria-label="Permalink to &quot;Run options&quot;">​</a></h2><ol><li><strong>CLI message</strong></li></ol><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> bdk run --dir . --message &quot;Review https://github.com/acme/checkout/pull/42&quot;</span></span></code></pre></div><ol start="2"><li><strong>Local replay</strong></li></ol><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> bdk github replay https://github.com/acme/checkout/pull/42 \\</span></span>
168
+ <span class="line"><span> --dir . --action opened</span></span></code></pre></div><h2 id="where-to-go-next" tabindex="-1">Where to go next <a class="header-anchor" href="#where-to-go-next" aria-label="Permalink to &quot;Where to go next&quot;">​</a></h2><ul><li><a href="./evals.html">Evals</a>: freeze these two PRs as regression checks so prompt changes can&#39;t flip a verdict</li><li><a href="./reference/tools.html">Tools</a>: more on typed tools, approvals, and direct calls</li><li><a href="./guides/github.html">GitHub</a>: fixtures, forwarding, and pulling events from Cursor</li><li><a href="./building-with-agents.html">Building agents with agents</a>: have a coding agent extend the project for you</li></ul>`,48)])])}const o=i(h,[["render",l]]);export{g as __pageData,o as default};
@@ -0,0 +1 @@
1
+ import{_ as i,c as a,o as n,a3 as t}from"./chunks/framework.BNw1pucY.js";const g=JSON.parse('{"title":"Build a PR reviewer","description":"Create a BDK bot or agent that reviews pull requests by complexity, approves safe changes, and handles GitHub webhook events.","frontmatter":{"title":"Build a PR reviewer","description":"Create a BDK bot or agent that reviews pull requests by complexity, approves safe changes, and handles GitHub webhook events."},"headers":[],"relativePath":"quickstart.md","filePath":"quickstart.md"}'),h={name:"quickstart.md"};function l(p,s,e,k,r,E){return n(),a("div",null,[...s[0]||(s[0]=[t("",48)])])}const o=i(h,[["render",l]]);export{g as __pageData,o as default};
@@ -0,0 +1,32 @@
1
+ import{_ as e,c as i,o as a,a3 as t}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Agent config","description":"defineAgent at bot/agent.ts: the model, local workspace, and programmatic serving.","frontmatter":{"title":"Agent config","description":"defineAgent at bot/agent.ts: the model, local workspace, and programmatic serving."},"headers":[],"relativePath":"reference/agent-config.md","filePath":"reference/agent-config.md"}'),n={name:"reference/agent-config.md"};function o(l,s,d,r,h,c){return a(),i("div",null,[...s[0]||(s[0]=[t(`<h1 id="agent-config" tabindex="-1">Agent config <a class="header-anchor" href="#agent-config" aria-label="Permalink to &quot;Agent config&quot;">​</a></h1><p><code>bot/agent.ts</code> default-exports <code>defineAgent(config)</code>: which model runs the agent and its local harness defaults. Everything is optional on the root agent.</p><p>The <code>@cursor/bdk</code> imports and <code>bdk</code> commands on this page are docs-ahead until publication; see <a href="/docs/#bdk-package-availability">BDK package availability</a>.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { defineAgent } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
2
+ <span class="line"></span>
3
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineAgent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
4
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> model: {</span></span>
5
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;grok-4.5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
6
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> params: [</span></span>
7
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;effort&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;high&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
8
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;fast&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;true&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
9
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span>
10
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// optional; this is the default</span></span>
11
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><h2 id="agent-fields" tabindex="-1">Agent fields <a class="header-anchor" href="#agent-fields" aria-label="Permalink to &quot;Agent fields&quot;">​</a></h2><table tabindex="0"><thead><tr><th>Field</th><th>Type</th><th>Meaning</th></tr></thead><tbody><tr><td><code>model</code></td><td>string or <code>{ id, params }</code></td><td>Cursor model for turns. Defaults to <code>grok-4.5</code> with <code>effort=high</code>, <code>fast=true</code> on the root agent. Subagents omit it to inherit.</td></tr><tr><td><code>name</code></td><td>string</td><td>Display name override. Defaults to the package name or directory name.</td></tr><tr><td><code>description</code></td><td>string</td><td>What the agent is for. Required on subagents; the parent model reads it to decide when to delegate. Documentation-only on the root.</td></tr><tr><td><code>instructions</code></td><td>string</td><td>Inline instructions. Prefer <code>instructions.md</code>; this exists for subagents and generated configs.</td></tr><tr><td><code>local</code></td><td><code>{ cwd?, workspaceDir?, sandbox? }</code></td><td>Local harness defaults. See <a href="#local-options">Local options</a>.</td></tr><tr><td><code>hosting</code></td><td><code>{ egressDomains?, secretNames? }</code></td><td>Managed-hosting declarations read by <code>bdk deploy</code>: the pod&#39;s egress allowlist and the secret names the agent expects. Ignored by local serving.</td></tr><tr><td><code>concurrency</code></td><td><code>{ maxRunningTurns? }</code></td><td>Engine-wide turn admission limit. See <a href="#concurrency">Concurrency</a>.</td></tr><tr><td><code>builtinTools</code></td><td><code>{ reminders? }</code></td><td>Framework-provided model-facing tools, opted in per capability. See <a href="#built-in-tools">Built-in tools</a>.</td></tr><tr><td><code>tools</code></td><td><code>ToolName[]</code></td><td>Allowlist of built-in harness tools offered to the model. Unset = the model&#39;s full standard toolset. See <a href="#harness-tools">Harness tools</a>.</td></tr></tbody></table><h2 id="model" tabindex="-1">Model <a class="header-anchor" href="#model" aria-label="Permalink to &quot;Model&quot;">​</a></h2><p><code>model</code> is a Cursor model id string, or <code>{ id, params }</code>. Effort and speed are params, not id suffixes. The SDK rejects suffix-style ids like <code>grok-4.5-fast</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
12
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;grok-4.5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
13
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> params</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span></span>
14
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;effort&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;high&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
15
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;fast&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;true&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
16
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span>
17
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>A plain string works when you don&#39;t need params:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;composer-2.5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span></code></pre></div><h2 id="local-options" tabindex="-1">Local options <a class="header-anchor" href="#local-options" aria-label="Permalink to &quot;Local options&quot;">​</a></h2><p><code>local</code> sets local-harness defaults.</p><p><code>local.workspaceDir</code> points every session at one shared harness cwd, for agents that work inside an existing checkout. It takes precedence over <code>cwd</code>, and a per-send <code>workspaceDir</code> still wins over both. Sessions share a working tree, so a file one turn writes is visible to the next.</p><p><code>local.sandbox</code> runs the harness inside Cursor&#39;s local sandbox. It&#39;s off by default: shell then auto-approves and inherits the serve process environment, including any credentials the host holds. Turn it on for agents whose turns read untrusted input (webhook payloads, PR diffs, inbound chat); it&#39;s a tool boundary, not a prompt-level one.</p><h3 id="local-cwd" tabindex="-1">Local cwd <a class="header-anchor" href="#local-cwd" aria-label="Permalink to &quot;Local cwd&quot;">​</a></h3><p><code>local.cwd</code> sets the parent directory for local harness workspaces. Each session uses <code>&lt;cwd&gt;/&lt;sessionId&gt;</code> unless a per-send <code>workspaceDir</code> overrides it.</p><p>Session workspaces are real Cursor project directories. The harness loads <code>AGENTS.md</code> and <code>.cursor</code> config from ancestor directories. An agent nested in another git repo (a monorepo package) defaults to a per-project cache directory under <code>~/.cache</code> when you omit <code>cwd</code>, so the enclosing checkout does not leak rules, skills, or MCP servers into the turn. A standalone git root keeps the in-project session workspace. Point <code>cwd</code> at a checkout only when the agent should inherit that tree.</p><h2 id="harness-tools" tabindex="-1">Harness tools <a class="header-anchor" href="#harness-tools" aria-label="Permalink to &quot;Harness tools&quot;">​</a></h2><p>Use <code>tools</code> to limit which built-in Cursor harness tools the model can call. Omit it to keep the standard toolset. When you set it, the model gets only the tools you list. An empty list disables all native built-in tools. New platform tools stay disabled until you add them.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineAgent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
18
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> model: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;composer-2.5&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
19
+ <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Read-only triage agent: search and read only.</span></span>
20
+ <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // No shell, no edits, no subagents.</span></span>
21
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> tools: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;read&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;grep&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;glob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;ls&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">],</span></span>
22
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><p>BDK always adds <code>&quot;mcp&quot;</code> to a configured allowlist, because authored server tools in <code>bot/tools/</code> reach the model over MCP. MCP can also expose declared connections and servers from the harness directory&#39;s ambient <code>.cursor</code> config. To exclude a checkout&#39;s MCP servers, point <code>local.cwd</code> outside the checkout. See <a href="#local-cwd">Local cwd</a>. <code>local.sandbox</code> makes MCP tool calls fail closed.</p><p>Use the SDK&#39;s public tool names, including <code>&quot;shell&quot;</code>, <code>&quot;read&quot;</code>, <code>&quot;edit&quot;</code>, <code>&quot;grep&quot;</code>, <code>&quot;glob&quot;</code>, <code>&quot;ls&quot;</code>, and <code>&quot;task&quot;</code>. Unknown names fail the turn with a <code>ConfigurationError</code>.</p><p>Two names have broader effects:</p><ul><li><code>&quot;shell&quot;</code> also grants shell input. Tools with <code>execution: &quot;agent&quot;</code> need it to run their scripts. Discovery warns when your allowlist would prevent those tools from running.</li><li><code>&quot;task&quot;</code> lets the root agent start subagents. Each subagent keeps its own curated toolset.</li></ul><p>The allowlist controls which tools the model can call. It does not isolate the serve host. For agents that process untrusted input, also set <code>local: { sandbox: true }</code>.</p><h2 id="concurrency" tabindex="-1">Concurrency <a class="header-anchor" href="#concurrency" aria-label="Permalink to &quot;Concurrency&quot;">​</a></h2><p><code>concurrency.maxRunningTurns</code> caps how many model turns run at once across all of the agent&#39;s sessions (positive integer, hard cap 200). When every slot is busy, newly admitted turns queue FIFO instead of failing: the stream records a durable <code>turn.queued</code> event with the queue position, <code>GET /v1/sessions</code> reports <code>queued: true</code>, and each queued turn starts as soon as a slot frees. A queued turn still counts as running for busy semantics: follow-ups preempt it, and direct write-effect tool calls get <code>409 session_busy</code>. Omit for unlimited.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineAgent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
23
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> concurrency: { maxRunningTurns: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
24
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><h2 id="built-in-tools" tabindex="-1">Built-in tools <a class="header-anchor" href="#built-in-tools" aria-label="Permalink to &quot;Built-in tools&quot;">​</a></h2><p><code>builtinTools</code> opts into framework-provided model-facing tools. Each enabled capability shows up as ordinary server tools, so turns, direct calls, <code>info</code>, and the playground treat them like authored tools. Authored tools with the same name win, with a warning, and like all server tools they run on the local runtime.</p><p><code>builtinTools: { reminders: true }</code> adds three tools bound to the current conversation over <code>host.reminders</code>: <code>reminders_create</code>, <code>reminders_list</code>, and <code>reminders_cancel</code>. Sessions without a continuation key can&#39;t arm reminders. See <a href="./schedules.html#reminders">Schedules and reminders</a>.</p><h2 id="serve-programmatically" tabindex="-1">Serve programmatically <a class="header-anchor" href="#serve-programmatically" aria-label="Permalink to &quot;Serve programmatically&quot;">​</a></h2><p><code>serve(dirOrProject, options)</code> embeds the server in your own process:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { serve } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
25
+ <span class="line"></span>
26
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> handle</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> serve</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;./my-agent&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, {</span></span>
27
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> port: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
28
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> apiKey: process.env.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">CURSOR_API_KEY</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
29
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span>
30
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`listening on \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">handle</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">url</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
31
+ <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// handle.callTool(...), handle.dispatchSchedule(&quot;heartbeat&quot;),</span></span>
32
+ <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// handle.createReminder(...), handle.project, await handle.close()</span></span></code></pre></div><p>Host settings match the documented <a href="./cli.html">CLI</a> <code>serve</code> flags. <code>serve()</code> also accepts <code>discovery</code> (project-loading options) and <code>mode: &quot;single&quot; | &quot;multi&quot;</code>. Pass <code>apiKey</code> or use the same Cursor credential as the CLI: <code>CURSOR_API_KEY</code>, <code>CURSOR_API_KEY_FILE</code>, <code>CURSOR_SERVICE_ACCOUNT_KEY</code>, or <code>bdk login</code>.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to &quot;Related&quot;">​</a></h2><ul><li><a href="./instructions.html">Instructions</a>: the required half of a minimal agent</li><li><a href="./cli.html">CLI</a>: the <code>serve</code> flags <code>serve()</code> accepts</li><li><a href="./sessions.html">Sessions</a>: workspaces, identifiers, and turn admission</li><li><a href="./schedules.html">Schedules</a>: reminder tools opted in here</li></ul>`,38)])])}const u=e(n,[["render",o]]);export{k as __pageData,u as default};
@@ -0,0 +1 @@
1
+ import{_ as e,c as i,o as a,a3 as t}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Agent config","description":"defineAgent at bot/agent.ts: the model, local workspace, and programmatic serving.","frontmatter":{"title":"Agent config","description":"defineAgent at bot/agent.ts: the model, local workspace, and programmatic serving."},"headers":[],"relativePath":"reference/agent-config.md","filePath":"reference/agent-config.md"}'),n={name:"reference/agent-config.md"};function o(l,s,d,r,h,c){return a(),i("div",null,[...s[0]||(s[0]=[t("",38)])])}const u=e(n,[["render",o]]);export{k as __pageData,u as default};
@@ -0,0 +1,18 @@
1
+ import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Artifacts","description":"Declare, tag, list, stream, and download durable agent outputs.","frontmatter":{"title":"Artifacts","description":"Declare, tag, list, stream, and download durable agent outputs."},"headers":[],"relativePath":"reference/artifacts.md","filePath":"reference/artifacts.md"}'),d={name:"reference/artifacts.md"};function o(n,t,r,c,l,h){return s(),a("div",null,[...t[0]||(t[0]=[i(`<h1 id="artifacts" tabindex="-1">Artifacts <a class="header-anchor" href="#artifacts" aria-label="Permalink to &quot;Artifacts&quot;">​</a></h1><p>Artifacts are durable outputs such as reviewed pull requests, reports, or decision records. An artifact kind defines the data it accepts, and the artifacts API tags or updates records by key. Records persist across sessions and can be listed, streamed, or downloaded.</p><p>The <code>@cursor/bdk</code> imports on this page are docs-ahead until publication; see <a href="/docs/#bdk-package-availability">BDK package availability</a>.</p><h2 id="artifact-kinds" tabindex="-1">Artifact kinds <a class="header-anchor" href="#artifact-kinds" aria-label="Permalink to &quot;Artifact kinds&quot;">​</a></h2><p>Author <code>bot/artifacts.ts</code> with <code>defineArtifacts</code> from <code>@cursor/bdk/artifacts</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { z } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;zod&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
2
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { defineArtifacts } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk/artifacts&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
3
+ <span class="line"></span>
4
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineArtifacts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
5
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> kinds: {</span></span>
6
+ <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;reviewed-pr&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
7
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;A pull request this agent reviewed.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
8
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> schema: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({ url: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(), verdict: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() }),</span></span>
9
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
10
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> report: { description: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;A generated report.&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
11
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
12
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> agentTool: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
13
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Option</th><th>Contract</th></tr></thead><tbody><tr><td><code>kinds</code></td><td>Map of accepted kind names to a non-empty <code>description</code> and optional Zod <code>schema</code></td></tr><tr><td><code>agentTool</code></td><td>Expose <code>tag_artifact</code> to the model; requires at least one declared kind</td></tr><tr><td><code>max</code></td><td>Positive retention cap; defaults to <code>1000</code> and evicts the oldest-updated record</td></tr></tbody></table><p>With declared kinds, <code>tag</code> rejects any other kind. With no registry, it accepts free-form kind names and defaults an omitted kind to <code>&quot;artifact&quot;</code>. A kind&#39;s schema validates <code>data</code>, and the parsed value is stored, including schema defaults and coercions.</p><h2 id="tag-artifacts-from-host-code" tabindex="-1">Tag artifacts from host code <a class="header-anchor" href="#tag-artifacts-from-host-code" aria-label="Permalink to &quot;Tag artifacts from host code&quot;">​</a></h2><p>Tools, hooks, channel handlers, channel <code>onStart</code>, schedules, and reminders receive an <code>ArtifactsApi</code> with <code>tag</code> and <code>list</code>.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx.artifacts.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">tag</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
14
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> kind: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;reviewed-pr&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
15
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> key: prUrl,</span></span>
16
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> title: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`Reviewed \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prUrl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
17
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> data: { url: prUrl, verdict: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;approve&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
18
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><table tabindex="0"><thead><tr><th>Tag field</th><th>Contract</th></tr></thead><tbody><tr><td><code>data</code></td><td>Required JSON data, validated when the kind has a schema</td></tr><tr><td><code>kind</code></td><td>Declared or free-form kind</td></tr><tr><td><code>key</code></td><td>Agent-wide upsert key; the same key updates one record across kinds</td></tr><tr><td><code>title</code></td><td>Optional display title</td></tr><tr><td><code>contents</code></td><td>String or bytes served by the content route</td></tr><tr><td><code>contentType</code></td><td>MIME type for <code>contents</code></td></tr><tr><td><code>sessionId</code>, <code>turnId</code></td><td>Attribute the artifact to a session or turn</td></tr><tr><td><code>source</code></td><td><code>&quot;host&quot;</code> or <code>&quot;model&quot;</code>; defaults to <code>&quot;host&quot;</code></td></tr></tbody></table><p>Tool, hook, result, and channel-event contexts are session-bound, so they fill <code>sessionId</code> and the current <code>turnId</code>. Channel routes, <code>onStart</code>, schedules, and reminders receive an unbound facade; pass <code>sessionId</code> to attribute an artifact.</p><p>Re-tagging a key without <code>contents</code> keeps its file or blob when the <code>sessionId</code> stays the same. Rebinding the key to another session without new contents removes the previous payload. <code>tag</code> returns the stored <code>ArtifactRecord</code>.</p><table tabindex="0"><thead><tr><th>Record field</th><th>Contract</th></tr></thead><tbody><tr><td><code>id</code></td><td>Stable ID derived from <code>key</code>, or a generated ID when no key is set</td></tr><tr><td><code>kind</code>, <code>data</code></td><td>Validated kind and JSON payload</td></tr><tr><td><code>key</code>, <code>title</code></td><td>Optional upsert key and display title</td></tr><tr><td><code>content</code></td><td>Optional <code>{ size, contentType? }</code> metadata</td></tr><tr><td><code>sessionId</code>, <code>turnId</code></td><td>Optional session attribution</td></tr><tr><td><code>source</code></td><td><code>&quot;host&quot;</code> or <code>&quot;model&quot;</code></td></tr><tr><td><code>createdAt</code>, <code>updatedAt</code></td><td>ISO-8601 timestamps</td></tr></tbody></table><h2 id="expose-tag-artifact-to-the-model" tabindex="-1">Expose <code>tag_artifact</code> to the model <a class="header-anchor" href="#expose-tag-artifact-to-the-model" aria-label="Permalink to &quot;Expose \`tag_artifact\` to the model&quot;">​</a></h2><p>With <code>agentTool: true</code>, the <code>tag_artifact</code> server tool materializes from the kinds registry. Its input accepts the declared kinds and validates their data with the same schemas as host-side tagging. The kind descriptions tell the model which output each one represents.</p><p>An authored tool named <code>tag_artifact</code> takes precedence over the generated tool.</p><h2 id="list-artifacts" tabindex="-1">List artifacts <a class="header-anchor" href="#list-artifacts" aria-label="Permalink to &quot;List artifacts&quot;">​</a></h2><p><code>list({ kind?, sessionId? })</code> returns matching records newest-updated first. HTTP callers can list records and download content through the <a href="./http-api.html#list-and-download-artifacts">artifact routes</a>.</p><h2 id="stream-artifact-tags" tabindex="-1">Stream artifact tags <a class="header-anchor" href="#stream-artifact-tags" aria-label="Permalink to &quot;Stream artifact tags&quot;">​</a></h2><p>Tagging an artifact with a <code>sessionId</code> emits <code>artifact.tagged</code> on that session. Its event data contains <code>id</code>, <code>kind</code>, <code>key</code>, <code>title</code>, <code>data</code>, and <code>source</code>. See <a href="./sessions.html#stream-events">Stream events</a> for the event envelope.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to &quot;Related&quot;">​</a></h2><ul><li><a href="./sessions.html">Sessions</a></li><li><a href="./tools.html">Tools</a></li><li><a href="./evals.html">Evals</a></li><li><a href="./http-api.html">HTTP API</a></li></ul>`,24)])])}const E=e(d,[["render",o]]);export{k as __pageData,E as default};
@@ -0,0 +1 @@
1
+ import{_ as e,c as a,o as s,a3 as i}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Artifacts","description":"Declare, tag, list, stream, and download durable agent outputs.","frontmatter":{"title":"Artifacts","description":"Declare, tag, list, stream, and download durable agent outputs."},"headers":[],"relativePath":"reference/artifacts.md","filePath":"reference/artifacts.md"}'),d={name:"reference/artifacts.md"};function o(n,t,r,c,l,h){return s(),a("div",null,[...t[0]||(t[0]=[i("",24)])])}const E=e(d,[["render",o]]);export{k as __pageData,E as default};
@@ -0,0 +1,23 @@
1
+ import{_ as t,c as s,o as a,a3 as n}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Channels","description":"Define custom channel routes, schemas, state, events, and authentication.","frontmatter":{"title":"Channels","description":"Define custom channel routes, schemas, state, events, and authentication."},"headers":[],"relativePath":"reference/channels.md","filePath":"reference/channels.md"}'),i={name:"reference/channels.md"};function d(o,e,r,h,l,c){return a(),s("div",null,[...e[0]||(e[0]=[n(`<h1 id="channels" tabindex="-1">Channels <a class="header-anchor" href="#channels" aria-label="Permalink to &quot;Channels&quot;">​</a></h1><p>A channel connects an external surface to agent sessions. A file at <code>bot/channels/&lt;id&gt;.ts</code> defines channel <code>&lt;id&gt;</code> and mounts its routes under <code>/v1/channels/&lt;id&gt;</code>. The built-in HTTP session channel is always available alongside any custom or prebuilt channels.</p><p>The <code>@cursor/bdk</code> imports on this page are docs-ahead until publication; see <a href="/docs/#bdk-package-availability">BDK package availability</a>.</p><h2 id="built-in-http-channel" tabindex="-1">Built-in HTTP channel <a class="header-anchor" href="#built-in-http-channel" aria-label="Permalink to &quot;Built-in HTTP channel&quot;">​</a></h2><p>The built-in channel serves the session, approval, tool, discovery, and health routes. In a multi-agent host, each agent&#39;s routes sit under its slug. See the <a href="./http-api.html">HTTP API</a> for request and response contracts.</p><h2 id="define-a-custom-channel" tabindex="-1">Define a custom channel <a class="header-anchor" href="#define-a-custom-channel" aria-label="Permalink to &quot;Define a custom channel&quot;">​</a></h2><p>Use <code>defineChannel</code> with one or more typed routes:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { defineChannel, POST } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;@cursor/bdk/channels&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
2
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { z } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;zod&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
3
+ <span class="line"></span>
4
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> defineChannel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
5
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> routes: [</span></span>
6
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> POST</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;/review&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, {</span></span>
7
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Review a pull request on this channel&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
8
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> bodySchema: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">object</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
9
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> message: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(),</span></span>
10
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> prUrl: z.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">url</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(),</span></span>
11
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }),</span></span>
12
+ <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> handler</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">_request</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, { </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">send</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">body</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
13
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> session</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> send</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span></span>
14
+ <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> \`\${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">body</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">message</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\n\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">Pull request: \${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">body</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prUrl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
15
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
16
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> continuationToken: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\`pr:\${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">body</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prUrl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">}\`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
17
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
18
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> );</span></span>
19
+ <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Response.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">json</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({ sessionId: session.id });</span></span>
20
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span>
21
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }),</span></span>
22
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span>
23
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span></code></pre></div><p>The route above is <code>POST /v1/channels/&lt;id&gt;/review</code>. Calls for the same pull request reuse one conversation because they pass the same continuation token.</p><h2 id="route-verbs-and-schemas" tabindex="-1">Route verbs and schemas <a class="header-anchor" href="#route-verbs-and-schemas" aria-label="Permalink to &quot;Route verbs and schemas&quot;">​</a></h2><p>Route paths must begin with <code>/</code>. The method helper determines which Zod schemas the route accepts:</p><table tabindex="0"><thead><tr><th>Helper</th><th>Schema contract</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>querySchema</code> is required</td></tr><tr><td><code>POST</code>, <code>PUT</code>, <code>PATCH</code></td><td><code>bodySchema</code> is required; <code>querySchema</code> is optional</td></tr><tr><td><code>DELETE</code></td><td>Both schemas are optional</td></tr></tbody></table><p>Plain JSON Schema objects don&#39;t type-check. Use <code>z.object({})</code> or <code>z.unknown()</code> for an open surface. The host validates the body and query before calling the handler, returning <code>400</code> on failure; an empty body is read as <code>{}</code>. Declared schemas also appear in <code>GET /v1/info</code> for playground requests and slash commands.</p><h2 id="handler-arguments" tabindex="-1">Handler arguments <a class="header-anchor" href="#handler-arguments" aria-label="Permalink to &quot;Handler arguments&quot;">​</a></h2><p>Each handler receives the Fetch <code>Request</code> and a typed arguments object.</p><table tabindex="0"><thead><tr><th>Member</th><th>Contract</th></tr></thead><tbody><tr><td><code>send(message, options?)</code></td><td>Start or resume a session on this channel</td></tr><tr><td><code>getSession(sessionId)</code></td><td>Return this channel&#39;s session, or <code>null</code></td></tr><tr><td><code>receive(channel, input)</code></td><td>Hand work to another channel</td></tr><tr><td><code>callTool(name, input, options?)</code></td><td><a href="./tools.html#call-a-tool-without-a-model-turn">Call a server tool</a> without a model turn</td></tr><tr><td><code>body</code>, <code>query</code>, <code>params</code></td><td>Validated inputs and <code>:param</code> path segments</td></tr><tr><td><code>auth</code></td><td>The <code>AuthContext</code> returned by the route&#39;s auth chain</td></tr><tr><td><code>requestIp</code></td><td>The TCP peer address, or <code>null</code></td></tr><tr><td><code>host</code></td><td>Shared MCP, provider, storage, telemetry, and reminder services</td></tr><tr><td><code>waitUntil(promise)</code></td><td>Track work after the response returns</td></tr><tr><td><code>sessionUrls(request, sessionId)</code></td><td>Build absolute playground and trace URLs for this mount</td></tr><tr><td><code>artifacts</code></td><td>List or tag <a href="./artifacts.html">artifacts</a>; pass <code>sessionId</code> when attributing one</td></tr></tbody></table><h3 id="send-options" tabindex="-1"><code>send</code> options <a class="header-anchor" href="#send-options" aria-label="Permalink to &quot;\`send\` options&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Option</th><th>Contract</th></tr></thead><tbody><tr><td><code>continuationToken</code></td><td>Resume the session with this channel-local key, or create one when the key is new</td></tr><tr><td><code>admission</code></td><td><code>&quot;preempt&quot;</code> interrupts a busy turn; <code>&quot;coalesce&quot;</code> queues behind it. The default is <code>&quot;preempt&quot;</code></td></tr><tr><td><code>workspaceFiles</code></td><td>Add relative files for the next turn</td></tr><tr><td><code>workspaceDir</code></td><td>Use an absolute local working directory</td></tr><tr><td><code>auth</code></td><td>Set the session principal; defaults to the request principal</td></tr><tr><td><code>state</code></td><td>Set starting channel state for a new session</td></tr><tr><td><code>title</code></td><td>Set the display title for a new session</td></tr><tr><td><code>purpose</code></td><td>Use <code>&quot;eval&quot;</code> to mark a new session as regression traffic</td></tr><tr><td><code>dryRun</code></td><td>Run read tools and stub write tools for a new session</td></tr><tr><td><code>asOf</code></td><td>Freeze a new session at an ISO-8601 instant with a timezone</td></tr></tbody></table><p><code>send</code> returns a <code>ChannelSession</code>. Its <code>id</code> identifies the session, <code>continuationToken</code> contains its current channel key, and <code>isNew</code> says whether this call created it. A coalesced call also returns <code>coalesced: true</code>.</p><h2 id="events" tabindex="-1">Events <a class="header-anchor" href="#events" aria-label="Permalink to &quot;Events&quot;">​</a></h2><p>The <code>events</code> map subscribes the channel to stream events for the sessions it owns. Keys are event types from the <a href="./sessions.html#stream-events">event vocabulary</a>, or <code>&quot;*&quot;</code>. Each handler receives <code>(event, channel, ctx)</code>, including the session&#39;s <code>channel.state</code>, session info, and shared host services. Use these handlers to deliver progress and replies to the surface that owns the channel.</p><h2 id="session-state" tabindex="-1">Session state <a class="header-anchor" href="#session-state" aria-label="Permalink to &quot;Session state&quot;">​</a></h2><p><code>state</code> on the channel definition supplies starting JSON for each new session. A route can instead pass <code>state</code> to <code>send</code>; event handlers read and update the active value through <code>channel.state</code>.</p><h2 id="start-and-stop-a-channel" tabindex="-1">Start and stop a channel <a class="header-anchor" href="#start-and-stop-a-channel" aria-label="Permalink to &quot;Start and stop a channel&quot;">​</a></h2><p><code>onStart(args)</code> runs when the channel mounts, and <code>onStop()</code> runs when the host stops. <code>onStart</code> receives the route helpers plus these transport controls:</p><table tabindex="0"><thead><tr><th>Helper</th><th>Contract</th></tr></thead><tbody><tr><td><code>emitAssistantMessage(sessionId, text)</code></td><td>Append final assistant text without starting a model turn</td></tr><tr><td><code>hasContinuationSession(token)</code></td><td>Check whether a token maps to a session</td></tr><tr><td><code>isContinuationBusy(token)</code></td><td>Check whether a turn is active for a token</td></tr><tr><td><code>interruptContinuation(token)</code></td><td>Stop the active turn and clear queued coalesced follow-ups</td></tr><tr><td><code>resolveApproval(...)</code></td><td>Approve or deny a parked tool call</td></tr></tbody></table><h2 id="auth-policies" tabindex="-1">Auth policies <a class="header-anchor" href="#auth-policies" aria-label="Permalink to &quot;Auth policies&quot;">​</a></h2><p>Every route runs the channel&#39;s <code>auth</code> array. The default is <code>[localDevStrict()]</code>. Policies may be asynchronous; the first one to return an <code>AuthContext</code> admits the request, and an all-null result returns <code>401</code>.</p><table tabindex="0"><thead><tr><th>Policy</th><th>Admits</th></tr></thead><tbody><tr><td><code>localDevStrict()</code></td><td>Direct loopback requests with a loopback hostname and no proxy-forwarding headers</td></tr><tr><td><code>localDev()</code></td><td>Direct loopback requests with no proxy-forwarding headers, without checking the hostname</td></tr><tr><td><code>loopbackOnly()</code></td><td>Any loopback TCP peer, including local relays that carry forwarding headers</td></tr><tr><td><code>bearerAuth(tokenOrVerify)</code></td><td>A matching bearer token, or a token accepted by the verifier</td></tr><tr><td><code>sharedSecretAuth({ header, secret })</code></td><td>A header matching the named environment or deployment secret</td></tr><tr><td><code>hmacSignatureAuth({ header, secret, prefix? })</code></td><td>A hex HMAC-SHA256 signature over the raw body using the named secret</td></tr><tr><td><code>allowAll()</code></td><td>Every caller as an anonymous principal</td></tr><tr><td><code>publicEndpoint()</code></td><td>Every caller on this custom channel; managed hosting also exposes the route without an alias token</td></tr></tbody></table><p>Use <code>allowAll()</code> only for an intentionally public surface or one protected upstream. With <code>publicEndpoint()</code>, the handler must verify the provider&#39;s signature. The policy applies only to custom channel routes; it doesn&#39;t open the built-in session or tool API.</p><p>The resolved <code>AuthContext</code> (<code>{ authenticator, principalId, principalType, attributes? }</code>) becomes the request principal. Sessions belong to the principal that created them, and other principals receive <code>403</code> on owned routes.</p><p>Server flags interact with authored auth: <code>--bearer-token</code> swaps the default <code>localDevStrict()</code> for <code>bearerAuth(...)</code> on channels that don&#39;t author their own chain, and <code>--allow-anonymous</code> swaps it for <code>allowAll()</code>. An authored <code>auth</code> array always takes precedence.</p><h2 id="prebuilt-channels" tabindex="-1">Prebuilt channels <a class="header-anchor" href="#prebuilt-channels" aria-label="Permalink to &quot;Prebuilt channels&quot;">​</a></h2><table tabindex="0"><thead><tr><th>Import</th><th>Factory</th><th>Surface</th></tr></thead><tbody><tr><td><code>@cursor/bdk/channels/slack</code></td><td><code>slackChannel()</code></td><td>Slack messages, threads, streaming replies, and approvals. See <a href="./../guides/slack.html">Slack</a></td></tr><tr><td><code>@cursor/bdk/channels/github</code></td><td><code>githubChannel()</code></td><td>GitHub and GitHub Enterprise webhooks. See <a href="./../guides/github.html">GitHub</a></td></tr><tr><td><code>@cursor/bdk/channels/gitlab</code></td><td><code>gitlabChannel()</code></td><td>GitLab.com and self-managed GitLab hooks. See <a href="./../guides/gitlab.html">GitLab</a></td></tr><tr><td><code>@cursor/bdk/channels/bitbucket</code></td><td><code>bitbucketChannel()</code></td><td>Bitbucket Cloud and Data Center hooks. See <a href="./../guides/bitbucket.html">Bitbucket</a></td></tr><tr><td><code>@cursor/bdk/channels/deployments</code></td><td><code>deploymentsChannel()</code></td><td>Deployment events filtered by source, environment, or event name</td></tr><tr><td><code>@cursor/bdk/channels/change-monitors</code></td><td><code>changeMonitorsChannel()</code></td><td>Change Monitor <code>checkpoint.created</code> events</td></tr><tr><td><code>@cursor/bdk/channels/issues</code></td><td><code>issuesChannel()</code></td><td>Factory <code>issue.created</code> events</td></tr></tbody></table><p>For other platforms like Discord or Teams, use the authored <code>defineChannel</code> route form.</p><h2 id="continuation-tokens" tabindex="-1">Continuation tokens <a class="header-anchor" href="#continuation-tokens" aria-label="Permalink to &quot;Continuation tokens&quot;">​</a></h2><p>Each channel defines its continuation-token format. The same token resumes the same conversation; the built-in HTTP channel rotates its opaque token after every accepted follow-up and returns <code>409</code> for a stale token. See <a href="./sessions.html#session-identifiers">Session identifiers</a> for the full contract.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to &quot;Related&quot;">​</a></h2><ul><li><a href="./../guides/webhooks.html">Webhooks</a></li><li><a href="./http-api.html">HTTP API</a></li><li><a href="./sessions.html">Sessions</a></li><li><a href="./hooks.html">Hooks</a></li></ul>`,39)])])}const u=t(i,[["render",d]]);export{k as __pageData,u as default};
@@ -0,0 +1 @@
1
+ import{_ as t,c as s,o as a,a3 as n}from"./chunks/framework.BNw1pucY.js";const k=JSON.parse('{"title":"Channels","description":"Define custom channel routes, schemas, state, events, and authentication.","frontmatter":{"title":"Channels","description":"Define custom channel routes, schemas, state, events, and authentication."},"headers":[],"relativePath":"reference/channels.md","filePath":"reference/channels.md"}'),i={name:"reference/channels.md"};function d(o,e,r,h,l,c){return a(),s("div",null,[...e[0]||(e[0]=[n("",39)])])}const u=t(i,[["render",d]]);export{k as __pageData,u as default};