@cursor/bdk 0.2.3 → 0.2.4

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 (577) hide show
  1. package/dist/bin/agent-serve.js +9 -1
  2. package/dist/channels/slack/attachments.d.ts +2 -1
  3. package/dist/channels/slack/attachments.d.ts.map +1 -1
  4. package/dist/channels/slack/attachments.js +19 -9
  5. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  6. package/dist/channels/slack/dispatch.js +26 -24
  7. package/dist/channels/slack/thread-context.d.ts +21 -11
  8. package/dist/channels/slack/thread-context.d.ts.map +1 -1
  9. package/dist/channels/slack/thread-context.js +75 -27
  10. package/dist/docs/404.html +2 -2
  11. package/dist/docs/assets/{app.BOIHhrKi.js → app.4kQ8Db_q.js} +4 -4
  12. package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
  13. package/dist/docs/assets/chunks/{VPLocalSearchBox.D49zVZqM.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
  14. package/dist/docs/assets/chunks/{arc.hmjb-sc4.js → arc.CxE_fSPK.js} +1 -1
  15. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CxEI1KqM.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
  16. package/dist/docs/assets/chunks/{baseUniq.DHHvBWoV.js → baseUniq.CB52JrKG.js} +1 -1
  17. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.DnXW-3bu.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
  18. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.e-47O2jM.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
  19. package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
  20. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.3ry4pYXB.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
  21. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.DGIZFRx6.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
  22. package/dist/docs/assets/chunks/{chunk-55IACEB6.DKBnqg9U.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
  23. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BIU8Ue5k.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
  24. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DP-TFhjI.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
  25. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.Ux0OYj5v.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
  26. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.BzHMwYox.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
  27. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.D4OGAsSP.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
  28. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
  29. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
  30. package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
  31. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.Jq_7BUNx.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
  32. package/dist/docs/assets/chunks/{dagre-KV5264BT.Di-skR2x.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
  33. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DeREHIdH.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
  34. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C7Kcqxro.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
  35. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BK3eohyo.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
  36. package/dist/docs/assets/chunks/{diagram-TYMM5635.C6TyymXT.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
  37. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.DYGG-gGx.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
  38. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.C9nBcSV4.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
  39. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.wAg_ymsp.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
  40. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.B87j9Oeg.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
  41. package/dist/docs/assets/chunks/{graph.CuFMj31w.js → graph.DzuEYGdC.js} +1 -1
  42. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.P_mLGumP.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
  43. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DyuL_MsT.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
  44. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.CtP09IoJ.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
  45. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.BoeSYPZo.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
  46. package/dist/docs/assets/chunks/{layout.B0lMMtNo.js → layout.DzfWqTBV.js} +1 -1
  47. package/dist/docs/assets/chunks/{linear.HxRBiAFX.js → linear.BO6mpulV.js} +1 -1
  48. package/dist/docs/assets/chunks/{min.BGlFFHwS.js → min.BGgTadgT.js} +1 -1
  49. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.JyLBD9M8.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
  50. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DnSmNZF8.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
  51. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CUCnbfCa.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
  52. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.py0IVUn5.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
  53. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.Bkc-HWYp.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
  54. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dqn8Mlv2.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
  55. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.JikkoQUU.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
  56. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
  57. package/dist/docs/assets/chunks/{theme.b6HQ6zG_.js → theme.Dx-JhpTB.js} +2 -2
  58. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.BvpSXiBj.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
  59. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CU7MVnZx.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
  60. package/dist/docs/assets/chunks/{wardley-RL74JXVD.BKwC4ctG.js → wardley-RL74JXVD.844kyrjl.js} +1 -1
  61. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.BfaF6Uhe.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
  62. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Bg5dcpj4.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
  63. package/dist/docs/assets/{deployment.md.BJ8i7Q6p.js → deployment.md.UhnJIMr-.js} +2 -2
  64. package/dist/docs/assets/{deployment.md.BJ8i7Q6p.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
  65. package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
  66. package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
  67. package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
  68. package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
  69. package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
  70. package/dist/docs/building-with-agents.html +35 -35
  71. package/dist/docs/deployment.html +37 -37
  72. package/dist/docs/deployment.md +4 -1
  73. package/dist/docs/evals.html +35 -35
  74. package/dist/docs/guides/agent-to-agent.html +35 -35
  75. package/dist/docs/guides/bitbucket.html +35 -35
  76. package/dist/docs/guides/cloud-agents.html +35 -35
  77. package/dist/docs/guides/convert-automation.html +35 -35
  78. package/dist/docs/guides/github.html +35 -35
  79. package/dist/docs/guides/gitlab.html +35 -35
  80. package/dist/docs/guides/grokbot-agents.html +35 -35
  81. package/dist/docs/guides/hooks.html +35 -35
  82. package/dist/docs/guides/improve.html +35 -35
  83. package/dist/docs/guides/jev.html +37 -37
  84. package/dist/docs/guides/jev.md +7 -0
  85. package/dist/docs/guides/mcp-oauth.html +35 -35
  86. package/dist/docs/guides/opentelemetry.html +35 -35
  87. package/dist/docs/guides/slack.html +35 -35
  88. package/dist/docs/guides/webhooks.html +35 -35
  89. package/dist/docs/hashmap.json +1 -1
  90. package/dist/docs/hillclimbing.html +35 -35
  91. package/dist/docs/index.html +35 -35
  92. package/dist/docs/llms-full.txt +25 -2
  93. package/dist/docs/quickstart.html +35 -35
  94. package/dist/docs/reference/agent-config.html +37 -37
  95. package/dist/docs/reference/agent-config.md +1 -1
  96. package/dist/docs/reference/artifacts.html +35 -35
  97. package/dist/docs/reference/channels.html +35 -35
  98. package/dist/docs/reference/cli.html +35 -35
  99. package/dist/docs/reference/connections.html +35 -35
  100. package/dist/docs/reference/evals.html +35 -35
  101. package/dist/docs/reference/extensions.html +39 -38
  102. package/dist/docs/reference/extensions.md +13 -0
  103. package/dist/docs/reference/hooks.html +35 -35
  104. package/dist/docs/reference/http-api.html +35 -35
  105. package/dist/docs/reference/instructions.html +35 -35
  106. package/dist/docs/reference/playground.html +35 -35
  107. package/dist/docs/reference/project-layout.html +35 -35
  108. package/dist/docs/reference/prompt.html +35 -35
  109. package/dist/docs/reference/schedules.html +35 -35
  110. package/dist/docs/reference/sessions.html +35 -35
  111. package/dist/docs/reference/skills.html +35 -35
  112. package/dist/docs/reference/subagents.html +35 -35
  113. package/dist/docs/reference/tools.html +35 -35
  114. package/dist/docs/templates/agentic-owners.html +35 -35
  115. package/dist/docs/templates/security-reviewer.html +35 -35
  116. package/dist/docs/templates/thermo-quality-review.html +35 -35
  117. package/dist/docs/templates/thermo-review.html +35 -35
  118. package/dist/docs/templates/triage.html +35 -35
  119. package/dist/docs/troubleshooting.html +35 -35
  120. package/dist/extensions/jev/extension.d.ts +3 -0
  121. package/dist/extensions/jev/extension.d.ts.map +1 -1
  122. package/dist/extensions/jev/extension.js +10 -1
  123. package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
  124. package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
  125. package/dist/extensions/jev/lib/evaluate.js +6 -2
  126. package/dist/extensions.d.ts +4 -2
  127. package/dist/extensions.d.ts.map +1 -1
  128. package/dist/extensions.js +5 -2
  129. package/dist/internal/cli-deploy.d.ts.map +1 -1
  130. package/dist/internal/cli-deploy.js +19 -5
  131. package/dist/internal/discovery/agent-config.d.ts +6 -5
  132. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  133. package/dist/internal/discovery/agent-config.js +29 -28
  134. package/dist/internal/discovery/agent.js +1 -1
  135. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  136. package/dist/internal/discovery/extensions.js +12 -0
  137. package/dist/internal/hosting.d.ts +8 -0
  138. package/dist/internal/hosting.d.ts.map +1 -1
  139. package/dist/internal/hosting.js +24 -0
  140. package/dist/types.d.ts +18 -2
  141. package/dist/types.d.ts.map +1 -1
  142. package/docs/deployment.md +4 -1
  143. package/docs/guides/jev.md +7 -0
  144. package/docs/reference/agent-config.md +1 -1
  145. package/docs/reference/extensions.md +13 -0
  146. package/package.json +1 -9
  147. package/dist/docs/assets/chunks/@localSearchIndexroot.D5L-b34G.js +0 -1
  148. package/dist/docs/assets/chunks/channel.BbOGaJQP.js +0 -1
  149. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Db58HCb1.js +0 -1
  150. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Db58HCb1.js +0 -1
  151. package/dist/docs/assets/chunks/clone.Co4MBflG.js +0 -1
  152. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CMsKhrW0.js +0 -1
  153. package/src/artifacts.ts +0 -68
  154. package/src/bin/agent-serve.ts +0 -1854
  155. package/src/channels/bitbucket/api.ts +0 -891
  156. package/src/channels/bitbucket/binding.ts +0 -417
  157. package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
  158. package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
  159. package/src/channels/bitbucket/checks.ts +0 -146
  160. package/src/channels/bitbucket/cursor-account.ts +0 -106
  161. package/src/channels/bitbucket/defaults.ts +0 -100
  162. package/src/channels/bitbucket/events.ts +0 -74
  163. package/src/channels/bitbucket/index.ts +0 -51
  164. package/src/channels/bitbucket/replay.ts +0 -421
  165. package/src/channels/bitbucket/state.ts +0 -59
  166. package/src/channels/bitbucket/types.ts +0 -261
  167. package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
  168. package/src/channels/change-monitors/index.ts +0 -8
  169. package/src/channels/change-monitors/types.ts +0 -42
  170. package/src/channels/checks.ts +0 -185
  171. package/src/channels/deployments/deployments-channel.ts +0 -224
  172. package/src/channels/deployments/index.ts +0 -25
  173. package/src/channels/deployments/types.ts +0 -92
  174. package/src/channels/github/api.ts +0 -526
  175. package/src/channels/github/auth.ts +0 -293
  176. package/src/channels/github/binding.ts +0 -233
  177. package/src/channels/github/checks.ts +0 -145
  178. package/src/channels/github/cursor-account.ts +0 -303
  179. package/src/channels/github/defaults.ts +0 -168
  180. package/src/channels/github/events.ts +0 -67
  181. package/src/channels/github/forward.ts +0 -359
  182. package/src/channels/github/github-channel.ts +0 -2334
  183. package/src/channels/github/index.ts +0 -54
  184. package/src/channels/github/progress.ts +0 -365
  185. package/src/channels/github/replay.ts +0 -372
  186. package/src/channels/github/state.ts +0 -124
  187. package/src/channels/github/types.ts +0 -590
  188. package/src/channels/gitlab/api.ts +0 -329
  189. package/src/channels/gitlab/binding.ts +0 -231
  190. package/src/channels/gitlab/checks.ts +0 -228
  191. package/src/channels/gitlab/cursor-account.ts +0 -105
  192. package/src/channels/gitlab/defaults.ts +0 -80
  193. package/src/channels/gitlab/events.ts +0 -37
  194. package/src/channels/gitlab/gitlab-channel.ts +0 -160
  195. package/src/channels/gitlab/gitlab-webhook.ts +0 -509
  196. package/src/channels/gitlab/index.ts +0 -44
  197. package/src/channels/gitlab/replay.ts +0 -328
  198. package/src/channels/gitlab/state.ts +0 -55
  199. package/src/channels/gitlab/types.ts +0 -247
  200. package/src/channels/issues/index.ts +0 -9
  201. package/src/channels/issues/issues-channel.ts +0 -45
  202. package/src/channels/issues/types.ts +0 -38
  203. package/src/channels/origin/api.ts +0 -507
  204. package/src/channels/origin/binding.ts +0 -114
  205. package/src/channels/origin/checks.ts +0 -250
  206. package/src/channels/origin/cursor-account.ts +0 -58
  207. package/src/channels/origin/defaults.ts +0 -140
  208. package/src/channels/origin/events.ts +0 -35
  209. package/src/channels/origin/index.ts +0 -35
  210. package/src/channels/origin/origin-channel.ts +0 -815
  211. package/src/channels/origin/origin-webhook.ts +0 -296
  212. package/src/channels/origin/reactions.ts +0 -72
  213. package/src/channels/origin/state.ts +0 -54
  214. package/src/channels/origin/types.ts +0 -295
  215. package/src/channels/slack/agentic-delivery.ts +0 -634
  216. package/src/channels/slack/agentic-posted.ts +0 -135
  217. package/src/channels/slack/agentic-signals.ts +0 -231
  218. package/src/channels/slack/api.ts +0 -761
  219. package/src/channels/slack/approvals.ts +0 -279
  220. package/src/channels/slack/assistant.ts +0 -76
  221. package/src/channels/slack/attachments.ts +0 -596
  222. package/src/channels/slack/auth.ts +0 -127
  223. package/src/channels/slack/blocks.ts +0 -131
  224. package/src/channels/slack/bot-mentions.ts +0 -318
  225. package/src/channels/slack/channel-watch.ts +0 -314
  226. package/src/channels/slack/cli-project.ts +0 -249
  227. package/src/channels/slack/code-fences.ts +0 -171
  228. package/src/channels/slack/constants.ts +0 -38
  229. package/src/channels/slack/credentials.ts +0 -88
  230. package/src/channels/slack/defaults.ts +0 -714
  231. package/src/channels/slack/dispatch.ts +0 -1060
  232. package/src/channels/slack/doctor.ts +0 -338
  233. package/src/channels/slack/eval-directive.ts +0 -306
  234. package/src/channels/slack/event-id-dedupe.ts +0 -30
  235. package/src/channels/slack/external-policy.ts +0 -75
  236. package/src/channels/slack/footer.ts +0 -106
  237. package/src/channels/slack/inbound.ts +0 -416
  238. package/src/channels/slack/index.ts +0 -53
  239. package/src/channels/slack/init.ts +0 -169
  240. package/src/channels/slack/interactive.ts +0 -406
  241. package/src/channels/slack/links.ts +0 -23
  242. package/src/channels/slack/live-delivery.ts +0 -489
  243. package/src/channels/slack/log.ts +0 -70
  244. package/src/channels/slack/manifest.ts +0 -240
  245. package/src/channels/slack/message-body.ts +0 -82
  246. package/src/channels/slack/nudge-carrier.ts +0 -224
  247. package/src/channels/slack/nudge-store.ts +0 -334
  248. package/src/channels/slack/paint-start.ts +0 -93
  249. package/src/channels/slack/placeholder.ts +0 -358
  250. package/src/channels/slack/pr-ref.ts +0 -74
  251. package/src/channels/slack/progress-delivery.ts +0 -138
  252. package/src/channels/slack/reasoning-card.ts +0 -125
  253. package/src/channels/slack/reasoning-chip.ts +0 -41
  254. package/src/channels/slack/recording-sink.ts +0 -167
  255. package/src/channels/slack/redact.ts +0 -6
  256. package/src/channels/slack/reply-options.ts +0 -279
  257. package/src/channels/slack/setup.ts +0 -125
  258. package/src/channels/slack/slack-channel.ts +0 -744
  259. package/src/channels/slack/socket-mode.ts +0 -140
  260. package/src/channels/slack/stop.ts +0 -25
  261. package/src/channels/slack/stream.ts +0 -66
  262. package/src/channels/slack/thread-context.ts +0 -485
  263. package/src/channels/slack/tool-approval-events.ts +0 -233
  264. package/src/channels/slack/tool-cards.ts +0 -198
  265. package/src/channels/slack/tool-chip.ts +0 -34
  266. package/src/channels/slack/types.ts +0 -787
  267. package/src/channels/slack/upload.ts +0 -137
  268. package/src/channels.ts +0 -543
  269. package/src/connections.ts +0 -153
  270. package/src/dashboard-session-url.ts +0 -30
  271. package/src/evals/assertions.ts +0 -688
  272. package/src/evals/expect.ts +0 -250
  273. package/src/evals/judge.ts +0 -329
  274. package/src/evals/loaders.ts +0 -111
  275. package/src/evals/matchers.ts +0 -223
  276. package/src/evals/reporters.ts +0 -257
  277. package/src/evals/results.ts +0 -130
  278. package/src/evals/run-facts.ts +0 -306
  279. package/src/evals.ts +0 -709
  280. package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
  281. package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
  282. package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
  283. package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
  284. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
  285. package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
  286. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
  287. package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
  288. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
  289. package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
  290. package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
  291. package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
  292. package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
  293. package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
  294. package/src/extensions/cursor-grokbot-agents/extension.ts +0 -132
  295. package/src/extensions/cursor-grokbot-agents/lib/agents.ts +0 -42
  296. package/src/extensions/cursor-grokbot-agents/lib/backend.ts +0 -208
  297. package/src/extensions/cursor-grokbot-agents/lib/contacts.ts +0 -74
  298. package/src/extensions/cursor-grokbot-agents/lib/conversation.ts +0 -260
  299. package/src/extensions/cursor-grokbot-agents/lib/inputs.ts +0 -21
  300. package/src/extensions/cursor-grokbot-agents/lib/lock.ts +0 -26
  301. package/src/extensions/cursor-grokbot-agents/skills/consult.md +0 -40
  302. package/src/extensions/cursor-grokbot-agents/tools/ask.ts +0 -32
  303. package/src/extensions/cursor-grokbot-agents/tools/check.ts +0 -25
  304. package/src/extensions/cursor-grokbot-agents/tools/interrupt.ts +0 -17
  305. package/src/extensions/cursor-grokbot-agents/tools/list.ts +0 -26
  306. package/src/extensions/improve/extension.ts +0 -69
  307. package/src/extensions/improve/skills/yourself.ts +0 -50
  308. package/src/extensions/jev/extension.ts +0 -95
  309. package/src/extensions/jev/lib/evaluate.ts +0 -266
  310. package/src/extensions/jev/skills/gated-write.md +0 -25
  311. package/src/extensions/jev/skills/questions.md +0 -33
  312. package/src/extensions/jev/tools/evaluate.ts +0 -82
  313. package/src/extensions/slack-communication/evals/harness.ts +0 -705
  314. package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
  315. package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
  316. package/src/extensions/slack-communication/extension.ts +0 -44
  317. package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
  318. package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
  319. package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
  320. package/src/extensions/slack-communication/tools/post-card.ts +0 -28
  321. package/src/extensions/slack-communication/tools/post-file.ts +0 -82
  322. package/src/extensions/slack-communication/tools/post-update.ts +0 -40
  323. package/src/extensions/slack-communication/tools/react.ts +0 -30
  324. package/src/extensions/slack-communication/tools/set-status.ts +0 -21
  325. package/src/extensions.ts +0 -179
  326. package/src/files-backends/agent-store-presigned-url.ts +0 -11
  327. package/src/files-backends/cursor-hosted.ts +0 -1212
  328. package/src/files-backends/local-fs.ts +0 -163
  329. package/src/files.ts +0 -293
  330. package/src/filesystem.ts +0 -2005
  331. package/src/hooks.ts +0 -30
  332. package/src/index.ts +0 -259
  333. package/src/internal/advertise-tools.ts +0 -370
  334. package/src/internal/approval-gate.ts +0 -103
  335. package/src/internal/artifacts-store.ts +0 -836
  336. package/src/internal/as-of.ts +0 -257
  337. package/src/internal/auth.ts +0 -46
  338. package/src/internal/authored-alias-hooks.ts +0 -138
  339. package/src/internal/authored-loaders.ts +0 -188
  340. package/src/internal/bounded-int.ts +0 -24
  341. package/src/internal/bounded.ts +0 -25
  342. package/src/internal/brand.ts +0 -28
  343. package/src/internal/browser-origin-guard.ts +0 -67
  344. package/src/internal/builtin-tools/artifacts.ts +0 -62
  345. package/src/internal/builtin-tools/index.ts +0 -53
  346. package/src/internal/builtin-tools/reminders.ts +0 -145
  347. package/src/internal/channel-dispatch.ts +0 -129
  348. package/src/internal/channel-route-dispatch.ts +0 -58
  349. package/src/internal/channel-state.ts +0 -83
  350. package/src/internal/chat-client.ts +0 -594
  351. package/src/internal/cli-ax.ts +0 -2318
  352. package/src/internal/cli-bitbucket.ts +0 -438
  353. package/src/internal/cli-convert-automation.ts +0 -335
  354. package/src/internal/cli-cursor.ts +0 -282
  355. package/src/internal/cli-deploy.ts +0 -2519
  356. package/src/internal/cli-docs.ts +0 -192
  357. package/src/internal/cli-github.ts +0 -806
  358. package/src/internal/cli-gitlab.ts +0 -452
  359. package/src/internal/cli-images.ts +0 -672
  360. package/src/internal/cli-manifest.ts +0 -56
  361. package/src/internal/cli-mcp-oauth.ts +0 -396
  362. package/src/internal/cli-mcp.ts +0 -808
  363. package/src/internal/cli-skills.ts +0 -98
  364. package/src/internal/cli-slack-manual.ts +0 -418
  365. package/src/internal/cli-slack.ts +0 -874
  366. package/src/internal/cloud-merge.ts +0 -51
  367. package/src/internal/cloud-turn-cost.ts +0 -159
  368. package/src/internal/connection-env.ts +0 -106
  369. package/src/internal/continuation-channel.ts +0 -233
  370. package/src/internal/continuation-identity.ts +0 -935
  371. package/src/internal/conversation-mirror.ts +0 -423
  372. package/src/internal/convert-automation/convert-workflow.ts +0 -1377
  373. package/src/internal/convert-automation/slug.ts +0 -29
  374. package/src/internal/convert-automation/types.ts +0 -212
  375. package/src/internal/cron.ts +0 -76
  376. package/src/internal/cursor/account-mcp.ts +0 -692
  377. package/src/internal/cursor/backend-client.ts +0 -984
  378. package/src/internal/cursor/bound-secret-file.ts +0 -101
  379. package/src/internal/cursor/credentials.ts +0 -560
  380. package/src/internal/cursor/cursor-api-transport.ts +0 -65
  381. package/src/internal/cursor/github-credentials.ts +0 -228
  382. package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
  383. package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
  384. package/src/internal/cursor/hosted-store-secrets.ts +0 -152
  385. package/src/internal/cursor/session-token.ts +0 -111
  386. package/src/internal/cursor/store-api-client.ts +0 -323
  387. package/src/internal/cursor-account-mcp-auth.ts +0 -303
  388. package/src/internal/cursor-agent-template.ts +0 -50
  389. package/src/internal/cursor-deployment-relay.ts +0 -315
  390. package/src/internal/cursor-event-relay.ts +0 -675
  391. package/src/internal/cursor-relay-core.ts +0 -563
  392. package/src/internal/deferred-channel-session.ts +0 -61
  393. package/src/internal/deploy-client.ts +0 -1574
  394. package/src/internal/deploy-manifest.ts +0 -361
  395. package/src/internal/deploy-source.ts +0 -144
  396. package/src/internal/describe-error.ts +0 -32
  397. package/src/internal/dev-mode.ts +0 -20
  398. package/src/internal/discovery/agent-config.ts +0 -288
  399. package/src/internal/discovery/agent.ts +0 -381
  400. package/src/internal/discovery/channels.ts +0 -100
  401. package/src/internal/discovery/connections.ts +0 -516
  402. package/src/internal/discovery/context.ts +0 -38
  403. package/src/internal/discovery/cursor-plugin.ts +0 -628
  404. package/src/internal/discovery/extension-overlay.ts +0 -247
  405. package/src/internal/discovery/extensions.ts +0 -490
  406. package/src/internal/discovery/fs.ts +0 -103
  407. package/src/internal/discovery/hooks.ts +0 -63
  408. package/src/internal/discovery/info.ts +0 -174
  409. package/src/internal/discovery/instructions.ts +0 -98
  410. package/src/internal/discovery/modules.ts +0 -107
  411. package/src/internal/discovery/names.ts +0 -45
  412. package/src/internal/discovery/project.ts +0 -319
  413. package/src/internal/discovery/reminders.ts +0 -65
  414. package/src/internal/discovery/runtime.ts +0 -158
  415. package/src/internal/discovery/schedules.ts +0 -120
  416. package/src/internal/discovery/seed-files.ts +0 -34
  417. package/src/internal/discovery/services.ts +0 -151
  418. package/src/internal/discovery/skills.ts +0 -174
  419. package/src/internal/discovery/subagent.ts +0 -138
  420. package/src/internal/discovery/tools.ts +0 -170
  421. package/src/internal/discovery.ts +0 -27
  422. package/src/internal/distribution.ts +0 -126
  423. package/src/internal/docs-site.ts +0 -248
  424. package/src/internal/duration.ts +0 -37
  425. package/src/internal/env-file.ts +0 -83
  426. package/src/internal/eval-judge-model.ts +0 -142
  427. package/src/internal/eval-run-store.ts +0 -585
  428. package/src/internal/eval-runner.ts +0 -823
  429. package/src/internal/evals-client.ts +0 -475
  430. package/src/internal/event-log.ts +0 -342
  431. package/src/internal/event-mapper.ts +0 -811
  432. package/src/internal/expected-delivery-failure.ts +0 -34
  433. package/src/internal/factory-resource-channel.ts +0 -103
  434. package/src/internal/filesystem/errors.ts +0 -207
  435. package/src/internal/filesystem/format.ts +0 -253
  436. package/src/internal/filesystem/merge.ts +0 -192
  437. package/src/internal/filesystem/nearest.ts +0 -112
  438. package/src/internal/filesystem/scratch.ts +0 -239
  439. package/src/internal/filesystem/sdk-schemas.ts +0 -204
  440. package/src/internal/filesystem/tools.ts +0 -804
  441. package/src/internal/filesystem/walk.ts +0 -366
  442. package/src/internal/fixtures/units-server.ts +0 -52
  443. package/src/internal/framework-file-storage.ts +0 -357
  444. package/src/internal/framework-storage-selection.ts +0 -156
  445. package/src/internal/frontmatter.ts +0 -108
  446. package/src/internal/github-fanout.ts +0 -144
  447. package/src/internal/guest-network.ts +0 -391
  448. package/src/internal/handleAgentServeTrigger.ts +0 -286
  449. package/src/internal/host-files.ts +0 -341
  450. package/src/internal/host-kv.ts +0 -81
  451. package/src/internal/host-otel.ts +0 -231
  452. package/src/internal/host-platforms.ts +0 -170
  453. package/src/internal/hosted-admission-adapter.ts +0 -47
  454. package/src/internal/hosted-admission-context.ts +0 -37
  455. package/src/internal/hosted-catch-protocol.ts +0 -112
  456. package/src/internal/hosted-catch.ts +0 -179
  457. package/src/internal/hosted-delivery-protocol.ts +0 -824
  458. package/src/internal/hosted-delivery.ts +0 -1410
  459. package/src/internal/hosted-execution-diag.ts +0 -291
  460. package/src/internal/hosted-execution-flush.ts +0 -136
  461. package/src/internal/hosted-execution-latency.ts +0 -301
  462. package/src/internal/hosted-managed-automation.ts +0 -116
  463. package/src/internal/hosting.ts +0 -114
  464. package/src/internal/http-channel-define.ts +0 -25
  465. package/src/internal/http-channel.ts +0 -669
  466. package/src/internal/http-control-plane-session.ts +0 -110
  467. package/src/internal/ids.ts +0 -39
  468. package/src/internal/incoming-headers-to-fetch.ts +0 -45
  469. package/src/internal/init-interview.ts +0 -360
  470. package/src/internal/init-project.ts +0 -711
  471. package/src/internal/init-scaffold.ts +0 -182
  472. package/src/internal/inline-stdio-define-stub.ts +0 -4
  473. package/src/internal/inline-stdio-mcp.ts +0 -230
  474. package/src/internal/install-cursor-skills.ts +0 -604
  475. package/src/internal/is-record.ts +0 -3
  476. package/src/internal/json-schema.ts +0 -95
  477. package/src/internal/legacy-command-guard.ts +0 -66
  478. package/src/internal/listen-port.ts +0 -85
  479. package/src/internal/local-control-plane.ts +0 -442
  480. package/src/internal/local-env.ts +0 -59
  481. package/src/internal/local-ingress.ts +0 -90
  482. package/src/internal/log-ring.ts +0 -59
  483. package/src/internal/logs-client.ts +0 -477
  484. package/src/internal/map-pool.ts +0 -39
  485. package/src/internal/mcp-endpoint.ts +0 -747
  486. package/src/internal/mcp-host.ts +0 -509
  487. package/src/internal/mcp-oauth-on-demand.ts +0 -337
  488. package/src/internal/mcp-oauth-persist.ts +0 -118
  489. package/src/internal/mcp-oauth.ts +0 -549
  490. package/src/internal/net.ts +0 -29
  491. package/src/internal/open-browser.ts +0 -41
  492. package/src/internal/otel/attrs.ts +0 -16
  493. package/src/internal/otel/collector.ts +0 -937
  494. package/src/internal/otel/config.ts +0 -287
  495. package/src/internal/otel/http.ts +0 -122
  496. package/src/internal/otel/mcp.ts +0 -56
  497. package/src/internal/otel/propagation.ts +0 -17
  498. package/src/internal/otel/runtime.ts +0 -441
  499. package/src/internal/package-inline-stdio.ts +0 -114
  500. package/src/internal/peer-connections.ts +0 -96
  501. package/src/internal/platform-schedule-sync.ts +0 -75
  502. package/src/internal/platform-timers.ts +0 -365
  503. package/src/internal/playground/static.ts +0 -278
  504. package/src/internal/playground/toolchain.ts +0 -270
  505. package/src/internal/playground-proxy.ts +0 -564
  506. package/src/internal/process-memory-telemetry.ts +0 -334
  507. package/src/internal/project-layout.ts +0 -31
  508. package/src/internal/prompt-context.ts +0 -116
  509. package/src/internal/reminder-control-plane-protocol.ts +0 -482
  510. package/src/internal/reminder-runner.ts +0 -1559
  511. package/src/internal/reminder-schedule.ts +0 -104
  512. package/src/internal/reminder-store.ts +0 -176
  513. package/src/internal/request-error-status.ts +0 -95
  514. package/src/internal/request-headers.ts +0 -21
  515. package/src/internal/resolve-prod-target.ts +0 -334
  516. package/src/internal/resolved-connections.ts +0 -190
  517. package/src/internal/router.ts +0 -143
  518. package/src/internal/run-client.ts +0 -354
  519. package/src/internal/runtime-dispatch-runner.ts +0 -50
  520. package/src/internal/sanitize-mcp-tool-name.ts +0 -31
  521. package/src/internal/schedule-runner.ts +0 -154
  522. package/src/internal/scm/pr-url.ts +0 -245
  523. package/src/internal/sdk-runner.ts +0 -959
  524. package/src/internal/serve-restart.ts +0 -113
  525. package/src/internal/server.ts +0 -3147
  526. package/src/internal/session-cost.ts +0 -208
  527. package/src/internal/session-engine.ts +0 -5622
  528. package/src/internal/session-links.ts +0 -84
  529. package/src/internal/session-run-log.ts +0 -535
  530. package/src/internal/session-store.ts +0 -307
  531. package/src/internal/session-urls.ts +0 -32
  532. package/src/internal/sessions-client.ts +0 -239
  533. package/src/internal/skill-catalog.ts +0 -66
  534. package/src/internal/skills-sync.ts +0 -55
  535. package/src/internal/slack-provision-client.ts +0 -544
  536. package/src/internal/slack-thread-key.ts +0 -11
  537. package/src/internal/sleep.ts +0 -3
  538. package/src/internal/start-log-store.ts +0 -164
  539. package/src/internal/steering.ts +0 -17
  540. package/src/internal/storage-coordinator.ts +0 -800
  541. package/src/internal/storage-roles.ts +0 -86
  542. package/src/internal/storage.ts +0 -1
  543. package/src/internal/store-api-protocol.ts +0 -205
  544. package/src/internal/store-mirror.ts +0 -73
  545. package/src/internal/stream-progress.ts +0 -294
  546. package/src/internal/terminal-style.ts +0 -133
  547. package/src/internal/testing/factory-resource-fixtures.ts +0 -84
  548. package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
  549. package/src/internal/tool-catalog.ts +0 -104
  550. package/src/internal/tool-policy.ts +0 -222
  551. package/src/internal/tool-result.ts +0 -50
  552. package/src/internal/trajectory.ts +0 -418
  553. package/src/internal/turn-cost.ts +0 -136
  554. package/src/internal/turn-governor.ts +0 -145
  555. package/src/internal/turn-lease-store.ts +0 -144
  556. package/src/internal/turn-outbox.ts +0 -77
  557. package/src/internal/update-check.ts +0 -517
  558. package/src/internal/v2-hosting.ts +0 -52
  559. package/src/internal/workspace-sync.ts +0 -114
  560. package/src/internal/workspace.ts +0 -505
  561. package/src/kv/memory-kv.ts +0 -94
  562. package/src/kv.ts +0 -18
  563. package/src/memory.ts +0 -487
  564. package/src/otel-public.ts +0 -24
  565. package/src/otel.ts +0 -320
  566. package/src/prompt.ts +0 -80
  567. package/src/reminders.ts +0 -65
  568. package/src/schedules.ts +0 -31
  569. package/src/skills.ts +0 -27
  570. package/src/storage-backends/cursor-hosted-v2.ts +0 -204
  571. package/src/storage-backends/cursor-hosted.ts +0 -388
  572. package/src/storage-backends/file-kv.ts +0 -276
  573. package/src/storage-protocol.ts +0 -261
  574. package/src/storage.ts +0 -408
  575. package/src/tools.ts +0 -166
  576. package/src/types.ts +0 -3776
  577. /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
@@ -1,634 +0,0 @@
1
- /**
2
- * Agentic Slack watches communication tools on the turn stream and
3
- * renders them through the channel Slack client. The tools do not call
4
- * Slack. Writes happen on a successful, non-stubbed `action.result`.
5
- *
6
- * Ack and the thinking chip are channel-owned: they fire on `turn.started`
7
- * / `reasoning.appended` / `actions.requested`, not from model `react` /
8
- * `set-status`. Prefer the last assistant line before a `tool_call`.
9
- */
10
-
11
- import {
12
- markHostedFirstVisibleReply,
13
- noteHostedVisibleReplyError,
14
- } from "../../internal/hosted-execution-latency.js";
15
- import type { ChannelEventContext, ChannelEventHandlers, HostContext } from "../../types.js";
16
- import {
17
- begin,
18
- bind,
19
- end,
20
- has,
21
- latest,
22
- latestPosted,
23
- remove,
24
- resolve,
25
- setPostedText,
26
- } from "./agentic-posted.js";
27
- import {
28
- DELETE_MESSAGE,
29
- EDIT_MESSAGE,
30
- isOwnedSignal,
31
- isSignal,
32
- POST_CARD,
33
- POST_FILE,
34
- POST_UPDATE,
35
- parseCard,
36
- parseDelete,
37
- parseEdit,
38
- parseReaction,
39
- parseStagedFile,
40
- parseUpdate,
41
- REACT,
42
- } from "./agentic-signals.js";
43
- import { addReaction, deleteMessage, postMessage, setThreadStatus, updateMessage } from "./api.js";
44
- import { paintSlackFooter, type SlackReplyFooter, turnDurationMs } from "./footer.js";
45
- import { createStreamDeliveryStrategy } from "./live-delivery.js";
46
- import { defaultSlackLog, type SlackLog } from "./log.js";
47
- import { paintTurnStart } from "./paint-start.js";
48
- import { finishPlaceholder, overlayPlaceholder, startPlaceholder } from "./placeholder.js";
49
- import { commitReasoningChip, nextReasoningChip } from "./reasoning-chip.js";
50
- import { DEFAULT_ACK, type ResolvedSlackStatus } from "./reply-options.js";
51
- import { rememberPendingToolCall, takeToolChipLine } from "./tool-chip.js";
52
- import type {
53
- SlackBotToken,
54
- SlackChannelState,
55
- SlackCredentials,
56
- SoftSlackResult,
57
- } from "./types.js";
58
- import { type ThreadFile, uploadThreadFiles } from "./upload.js";
59
-
60
- type SlackChannel = ChannelEventContext<SlackChannelState>;
61
-
62
- type AgenticWrite = {
63
- channel: SlackChannel;
64
- output: unknown;
65
- sessionId: string;
66
- botToken: SlackBotToken | undefined;
67
- getLog: () => SlackLog;
68
- };
69
-
70
- function nested(event: { data: { parentCallId?: string } }): boolean {
71
- return event.data.parentCallId !== undefined;
72
- }
73
-
74
- function skip(event: { data: { parentCallId?: string } }, dryRun: boolean | undefined): boolean {
75
- return nested(event) || dryRun === true;
76
- }
77
-
78
- function thread(state: SlackChannelState): { channelId: string; threadTs: string } | undefined {
79
- if (state.channelId === null || state.channelId === "") {
80
- return undefined;
81
- }
82
- if (state.threadTs === null || state.threadTs === "") {
83
- return undefined;
84
- }
85
- return { channelId: state.channelId, threadTs: state.threadTs };
86
- }
87
-
88
- async function postStaticPlaceholder(args: {
89
- channel: SlackChannel;
90
- placeholder: string | undefined;
91
- botToken: SlackBotToken | undefined;
92
- log: SlackLog;
93
- }): Promise<void> {
94
- if (args.channel.state.placeholderPosted === true) {
95
- return;
96
- }
97
- if (args.placeholder === undefined) {
98
- return;
99
- }
100
- const target = thread(args.channel.state);
101
- if (target === undefined) {
102
- return;
103
- }
104
- const started = startPlaceholder({
105
- line: args.placeholder,
106
- botToken: args.botToken,
107
- channelId: target.channelId,
108
- threadTs: target.threadTs,
109
- log: args.log,
110
- recipientUserId: args.channel.state.triggeringUserId,
111
- recipientTeamId: args.channel.state.teamId,
112
- });
113
- await started?.done;
114
- }
115
-
116
- async function setChip(
117
- channel: SlackChannel,
118
- status: string,
119
- botToken: SlackBotToken | undefined,
120
- getLog: () => SlackLog,
121
- loadingMessages?: readonly string[],
122
- ): Promise<boolean> {
123
- const target = thread(channel.state);
124
- if (target === undefined) {
125
- return false;
126
- }
127
- const result = await setThreadStatus({
128
- botToken,
129
- channelId: target.channelId,
130
- threadTs: target.threadTs,
131
- status,
132
- loadingMessages: loadingMessages === undefined ? undefined : [...loadingMessages],
133
- });
134
- if (!result.ok) {
135
- getLog().warn(`agentic status failed: ${result.error}`, {
136
- channel: target.channelId,
137
- thread_ts: target.threadTs,
138
- });
139
- return false;
140
- }
141
- return true;
142
- }
143
-
144
- async function postNew(args: {
145
- channel: SlackChannel;
146
- text: string;
147
- ts?: string;
148
- sessionId: string;
149
- botToken: SlackBotToken | undefined;
150
- getLog: () => SlackLog;
151
- }): Promise<void> {
152
- const state = args.channel.state;
153
- const target = thread(state);
154
- if (target === undefined) {
155
- return;
156
- }
157
- const log = args.getLog();
158
- const overlaid = await overlayPlaceholder({
159
- channelId: target.channelId,
160
- threadTs: target.threadTs,
161
- botToken: args.botToken,
162
- text: args.text,
163
- });
164
- if (overlaid !== undefined) {
165
- state.lastPostedText = args.text;
166
- state.lastBotMessageTs = overlaid;
167
- bind(args.sessionId, args.ts ?? overlaid, overlaid, args.text);
168
- log.info("placeholder replaced", {
169
- channel: target.channelId,
170
- thread_ts: target.threadTs,
171
- message_ts: overlaid,
172
- session: args.sessionId,
173
- chars: args.text.length,
174
- });
175
- markHostedFirstVisibleReply({
176
- outcome: "progress_update",
177
- deliverySurface: "slack",
178
- });
179
- await setChip(args.channel, "", args.botToken, args.getLog);
180
- return;
181
- }
182
- try {
183
- const posted = await postMessage({
184
- botToken: args.botToken,
185
- channel: target.channelId,
186
- text: args.text,
187
- threadTs: target.threadTs,
188
- });
189
- state.lastPostedText = args.text;
190
- state.lastBotMessageTs = posted.ts;
191
- bind(args.sessionId, args.ts ?? posted.ts, posted.ts, args.text);
192
- log.info("agentic reply posted", {
193
- channel: target.channelId,
194
- thread_ts: target.threadTs,
195
- message_ts: posted.ts,
196
- session: args.sessionId,
197
- chars: args.text.length,
198
- });
199
- markHostedFirstVisibleReply({
200
- outcome: "final_post",
201
- deliverySurface: "slack",
202
- });
203
- await setChip(args.channel, "", args.botToken, args.getLog);
204
- } catch (error) {
205
- log.warn(`agentic reply failed: ${error instanceof Error ? error.message : String(error)}`, {
206
- channel: target.channelId,
207
- thread_ts: target.threadTs,
208
- });
209
- noteHostedVisibleReplyError({ deliverySurface: "slack" });
210
- }
211
- }
212
-
213
- export function buildAgenticEvents(options: {
214
- credentials?: SlackCredentials;
215
- getLog?: () => SlackLog;
216
- ack?: string;
217
- placeholder?: string;
218
- status: ResolvedSlackStatus;
219
- footer?: SlackReplyFooter;
220
- }): ChannelEventHandlers<SlackChannelState> {
221
- const botToken = options.credentials?.botToken;
222
- const getLog = options.getLog ?? (() => defaultSlackLog);
223
- const ack = options.ack ?? DEFAULT_ACK;
224
- const placeholder = options.placeholder;
225
- const status = options.status;
226
- const stream = createStreamDeliveryStrategy({ botToken, getLog });
227
-
228
- return {
229
- async "turn.started"(event, channel, ctx) {
230
- await stream.cleanupOrphan({ channel });
231
- channel.state.agenticFiles = [];
232
- channel.state.streamTs = null;
233
- channel.state.streamChannelId = null;
234
- channel.state.streamFull = false;
235
- channel.state.streamingUnavailable = false;
236
- channel.state.streamAppendedChunks = 0;
237
- channel.state.lastReasoningTypingAtMs = null;
238
- channel.state.lastReasoningTypingStatus = null;
239
- channel.state.pendingToolCallMessage = null;
240
- channel.state.turnStartedAtMs = Date.now();
241
- begin(event.sessionId);
242
- if (ctx.session.dryRun === true) {
243
- return;
244
- }
245
- const target = thread(channel.state);
246
- if (target === undefined) {
247
- return;
248
- }
249
- if (channel.state.startPainted !== true) {
250
- await paintTurnStart({
251
- botToken,
252
- channelId: target.channelId,
253
- threadTs: target.threadTs,
254
- ack,
255
- log: getLog(),
256
- });
257
- }
258
- await postStaticPlaceholder({
259
- channel,
260
- placeholder,
261
- botToken,
262
- log: getLog(),
263
- });
264
- },
265
-
266
- async "message.received"(_event, channel, ctx) {
267
- if (ctx.session.dryRun === true) {
268
- return;
269
- }
270
- await postStaticPlaceholder({
271
- channel,
272
- placeholder,
273
- botToken,
274
- log: getLog(),
275
- });
276
- },
277
-
278
- async "reasoning.appended"(event, channel, ctx) {
279
- if (nested(event) || ctx.session.dryRun === true) {
280
- return;
281
- }
282
- if (status.reasoning === false) {
283
- return;
284
- }
285
- const now = Date.now();
286
- const line = nextReasoningChip(channel.state, event.data.text, now);
287
- if (line === undefined) {
288
- return;
289
- }
290
- if (await setChip(channel, line, botToken, getLog, [line])) {
291
- commitReasoningChip(channel.state, line, now);
292
- }
293
- },
294
-
295
- async "message.completed"(event, channel, ctx) {
296
- if (nested(event) || ctx.session.dryRun === true) {
297
- return;
298
- }
299
- rememberPendingToolCall(channel.state, event.data.finishReason, event.data.text);
300
- },
301
-
302
- async "actions.requested"(event, channel, ctx) {
303
- if (skip(event, ctx.session.dryRun)) {
304
- return;
305
- }
306
- const calls = event.data.calls.filter(call => !isOwnedSignal(call.toolName));
307
- const line = takeToolChipLine(channel.state, status.tools, calls);
308
- if (line === undefined) {
309
- return;
310
- }
311
- await setChip(channel, line, botToken, getLog, [line]);
312
- },
313
-
314
- async "action.result"(event, channel, ctx) {
315
- if (skip(event, ctx.session.dryRun)) {
316
- return;
317
- }
318
- if (event.data.isError || event.data.stubbed === true) {
319
- return;
320
- }
321
- if (isSignal(event.data.toolName, POST_UPDATE)) {
322
- const update = parseUpdate(event.data.output);
323
- if (update === undefined) {
324
- return;
325
- }
326
- await postNew({
327
- channel,
328
- text: update.message,
329
- ts: update.ts,
330
- sessionId: ctx.session.id,
331
- botToken,
332
- getLog,
333
- });
334
- return;
335
- }
336
- if (isSignal(event.data.toolName, EDIT_MESSAGE)) {
337
- await applyEdit({
338
- channel,
339
- output: event.data.output,
340
- sessionId: ctx.session.id,
341
- botToken,
342
- getLog,
343
- });
344
- return;
345
- }
346
- if (isSignal(event.data.toolName, DELETE_MESSAGE)) {
347
- await applyDelete({
348
- channel,
349
- output: event.data.output,
350
- sessionId: ctx.session.id,
351
- botToken,
352
- getLog,
353
- });
354
- return;
355
- }
356
- if (isSignal(event.data.toolName, POST_CARD)) {
357
- const card = parseCard(event.data.output);
358
- const channelId = channel.state.channelId;
359
- if (card === undefined || channelId === null || channelId === "") {
360
- return;
361
- }
362
- await stream.appendChunks({
363
- channel,
364
- channelId,
365
- sessionId: ctx.session.id,
366
- chunks: [
367
- {
368
- type: "task_update",
369
- id: card.id,
370
- title: card.title,
371
- status: card.status,
372
- details: card.details,
373
- },
374
- ],
375
- });
376
- return;
377
- }
378
- if (isSignal(event.data.toolName, REACT)) {
379
- await applyReaction({
380
- channel,
381
- output: event.data.output,
382
- sessionId: ctx.session.id,
383
- botToken,
384
- getLog,
385
- });
386
- return;
387
- }
388
- if (!isSignal(event.data.toolName, POST_FILE)) {
389
- return;
390
- }
391
- const file = parseStagedFile(event.data.output);
392
- if (file === undefined) {
393
- return;
394
- }
395
- const staged = channel.state.agenticFiles ?? [];
396
- staged.push(file);
397
- channel.state.agenticFiles = staged;
398
- },
399
-
400
- async "turn.completed"(_event, channel, ctx) {
401
- await stream.cleanupOrphan({ channel });
402
- if (ctx.session.dryRun !== true) {
403
- await setChip(channel, "", botToken, getLog);
404
- await paintFooter({
405
- channel,
406
- sessionId: ctx.session.id,
407
- status: "completed",
408
- footer: options.footer,
409
- botToken,
410
- getLog,
411
- host: ctx.host,
412
- });
413
- }
414
- await retractUnclaimed(channel, botToken, getLog);
415
- end(ctx.session.id);
416
- const files = channel.state.agenticFiles ?? [];
417
- channel.state.agenticFiles = [];
418
- await uploadStaged(files, channel, botToken, getLog);
419
- },
420
-
421
- async "turn.failed"(_event, channel, ctx) {
422
- await stream.cleanupOrphan({ channel });
423
- channel.state.agenticFiles = [];
424
- if (ctx.session.dryRun !== true) {
425
- await setChip(channel, "", botToken, getLog);
426
- await paintFooter({
427
- channel,
428
- sessionId: ctx.session.id,
429
- status: "failed",
430
- footer: options.footer,
431
- botToken,
432
- getLog,
433
- host: ctx.host,
434
- });
435
- }
436
- await retractUnclaimed(channel, botToken, getLog);
437
- end(ctx.session.id);
438
- },
439
- };
440
- }
441
-
442
- async function paintFooter(args: {
443
- channel: SlackChannel;
444
- sessionId: string;
445
- status: "completed" | "failed";
446
- footer: SlackReplyFooter | undefined;
447
- botToken: SlackBotToken | undefined;
448
- getLog: () => SlackLog;
449
- host?: HostContext;
450
- }): Promise<void> {
451
- const posted = latestPosted(args.sessionId);
452
- const target = thread(args.channel.state);
453
- if (posted === undefined || target === undefined) {
454
- return;
455
- }
456
- const result = await paintSlackFooter({
457
- footer: args.footer,
458
- ctx: {
459
- sessionId: args.sessionId,
460
- channelId: target.channelId,
461
- threadTs: target.threadTs,
462
- text: posted.text,
463
- status: args.status,
464
- durationMs: turnDurationMs(args.channel.state.turnStartedAtMs),
465
- host: args.host,
466
- },
467
- ts: posted.ts,
468
- botToken: args.botToken,
469
- });
470
- if (result !== undefined && !result.ok) {
471
- args.getLog().warn(`agentic footer failed: ${result.error}`, {
472
- channel: target.channelId,
473
- ts: posted.ts,
474
- });
475
- }
476
- }
477
-
478
- async function retractUnclaimed(
479
- channel: SlackChannel,
480
- botToken: SlackBotToken | undefined,
481
- getLog: () => SlackLog,
482
- ): Promise<void> {
483
- const target = thread(channel.state);
484
- if (target === undefined) {
485
- return;
486
- }
487
- await finishPlaceholder({
488
- channelId: target.channelId,
489
- threadTs: target.threadTs,
490
- botToken,
491
- log: getLog(),
492
- });
493
- }
494
-
495
- async function applyOwned(args: {
496
- channel: SlackChannel;
497
- sessionId: string;
498
- ts: string;
499
- botToken: SlackBotToken | undefined;
500
- getLog: () => SlackLog;
501
- verb: "edit" | "delete";
502
- write: (channelId: string, ts: string) => Promise<SoftSlackResult>;
503
- ok?: (ts: string) => void;
504
- }): Promise<void> {
505
- const target = thread(args.channel.state);
506
- if (target === undefined) {
507
- return;
508
- }
509
- const log = args.getLog();
510
- if (!has(args.sessionId, args.ts)) {
511
- log.warn(`agentic ${args.verb} rejected: ts is not a message this turn posted`, {
512
- channel: target.channelId,
513
- ts: args.ts,
514
- });
515
- return;
516
- }
517
- const slackTs = resolve(args.sessionId, args.ts);
518
- if (slackTs === undefined) {
519
- return;
520
- }
521
- const result = await args.write(target.channelId, slackTs);
522
- if (!result.ok) {
523
- log.warn(`agentic ${args.verb} failed: ${result.error}`, {
524
- channel: target.channelId,
525
- ts: args.ts,
526
- });
527
- return;
528
- }
529
- if (args.ok !== undefined) {
530
- args.ok(slackTs);
531
- }
532
- }
533
-
534
- async function applyEdit(args: AgenticWrite): Promise<void> {
535
- const edit = parseEdit(args.output);
536
- if (edit === undefined) {
537
- return;
538
- }
539
- await applyOwned({
540
- channel: args.channel,
541
- sessionId: args.sessionId,
542
- ts: edit.ts,
543
- botToken: args.botToken,
544
- getLog: args.getLog,
545
- verb: "edit",
546
- write: (channelId, ts) =>
547
- updateMessage({
548
- botToken: args.botToken,
549
- channel: channelId,
550
- ts,
551
- text: edit.message,
552
- }),
553
- ok: slackTs => {
554
- setPostedText(args.sessionId, slackTs, edit.message);
555
- },
556
- });
557
- }
558
-
559
- async function applyDelete(args: AgenticWrite): Promise<void> {
560
- const removed = parseDelete(args.output);
561
- if (removed === undefined) {
562
- return;
563
- }
564
- await applyOwned({
565
- channel: args.channel,
566
- sessionId: args.sessionId,
567
- ts: removed.ts,
568
- botToken: args.botToken,
569
- getLog: args.getLog,
570
- verb: "delete",
571
- write: (channelId, ts) =>
572
- deleteMessage({
573
- botToken: args.botToken,
574
- channel: channelId,
575
- ts,
576
- }),
577
- ok: slackTs => {
578
- remove(args.sessionId, removed.ts);
579
- if (args.channel.state.lastBotMessageTs === slackTs) {
580
- args.channel.state.lastBotMessageTs = latest(args.sessionId) ?? null;
581
- }
582
- },
583
- });
584
- }
585
-
586
- async function applyReaction(args: AgenticWrite): Promise<void> {
587
- const reaction = parseReaction(args.output);
588
- const target = thread(args.channel.state);
589
- if (reaction === undefined || target === undefined) {
590
- return;
591
- }
592
- const ts = reaction.ts ?? target.threadTs;
593
- const result = await addReaction({
594
- botToken: args.botToken,
595
- channel: target.channelId,
596
- ts,
597
- name: reaction.emoji,
598
- });
599
- if (!result.ok) {
600
- args.getLog().warn(`agentic react failed: ${result.error}`, {
601
- channel: target.channelId,
602
- ts,
603
- });
604
- }
605
- }
606
-
607
- async function uploadStaged(
608
- files: readonly ThreadFile[],
609
- channel: SlackChannel,
610
- botToken: SlackBotToken | undefined,
611
- getLog: () => SlackLog,
612
- ): Promise<void> {
613
- if (files.length === 0) {
614
- return;
615
- }
616
- const target = thread(channel.state);
617
- if (target === undefined) {
618
- return;
619
- }
620
- const failures = await uploadThreadFiles({
621
- botToken,
622
- channelId: target.channelId,
623
- threadTs: target.threadTs,
624
- files,
625
- });
626
- if (failures.length === 0) {
627
- return;
628
- }
629
- getLog().warn("agentic file upload failed", {
630
- channel: target.channelId,
631
- thread_ts: target.threadTs,
632
- failures: failures.join("; "),
633
- });
634
- }