@cursor/bdk 0.2.9 → 0.2.10

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 (570) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.js +803 -812
  3. package/dist/channels/bitbucket/api.js +305 -321
  4. package/dist/channels/bitbucket/binding.js +97 -61
  5. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  6. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  7. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  8. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  9. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  10. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  11. package/dist/channels/bitbucket/checks.js +9 -21
  12. package/dist/channels/bitbucket/cursor-account.js +1 -1
  13. package/dist/channels/bitbucket/defaults.js +14 -4
  14. package/dist/channels/bitbucket/events.js +1 -2
  15. package/dist/channels/bitbucket/index.d.ts +6 -2
  16. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  17. package/dist/channels/bitbucket/index.js +6 -2
  18. package/dist/channels/bitbucket/replay.js +80 -56
  19. package/dist/channels/bitbucket/state.js +16 -7
  20. package/dist/channels/bitbucket/types.d.ts +11 -2
  21. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  22. package/dist/channels/checks.js +18 -28
  23. package/dist/channels/deployments/deployments-channel.js +26 -34
  24. package/dist/channels/github/api.js +216 -210
  25. package/dist/channels/github/auth.d.ts +5 -1
  26. package/dist/channels/github/auth.d.ts.map +1 -1
  27. package/dist/channels/github/auth.js +157 -174
  28. package/dist/channels/github/binding.js +48 -39
  29. package/dist/channels/github/checks.js +9 -14
  30. package/dist/channels/github/cursor-account.js +6 -11
  31. package/dist/channels/github/defaults.js +105 -130
  32. package/dist/channels/github/forward.js +13 -17
  33. package/dist/channels/github/github-channel.d.ts +43 -2
  34. package/dist/channels/github/github-channel.d.ts.map +1 -1
  35. package/dist/channels/github/github-channel.js +1228 -958
  36. package/dist/channels/github/progress.js +145 -146
  37. package/dist/channels/github/replay.js +30 -39
  38. package/dist/channels/github/state.js +40 -16
  39. package/dist/channels/github/types.d.ts +30 -6
  40. package/dist/channels/github/types.d.ts.map +1 -1
  41. package/dist/channels/gitlab/api.js +100 -114
  42. package/dist/channels/gitlab/binding.js +52 -33
  43. package/dist/channels/gitlab/checks.js +28 -29
  44. package/dist/channels/gitlab/cursor-account.js +1 -1
  45. package/dist/channels/gitlab/defaults.js +9 -3
  46. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  47. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  48. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  49. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  50. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  51. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  52. package/dist/channels/gitlab/index.d.ts +6 -2
  53. package/dist/channels/gitlab/index.d.ts.map +1 -1
  54. package/dist/channels/gitlab/index.js +6 -2
  55. package/dist/channels/gitlab/replay.js +50 -27
  56. package/dist/channels/gitlab/state.js +14 -6
  57. package/dist/channels/gitlab/types.d.ts +13 -2
  58. package/dist/channels/gitlab/types.d.ts.map +1 -1
  59. package/dist/channels/origin/api.js +100 -116
  60. package/dist/channels/origin/binding.js +15 -16
  61. package/dist/channels/origin/checks.js +30 -28
  62. package/dist/channels/origin/defaults.js +50 -65
  63. package/dist/channels/origin/origin-channel.js +266 -272
  64. package/dist/channels/origin/origin-webhook.js +70 -88
  65. package/dist/channels/origin/reactions.js +9 -21
  66. package/dist/channels/origin/state.js +13 -5
  67. package/dist/channels/slack/agentic-delivery.js +426 -478
  68. package/dist/channels/slack/agentic-posted.js +9 -10
  69. package/dist/channels/slack/agentic-signals.js +2 -3
  70. package/dist/channels/slack/api.js +417 -427
  71. package/dist/channels/slack/approvals.js +1 -1
  72. package/dist/channels/slack/assistant.js +37 -47
  73. package/dist/channels/slack/attachments.js +188 -206
  74. package/dist/channels/slack/auth.js +8 -6
  75. package/dist/channels/slack/bot-mentions.js +31 -45
  76. package/dist/channels/slack/channel-watch.js +42 -48
  77. package/dist/channels/slack/cli-project.js +112 -137
  78. package/dist/channels/slack/code-fences.js +3 -5
  79. package/dist/channels/slack/constants.js +2 -2
  80. package/dist/channels/slack/credentials.js +23 -38
  81. package/dist/channels/slack/defaults.js +292 -331
  82. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  83. package/dist/channels/slack/dispatch.js +533 -460
  84. package/dist/channels/slack/doctor.js +200 -214
  85. package/dist/channels/slack/eval-directive.js +79 -96
  86. package/dist/channels/slack/event-id-dedupe.js +1 -1
  87. package/dist/channels/slack/external-policy.js +26 -39
  88. package/dist/channels/slack/footer.js +28 -41
  89. package/dist/channels/slack/inbound.d.ts +1 -0
  90. package/dist/channels/slack/inbound.d.ts.map +1 -1
  91. package/dist/channels/slack/inbound.js +50 -31
  92. package/dist/channels/slack/init.d.ts +1 -5
  93. package/dist/channels/slack/init.d.ts.map +1 -1
  94. package/dist/channels/slack/init.js +42 -59
  95. package/dist/channels/slack/interactive.d.ts +9 -3
  96. package/dist/channels/slack/interactive.d.ts.map +1 -1
  97. package/dist/channels/slack/interactive.js +160 -162
  98. package/dist/channels/slack/links.js +1 -2
  99. package/dist/channels/slack/live-delivery.js +172 -190
  100. package/dist/channels/slack/manifest.d.ts.map +1 -1
  101. package/dist/channels/slack/manifest.js +44 -23
  102. package/dist/channels/slack/message-body.js +2 -2
  103. package/dist/channels/slack/nudge-carrier.js +30 -42
  104. package/dist/channels/slack/nudge-store.js +164 -191
  105. package/dist/channels/slack/paint-start.js +66 -81
  106. package/dist/channels/slack/placeholder.js +123 -152
  107. package/dist/channels/slack/pr-ref.js +1 -1
  108. package/dist/channels/slack/progress-delivery.js +65 -78
  109. package/dist/channels/slack/reasoning-card.js +36 -49
  110. package/dist/channels/slack/recording-sink.js +12 -24
  111. package/dist/channels/slack/reply-options.js +7 -12
  112. package/dist/channels/slack/self-identity.js +27 -35
  113. package/dist/channels/slack/sender-name.d.ts +12 -3
  114. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  115. package/dist/channels/slack/sender-name.js +57 -61
  116. package/dist/channels/slack/setup.js +2 -4
  117. package/dist/channels/slack/slack-channel.d.ts +6 -4
  118. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  119. package/dist/channels/slack/slack-channel.js +441 -308
  120. package/dist/channels/slack/socket-mode.js +38 -52
  121. package/dist/channels/slack/thread-context.js +143 -160
  122. package/dist/channels/slack/tool-approval-events.js +149 -166
  123. package/dist/channels/slack/tool-cards.js +6 -11
  124. package/dist/channels/slack/tool-chip.js +1 -2
  125. package/dist/channels/slack/types.d.ts +15 -17
  126. package/dist/channels/slack/types.d.ts.map +1 -1
  127. package/dist/channels/slack/upload.js +84 -97
  128. package/dist/channels/slack/user-info.js +27 -41
  129. package/dist/channels.js +9 -20
  130. package/dist/dashboard-session-url.js +3 -4
  131. package/dist/docs/404.html +2 -2
  132. package/dist/docs/assets/{app.BNhEdGa8.js → app.DXI7bwox.js} +4 -4
  133. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  134. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  135. package/dist/docs/assets/chunks/{VPLocalSearchBox.DIdUV1Ph.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  136. package/dist/docs/assets/chunks/{arc.lELI4_SR.js → arc.BOG1yms8.js} +1 -1
  137. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.iCMdvuoM.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  138. package/dist/docs/assets/chunks/{baseUniq.C1-nDJBf.js → baseUniq.H044KjKs.js} +1 -1
  139. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.ClemzBox.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  140. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BqTak6cR.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  141. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  142. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CUS3qs_R.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  143. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.dz5fdHcl.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  144. package/dist/docs/assets/chunks/{chunk-55IACEB6.D6BEBmve.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.B5uK4ID9.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.PgOJgNQs.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CvkTrCii.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BnSfKYsB.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.MZH6v5UC.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  150. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  151. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  152. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  153. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BBbw_YZi.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  154. package/dist/docs/assets/chunks/{dagre-KV5264BT.CNJB2l7E.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  155. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.BQzlnFfq.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  156. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DkgqqZMz.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DIT8L7H_.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-TYMM5635.3xLPZWGJ.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  159. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.5_IHz8jF.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  160. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BGUCXz8A.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  161. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DbfFavS1.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  162. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.D2yKdeNW.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  163. package/dist/docs/assets/chunks/{graph.CSCxwHba.js → graph.BVqKRmRo.js} +1 -1
  164. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.FDeb6xHY.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  165. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DbeYs9VL.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  166. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CWjKINpx.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  167. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B4FrAlwz.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  168. package/dist/docs/assets/chunks/{layout.DFGxQ9ab.js → layout.CGU3gfSf.js} +1 -1
  169. package/dist/docs/assets/chunks/{linear.BmjZ-G59.js → linear.DaihpW_n.js} +1 -1
  170. package/dist/docs/assets/chunks/{min.DZSxulMW.js → min.BS-j8kHQ.js} +1 -1
  171. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CHLi3-aN.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  172. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DteG-CkU.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  173. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D458ipN3.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  174. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DcFgUxst.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  175. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BwQAMmSA.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  176. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.B_Xdsrh9.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  177. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.CdfDW6-C.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  178. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  179. package/dist/docs/assets/chunks/{theme.sfdL3srp.js → theme.DaplWQhQ.js} +2 -2
  180. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.56-4hXaC.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  181. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CvZSQBO7.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  182. package/dist/docs/assets/chunks/{wardley-RL74JXVD.C9qc8k39.js → wardley-RL74JXVD.iXazD3Z7.js} +1 -1
  183. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D9s0nihi.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  184. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.BVJSpYrC.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  185. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  186. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  187. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  188. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  189. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  191. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  192. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  193. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  194. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  195. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  196. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  197. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  198. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  199. package/dist/docs/building-with-agents.html +37 -37
  200. package/dist/docs/building-with-agents.md +2 -0
  201. package/dist/docs/deployment.html +38 -38
  202. package/dist/docs/deployment.md +7 -0
  203. package/dist/docs/evals.html +36 -36
  204. package/dist/docs/guides/agent-to-agent.html +35 -35
  205. package/dist/docs/guides/bitbucket.html +38 -38
  206. package/dist/docs/guides/bitbucket.md +9 -1
  207. package/dist/docs/guides/cloud-agents.html +35 -35
  208. package/dist/docs/guides/convert-automation.html +35 -35
  209. package/dist/docs/guides/github.html +39 -39
  210. package/dist/docs/guides/github.md +20 -4
  211. package/dist/docs/guides/gitlab.html +38 -38
  212. package/dist/docs/guides/gitlab.md +9 -1
  213. package/dist/docs/guides/grokbot-agents.html +35 -35
  214. package/dist/docs/guides/hooks.html +35 -35
  215. package/dist/docs/guides/improve.html +35 -35
  216. package/dist/docs/guides/jev.html +35 -35
  217. package/dist/docs/guides/mcp-oauth.html +35 -35
  218. package/dist/docs/guides/migrate.html +66 -0
  219. package/dist/docs/guides/migrate.md +122 -0
  220. package/dist/docs/guides/opentelemetry.html +35 -35
  221. package/dist/docs/guides/slack.html +35 -35
  222. package/dist/docs/guides/webhooks.html +35 -35
  223. package/dist/docs/hashmap.json +1 -1
  224. package/dist/docs/hillclimbing.html +35 -35
  225. package/dist/docs/index.html +35 -35
  226. package/dist/docs/llms-full.txt +214 -6
  227. package/dist/docs/llms.txt +1 -0
  228. package/dist/docs/quickstart.html +35 -35
  229. package/dist/docs/reference/agent-config.html +35 -35
  230. package/dist/docs/reference/artifacts.html +35 -35
  231. package/dist/docs/reference/channels.html +35 -35
  232. package/dist/docs/reference/cli.html +39 -38
  233. package/dist/docs/reference/cli.md +39 -0
  234. package/dist/docs/reference/connections.html +35 -35
  235. package/dist/docs/reference/evals.html +35 -35
  236. package/dist/docs/reference/extensions.html +35 -35
  237. package/dist/docs/reference/hooks.html +35 -35
  238. package/dist/docs/reference/http-api.html +35 -35
  239. package/dist/docs/reference/instructions.html +35 -35
  240. package/dist/docs/reference/playground.html +35 -35
  241. package/dist/docs/reference/project-layout.html +35 -35
  242. package/dist/docs/reference/prompt.html +35 -35
  243. package/dist/docs/reference/schedules.html +35 -35
  244. package/dist/docs/reference/sessions.html +35 -35
  245. package/dist/docs/reference/skills.html +38 -38
  246. package/dist/docs/reference/subagents.html +35 -35
  247. package/dist/docs/reference/tools.html +35 -35
  248. package/dist/docs/templates/agentic-owners.html +35 -35
  249. package/dist/docs/templates/grokbot-agents.html +35 -35
  250. package/dist/docs/templates/security-reviewer.html +35 -35
  251. package/dist/docs/templates/thermo-quality-review.html +35 -35
  252. package/dist/docs/templates/thermo-review.html +35 -35
  253. package/dist/docs/templates/triage.html +35 -35
  254. package/dist/docs/troubleshooting.html +36 -36
  255. package/dist/docs/troubleshooting.md +1 -0
  256. package/dist/evals/assertions.js +20 -34
  257. package/dist/evals/expect.js +3 -6
  258. package/dist/evals/judge.js +5 -8
  259. package/dist/evals/loaders.js +45 -62
  260. package/dist/evals/matchers.js +2 -3
  261. package/dist/evals/reporters.js +43 -67
  262. package/dist/evals/results.js +1 -1
  263. package/dist/evals/run-facts.js +5 -6
  264. package/dist/evals.js +27 -15
  265. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  266. package/dist/extensions/cursor-cloud-agents/lib/backend.js +100 -126
  267. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  268. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  269. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  270. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  271. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  272. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  273. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  274. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  275. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  276. package/dist/extensions/cursor-cloud-agents/tools/list.js +8 -19
  277. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  278. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  279. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  280. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  281. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  282. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  283. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  284. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  285. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  286. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  287. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  288. package/dist/extensions/jev/extension.js +3 -3
  289. package/dist/extensions/jev/lib/evaluate.js +43 -60
  290. package/dist/extensions/jev/tools/evaluate.js +6 -17
  291. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  292. package/dist/extensions.js +3 -5
  293. package/dist/files-backends/cursor-hosted.js +504 -523
  294. package/dist/files-backends/local-fs.js +72 -134
  295. package/dist/files.js +3 -3
  296. package/dist/filesystem.js +562 -861
  297. package/dist/index.js +16 -35
  298. package/dist/internal/advertise-tools.js +74 -86
  299. package/dist/internal/artifacts-store.js +298 -361
  300. package/dist/internal/as-of.js +2 -4
  301. package/dist/internal/authored-alias-hooks.js +6 -4
  302. package/dist/internal/authored-loaders.js +37 -52
  303. package/dist/internal/bounded-int.js +1 -2
  304. package/dist/internal/bounded.js +13 -24
  305. package/dist/internal/brand.js +1 -1
  306. package/dist/internal/browser-origin-guard.js +4 -4
  307. package/dist/internal/builtin-tools/artifacts.js +15 -27
  308. package/dist/internal/builtin-tools/index.js +2 -3
  309. package/dist/internal/builtin-tools/reminders.js +33 -52
  310. package/dist/internal/channel-architecture.d.ts +21 -0
  311. package/dist/internal/channel-architecture.d.ts.map +1 -0
  312. package/dist/internal/channel-architecture.js +41 -0
  313. package/dist/internal/channel-dispatch.js +3 -4
  314. package/dist/internal/channel-route-dispatch.js +40 -51
  315. package/dist/internal/channel-state.js +1 -1
  316. package/dist/internal/chat-client.js +319 -340
  317. package/dist/internal/cli-ax.js +1262 -1294
  318. package/dist/internal/cli-bitbucket.js +244 -272
  319. package/dist/internal/cli-convert-automation.js +137 -151
  320. package/dist/internal/cli-cursor.js +126 -147
  321. package/dist/internal/cli-deploy.d.ts.map +1 -1
  322. package/dist/internal/cli-deploy.js +1457 -1507
  323. package/dist/internal/cli-docs.js +130 -147
  324. package/dist/internal/cli-github.js +437 -476
  325. package/dist/internal/cli-gitlab.js +259 -288
  326. package/dist/internal/cli-images.js +266 -334
  327. package/dist/internal/cli-manifest.js +25 -37
  328. package/dist/internal/cli-mcp-oauth.js +228 -247
  329. package/dist/internal/cli-mcp.js +358 -383
  330. package/dist/internal/cli-migrate.js +73 -90
  331. package/dist/internal/cli-skills.js +35 -47
  332. package/dist/internal/cli-slack-manual.d.ts +0 -1
  333. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  334. package/dist/internal/cli-slack-manual.js +175 -204
  335. package/dist/internal/cli-slack.d.ts +1 -1
  336. package/dist/internal/cli-slack.d.ts.map +1 -1
  337. package/dist/internal/cli-slack.js +416 -456
  338. package/dist/internal/cloud-merge.js +7 -3
  339. package/dist/internal/cloud-turn-cost.js +8 -1
  340. package/dist/internal/connection-env.js +5 -6
  341. package/dist/internal/continuation-channel.js +10 -7
  342. package/dist/internal/continuation-identity.js +85 -67
  343. package/dist/internal/conversation-mirror.js +112 -131
  344. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  345. package/dist/internal/cron.js +3 -3
  346. package/dist/internal/cursor/account-mcp.js +147 -146
  347. package/dist/internal/cursor/backend-client.js +290 -320
  348. package/dist/internal/cursor/bound-secret-file.js +3 -3
  349. package/dist/internal/cursor/credentials.js +127 -142
  350. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  351. package/dist/internal/cursor/github-credentials.js +91 -108
  352. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  353. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  354. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  355. package/dist/internal/cursor/session-token.js +36 -48
  356. package/dist/internal/cursor/store-api-client.js +77 -92
  357. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  358. package/dist/internal/cursor-agent-template.js +1 -1
  359. package/dist/internal/cursor-deployment-relay.js +33 -54
  360. package/dist/internal/cursor-event-relay.js +65 -59
  361. package/dist/internal/cursor-relay-core.js +258 -286
  362. package/dist/internal/deferred-channel-session.js +3 -12
  363. package/dist/internal/deploy-client.js +410 -475
  364. package/dist/internal/deploy-manifest.d.ts +17 -0
  365. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  366. package/dist/internal/deploy-manifest.js +71 -21
  367. package/dist/internal/deploy-source.js +31 -43
  368. package/dist/internal/discovery/agent-config.js +45 -59
  369. package/dist/internal/discovery/agent.js +276 -280
  370. package/dist/internal/discovery/channels.js +67 -80
  371. package/dist/internal/discovery/connections.js +286 -296
  372. package/dist/internal/discovery/context.js +2 -13
  373. package/dist/internal/discovery/cursor-plugin.js +223 -259
  374. package/dist/internal/discovery/extension-overlay.js +104 -131
  375. package/dist/internal/discovery/extensions.js +276 -281
  376. package/dist/internal/discovery/fs.js +56 -79
  377. package/dist/internal/discovery/hooks.js +39 -50
  378. package/dist/internal/discovery/info.js +17 -19
  379. package/dist/internal/discovery/instructions.js +58 -71
  380. package/dist/internal/discovery/modules.js +45 -58
  381. package/dist/internal/discovery/project.d.ts.map +1 -1
  382. package/dist/internal/discovery/project.js +192 -215
  383. package/dist/internal/discovery/reminders.js +41 -52
  384. package/dist/internal/discovery/runtime.js +1 -1
  385. package/dist/internal/discovery/schedules.js +71 -82
  386. package/dist/internal/discovery/seed-files.js +21 -32
  387. package/dist/internal/discovery/services.js +74 -96
  388. package/dist/internal/discovery/skills.js +77 -94
  389. package/dist/internal/discovery/subagent.js +79 -95
  390. package/dist/internal/discovery/tools.js +12 -23
  391. package/dist/internal/distribution.js +2 -2
  392. package/dist/internal/docs-site.js +30 -45
  393. package/dist/internal/duration.js +1 -1
  394. package/dist/internal/env-file.js +48 -64
  395. package/dist/internal/eval-judge-model.js +17 -28
  396. package/dist/internal/eval-run-store.js +265 -254
  397. package/dist/internal/eval-runner.d.ts +8 -0
  398. package/dist/internal/eval-runner.d.ts.map +1 -1
  399. package/dist/internal/eval-runner.js +406 -408
  400. package/dist/internal/eval-transport.d.ts +24 -0
  401. package/dist/internal/eval-transport.d.ts.map +1 -0
  402. package/dist/internal/eval-transport.js +22 -0
  403. package/dist/internal/evals-client.js +242 -246
  404. package/dist/internal/event-log.js +72 -120
  405. package/dist/internal/event-mapper.js +30 -31
  406. package/dist/internal/factory-resource-channel.js +16 -30
  407. package/dist/internal/filesystem/errors.js +6 -6
  408. package/dist/internal/filesystem/format.js +10 -13
  409. package/dist/internal/filesystem/merge.js +52 -94
  410. package/dist/internal/filesystem/nearest.js +15 -27
  411. package/dist/internal/filesystem/scratch.js +65 -85
  412. package/dist/internal/filesystem/tools.js +221 -241
  413. package/dist/internal/filesystem/walk.js +76 -143
  414. package/dist/internal/framework-file-storage.js +118 -139
  415. package/dist/internal/framework-storage-selection.js +21 -13
  416. package/dist/internal/frontmatter.js +4 -6
  417. package/dist/internal/github-fanout.js +50 -64
  418. package/dist/internal/guest-network.js +96 -109
  419. package/dist/internal/handleAgentServeTrigger.js +121 -126
  420. package/dist/internal/host-files.js +73 -88
  421. package/dist/internal/host-kv.js +21 -36
  422. package/dist/internal/host-otel.js +22 -19
  423. package/dist/internal/host-platforms.js +49 -63
  424. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  425. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  426. package/dist/internal/hosted-catch-protocol.js +1 -0
  427. package/dist/internal/hosted-catch.d.ts +5 -3
  428. package/dist/internal/hosted-catch.d.ts.map +1 -1
  429. package/dist/internal/hosted-catch.js +84 -93
  430. package/dist/internal/hosted-delivery-protocol.js +32 -8
  431. package/dist/internal/hosted-delivery.d.ts +13 -1
  432. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  433. package/dist/internal/hosted-delivery.js +614 -584
  434. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  435. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  436. package/dist/internal/hosted-eval-cases.js +162 -0
  437. package/dist/internal/hosted-execution-diag.js +38 -30
  438. package/dist/internal/hosted-execution-flush.js +75 -66
  439. package/dist/internal/hosted-execution-latency.js +16 -8
  440. package/dist/internal/hosted-managed-automation.js +2 -2
  441. package/dist/internal/hosting.js +2 -3
  442. package/dist/internal/http-channel-define.js +4 -1
  443. package/dist/internal/http-channel.js +101 -112
  444. package/dist/internal/http-control-plane-session.d.ts +18 -1
  445. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  446. package/dist/internal/http-control-plane-session.js +66 -32
  447. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  448. package/dist/internal/init-interview.js +73 -93
  449. package/dist/internal/init-project.js +182 -214
  450. package/dist/internal/init-scaffold.js +10 -21
  451. package/dist/internal/inline-stdio-mcp.js +80 -86
  452. package/dist/internal/install-cursor-skills.js +231 -273
  453. package/dist/internal/legacy-command-guard.js +18 -31
  454. package/dist/internal/listen-port.js +34 -45
  455. package/dist/internal/local-control-plane.js +293 -307
  456. package/dist/internal/local-env.js +1 -1
  457. package/dist/internal/local-ingress.js +15 -9
  458. package/dist/internal/log-ring.js +1 -2
  459. package/dist/internal/logs-client.js +207 -227
  460. package/dist/internal/map-pool.js +24 -38
  461. package/dist/internal/mcp-endpoint.js +204 -180
  462. package/dist/internal/mcp-host.js +165 -168
  463. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  464. package/dist/internal/mcp-oauth-persist.js +15 -29
  465. package/dist/internal/mcp-oauth.js +209 -266
  466. package/dist/internal/named-webhook-secret.d.ts +39 -0
  467. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  468. package/dist/internal/named-webhook-secret.js +47 -0
  469. package/dist/internal/open-browser.js +2 -3
  470. package/dist/internal/otel/collector.js +104 -68
  471. package/dist/internal/otel/config.js +24 -37
  472. package/dist/internal/otel/http.js +5 -7
  473. package/dist/internal/otel/mcp.js +3 -12
  474. package/dist/internal/otel/runtime.js +69 -83
  475. package/dist/internal/package-inline-stdio.js +57 -65
  476. package/dist/internal/peer-connections.js +9 -5
  477. package/dist/internal/platform-schedule-sync.js +39 -54
  478. package/dist/internal/platform-timers.js +176 -210
  479. package/dist/internal/playground/static.js +1 -2
  480. package/dist/internal/playground/toolchain.js +37 -53
  481. package/dist/internal/playground-proxy.js +230 -270
  482. package/dist/internal/process-memory-telemetry.js +33 -51
  483. package/dist/internal/prompt-context.js +3 -6
  484. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  485. package/dist/internal/reminder-runner.js +770 -785
  486. package/dist/internal/reminder-schedule.js +1 -1
  487. package/dist/internal/reminder-store.js +57 -78
  488. package/dist/internal/request-error-status.js +1 -3
  489. package/dist/internal/request-headers.js +2 -2
  490. package/dist/internal/resolve-prod-target.js +119 -135
  491. package/dist/internal/resolved-connections.js +16 -6
  492. package/dist/internal/run-client.js +221 -229
  493. package/dist/internal/runtime-dispatch-runner.js +18 -43
  494. package/dist/internal/schedule-runner.js +49 -58
  495. package/dist/internal/scm/pr-url.js +7 -6
  496. package/dist/internal/sdk-runner.js +388 -363
  497. package/dist/internal/serve-restart.js +26 -39
  498. package/dist/internal/server.d.ts.map +1 -1
  499. package/dist/internal/server.js +1283 -1244
  500. package/dist/internal/session-cost.js +7 -9
  501. package/dist/internal/session-engine.d.ts +3 -1
  502. package/dist/internal/session-engine.d.ts.map +1 -1
  503. package/dist/internal/session-engine.js +2801 -2777
  504. package/dist/internal/session-links.js +12 -16
  505. package/dist/internal/session-run-log.js +134 -82
  506. package/dist/internal/session-store.js +133 -164
  507. package/dist/internal/sessions-client.js +97 -118
  508. package/dist/internal/skill-catalog.js +18 -23
  509. package/dist/internal/skills-sync.js +16 -30
  510. package/dist/internal/slack-provision-client.js +90 -116
  511. package/dist/internal/start-log-store.js +48 -67
  512. package/dist/internal/steering.js +1 -2
  513. package/dist/internal/storage-coordinator.js +160 -196
  514. package/dist/internal/store-mirror.js +16 -30
  515. package/dist/internal/stream-progress.js +6 -8
  516. package/dist/internal/terminal-style.js +3 -4
  517. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  518. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  519. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  520. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  521. package/dist/internal/tool-catalog.js +11 -5
  522. package/dist/internal/tool-result.js +1 -1
  523. package/dist/internal/trajectory.js +19 -22
  524. package/dist/internal/turn-cost.js +52 -62
  525. package/dist/internal/turn-governor.js +5 -8
  526. package/dist/internal/turn-lease-store.js +85 -105
  527. package/dist/internal/turn-outbox.js +28 -43
  528. package/dist/internal/update-check.js +231 -259
  529. package/dist/internal/v2-hosting.js +1 -2
  530. package/dist/internal/workspace-sync.js +25 -41
  531. package/dist/internal/workspace.js +111 -139
  532. package/dist/kv/memory-kv.js +27 -51
  533. package/dist/memory.js +106 -148
  534. package/dist/otel.js +5 -8
  535. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  536. package/dist/playground/assets/{index-Co4CUVTQ.js → index-JekUQERK.js} +45 -45
  537. package/dist/playground/index.html +2 -2
  538. package/dist/prompt.js +2 -4
  539. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  540. package/dist/storage-backends/cursor-hosted.js +105 -145
  541. package/dist/storage-backends/file-kv.js +100 -128
  542. package/dist/storage-protocol.js +3 -5
  543. package/dist/storage.js +17 -26
  544. package/dist/types.d.ts +68 -0
  545. package/dist/types.d.ts.map +1 -1
  546. package/dist/types.js +20 -18
  547. package/docs/building-with-agents.md +2 -0
  548. package/docs/deployment.md +7 -0
  549. package/docs/guides/bitbucket.md +9 -1
  550. package/docs/guides/github.md +20 -4
  551. package/docs/guides/gitlab.md +9 -1
  552. package/docs/guides/migrate.md +127 -0
  553. package/docs/reference/cli.md +39 -0
  554. package/docs/troubleshooting.md +1 -0
  555. package/package.json +1 -1
  556. package/skills/debug/SKILL.md +1 -0
  557. package/skills/github/SKILL.md +23 -0
  558. package/skills/migrate-v2/SKILL.md +51 -10
  559. package/dist/docs/assets/chunks/@localSearchIndexroot.BJ8UZggu.js +0 -1
  560. package/dist/docs/assets/chunks/channel.BTJ5J9FI.js +0 -1
  561. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D4BZ3cVV.js +0 -1
  562. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D4BZ3cVV.js +0 -1
  563. package/dist/docs/assets/chunks/clone.62tX-O-1.js +0 -1
  564. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DkTs1aEU.js +0 -1
  565. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  566. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  567. package/dist/playground/assets/index-C1g_PTTZ.css +0 -1
  568. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  569. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  570. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -4,15 +4,6 @@
4
4
  * Thin wrapper: ACK envelopes immediately, then forward Events API
5
5
  * payloads to the channel pack. Reconnect is handled by the SDK.
6
6
  */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
7
  import { LogLevel, SocketModeClient } from "@slack/socket-mode";
17
8
  import { SLACK_LOG_PREFIX } from "../../internal/distribution.js";
18
9
  function createBridgeLogger(write) {
@@ -64,51 +55,46 @@ function errorMessage(error) {
64
55
  * Start a Socket Mode connection. Call `stop()` to tear down.
65
56
  * Resolves once the first WebSocket session is connected.
66
57
  */
67
- export function startSlackSocketMode(options) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- var _a;
70
- const write = (_a = options.logger) !== null && _a !== void 0 ? _a : ((line) => console.log(line));
71
- const client = new SocketModeClient({
72
- appToken: options.appToken,
73
- logger: createBridgeLogger(write),
74
- logLevel: LogLevel.INFO,
75
- autoReconnectEnabled: true,
76
- });
77
- client.on("connected", () => {
78
- write(`${SLACK_LOG_PREFIX} Socket Mode connected`);
79
- });
80
- client.on("reconnecting", () => {
81
- write(`${SLACK_LOG_PREFIX} Socket Mode reconnecting`);
82
- });
83
- client.on("disconnected", () => {
84
- write(`${SLACK_LOG_PREFIX} Socket Mode disconnected`);
58
+ export async function startSlackSocketMode(options) {
59
+ const write = options.logger ?? ((line) => console.log(line));
60
+ const client = new SocketModeClient({
61
+ appToken: options.appToken,
62
+ logger: createBridgeLogger(write),
63
+ logLevel: LogLevel.INFO,
64
+ autoReconnectEnabled: true,
65
+ });
66
+ client.on("connected", () => {
67
+ write(`${SLACK_LOG_PREFIX} Socket Mode connected`);
68
+ });
69
+ client.on("reconnecting", () => {
70
+ write(`${SLACK_LOG_PREFIX} Socket Mode reconnecting`);
71
+ });
72
+ client.on("disconnected", () => {
73
+ write(`${SLACK_LOG_PREFIX} Socket Mode disconnected`);
74
+ });
75
+ client.on("slack_event", (evt) => {
76
+ // ACK immediately (3s envelope budget); then dispatch off-path.
77
+ void Promise.resolve(evt.ack()).catch((error) => {
78
+ write(`${SLACK_LOG_PREFIX} Socket Mode ACK failed: ${errorMessage(error)}`);
85
79
  });
86
- client.on("slack_event", (evt) => {
87
- // ACK immediately (3s envelope budget); then dispatch off-path.
88
- void Promise.resolve(evt.ack()).catch((error) => {
89
- write(`${SLACK_LOG_PREFIX} Socket Mode ACK failed: ${errorMessage(error)}`);
90
- });
91
- if (evt.type === "events_api") {
92
- if (evt.body !== undefined) {
93
- invokeHandler(write, "onEvent", options.onEvent, evt.body);
94
- }
95
- return;
80
+ if (evt.type === "events_api") {
81
+ if (evt.body !== undefined) {
82
+ invokeHandler(write, "onEvent", options.onEvent, evt.body);
96
83
  }
97
- if (evt.type === "interactive") {
98
- if (evt.body !== undefined && options.onInteractive !== undefined) {
99
- invokeHandler(write, "onInteractive", options.onInteractive, evt.body);
100
- }
101
- return;
84
+ return;
85
+ }
86
+ if (evt.type === "interactive") {
87
+ if (evt.body !== undefined && options.onInteractive !== undefined) {
88
+ invokeHandler(write, "onInteractive", options.onInteractive, evt.body);
102
89
  }
103
- });
104
- yield client.start();
105
- return {
106
- stop() {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- yield client.disconnect();
109
- write(`${SLACK_LOG_PREFIX} Socket Mode stopped`);
110
- });
111
- },
112
- };
90
+ return;
91
+ }
113
92
  });
93
+ await client.start();
94
+ return {
95
+ async stop() {
96
+ await client.disconnect();
97
+ write(`${SLACK_LOG_PREFIX} Socket Mode stopped`);
98
+ },
99
+ };
114
100
  }
@@ -4,15 +4,6 @@
4
4
  * Cold-start mentions (`@agent what happened here?`) only carry the mention
5
5
  * text; the parent alert / earlier replies live in `conversations.replies`.
6
6
  */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
7
  import { callSlackApiSoft } from "./api.js";
17
8
  import { parseSlackFileRefs, sanitizeSlackFilename } from "./attachments.js";
18
9
  import { slackTextToMarkdown } from "./inbound.js";
@@ -21,7 +12,7 @@ import { slackApiMessageBody } from "./message-body.js";
21
12
  /** Cap replies fetched from Slack (plus the parent). */
22
13
  const DEFAULT_REPLY_LIMIT = 50;
23
14
  /** Soft cap on the formatted block so we don't blow the prompt. */
24
- const DEFAULT_MAX_CHARS = 12000;
15
+ const DEFAULT_MAX_CHARS = 12_000;
25
16
  /** Slack pages `conversations.replies` oldest-first; bound pagination. */
26
17
  const REPLIES_PAGE_LIMIT = 200;
27
18
  const REPLIES_MAX_PAGES = 5;
@@ -81,8 +72,7 @@ function hasThreadEntryContent(message) {
81
72
  return slackApiMessageBody(message).trim() !== "" || parseSlackFileRefs(message) !== undefined;
82
73
  }
83
74
  function formatThreadEntry(message, role) {
84
- var _a;
85
- const ts = (_a = asString(message.ts)) !== null && _a !== void 0 ? _a : "?";
75
+ const ts = asString(message.ts) ?? "?";
86
76
  const userId = asString(message.user);
87
77
  const botId = asString(message.bot_id);
88
78
  const username = asString(message.username);
@@ -90,7 +80,7 @@ function formatThreadEntry(message, role) {
90
80
  ? userId
91
81
  : botId !== undefined && botId !== ""
92
82
  ? `bot:${botId}${username !== undefined ? ` (${username})` : ""}`
93
- : (username !== null && username !== void 0 ? username : "unknown");
83
+ : (username ?? "unknown");
94
84
  const body = slackTextToMarkdown(slackApiMessageBody(message));
95
85
  const files = parseSlackFileRefs(message);
96
86
  const lines = [`[${role}] ${who} @ ${ts}:`];
@@ -98,7 +88,7 @@ function formatThreadEntry(message, role) {
98
88
  lines.push(body);
99
89
  }
100
90
  if (files !== undefined) {
101
- lines.push(`files: ${files.map(file => { var _a, _b; return sanitizeSlackFilename((_b = (_a = file.name) !== null && _a !== void 0 ? _a : file.title) !== null && _b !== void 0 ? _b : file.id); }).join(", ")}`);
91
+ lines.push(`files: ${files.map(file => sanitizeSlackFilename(file.name ?? file.title ?? file.id)).join(", ")}`);
102
92
  }
103
93
  if (lines.length === 1) {
104
94
  lines.push("(empty)");
@@ -106,7 +96,6 @@ function formatThreadEntry(message, role) {
106
96
  return lines.join("\n");
107
97
  }
108
98
  export function slackThreadFilesByPriority(messages, threadTs) {
109
- var _a;
110
99
  const parent = threadTs === undefined
111
100
  ? undefined
112
101
  : messages.find(message => asString(message.ts) === threadTs);
@@ -117,7 +106,7 @@ export function slackThreadFilesByPriority(messages, threadTs) {
117
106
  const seen = new Set();
118
107
  const files = [];
119
108
  for (const message of ordered) {
120
- for (const file of (_a = parseSlackFileRefs(message)) !== null && _a !== void 0 ? _a : []) {
109
+ for (const file of parseSlackFileRefs(message) ?? []) {
121
110
  if (seen.has(file.id)) {
122
111
  continue;
123
112
  }
@@ -166,15 +155,15 @@ export function mergeThreadMessagesByTs(messages, extras) {
166
155
  byTs.set(ts, extra);
167
156
  }
168
157
  }
169
- return [...byTs.values()].sort((a, b) => { var _a, _b; return compareSlackTs((_a = asString(a.ts)) !== null && _a !== void 0 ? _a : "0", (_b = asString(b.ts)) !== null && _b !== void 0 ? _b : "0"); });
158
+ return [...byTs.values()].sort((a, b) => compareSlackTs(asString(a.ts) ?? "0", asString(b.ts) ?? "0"));
170
159
  }
171
160
  /**
172
161
  * Latest bot-authored message ts in a thread (own posts), used as the warm
173
162
  * delta watermark when channel state has not recorded one yet.
174
163
  */
175
164
  export function findLastBotMessageTs(messages, options) {
176
- const restrictToSelf = ((options === null || options === void 0 ? void 0 : options.botUserId) !== undefined && options.botUserId !== "") ||
177
- ((options === null || options === void 0 ? void 0 : options.botId) !== undefined && options.botId !== "");
165
+ const restrictToSelf = (options?.botUserId !== undefined && options.botUserId !== "") ||
166
+ (options?.botId !== undefined && options.botId !== "");
178
167
  let last;
179
168
  for (const message of messages) {
180
169
  const ts = asString(message.ts);
@@ -184,20 +173,20 @@ export function findLastBotMessageTs(messages, options) {
184
173
  const userId = asString(message.user);
185
174
  const botId = asString(message.bot_id);
186
175
  const isBot = restrictToSelf
187
- ? ((options === null || options === void 0 ? void 0 : options.botUserId) !== undefined &&
176
+ ? (options?.botUserId !== undefined &&
188
177
  options.botUserId !== "" &&
189
178
  userId !== undefined &&
190
179
  userId === options.botUserId) ||
191
- ((options === null || options === void 0 ? void 0 : options.botId) !== undefined &&
180
+ (options?.botId !== undefined &&
192
181
  options.botId !== "" &&
193
182
  botId !== undefined &&
194
183
  botId === options.botId)
195
184
  : message.subtype === "bot_message" ||
196
185
  (botId !== undefined && botId !== "") ||
197
- ((options === null || options === void 0 ? void 0 : options.botUserId) !== undefined &&
186
+ (options?.botUserId !== undefined &&
198
187
  userId !== undefined &&
199
188
  userId === options.botUserId) ||
200
- ((options === null || options === void 0 ? void 0 : options.botId) !== undefined && botId !== undefined && botId === options.botId);
189
+ (options?.botId !== undefined && botId !== undefined && botId === options.botId);
201
190
  if (!isBot) {
202
191
  continue;
203
192
  }
@@ -209,10 +198,8 @@ export function findLastBotMessageTs(messages, options) {
209
198
  }
210
199
  /** Messages strictly after `afterTs`, excluding listed timestamps. */
211
200
  export function selectThreadDeltaMessages(messages, options) {
212
- var _a;
213
- var _b;
214
201
  const exclude = excludeTimestampSet(options.excludeTs);
215
- const afterTs = (_b = (_a = options.afterTs) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : "";
202
+ const afterTs = options.afterTs?.trim() ?? "";
216
203
  return messages.filter(message => {
217
204
  const ts = asString(message.ts);
218
205
  if (ts === undefined || ts === "") {
@@ -228,21 +215,20 @@ export function selectThreadDeltaMessages(messages, options) {
228
215
  });
229
216
  }
230
217
  export function formatSlackThreadContextBlock(messages, options) {
231
- var _a;
232
- const threadTs = options === null || options === void 0 ? void 0 : options.threadTs;
233
- const maxChars = (_a = options === null || options === void 0 ? void 0 : options.maxChars) !== null && _a !== void 0 ? _a : DEFAULT_MAX_CHARS;
218
+ const threadTs = options?.threadTs;
219
+ const maxChars = options?.maxChars ?? DEFAULT_MAX_CHARS;
234
220
  const prior = threadTs !== undefined && threadTs !== ""
235
221
  ? trimThreadMessagesForPrompt(messages, {
236
222
  threadTs,
237
223
  limit: DEFAULT_REPLY_LIMIT,
238
- excludeTs: options === null || options === void 0 ? void 0 : options.excludeTs,
224
+ excludeTs: options?.excludeTs,
239
225
  })
240
226
  : messages.filter(message => {
241
227
  const ts = asString(message.ts);
242
228
  if (ts === undefined || ts === "") {
243
229
  return false;
244
230
  }
245
- const exclude = excludeTimestampSet(options === null || options === void 0 ? void 0 : options.excludeTs);
231
+ const exclude = excludeTimestampSet(options?.excludeTs);
246
232
  if (exclude !== undefined && exclude.has(ts)) {
247
233
  return false;
248
234
  }
@@ -273,9 +259,9 @@ export function formatSlackThreadContextBlock(messages, options) {
273
259
  }
274
260
  export function formatSlackThreadDeltaBlock(messages, options) {
275
261
  return formatThreadDeltaEntries(selectThreadDeltaMessages(messages, {
276
- afterTs: options === null || options === void 0 ? void 0 : options.afterTs,
277
- excludeTs: options === null || options === void 0 ? void 0 : options.excludeTs,
278
- }), options === null || options === void 0 ? void 0 : options.maxChars);
262
+ afterTs: options?.afterTs,
263
+ excludeTs: options?.excludeTs,
264
+ }), options?.maxChars);
279
265
  }
280
266
  function formatThreadDeltaEntries(delta, maxChars = DEFAULT_MAX_CHARS) {
281
267
  if (delta.length === 0) {
@@ -297,148 +283,145 @@ function formatThreadDeltaEntries(delta, maxChars = DEFAULT_MAX_CHARS) {
297
283
  }
298
284
  return block;
299
285
  }
300
- function fetchThreadMessages(args) {
301
- return __awaiter(this, void 0, void 0, function* () {
302
- const allMessages = [];
303
- let cursor;
304
- let exhaustedPageBudget = false;
305
- try {
306
- for (let page = 0; page < REPLIES_MAX_PAGES; page++) {
307
- const result = yield callSlackApiSoft({
308
- botToken: args.botToken,
309
- operation: "conversations.replies",
310
- body: Object.assign({ channel: args.channelId, ts: args.threadTs, limit: REPLIES_PAGE_LIMIT, inclusive: true }, (cursor === undefined ? {} : { cursor })),
286
+ async function fetchThreadMessages(args) {
287
+ const allMessages = [];
288
+ let cursor;
289
+ let exhaustedPageBudget = false;
290
+ try {
291
+ for (let page = 0; page < REPLIES_MAX_PAGES; page++) {
292
+ const result = await callSlackApiSoft({
293
+ botToken: args.botToken,
294
+ operation: "conversations.replies",
295
+ body: {
296
+ channel: args.channelId,
297
+ ts: args.threadTs,
298
+ limit: REPLIES_PAGE_LIMIT,
299
+ inclusive: true,
300
+ ...(cursor === undefined ? {} : { cursor }),
301
+ },
302
+ });
303
+ if (!result.ok) {
304
+ args.log.warn("thread context fetch not-ok", {
305
+ channel: args.channelId,
306
+ thread_ts: args.threadTs,
307
+ error: result.error,
311
308
  });
312
- if (!result.ok) {
313
- args.log.warn("thread context fetch not-ok", {
314
- channel: args.channelId,
315
- thread_ts: args.threadTs,
316
- error: result.error,
317
- });
318
- return undefined;
319
- }
320
- const pageMessages = Array.isArray(result.messages)
321
- ? result.messages.map(asRecord).filter((m) => m !== null)
322
- : [];
323
- allMessages.push(...pageMessages);
324
- const nextCursor = typeof result.response_metadata === "object" &&
325
- result.response_metadata !== null &&
326
- !Array.isArray(result.response_metadata)
327
- ? asString(result.response_metadata.next_cursor)
328
- : undefined;
329
- const hasMore = result.has_more === true;
330
- cursor = nextCursor !== undefined && nextCursor !== "" ? nextCursor : undefined;
331
- if (!hasMore || cursor === undefined) {
332
- break;
333
- }
334
- if (page === REPLIES_MAX_PAGES - 1) {
335
- exhaustedPageBudget = true;
336
- }
309
+ return undefined;
310
+ }
311
+ const pageMessages = Array.isArray(result.messages)
312
+ ? result.messages.map(asRecord).filter((m) => m !== null)
313
+ : [];
314
+ allMessages.push(...pageMessages);
315
+ const nextCursor = typeof result.response_metadata === "object" &&
316
+ result.response_metadata !== null &&
317
+ !Array.isArray(result.response_metadata)
318
+ ? asString(result.response_metadata.next_cursor)
319
+ : undefined;
320
+ const hasMore = result.has_more === true;
321
+ cursor = nextCursor !== undefined && nextCursor !== "" ? nextCursor : undefined;
322
+ if (!hasMore || cursor === undefined) {
323
+ break;
324
+ }
325
+ if (page === REPLIES_MAX_PAGES - 1) {
326
+ exhaustedPageBudget = true;
337
327
  }
338
328
  }
339
- catch (error) {
340
- args.log.warn("thread context fetch failed", {
341
- channel: args.channelId,
342
- thread_ts: args.threadTs,
343
- error: error instanceof Error ? error.message : String(error),
344
- });
345
- return undefined;
346
- }
347
- if (exhaustedPageBudget) {
348
- args.log.warn("thread context pagination budget exhausted", {
349
- channel: args.channelId,
350
- thread_ts: args.threadTs,
351
- fetched: allMessages.length,
352
- });
353
- }
354
- return allMessages;
355
- });
329
+ }
330
+ catch (error) {
331
+ args.log.warn("thread context fetch failed", {
332
+ channel: args.channelId,
333
+ thread_ts: args.threadTs,
334
+ error: error instanceof Error ? error.message : String(error),
335
+ });
336
+ return undefined;
337
+ }
338
+ if (exhaustedPageBudget) {
339
+ args.log.warn("thread context pagination budget exhausted", {
340
+ channel: args.channelId,
341
+ thread_ts: args.threadTs,
342
+ fetched: allMessages.length,
343
+ });
344
+ }
345
+ return allMessages;
356
346
  }
357
347
  export const EMPTY_SLACK_THREAD_CONTEXT = { block: undefined, files: [] };
358
348
  /**
359
349
  * Load prior messages in a Slack thread and return a prompt context block.
360
350
  * Soft-fails (returns undefined) when credentials are missing or the API errors.
361
351
  */
362
- export function loadSlackThreadContext(args) {
363
- return __awaiter(this, void 0, void 0, function* () {
364
- var _a, _b;
365
- const log = (_a = args.log) !== null && _a !== void 0 ? _a : defaultSlackLog;
366
- if (args.botToken === undefined) {
367
- return EMPTY_SLACK_THREAD_CONTEXT;
368
- }
369
- if (args.channelId === "" || args.threadTs === "") {
370
- return EMPTY_SLACK_THREAD_CONTEXT;
371
- }
372
- const replyLimit = (_b = args.limit) !== null && _b !== void 0 ? _b : DEFAULT_REPLY_LIMIT;
373
- const fetched = yield fetchThreadMessages({
374
- botToken: args.botToken,
375
- channelId: args.channelId,
376
- threadTs: args.threadTs,
377
- log,
378
- });
379
- if (fetched === undefined) {
380
- return EMPTY_SLACK_THREAD_CONTEXT;
381
- }
382
- const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
383
- ? fetched
384
- : mergeThreadMessagesByTs(fetched, args.mergeMessages);
385
- const trimmed = trimThreadMessagesForPrompt(allMessages, {
386
- threadTs: args.threadTs,
387
- limit: replyLimit,
388
- excludeTs: args.excludeTs,
389
- });
390
- return {
391
- block: formatSlackThreadContextBlock(trimmed, {
392
- threadTs: args.threadTs,
393
- maxChars: args.maxChars,
394
- }),
395
- files: slackThreadFilesByPriority(trimmed, args.threadTs),
396
- };
352
+ export async function loadSlackThreadContext(args) {
353
+ const log = args.log ?? defaultSlackLog;
354
+ if (args.botToken === undefined) {
355
+ return EMPTY_SLACK_THREAD_CONTEXT;
356
+ }
357
+ if (args.channelId === "" || args.threadTs === "") {
358
+ return EMPTY_SLACK_THREAD_CONTEXT;
359
+ }
360
+ const replyLimit = args.limit ?? DEFAULT_REPLY_LIMIT;
361
+ const fetched = await fetchThreadMessages({
362
+ botToken: args.botToken,
363
+ channelId: args.channelId,
364
+ threadTs: args.threadTs,
365
+ log,
397
366
  });
398
- }
399
- export function loadSlackThreadContextBlock(args) {
400
- return __awaiter(this, void 0, void 0, function* () {
401
- return (yield loadSlackThreadContext(args)).block;
367
+ if (fetched === undefined) {
368
+ return EMPTY_SLACK_THREAD_CONTEXT;
369
+ }
370
+ const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
371
+ ? fetched
372
+ : mergeThreadMessagesByTs(fetched, args.mergeMessages);
373
+ const trimmed = trimThreadMessagesForPrompt(allMessages, {
374
+ threadTs: args.threadTs,
375
+ limit: replyLimit,
376
+ excludeTs: args.excludeTs,
402
377
  });
378
+ return {
379
+ block: formatSlackThreadContextBlock(trimmed, {
380
+ threadTs: args.threadTs,
381
+ maxChars: args.maxChars,
382
+ }),
383
+ files: slackThreadFilesByPriority(trimmed, args.threadTs),
384
+ };
385
+ }
386
+ export async function loadSlackThreadContextBlock(args) {
387
+ return (await loadSlackThreadContext(args)).block;
403
388
  }
404
389
  /**
405
390
  * Warm-turn delta: messages since the last bot post (or all new replies when
406
391
  * the watermark is unknown), with optional merge-by-ts for the triggering ask.
407
392
  */
408
- export function loadSlackThreadDelta(args) {
409
- return __awaiter(this, void 0, void 0, function* () {
410
- var _a;
411
- const log = (_a = args.log) !== null && _a !== void 0 ? _a : defaultSlackLog;
412
- if (args.botToken === undefined) {
413
- return EMPTY_SLACK_THREAD_CONTEXT;
414
- }
415
- if (args.channelId === "" || args.threadTs === "") {
416
- return EMPTY_SLACK_THREAD_CONTEXT;
417
- }
418
- const fetched = yield fetchThreadMessages({
419
- botToken: args.botToken,
420
- channelId: args.channelId,
421
- threadTs: args.threadTs,
422
- log,
423
- });
424
- if (fetched === undefined) {
425
- return EMPTY_SLACK_THREAD_CONTEXT;
426
- }
427
- const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
428
- ? fetched
429
- : mergeThreadMessagesByTs(fetched, args.mergeMessages);
430
- const afterTs = args.afterTs !== undefined && args.afterTs.trim() !== ""
431
- ? args.afterTs.trim()
432
- : findLastBotMessageTs(allMessages, Object.assign(Object.assign({}, (args.botUserId === undefined ? {} : { botUserId: args.botUserId })), (args.botId === undefined ? {} : { botId: args.botId })));
433
- const delta = selectThreadDeltaMessages(allMessages, { afterTs, excludeTs: args.excludeTs });
434
- return {
435
- block: formatThreadDeltaEntries(delta, args.maxChars),
436
- files: slackThreadFilesByPriority(delta),
437
- };
393
+ export async function loadSlackThreadDelta(args) {
394
+ const log = args.log ?? defaultSlackLog;
395
+ if (args.botToken === undefined) {
396
+ return EMPTY_SLACK_THREAD_CONTEXT;
397
+ }
398
+ if (args.channelId === "" || args.threadTs === "") {
399
+ return EMPTY_SLACK_THREAD_CONTEXT;
400
+ }
401
+ const fetched = await fetchThreadMessages({
402
+ botToken: args.botToken,
403
+ channelId: args.channelId,
404
+ threadTs: args.threadTs,
405
+ log,
438
406
  });
407
+ if (fetched === undefined) {
408
+ return EMPTY_SLACK_THREAD_CONTEXT;
409
+ }
410
+ const allMessages = args.mergeMessages === undefined || args.mergeMessages.length === 0
411
+ ? fetched
412
+ : mergeThreadMessagesByTs(fetched, args.mergeMessages);
413
+ const afterTs = args.afterTs !== undefined && args.afterTs.trim() !== ""
414
+ ? args.afterTs.trim()
415
+ : findLastBotMessageTs(allMessages, {
416
+ ...(args.botUserId === undefined ? {} : { botUserId: args.botUserId }),
417
+ ...(args.botId === undefined ? {} : { botId: args.botId }),
418
+ });
419
+ const delta = selectThreadDeltaMessages(allMessages, { afterTs, excludeTs: args.excludeTs });
420
+ return {
421
+ block: formatThreadDeltaEntries(delta, args.maxChars),
422
+ files: slackThreadFilesByPriority(delta),
423
+ };
439
424
  }
440
- export function loadSlackThreadDeltaBlock(args) {
441
- return __awaiter(this, void 0, void 0, function* () {
442
- return (yield loadSlackThreadDelta(args)).block;
443
- });
425
+ export async function loadSlackThreadDeltaBlock(args) {
426
+ return (await loadSlackThreadDelta(args)).block;
444
427
  }