@cursor/bdk 0.2.8 → 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 (581) hide show
  1. package/dist/artifacts.js +3 -5
  2. package/dist/bin/agent-serve.d.ts +1 -0
  3. package/dist/bin/agent-serve.d.ts.map +1 -1
  4. package/dist/bin/agent-serve.js +820 -807
  5. package/dist/channels/bitbucket/api.js +305 -321
  6. package/dist/channels/bitbucket/binding.js +97 -61
  7. package/dist/channels/bitbucket/bitbucket-channel.d.ts +15 -1
  8. package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -1
  9. package/dist/channels/bitbucket/bitbucket-channel.js +95 -42
  10. package/dist/channels/bitbucket/bitbucket-webhook.d.ts +11 -0
  11. package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -1
  12. package/dist/channels/bitbucket/bitbucket-webhook.js +214 -204
  13. package/dist/channels/bitbucket/checks.js +9 -21
  14. package/dist/channels/bitbucket/cursor-account.js +1 -1
  15. package/dist/channels/bitbucket/defaults.js +14 -4
  16. package/dist/channels/bitbucket/events.js +1 -2
  17. package/dist/channels/bitbucket/index.d.ts +6 -2
  18. package/dist/channels/bitbucket/index.d.ts.map +1 -1
  19. package/dist/channels/bitbucket/index.js +6 -2
  20. package/dist/channels/bitbucket/replay.js +80 -56
  21. package/dist/channels/bitbucket/state.js +16 -7
  22. package/dist/channels/bitbucket/types.d.ts +11 -2
  23. package/dist/channels/bitbucket/types.d.ts.map +1 -1
  24. package/dist/channels/checks.js +18 -28
  25. package/dist/channels/deployments/deployments-channel.js +26 -34
  26. package/dist/channels/github/api.js +216 -210
  27. package/dist/channels/github/auth.d.ts +5 -1
  28. package/dist/channels/github/auth.d.ts.map +1 -1
  29. package/dist/channels/github/auth.js +157 -174
  30. package/dist/channels/github/binding.js +48 -39
  31. package/dist/channels/github/checks.js +9 -14
  32. package/dist/channels/github/cursor-account.js +6 -11
  33. package/dist/channels/github/defaults.js +105 -130
  34. package/dist/channels/github/forward.js +13 -17
  35. package/dist/channels/github/github-channel.d.ts +43 -2
  36. package/dist/channels/github/github-channel.d.ts.map +1 -1
  37. package/dist/channels/github/github-channel.js +1228 -958
  38. package/dist/channels/github/progress.js +145 -146
  39. package/dist/channels/github/replay.js +30 -39
  40. package/dist/channels/github/state.js +40 -16
  41. package/dist/channels/github/types.d.ts +30 -6
  42. package/dist/channels/github/types.d.ts.map +1 -1
  43. package/dist/channels/gitlab/api.js +100 -114
  44. package/dist/channels/gitlab/binding.js +52 -33
  45. package/dist/channels/gitlab/checks.js +28 -29
  46. package/dist/channels/gitlab/cursor-account.js +1 -1
  47. package/dist/channels/gitlab/defaults.js +9 -3
  48. package/dist/channels/gitlab/gitlab-channel.d.ts +16 -1
  49. package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -1
  50. package/dist/channels/gitlab/gitlab-channel.js +95 -42
  51. package/dist/channels/gitlab/gitlab-webhook.d.ts +10 -1
  52. package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -1
  53. package/dist/channels/gitlab/gitlab-webhook.js +282 -249
  54. package/dist/channels/gitlab/index.d.ts +6 -2
  55. package/dist/channels/gitlab/index.d.ts.map +1 -1
  56. package/dist/channels/gitlab/index.js +6 -2
  57. package/dist/channels/gitlab/replay.js +50 -27
  58. package/dist/channels/gitlab/state.js +14 -6
  59. package/dist/channels/gitlab/types.d.ts +13 -2
  60. package/dist/channels/gitlab/types.d.ts.map +1 -1
  61. package/dist/channels/origin/api.js +100 -116
  62. package/dist/channels/origin/binding.js +15 -16
  63. package/dist/channels/origin/checks.js +30 -28
  64. package/dist/channels/origin/defaults.js +50 -65
  65. package/dist/channels/origin/origin-channel.js +266 -272
  66. package/dist/channels/origin/origin-webhook.js +70 -88
  67. package/dist/channels/origin/reactions.js +9 -21
  68. package/dist/channels/origin/state.js +13 -5
  69. package/dist/channels/slack/agentic-delivery.js +426 -478
  70. package/dist/channels/slack/agentic-posted.js +9 -10
  71. package/dist/channels/slack/agentic-signals.js +2 -3
  72. package/dist/channels/slack/api.js +417 -427
  73. package/dist/channels/slack/approvals.js +1 -1
  74. package/dist/channels/slack/assistant.js +37 -47
  75. package/dist/channels/slack/attachments.js +188 -206
  76. package/dist/channels/slack/auth.js +8 -6
  77. package/dist/channels/slack/bot-mentions.js +31 -45
  78. package/dist/channels/slack/channel-watch.js +42 -48
  79. package/dist/channels/slack/cli-project.js +112 -137
  80. package/dist/channels/slack/code-fences.js +3 -5
  81. package/dist/channels/slack/constants.js +2 -2
  82. package/dist/channels/slack/credentials.js +23 -38
  83. package/dist/channels/slack/defaults.js +292 -331
  84. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  85. package/dist/channels/slack/dispatch.js +533 -460
  86. package/dist/channels/slack/doctor.js +200 -214
  87. package/dist/channels/slack/eval-directive.js +79 -96
  88. package/dist/channels/slack/event-id-dedupe.js +1 -1
  89. package/dist/channels/slack/external-policy.js +26 -39
  90. package/dist/channels/slack/footer.js +28 -41
  91. package/dist/channels/slack/inbound.d.ts +1 -0
  92. package/dist/channels/slack/inbound.d.ts.map +1 -1
  93. package/dist/channels/slack/inbound.js +50 -31
  94. package/dist/channels/slack/init.d.ts +1 -5
  95. package/dist/channels/slack/init.d.ts.map +1 -1
  96. package/dist/channels/slack/init.js +42 -59
  97. package/dist/channels/slack/interactive.d.ts +9 -3
  98. package/dist/channels/slack/interactive.d.ts.map +1 -1
  99. package/dist/channels/slack/interactive.js +160 -162
  100. package/dist/channels/slack/links.js +1 -2
  101. package/dist/channels/slack/live-delivery.js +172 -190
  102. package/dist/channels/slack/manifest.d.ts.map +1 -1
  103. package/dist/channels/slack/manifest.js +44 -23
  104. package/dist/channels/slack/message-body.js +2 -2
  105. package/dist/channels/slack/nudge-carrier.js +30 -42
  106. package/dist/channels/slack/nudge-store.js +164 -191
  107. package/dist/channels/slack/paint-start.js +66 -81
  108. package/dist/channels/slack/placeholder.js +123 -152
  109. package/dist/channels/slack/pr-ref.js +1 -1
  110. package/dist/channels/slack/progress-delivery.js +65 -78
  111. package/dist/channels/slack/reasoning-card.js +36 -49
  112. package/dist/channels/slack/recording-sink.js +12 -24
  113. package/dist/channels/slack/reply-options.js +7 -12
  114. package/dist/channels/slack/self-identity.js +27 -35
  115. package/dist/channels/slack/sender-name.d.ts +12 -3
  116. package/dist/channels/slack/sender-name.d.ts.map +1 -1
  117. package/dist/channels/slack/sender-name.js +57 -61
  118. package/dist/channels/slack/setup.js +2 -4
  119. package/dist/channels/slack/slack-channel.d.ts +6 -4
  120. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  121. package/dist/channels/slack/slack-channel.js +441 -308
  122. package/dist/channels/slack/socket-mode.js +38 -52
  123. package/dist/channels/slack/thread-context.js +143 -160
  124. package/dist/channels/slack/tool-approval-events.js +149 -166
  125. package/dist/channels/slack/tool-cards.js +6 -11
  126. package/dist/channels/slack/tool-chip.js +1 -2
  127. package/dist/channels/slack/types.d.ts +15 -17
  128. package/dist/channels/slack/types.d.ts.map +1 -1
  129. package/dist/channels/slack/upload.js +84 -97
  130. package/dist/channels/slack/user-info.js +27 -41
  131. package/dist/channels.js +9 -20
  132. package/dist/dashboard-session-url.js +3 -4
  133. package/dist/docs/404.html +2 -2
  134. package/dist/docs/assets/{app.oyjtOr3W.js → app.DXI7bwox.js} +4 -4
  135. package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.js → building-with-agents.md.Df87rAe1.js} +1 -1
  136. package/dist/docs/assets/chunks/@localSearchIndexroot.CtLtpWcx.js +1 -0
  137. package/dist/docs/assets/chunks/{VPLocalSearchBox.D0P6J_UJ.js → VPLocalSearchBox.BrbO5mEe.js} +1 -1
  138. package/dist/docs/assets/chunks/{arc.B0LY1J1h.js → arc.BOG1yms8.js} +1 -1
  139. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.dPduLUxY.js → architectureDiagram-Q4EWVU46.C0hsMZnZ.js} +1 -1
  140. package/dist/docs/assets/chunks/{baseUniq.B_Ohm21h.js → baseUniq.H044KjKs.js} +1 -1
  141. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.B4zcanaJ.js → blockDiagram-DXYQGD6D.BsRW6GoB.js} +1 -1
  142. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.D9Iw21nx.js → c4Diagram-AHTNJAMY.B9HV5PFR.js} +1 -1
  143. package/dist/docs/assets/chunks/channel.CBwrU9rP.js +1 -0
  144. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.DDVwRShI.js → chunk-4BX2VUAB.CPoT_ajl.js} +1 -1
  145. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DsYcdn1i.js → chunk-4TB4RGXK.DZBwWuCL.js} +1 -1
  146. package/dist/docs/assets/chunks/{chunk-55IACEB6.BzzQvcYp.js → chunk-55IACEB6.CZ3yTiyq.js} +1 -1
  147. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BMiXZ7FX.js → chunk-EDXVE4YY.6DfvHSd8.js} +1 -1
  148. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.D_mBcLoc.js → chunk-FMBD7UC4.CpBj8HfK.js} +1 -1
  149. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CMVjWVMx.js → chunk-OYMX7WX6.BdKo8YqS.js} +1 -1
  150. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BG-FrPv9.js → chunk-QZHKN3VN.BnXNyxJx.js} +1 -1
  151. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CkFE1ap3.js → chunk-YZCP3GAM.Cg1OcF8G.js} +1 -1
  152. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CbC_mrvB.js +1 -0
  153. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CbC_mrvB.js +1 -0
  154. package/dist/docs/assets/chunks/clone.BTvFyY1a.js +1 -0
  155. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.BVNnCTvY.js → cose-bilkent-S5V4N54A.1SP8al9c.js} +1 -1
  156. package/dist/docs/assets/chunks/{dagre-KV5264BT.CDN5PR9l.js → dagre-KV5264BT.DS1L6hJt.js} +1 -1
  157. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DQRUlT-i.js → diagram-5BDNPKRD.ChsausbG.js} +1 -1
  158. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.CoeblYQT.js → diagram-G4DWMVQ6.3XsptNWj.js} +1 -1
  159. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DW3ymjl0.js → diagram-MMDJMWI5.DPA9Dk_P.js} +1 -1
  160. package/dist/docs/assets/chunks/{diagram-TYMM5635.BP0uN4Jw.js → diagram-TYMM5635.BVswXWrB.js} +1 -1
  161. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DVFUWEn4.js → erDiagram-SMLLAGMA.BSak5OSP.js} +1 -1
  162. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.HU-eHspv.js → flowDiagram-DWJPFMVM.CQgN4TTz.js} +1 -1
  163. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.DHNhXijY.js → ganttDiagram-T4ZO3ILL.GrT0kA4a.js} +1 -1
  164. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DkISXcO3.js → gitGraphDiagram-UUTBAWPF.CdS7Ucll.js} +1 -1
  165. package/dist/docs/assets/chunks/{graph.CCV0fuRR.js → graph.BVqKRmRo.js} +1 -1
  166. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.bgILzOoc.js → infoDiagram-42DDH7IO.C3C9FRto.js} +1 -1
  167. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CuryXC0F.js → ishikawaDiagram-UXIWVN3A.2FuAh_Zj.js} +1 -1
  168. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BL1Pr-wu.js → journeyDiagram-VCZTEJTY.CaHMfK4b.js} +1 -1
  169. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BbGjvk4l.js → kanban-definition-6JOO6SKY.CjhIUwcA.js} +1 -1
  170. package/dist/docs/assets/chunks/{layout.C4PfdldS.js → layout.CGU3gfSf.js} +1 -1
  171. package/dist/docs/assets/chunks/{linear.C3xD1T6X.js → linear.DaihpW_n.js} +1 -1
  172. package/dist/docs/assets/chunks/{min.CzgRAQ9c.js → min.BS-j8kHQ.js} +1 -1
  173. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CA9rSWum.js → mindmap-definition-QFDTVHPH.BVJ1Bbnk.js} +1 -1
  174. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.B8MprgJu.js → pieDiagram-DEJITSTG.Cz1WIv9r.js} +1 -1
  175. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DndDwbKT.js → quadrantDiagram-34T5L4WZ.DKLFxcjy.js} +1 -1
  176. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.Zhfgwlnn.js → requirementDiagram-MS252O5E.BHegiK7x.js} +1 -1
  177. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.B6RRm6N5.js → sankeyDiagram-XADWPNL6.DYkY6yPc.js} +1 -1
  178. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Bfmz-1PN.js → sequenceDiagram-FGHM5R23.DYQ1QUrI.js} +1 -1
  179. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.gbrdNqgj.js → stateDiagram-FHFEXIEX.Iru8BsFo.js} +1 -1
  180. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.BYXl4LW6.js +1 -0
  181. package/dist/docs/assets/chunks/{theme.gpWjytMh.js → theme.DaplWQhQ.js} +2 -2
  182. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Bl1l7M1f.js → timeline-definition-GMOUNBTQ.BwFA8hiX.js} +1 -1
  183. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Dfle4U0d.js → vennDiagram-DHZGUBPP.CZ60W1C_.js} +1 -1
  184. package/dist/docs/assets/chunks/wardley-RL74JXVD.iXazD3Z7.js +162 -0
  185. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.CM_4lmvZ.js → wardleyDiagram-NUSXRM2D.B69D2r8-.js} +1 -1
  186. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CHT5X28R.js → xychartDiagram-5P7HB3ND.CLPZEIU9.js} +1 -1
  187. package/dist/docs/assets/{deployment.md.BdqTiGdc.js → deployment.md.BYuEcDBv.js} +2 -2
  188. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.js → guides_bitbucket.md.CKUayYtD.js} +3 -3
  189. package/dist/docs/assets/{guides_bitbucket.md.BB6fqD-M.lean.js → guides_bitbucket.md.CKUayYtD.lean.js} +1 -1
  190. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.js → guides_github.md.TuNiZAOQ.js} +4 -4
  191. package/dist/docs/assets/{guides_github.md.Cr1Xlf-m.lean.js → guides_github.md.TuNiZAOQ.lean.js} +1 -1
  192. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.js → guides_gitlab.md.CtNI4fSH.js} +4 -4
  193. package/dist/docs/assets/{guides_gitlab.md.CMpmFi4M.lean.js → guides_gitlab.md.CtNI4fSH.lean.js} +1 -1
  194. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.js +7 -0
  195. package/dist/docs/assets/guides_migrate.md.sCAvvlC6.lean.js +1 -0
  196. package/dist/docs/assets/{reference_cli.md.GwugN3n-.js → reference_cli.md.dYCAL2lB.js} +4 -3
  197. package/dist/docs/assets/reference_cli.md.dYCAL2lB.lean.js +1 -0
  198. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  199. package/dist/docs/assets/troubleshooting.md.x-GBa7wN.js +1 -0
  200. package/dist/docs/assets/{troubleshooting.md.Bscj6ODe.lean.js → troubleshooting.md.x-GBa7wN.lean.js} +1 -1
  201. package/dist/docs/building-with-agents.html +37 -37
  202. package/dist/docs/building-with-agents.md +2 -0
  203. package/dist/docs/deployment.html +38 -38
  204. package/dist/docs/deployment.md +7 -0
  205. package/dist/docs/evals.html +36 -36
  206. package/dist/docs/guides/agent-to-agent.html +35 -35
  207. package/dist/docs/guides/bitbucket.html +38 -38
  208. package/dist/docs/guides/bitbucket.md +9 -1
  209. package/dist/docs/guides/cloud-agents.html +35 -35
  210. package/dist/docs/guides/convert-automation.html +35 -35
  211. package/dist/docs/guides/github.html +39 -39
  212. package/dist/docs/guides/github.md +20 -4
  213. package/dist/docs/guides/gitlab.html +38 -38
  214. package/dist/docs/guides/gitlab.md +9 -1
  215. package/dist/docs/guides/grokbot-agents.html +35 -35
  216. package/dist/docs/guides/hooks.html +35 -35
  217. package/dist/docs/guides/improve.html +35 -35
  218. package/dist/docs/guides/jev.html +35 -35
  219. package/dist/docs/guides/mcp-oauth.html +35 -35
  220. package/dist/docs/guides/migrate.html +66 -0
  221. package/dist/docs/guides/migrate.md +122 -0
  222. package/dist/docs/guides/opentelemetry.html +35 -35
  223. package/dist/docs/guides/slack.html +35 -35
  224. package/dist/docs/guides/webhooks.html +35 -35
  225. package/dist/docs/hashmap.json +1 -1
  226. package/dist/docs/hillclimbing.html +35 -35
  227. package/dist/docs/index.html +35 -35
  228. package/dist/docs/llms-full.txt +214 -6
  229. package/dist/docs/llms.txt +1 -0
  230. package/dist/docs/quickstart.html +35 -35
  231. package/dist/docs/reference/agent-config.html +35 -35
  232. package/dist/docs/reference/artifacts.html +35 -35
  233. package/dist/docs/reference/channels.html +35 -35
  234. package/dist/docs/reference/cli.html +39 -38
  235. package/dist/docs/reference/cli.md +39 -0
  236. package/dist/docs/reference/connections.html +35 -35
  237. package/dist/docs/reference/evals.html +35 -35
  238. package/dist/docs/reference/extensions.html +35 -35
  239. package/dist/docs/reference/hooks.html +35 -35
  240. package/dist/docs/reference/http-api.html +35 -35
  241. package/dist/docs/reference/instructions.html +35 -35
  242. package/dist/docs/reference/playground.html +35 -35
  243. package/dist/docs/reference/project-layout.html +35 -35
  244. package/dist/docs/reference/prompt.html +35 -35
  245. package/dist/docs/reference/schedules.html +35 -35
  246. package/dist/docs/reference/sessions.html +35 -35
  247. package/dist/docs/reference/skills.html +38 -38
  248. package/dist/docs/reference/subagents.html +35 -35
  249. package/dist/docs/reference/tools.html +35 -35
  250. package/dist/docs/templates/agentic-owners.html +35 -35
  251. package/dist/docs/templates/grokbot-agents.html +35 -35
  252. package/dist/docs/templates/security-reviewer.html +35 -35
  253. package/dist/docs/templates/thermo-quality-review.html +35 -35
  254. package/dist/docs/templates/thermo-review.html +35 -35
  255. package/dist/docs/templates/triage.html +35 -35
  256. package/dist/docs/troubleshooting.html +36 -36
  257. package/dist/docs/troubleshooting.md +1 -0
  258. package/dist/evals/assertions.js +20 -34
  259. package/dist/evals/expect.js +3 -6
  260. package/dist/evals/judge.js +5 -8
  261. package/dist/evals/loaders.js +45 -62
  262. package/dist/evals/matchers.js +2 -3
  263. package/dist/evals/reporters.js +43 -67
  264. package/dist/evals/results.js +1 -1
  265. package/dist/evals/run-facts.js +5 -6
  266. package/dist/evals.js +27 -15
  267. package/dist/extensions/cursor-cloud-agents/extension.js +4 -1
  268. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +0 -1
  269. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -1
  270. package/dist/extensions/cursor-cloud-agents/lib/backend.js +101 -130
  271. package/dist/extensions/cursor-cloud-agents/lib/fleet.js +22 -38
  272. package/dist/extensions/cursor-cloud-agents/lib/repos.js +8 -10
  273. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -3
  274. package/dist/extensions/cursor-cloud-agents/lib/watch.js +52 -66
  275. package/dist/extensions/cursor-cloud-agents/reminders/cloud-agent-stop-watch.js +29 -40
  276. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +6 -17
  277. package/dist/extensions/cursor-cloud-agents/tools/dump.js +25 -36
  278. package/dist/extensions/cursor-cloud-agents/tools/get.js +3 -14
  279. package/dist/extensions/cursor-cloud-agents/tools/launch.js +13 -21
  280. package/dist/extensions/cursor-cloud-agents/tools/list.d.ts.map +1 -1
  281. package/dist/extensions/cursor-cloud-agents/tools/list.js +9 -20
  282. package/dist/extensions/cursor-cloud-agents/tools/reply.js +5 -16
  283. package/dist/extensions/cursor-grokbot-agents/extension.js +4 -1
  284. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +3 -3
  285. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +53 -73
  286. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +10 -23
  287. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +112 -132
  288. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +1 -2
  289. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +5 -16
  290. package/dist/extensions/cursor-grokbot-agents/tools/check.js +4 -15
  291. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +2 -13
  292. package/dist/extensions/cursor-grokbot-agents/tools/list.js +11 -23
  293. package/dist/extensions/jev/extension.js +3 -3
  294. package/dist/extensions/jev/lib/evaluate.js +43 -60
  295. package/dist/extensions/jev/tools/evaluate.js +6 -17
  296. package/dist/extensions/slack-communication/tools/post-file.js +1 -1
  297. package/dist/extensions.js +3 -5
  298. package/dist/files-backends/cursor-hosted.js +504 -523
  299. package/dist/files-backends/local-fs.js +72 -134
  300. package/dist/files.js +3 -3
  301. package/dist/filesystem.js +562 -861
  302. package/dist/index.js +16 -35
  303. package/dist/internal/advertise-tools.js +74 -86
  304. package/dist/internal/artifacts-store.js +298 -361
  305. package/dist/internal/as-of.js +2 -4
  306. package/dist/internal/authored-alias-hooks.js +6 -4
  307. package/dist/internal/authored-loaders.js +37 -52
  308. package/dist/internal/bounded-int.js +1 -2
  309. package/dist/internal/bounded.js +13 -24
  310. package/dist/internal/brand.js +1 -1
  311. package/dist/internal/browser-origin-guard.js +4 -4
  312. package/dist/internal/builtin-tools/artifacts.js +15 -27
  313. package/dist/internal/builtin-tools/index.js +2 -3
  314. package/dist/internal/builtin-tools/reminders.js +33 -52
  315. package/dist/internal/channel-architecture.d.ts +21 -0
  316. package/dist/internal/channel-architecture.d.ts.map +1 -0
  317. package/dist/internal/channel-architecture.js +41 -0
  318. package/dist/internal/channel-dispatch.js +3 -4
  319. package/dist/internal/channel-route-dispatch.js +40 -51
  320. package/dist/internal/channel-state.js +1 -1
  321. package/dist/internal/chat-client.js +319 -340
  322. package/dist/internal/cli-ax.js +1262 -1294
  323. package/dist/internal/cli-bitbucket.js +244 -272
  324. package/dist/internal/cli-convert-automation.js +137 -151
  325. package/dist/internal/cli-cursor.js +126 -147
  326. package/dist/internal/cli-deploy.d.ts.map +1 -1
  327. package/dist/internal/cli-deploy.js +1457 -1507
  328. package/dist/internal/cli-docs.js +130 -147
  329. package/dist/internal/cli-github.js +437 -476
  330. package/dist/internal/cli-gitlab.js +259 -288
  331. package/dist/internal/cli-images.js +266 -334
  332. package/dist/internal/cli-manifest.js +25 -37
  333. package/dist/internal/cli-mcp-oauth.js +228 -247
  334. package/dist/internal/cli-mcp.js +358 -383
  335. package/dist/internal/cli-migrate.d.ts +18 -0
  336. package/dist/internal/cli-migrate.d.ts.map +1 -0
  337. package/dist/internal/cli-migrate.js +136 -0
  338. package/dist/internal/cli-skills.js +35 -47
  339. package/dist/internal/cli-slack-manual.d.ts +0 -1
  340. package/dist/internal/cli-slack-manual.d.ts.map +1 -1
  341. package/dist/internal/cli-slack-manual.js +175 -204
  342. package/dist/internal/cli-slack.d.ts +1 -1
  343. package/dist/internal/cli-slack.d.ts.map +1 -1
  344. package/dist/internal/cli-slack.js +416 -456
  345. package/dist/internal/cloud-merge.js +7 -3
  346. package/dist/internal/cloud-turn-cost.js +8 -1
  347. package/dist/internal/connection-env.js +5 -6
  348. package/dist/internal/continuation-channel.js +10 -7
  349. package/dist/internal/continuation-identity.js +85 -67
  350. package/dist/internal/conversation-mirror.js +112 -131
  351. package/dist/internal/convert-automation/convert-workflow.js +21 -31
  352. package/dist/internal/cron.js +3 -3
  353. package/dist/internal/cursor/account-mcp.js +147 -146
  354. package/dist/internal/cursor/backend-client.js +290 -320
  355. package/dist/internal/cursor/bound-secret-file.js +3 -3
  356. package/dist/internal/cursor/credentials.d.ts +1 -0
  357. package/dist/internal/cursor/credentials.d.ts.map +1 -1
  358. package/dist/internal/cursor/credentials.js +130 -142
  359. package/dist/internal/cursor/cursor-api-transport.js +4 -8
  360. package/dist/internal/cursor/github-credentials.js +91 -108
  361. package/dist/internal/cursor/hosted-bound-secrets.js +3 -4
  362. package/dist/internal/cursor/hosted-deployment-secrets.js +1 -1
  363. package/dist/internal/cursor/hosted-store-secrets.js +5 -9
  364. package/dist/internal/cursor/session-token.js +36 -48
  365. package/dist/internal/cursor/store-api-client.js +77 -92
  366. package/dist/internal/cursor-account-mcp-auth.js +132 -149
  367. package/dist/internal/cursor-agent-template.js +1 -1
  368. package/dist/internal/cursor-deployment-relay.js +33 -54
  369. package/dist/internal/cursor-event-relay.js +65 -59
  370. package/dist/internal/cursor-relay-core.js +258 -286
  371. package/dist/internal/deferred-channel-session.js +3 -12
  372. package/dist/internal/deploy-client.js +410 -475
  373. package/dist/internal/deploy-manifest.d.ts +17 -0
  374. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  375. package/dist/internal/deploy-manifest.js +71 -21
  376. package/dist/internal/deploy-source.js +31 -43
  377. package/dist/internal/discovery/agent-config.js +45 -59
  378. package/dist/internal/discovery/agent.js +276 -280
  379. package/dist/internal/discovery/channels.js +67 -80
  380. package/dist/internal/discovery/connections.js +286 -296
  381. package/dist/internal/discovery/context.js +2 -13
  382. package/dist/internal/discovery/cursor-plugin.js +223 -259
  383. package/dist/internal/discovery/extension-overlay.js +104 -131
  384. package/dist/internal/discovery/extensions.js +276 -281
  385. package/dist/internal/discovery/fs.js +56 -79
  386. package/dist/internal/discovery/hooks.js +39 -50
  387. package/dist/internal/discovery/info.js +17 -19
  388. package/dist/internal/discovery/instructions.js +58 -71
  389. package/dist/internal/discovery/modules.js +45 -58
  390. package/dist/internal/discovery/project.d.ts.map +1 -1
  391. package/dist/internal/discovery/project.js +192 -215
  392. package/dist/internal/discovery/reminders.js +41 -52
  393. package/dist/internal/discovery/runtime.js +1 -1
  394. package/dist/internal/discovery/schedules.js +71 -82
  395. package/dist/internal/discovery/seed-files.js +21 -32
  396. package/dist/internal/discovery/services.js +74 -96
  397. package/dist/internal/discovery/skills.js +77 -94
  398. package/dist/internal/discovery/subagent.js +79 -95
  399. package/dist/internal/discovery/tools.js +12 -23
  400. package/dist/internal/distribution.js +2 -2
  401. package/dist/internal/docs-site.js +30 -45
  402. package/dist/internal/duration.js +1 -1
  403. package/dist/internal/env-file.js +48 -64
  404. package/dist/internal/eval-judge-model.js +17 -28
  405. package/dist/internal/eval-run-store.js +265 -254
  406. package/dist/internal/eval-runner.d.ts +8 -0
  407. package/dist/internal/eval-runner.d.ts.map +1 -1
  408. package/dist/internal/eval-runner.js +406 -408
  409. package/dist/internal/eval-transport.d.ts +24 -0
  410. package/dist/internal/eval-transport.d.ts.map +1 -0
  411. package/dist/internal/eval-transport.js +22 -0
  412. package/dist/internal/evals-client.js +242 -246
  413. package/dist/internal/event-log.js +72 -120
  414. package/dist/internal/event-mapper.js +30 -31
  415. package/dist/internal/factory-resource-channel.js +16 -30
  416. package/dist/internal/filesystem/errors.js +6 -6
  417. package/dist/internal/filesystem/format.js +10 -13
  418. package/dist/internal/filesystem/merge.js +52 -94
  419. package/dist/internal/filesystem/nearest.js +15 -27
  420. package/dist/internal/filesystem/scratch.js +65 -85
  421. package/dist/internal/filesystem/tools.js +221 -241
  422. package/dist/internal/filesystem/walk.js +76 -143
  423. package/dist/internal/framework-file-storage.js +118 -139
  424. package/dist/internal/framework-storage-selection.js +21 -13
  425. package/dist/internal/frontmatter.js +4 -6
  426. package/dist/internal/github-fanout.js +50 -64
  427. package/dist/internal/guest-network.js +96 -109
  428. package/dist/internal/handleAgentServeTrigger.js +121 -126
  429. package/dist/internal/host-files.js +73 -88
  430. package/dist/internal/host-kv.js +21 -36
  431. package/dist/internal/host-otel.js +22 -19
  432. package/dist/internal/host-platforms.js +49 -63
  433. package/dist/internal/hosted-catch-protocol.d.ts +1 -0
  434. package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
  435. package/dist/internal/hosted-catch-protocol.js +1 -0
  436. package/dist/internal/hosted-catch.d.ts +5 -3
  437. package/dist/internal/hosted-catch.d.ts.map +1 -1
  438. package/dist/internal/hosted-catch.js +84 -93
  439. package/dist/internal/hosted-delivery-protocol.js +32 -8
  440. package/dist/internal/hosted-delivery.d.ts +13 -1
  441. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  442. package/dist/internal/hosted-delivery.js +614 -584
  443. package/dist/internal/hosted-eval-cases.d.ts +21 -0
  444. package/dist/internal/hosted-eval-cases.d.ts.map +1 -0
  445. package/dist/internal/hosted-eval-cases.js +162 -0
  446. package/dist/internal/hosted-execution-diag.js +38 -30
  447. package/dist/internal/hosted-execution-flush.js +75 -66
  448. package/dist/internal/hosted-execution-latency.js +16 -8
  449. package/dist/internal/hosted-managed-automation.js +2 -2
  450. package/dist/internal/hosting.js +2 -3
  451. package/dist/internal/http-channel-define.js +4 -1
  452. package/dist/internal/http-channel.js +101 -112
  453. package/dist/internal/http-control-plane-session.d.ts +18 -1
  454. package/dist/internal/http-control-plane-session.d.ts.map +1 -1
  455. package/dist/internal/http-control-plane-session.js +66 -32
  456. package/dist/internal/incoming-headers-to-fetch.js +1 -2
  457. package/dist/internal/init-interview.js +73 -93
  458. package/dist/internal/init-project.js +182 -214
  459. package/dist/internal/init-scaffold.js +10 -21
  460. package/dist/internal/inline-stdio-mcp.js +80 -86
  461. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  462. package/dist/internal/install-cursor-skills.js +238 -274
  463. package/dist/internal/legacy-command-guard.js +18 -31
  464. package/dist/internal/listen-port.js +34 -45
  465. package/dist/internal/local-control-plane.js +293 -307
  466. package/dist/internal/local-env.js +1 -1
  467. package/dist/internal/local-ingress.js +15 -9
  468. package/dist/internal/log-ring.js +1 -2
  469. package/dist/internal/logs-client.js +207 -227
  470. package/dist/internal/map-pool.js +24 -38
  471. package/dist/internal/mcp-endpoint.js +204 -180
  472. package/dist/internal/mcp-host.js +165 -168
  473. package/dist/internal/mcp-oauth-on-demand.js +170 -207
  474. package/dist/internal/mcp-oauth-persist.js +15 -29
  475. package/dist/internal/mcp-oauth.js +209 -266
  476. package/dist/internal/named-webhook-secret.d.ts +39 -0
  477. package/dist/internal/named-webhook-secret.d.ts.map +1 -0
  478. package/dist/internal/named-webhook-secret.js +47 -0
  479. package/dist/internal/open-browser.js +2 -3
  480. package/dist/internal/otel/collector.js +104 -68
  481. package/dist/internal/otel/config.js +24 -37
  482. package/dist/internal/otel/http.js +5 -7
  483. package/dist/internal/otel/mcp.js +3 -12
  484. package/dist/internal/otel/runtime.js +69 -83
  485. package/dist/internal/package-inline-stdio.js +57 -65
  486. package/dist/internal/peer-connections.js +9 -5
  487. package/dist/internal/platform-schedule-sync.js +39 -54
  488. package/dist/internal/platform-timers.js +176 -210
  489. package/dist/internal/playground/static.js +1 -2
  490. package/dist/internal/playground/toolchain.js +37 -53
  491. package/dist/internal/playground-proxy.js +230 -270
  492. package/dist/internal/process-memory-telemetry.js +33 -51
  493. package/dist/internal/prompt-context.js +3 -6
  494. package/dist/internal/reminder-control-plane-protocol.js +46 -13
  495. package/dist/internal/reminder-runner.js +770 -785
  496. package/dist/internal/reminder-schedule.js +1 -1
  497. package/dist/internal/reminder-store.js +57 -78
  498. package/dist/internal/request-error-status.js +1 -3
  499. package/dist/internal/request-headers.js +2 -2
  500. package/dist/internal/resolve-prod-target.js +119 -135
  501. package/dist/internal/resolved-connections.js +16 -6
  502. package/dist/internal/run-client.js +221 -229
  503. package/dist/internal/runtime-dispatch-runner.js +18 -43
  504. package/dist/internal/schedule-runner.js +49 -58
  505. package/dist/internal/scm/pr-url.js +7 -6
  506. package/dist/internal/sdk-runner.js +388 -363
  507. package/dist/internal/serve-restart.js +26 -39
  508. package/dist/internal/server.d.ts.map +1 -1
  509. package/dist/internal/server.js +1283 -1244
  510. package/dist/internal/session-cost.js +7 -9
  511. package/dist/internal/session-engine.d.ts +3 -1
  512. package/dist/internal/session-engine.d.ts.map +1 -1
  513. package/dist/internal/session-engine.js +2801 -2777
  514. package/dist/internal/session-links.js +12 -16
  515. package/dist/internal/session-run-log.js +134 -82
  516. package/dist/internal/session-store.js +133 -164
  517. package/dist/internal/sessions-client.js +97 -118
  518. package/dist/internal/skill-catalog.js +18 -23
  519. package/dist/internal/skills-sync.js +16 -30
  520. package/dist/internal/slack-provision-client.js +90 -116
  521. package/dist/internal/start-log-store.js +48 -67
  522. package/dist/internal/steering.js +1 -2
  523. package/dist/internal/storage-coordinator.js +160 -196
  524. package/dist/internal/store-mirror.js +16 -30
  525. package/dist/internal/stream-progress.js +6 -8
  526. package/dist/internal/terminal-style.js +3 -4
  527. package/dist/internal/testing/scm-continuation-fixtures.js +6 -2
  528. package/dist/internal/testing/slack-continuation-fixtures.d.ts +26 -0
  529. package/dist/internal/testing/slack-continuation-fixtures.d.ts.map +1 -0
  530. package/dist/internal/testing/slack-continuation-fixtures.js +136 -0
  531. package/dist/internal/tool-catalog.js +11 -5
  532. package/dist/internal/tool-result.js +1 -1
  533. package/dist/internal/trajectory.js +19 -22
  534. package/dist/internal/turn-cost.js +52 -62
  535. package/dist/internal/turn-governor.js +5 -8
  536. package/dist/internal/turn-lease-store.js +85 -105
  537. package/dist/internal/turn-outbox.js +28 -43
  538. package/dist/internal/update-check.js +231 -259
  539. package/dist/internal/v2-hosting.js +1 -2
  540. package/dist/internal/workspace-sync.js +25 -41
  541. package/dist/internal/workspace.js +111 -139
  542. package/dist/kv/memory-kv.js +27 -51
  543. package/dist/memory.js +106 -148
  544. package/dist/otel.js +5 -8
  545. package/dist/playground/assets/index-DXm_VXAQ.css +1 -0
  546. package/dist/playground/assets/{index-MijLHTbB.js → index-JekUQERK.js} +45 -45
  547. package/dist/playground/index.html +2 -2
  548. package/dist/prompt.js +2 -4
  549. package/dist/storage-backends/cursor-hosted-v2.js +53 -83
  550. package/dist/storage-backends/cursor-hosted.js +105 -145
  551. package/dist/storage-backends/file-kv.js +100 -128
  552. package/dist/storage-protocol.js +3 -5
  553. package/dist/storage.js +17 -26
  554. package/dist/types.d.ts +68 -0
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +20 -18
  557. package/docs/building-with-agents.md +2 -0
  558. package/docs/deployment.md +7 -0
  559. package/docs/guides/bitbucket.md +9 -1
  560. package/docs/guides/github.md +20 -4
  561. package/docs/guides/gitlab.md +9 -1
  562. package/docs/guides/migrate.md +127 -0
  563. package/docs/reference/cli.md +39 -0
  564. package/docs/troubleshooting.md +1 -0
  565. package/package.json +1 -1
  566. package/skills/debug/SKILL.md +1 -0
  567. package/skills/github/SKILL.md +23 -0
  568. package/skills/migrate-v2/SKILL.md +264 -0
  569. package/dist/docs/assets/chunks/@localSearchIndexroot.C25zYVuc.js +0 -1
  570. package/dist/docs/assets/chunks/channel.CRUyWDV-.js +0 -1
  571. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CG_UObcQ.js +0 -1
  572. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CG_UObcQ.js +0 -1
  573. package/dist/docs/assets/chunks/clone.NYSZ9qZN.js +0 -1
  574. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.DOOmulfQ.js +0 -1
  575. package/dist/docs/assets/chunks/wardley-RL74JXVD.BJrCW6xc.js +0 -162
  576. package/dist/docs/assets/reference_cli.md.GwugN3n-.lean.js +0 -1
  577. package/dist/docs/assets/troubleshooting.md.Bscj6ODe.js +0 -1
  578. package/dist/playground/assets/index-DPKLl4C_.css +0 -1
  579. /package/dist/docs/assets/{building-with-agents.md.BPjPFxFg.lean.js → building-with-agents.md.Df87rAe1.lean.js} +0 -0
  580. /package/dist/docs/assets/{deployment.md.BdqTiGdc.lean.js → deployment.md.BYuEcDBv.lean.js} +0 -0
  581. /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
  }