@cursor/bdk 0.2.2 → 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 (697) hide show
  1. package/AGENTS.md +1 -1
  2. package/dist/bin/agent-serve.js +32 -8
  3. package/dist/channels/github/auth.d.ts.map +1 -1
  4. package/dist/channels/github/auth.js +36 -5
  5. package/dist/channels/slack/attachments.d.ts +2 -1
  6. package/dist/channels/slack/attachments.d.ts.map +1 -1
  7. package/dist/channels/slack/attachments.js +19 -9
  8. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  9. package/dist/channels/slack/dispatch.js +26 -24
  10. package/dist/channels/slack/thread-context.d.ts +21 -11
  11. package/dist/channels/slack/thread-context.d.ts.map +1 -1
  12. package/dist/channels/slack/thread-context.js +75 -27
  13. package/dist/connections.d.ts +1 -1
  14. package/dist/connections.js +1 -1
  15. package/dist/docs/404.html +2 -2
  16. package/dist/docs/assets/{app.DtYVVVyK.js → app.4kQ8Db_q.js} +4 -4
  17. package/dist/docs/assets/chunks/@localSearchIndexroot.CvuAJ0My.js +1 -0
  18. package/dist/docs/assets/chunks/{VPLocalSearchBox.D47xT7J4.js → VPLocalSearchBox.DY1RwB8Q.js} +1 -1
  19. package/dist/docs/assets/chunks/{arc.CDJ6xzxR.js → arc.CxE_fSPK.js} +1 -1
  20. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.l1Xnjd3N.js → architectureDiagram-Q4EWVU46.CPX426ui.js} +1 -1
  21. package/dist/docs/assets/chunks/{baseUniq.x-finShZ.js → baseUniq.CB52JrKG.js} +1 -1
  22. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.COC3qynH.js → blockDiagram-DXYQGD6D.J0cNaQCL.js} +1 -1
  23. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.DdQO850E.js → c4Diagram-AHTNJAMY.DJn3vEGT.js} +1 -1
  24. package/dist/docs/assets/chunks/channel.BoNycAoN.js +1 -0
  25. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Dpn8omLk.js → chunk-4BX2VUAB.Dao618F6.js} +1 -1
  26. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C0XWStUN.js → chunk-4TB4RGXK.QW8Rhjai.js} +1 -1
  27. package/dist/docs/assets/chunks/{chunk-55IACEB6.DsKSZfIM.js → chunk-55IACEB6.DfRLLKF_.js} +1 -1
  28. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.dNU6JDu6.js → chunk-EDXVE4YY.CIV2ApKQ.js} +1 -1
  29. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.DN41fxKE.js → chunk-FMBD7UC4.BEheSuxp.js} +1 -1
  30. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.COpKCZus.js → chunk-OYMX7WX6.CUN88ENB.js} +1 -1
  31. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.HDB-azx2.js → chunk-QZHKN3VN.CgqCs8b_.js} +1 -1
  32. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.DEeX_a2j.js → chunk-YZCP3GAM.iCH0nnTJ.js} +1 -1
  33. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.C4x07Gkj.js +1 -0
  34. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.C4x07Gkj.js +1 -0
  35. package/dist/docs/assets/chunks/clone.Db22cH_-.js +1 -0
  36. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.C3yGL2A8.js → cose-bilkent-S5V4N54A.BLcUxhWE.js} +1 -1
  37. package/dist/docs/assets/chunks/{dagre-KV5264BT.Bpl24en4.js → dagre-KV5264BT.Ep7LofOm.js} +1 -1
  38. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.nFco6seU.js → diagram-5BDNPKRD.Bzf4GSQ4.js} +1 -1
  39. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.DXhA6DWR.js → diagram-G4DWMVQ6.DD6Jh-eM.js} +1 -1
  40. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.8GoOYcwk.js → diagram-MMDJMWI5.oOIl8bWd.js} +1 -1
  41. package/dist/docs/assets/chunks/{diagram-TYMM5635.DDBlqvlJ.js → diagram-TYMM5635.DHs85Ade.js} +1 -1
  42. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.vl_N81P4.js → erDiagram-SMLLAGMA.BIb5ghCk.js} +1 -1
  43. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.Cteg8g7I.js → flowDiagram-DWJPFMVM.DV4paY9k.js} +1 -1
  44. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.D4aMhlMM.js → ganttDiagram-T4ZO3ILL.AyEKA6_v.js} +1 -1
  45. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.DF_J0D4q.js → gitGraphDiagram-UUTBAWPF.BltiCDFo.js} +1 -1
  46. package/dist/docs/assets/chunks/{graph.DJs0LDCf.js → graph.DzuEYGdC.js} +1 -1
  47. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.Bb-4RQwg.js → infoDiagram-42DDH7IO.BV2l981J.js} +1 -1
  48. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DEtQRSbc.js → ishikawaDiagram-UXIWVN3A.BA4Izf-m.js} +1 -1
  49. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DhQQ75FA.js → journeyDiagram-VCZTEJTY.DjaFbFS3.js} +1 -1
  50. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.C4gEw3Rk.js → kanban-definition-6JOO6SKY.CfTFieDs.js} +1 -1
  51. package/dist/docs/assets/chunks/{layout.DT-PGlXa.js → layout.DzfWqTBV.js} +1 -1
  52. package/dist/docs/assets/chunks/{linear.BMMe__JW.js → linear.BO6mpulV.js} +1 -1
  53. package/dist/docs/assets/chunks/{min.XyaU9K9Q.js → min.BGgTadgT.js} +1 -1
  54. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CbBM6xZ-.js → mindmap-definition-QFDTVHPH.DPuIXVWY.js} +1 -1
  55. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.DFJoIVou.js → pieDiagram-DEJITSTG.BOnl3bBg.js} +1 -1
  56. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.CQjkDYqb.js → quadrantDiagram-34T5L4WZ.DNB6Ckdc.js} +1 -1
  57. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.D-mK-JQu.js → requirementDiagram-MS252O5E.D5-Qo7vb.js} +1 -1
  58. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.BStQInpd.js → sankeyDiagram-XADWPNL6.8t65cesf.js} +1 -1
  59. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.CA_eooPJ.js → sequenceDiagram-FGHM5R23.CaG07BdS.js} +1 -1
  60. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BXl-b7ad.js → stateDiagram-FHFEXIEX.TKOweTB6.js} +1 -1
  61. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CuqmyQc4.js +1 -0
  62. package/dist/docs/assets/chunks/{theme.q37tOs4x.js → theme.Dx-JhpTB.js} +2 -2
  63. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.vjuaGOSe.js → timeline-definition-GMOUNBTQ.fE53zQ2s.js} +1 -1
  64. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.BxduJl-F.js → vennDiagram-DHZGUBPP.DJsZZaJg.js} +1 -1
  65. package/dist/docs/assets/chunks/wardley-RL74JXVD.844kyrjl.js +162 -0
  66. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.D1z3ds0D.js → wardleyDiagram-NUSXRM2D.CMZ-Ru_t.js} +1 -1
  67. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.CRU5Ti9b.js → xychartDiagram-5P7HB3ND.XXrhBc7a.js} +1 -1
  68. package/dist/docs/assets/{deployment.md.nGo1yIsa.js → deployment.md.UhnJIMr-.js} +6 -9
  69. package/dist/docs/assets/{deployment.md.nGo1yIsa.lean.js → deployment.md.UhnJIMr-.lean.js} +1 -1
  70. package/dist/docs/assets/{guides_github.md.C2_DSWlE.js → guides_github.md.Bq9kQU9B.js} +9 -3
  71. package/dist/docs/assets/{guides_github.md.C2_DSWlE.lean.js → guides_github.md.Bq9kQU9B.lean.js} +1 -1
  72. package/dist/docs/assets/{guides_jev.md.BNDm14Gy.js → guides_jev.md.CRcgmjDb.js} +2 -2
  73. package/dist/docs/assets/{guides_jev.md.BNDm14Gy.lean.js → guides_jev.md.CRcgmjDb.lean.js} +1 -1
  74. package/dist/docs/assets/{guides_slack.md.ZbHQETOT.js → guides_slack.md.diqqXTTm.js} +2 -2
  75. package/dist/docs/assets/{guides_slack.md.ZbHQETOT.lean.js → guides_slack.md.diqqXTTm.lean.js} +1 -1
  76. package/dist/docs/assets/{quickstart.md.wG4shE1f.js → quickstart.md.CHpHPBUN.js} +5 -3
  77. package/dist/docs/assets/{quickstart.md.wG4shE1f.lean.js → quickstart.md.CHpHPBUN.lean.js} +1 -1
  78. package/dist/docs/assets/{reference_agent-config.md.DzGI777n.js → reference_agent-config.md.Cj5uBKp4.js} +1 -1
  79. package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.js → reference_artifacts.md.CQfKq8F2.js} +1 -1
  80. package/dist/docs/assets/reference_cli.md.DgeLTO18.js +91 -0
  81. package/dist/docs/assets/reference_cli.md.DgeLTO18.lean.js +1 -0
  82. package/dist/docs/assets/{reference_connections.md._XpKiOaF.js → reference_connections.md.COq--gAm.js} +7 -3
  83. package/dist/docs/assets/{reference_connections.md._XpKiOaF.lean.js → reference_connections.md.COq--gAm.lean.js} +1 -1
  84. package/dist/docs/assets/{reference_evals.md.DqNyHMA6.js → reference_evals.md.CJm3uCUm.js} +4 -4
  85. package/dist/docs/assets/{reference_evals.md.DqNyHMA6.lean.js → reference_evals.md.CJm3uCUm.lean.js} +1 -1
  86. package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.js → reference_extensions.md.pa2tN-e4.js} +4 -3
  87. package/dist/docs/assets/{reference_extensions.md.CPPrkWlJ.lean.js → reference_extensions.md.pa2tN-e4.lean.js} +1 -1
  88. package/dist/docs/assets/{reference_skills.md.CRFTxt9M.js → reference_skills.md.Cy00QMKS.js} +3 -3
  89. package/dist/docs/assets/{reference_skills.md.CRFTxt9M.lean.js → reference_skills.md.Cy00QMKS.lean.js} +1 -1
  90. package/dist/docs/assets/troubleshooting.md.Cw5PKa3t.js +1 -0
  91. package/dist/docs/assets/{troubleshooting.md.BzZSu1Gz.lean.js → troubleshooting.md.Cw5PKa3t.lean.js} +1 -1
  92. package/dist/docs/building-with-agents.html +35 -35
  93. package/dist/docs/deployment.html +41 -44
  94. package/dist/docs/deployment.md +49 -16
  95. package/dist/docs/evals.html +35 -35
  96. package/dist/docs/guides/agent-to-agent.html +35 -35
  97. package/dist/docs/guides/bitbucket.html +35 -35
  98. package/dist/docs/guides/cloud-agents.html +35 -35
  99. package/dist/docs/guides/convert-automation.html +35 -35
  100. package/dist/docs/guides/github.html +43 -37
  101. package/dist/docs/guides/github.md +34 -0
  102. package/dist/docs/guides/gitlab.html +35 -35
  103. package/dist/docs/guides/grokbot-agents.html +35 -35
  104. package/dist/docs/guides/hooks.html +35 -35
  105. package/dist/docs/guides/improve.html +35 -35
  106. package/dist/docs/guides/jev.html +37 -37
  107. package/dist/docs/guides/jev.md +7 -0
  108. package/dist/docs/guides/mcp-oauth.html +35 -35
  109. package/dist/docs/guides/opentelemetry.html +35 -35
  110. package/dist/docs/guides/slack.html +37 -37
  111. package/dist/docs/guides/slack.md +5 -0
  112. package/dist/docs/guides/webhooks.html +35 -35
  113. package/dist/docs/hashmap.json +1 -1
  114. package/dist/docs/hillclimbing.html +35 -35
  115. package/dist/docs/index.html +35 -35
  116. package/dist/docs/llms-full.txt +223 -94
  117. package/dist/docs/quickstart.html +40 -38
  118. package/dist/docs/quickstart.md +7 -1
  119. package/dist/docs/reference/agent-config.html +37 -37
  120. package/dist/docs/reference/agent-config.md +1 -1
  121. package/dist/docs/reference/artifacts.html +37 -37
  122. package/dist/docs/reference/artifacts.md +1 -1
  123. package/dist/docs/reference/channels.html +35 -35
  124. package/dist/docs/reference/cli.html +55 -61
  125. package/dist/docs/reference/cli.md +65 -63
  126. package/dist/docs/reference/connections.html +42 -38
  127. package/dist/docs/reference/connections.md +28 -2
  128. package/dist/docs/reference/evals.html +39 -39
  129. package/dist/docs/reference/evals.md +6 -7
  130. package/dist/docs/reference/extensions.html +39 -38
  131. package/dist/docs/reference/extensions.md +13 -0
  132. package/dist/docs/reference/hooks.html +35 -35
  133. package/dist/docs/reference/http-api.html +35 -35
  134. package/dist/docs/reference/instructions.html +35 -35
  135. package/dist/docs/reference/playground.html +35 -35
  136. package/dist/docs/reference/project-layout.html +35 -35
  137. package/dist/docs/reference/prompt.html +35 -35
  138. package/dist/docs/reference/schedules.html +35 -35
  139. package/dist/docs/reference/sessions.html +35 -35
  140. package/dist/docs/reference/skills.html +38 -38
  141. package/dist/docs/reference/subagents.html +35 -35
  142. package/dist/docs/reference/tools.html +35 -35
  143. package/dist/docs/templates/agentic-owners.html +35 -35
  144. package/dist/docs/templates/security-reviewer.html +35 -35
  145. package/dist/docs/templates/thermo-quality-review.html +35 -35
  146. package/dist/docs/templates/thermo-review.html +35 -35
  147. package/dist/docs/templates/triage.html +35 -35
  148. package/dist/docs/troubleshooting.html +36 -36
  149. package/dist/docs/troubleshooting.md +7 -3
  150. package/dist/extensions/cursor-grokbot-agents/extension.d.ts +77 -0
  151. package/dist/extensions/cursor-grokbot-agents/extension.d.ts.map +1 -0
  152. package/dist/extensions/cursor-grokbot-agents/extension.js +63 -0
  153. package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts +11 -0
  154. package/dist/extensions/cursor-grokbot-agents/lib/agents.d.ts.map +1 -0
  155. package/dist/extensions/cursor-grokbot-agents/lib/agents.js +31 -0
  156. package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts +56 -0
  157. package/dist/extensions/cursor-grokbot-agents/lib/backend.d.ts.map +1 -0
  158. package/dist/extensions/cursor-grokbot-agents/lib/backend.js +158 -0
  159. package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts +28 -0
  160. package/dist/extensions/cursor-grokbot-agents/lib/contacts.d.ts.map +1 -0
  161. package/dist/extensions/cursor-grokbot-agents/lib/contacts.js +59 -0
  162. package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts +53 -0
  163. package/dist/extensions/cursor-grokbot-agents/lib/conversation.d.ts.map +1 -0
  164. package/dist/extensions/cursor-grokbot-agents/lib/conversation.js +206 -0
  165. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts +4 -0
  166. package/dist/extensions/cursor-grokbot-agents/lib/inputs.d.ts.map +1 -0
  167. package/dist/extensions/cursor-grokbot-agents/lib/inputs.js +15 -0
  168. package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts +12 -0
  169. package/dist/extensions/cursor-grokbot-agents/lib/lock.d.ts.map +1 -0
  170. package/dist/extensions/cursor-grokbot-agents/lib/lock.js +25 -0
  171. package/dist/extensions/cursor-grokbot-agents/skills/consult.md +40 -0
  172. package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts +4 -0
  173. package/dist/extensions/cursor-grokbot-agents/tools/ask.d.ts.map +1 -0
  174. package/dist/extensions/cursor-grokbot-agents/tools/ask.js +37 -0
  175. package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts +4 -0
  176. package/dist/extensions/cursor-grokbot-agents/tools/check.d.ts.map +1 -0
  177. package/dist/extensions/cursor-grokbot-agents/tools/check.js +32 -0
  178. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts +4 -0
  179. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.d.ts.map +1 -0
  180. package/dist/extensions/cursor-grokbot-agents/tools/interrupt.js +24 -0
  181. package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts +4 -0
  182. package/dist/extensions/cursor-grokbot-agents/tools/list.d.ts.map +1 -0
  183. package/dist/extensions/cursor-grokbot-agents/tools/list.js +34 -0
  184. package/dist/extensions/jev/extension.d.ts +3 -0
  185. package/dist/extensions/jev/extension.d.ts.map +1 -1
  186. package/dist/extensions/jev/extension.js +10 -1
  187. package/dist/extensions/jev/lib/evaluate.d.ts +4 -0
  188. package/dist/extensions/jev/lib/evaluate.d.ts.map +1 -1
  189. package/dist/extensions/jev/lib/evaluate.js +6 -2
  190. package/dist/extensions.d.ts +4 -2
  191. package/dist/extensions.d.ts.map +1 -1
  192. package/dist/extensions.js +5 -2
  193. package/dist/internal/cli-ax.d.ts +1 -0
  194. package/dist/internal/cli-ax.d.ts.map +1 -1
  195. package/dist/internal/cli-ax.js +43 -10
  196. package/dist/internal/cli-deploy.d.ts +5 -1
  197. package/dist/internal/cli-deploy.d.ts.map +1 -1
  198. package/dist/internal/cli-deploy.js +41 -9
  199. package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
  200. package/dist/internal/cli-mcp-oauth.js +2 -1
  201. package/dist/internal/cli-skills.d.ts +1 -1
  202. package/dist/internal/cli-skills.d.ts.map +1 -1
  203. package/dist/internal/cli-skills.js +5 -5
  204. package/dist/internal/connection-env.d.ts +31 -0
  205. package/dist/internal/connection-env.d.ts.map +1 -0
  206. package/dist/internal/connection-env.js +84 -0
  207. package/dist/internal/cursor/backend-client.js +5 -0
  208. package/dist/internal/deploy-client.d.ts +30 -6
  209. package/dist/internal/deploy-client.d.ts.map +1 -1
  210. package/dist/internal/deploy-client.js +45 -9
  211. package/dist/internal/discovery/agent-config.d.ts +6 -5
  212. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  213. package/dist/internal/discovery/agent-config.js +29 -28
  214. package/dist/internal/discovery/agent.js +1 -1
  215. package/dist/internal/discovery/connections.d.ts.map +1 -1
  216. package/dist/internal/discovery/connections.js +11 -0
  217. package/dist/internal/discovery/extensions.d.ts.map +1 -1
  218. package/dist/internal/discovery/extensions.js +12 -0
  219. package/dist/internal/hosted-delivery-protocol.d.ts +36 -11
  220. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  221. package/dist/internal/hosted-delivery-protocol.js +31 -8
  222. package/dist/internal/hosted-delivery.d.ts +2 -2
  223. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  224. package/dist/internal/hosted-delivery.js +228 -48
  225. package/dist/internal/hosting.d.ts +10 -2
  226. package/dist/internal/hosting.d.ts.map +1 -1
  227. package/dist/internal/hosting.js +33 -3
  228. package/dist/internal/install-cursor-skills.d.ts +20 -24
  229. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  230. package/dist/internal/install-cursor-skills.js +50 -48
  231. package/dist/internal/legacy-command-guard.d.ts +2 -0
  232. package/dist/internal/legacy-command-guard.d.ts.map +1 -1
  233. package/dist/internal/legacy-command-guard.js +10 -1
  234. package/dist/internal/mcp-host.d.ts +6 -0
  235. package/dist/internal/mcp-host.d.ts.map +1 -1
  236. package/dist/internal/mcp-host.js +35 -16
  237. package/dist/internal/sdk-runner.d.ts +2 -0
  238. package/dist/internal/sdk-runner.d.ts.map +1 -1
  239. package/dist/internal/sdk-runner.js +10 -0
  240. package/dist/internal/server.d.ts.map +1 -1
  241. package/dist/internal/server.js +11 -1
  242. package/dist/internal/session-engine.d.ts.map +1 -1
  243. package/dist/internal/session-engine.js +9 -5
  244. package/dist/types.d.ts +29 -3
  245. package/dist/types.d.ts.map +1 -1
  246. package/docs/deployment.md +49 -16
  247. package/docs/guides/github.md +34 -0
  248. package/docs/guides/jev.md +7 -0
  249. package/docs/guides/slack.md +5 -0
  250. package/docs/quickstart.md +7 -1
  251. package/docs/reference/agent-config.md +1 -1
  252. package/docs/reference/artifacts.md +1 -1
  253. package/docs/reference/cli.md +65 -63
  254. package/docs/reference/connections.md +28 -2
  255. package/docs/reference/evals.md +6 -7
  256. package/docs/reference/extensions.md +13 -0
  257. package/docs/troubleshooting.md +7 -3
  258. package/package.json +1 -11
  259. package/scripts/install-cursor-skills.mjs +1 -1
  260. package/skills/create-agent/SKILL.md +1 -1
  261. package/skills/debug/SKILL.md +1 -1
  262. package/skills/deploy/SKILL.md +1 -1
  263. package/skills/evals/SKILL.md +1 -1
  264. package/skills/framework-map/SKILL.md +1 -1
  265. package/skills/github/SKILL.md +1 -1
  266. package/skills/hillclimb/SKILL.md +1 -1
  267. package/skills/mcp-auth/SKILL.md +1 -1
  268. package/skills/otel/SKILL.md +1 -1
  269. package/skills/setup-slack/SKILL.md +1 -1
  270. package/templates/agents-md/bot/lib/collect.ts +1 -4
  271. package/templates/code-wiki/bot/channels/github.ts +2 -2
  272. package/templates/demo/bot/channels/github.ts +5 -1
  273. package/templates/pr-autofixer/bot/lib/start-drive.ts +4 -4
  274. package/templates/triage/bot/lib/types.ts +6 -6
  275. package/dist/docs/assets/chunks/@localSearchIndexroot.BgTA2tV1.js +0 -1
  276. package/dist/docs/assets/chunks/channel.B2nMEx82.js +0 -1
  277. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.D8iCH2ve.js +0 -1
  278. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.D8iCH2ve.js +0 -1
  279. package/dist/docs/assets/chunks/clone.5XNLjby0.js +0 -1
  280. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.yGM2uLZQ.js +0 -1
  281. package/dist/docs/assets/chunks/wardley-RL74JXVD.DKfyIejL.js +0 -162
  282. package/dist/docs/assets/reference_cli.md.BK2QUH67.js +0 -97
  283. package/dist/docs/assets/reference_cli.md.BK2QUH67.lean.js +0 -1
  284. package/dist/docs/assets/troubleshooting.md.BzZSu1Gz.js +0 -1
  285. package/src/artifacts.ts +0 -68
  286. package/src/bin/agent-serve.ts +0 -1833
  287. package/src/channels/bitbucket/api.ts +0 -891
  288. package/src/channels/bitbucket/binding.ts +0 -417
  289. package/src/channels/bitbucket/bitbucket-channel.ts +0 -162
  290. package/src/channels/bitbucket/bitbucket-webhook.ts +0 -519
  291. package/src/channels/bitbucket/checks.ts +0 -146
  292. package/src/channels/bitbucket/cursor-account.ts +0 -106
  293. package/src/channels/bitbucket/defaults.ts +0 -100
  294. package/src/channels/bitbucket/events.ts +0 -74
  295. package/src/channels/bitbucket/index.ts +0 -51
  296. package/src/channels/bitbucket/replay.ts +0 -421
  297. package/src/channels/bitbucket/state.ts +0 -59
  298. package/src/channels/bitbucket/types.ts +0 -261
  299. package/src/channels/change-monitors/change-monitors-channel.ts +0 -63
  300. package/src/channels/change-monitors/index.ts +0 -8
  301. package/src/channels/change-monitors/types.ts +0 -42
  302. package/src/channels/checks.ts +0 -185
  303. package/src/channels/deployments/deployments-channel.ts +0 -224
  304. package/src/channels/deployments/index.ts +0 -25
  305. package/src/channels/deployments/types.ts +0 -92
  306. package/src/channels/github/api.ts +0 -526
  307. package/src/channels/github/auth.ts +0 -254
  308. package/src/channels/github/binding.ts +0 -233
  309. package/src/channels/github/checks.ts +0 -145
  310. package/src/channels/github/cursor-account.ts +0 -303
  311. package/src/channels/github/defaults.ts +0 -168
  312. package/src/channels/github/events.ts +0 -67
  313. package/src/channels/github/forward.ts +0 -359
  314. package/src/channels/github/github-channel.ts +0 -2334
  315. package/src/channels/github/index.ts +0 -54
  316. package/src/channels/github/progress.ts +0 -365
  317. package/src/channels/github/replay.ts +0 -372
  318. package/src/channels/github/state.ts +0 -124
  319. package/src/channels/github/types.ts +0 -590
  320. package/src/channels/gitlab/api.ts +0 -329
  321. package/src/channels/gitlab/binding.ts +0 -231
  322. package/src/channels/gitlab/checks.ts +0 -228
  323. package/src/channels/gitlab/cursor-account.ts +0 -105
  324. package/src/channels/gitlab/defaults.ts +0 -80
  325. package/src/channels/gitlab/events.ts +0 -37
  326. package/src/channels/gitlab/gitlab-channel.ts +0 -160
  327. package/src/channels/gitlab/gitlab-webhook.ts +0 -509
  328. package/src/channels/gitlab/index.ts +0 -44
  329. package/src/channels/gitlab/replay.ts +0 -328
  330. package/src/channels/gitlab/state.ts +0 -55
  331. package/src/channels/gitlab/types.ts +0 -247
  332. package/src/channels/issues/index.ts +0 -9
  333. package/src/channels/issues/issues-channel.ts +0 -45
  334. package/src/channels/issues/types.ts +0 -38
  335. package/src/channels/origin/api.ts +0 -507
  336. package/src/channels/origin/binding.ts +0 -114
  337. package/src/channels/origin/checks.ts +0 -250
  338. package/src/channels/origin/cursor-account.ts +0 -58
  339. package/src/channels/origin/defaults.ts +0 -140
  340. package/src/channels/origin/events.ts +0 -35
  341. package/src/channels/origin/index.ts +0 -35
  342. package/src/channels/origin/origin-channel.ts +0 -815
  343. package/src/channels/origin/origin-webhook.ts +0 -296
  344. package/src/channels/origin/reactions.ts +0 -72
  345. package/src/channels/origin/state.ts +0 -54
  346. package/src/channels/origin/types.ts +0 -295
  347. package/src/channels/slack/agentic-delivery.ts +0 -634
  348. package/src/channels/slack/agentic-posted.ts +0 -135
  349. package/src/channels/slack/agentic-signals.ts +0 -231
  350. package/src/channels/slack/api.ts +0 -761
  351. package/src/channels/slack/approvals.ts +0 -279
  352. package/src/channels/slack/assistant.ts +0 -76
  353. package/src/channels/slack/attachments.ts +0 -596
  354. package/src/channels/slack/auth.ts +0 -127
  355. package/src/channels/slack/blocks.ts +0 -131
  356. package/src/channels/slack/bot-mentions.ts +0 -318
  357. package/src/channels/slack/channel-watch.ts +0 -314
  358. package/src/channels/slack/cli-project.ts +0 -249
  359. package/src/channels/slack/code-fences.ts +0 -171
  360. package/src/channels/slack/constants.ts +0 -38
  361. package/src/channels/slack/credentials.ts +0 -88
  362. package/src/channels/slack/defaults.ts +0 -714
  363. package/src/channels/slack/dispatch.ts +0 -1060
  364. package/src/channels/slack/doctor.ts +0 -338
  365. package/src/channels/slack/eval-directive.ts +0 -306
  366. package/src/channels/slack/event-id-dedupe.ts +0 -30
  367. package/src/channels/slack/external-policy.ts +0 -75
  368. package/src/channels/slack/footer.ts +0 -106
  369. package/src/channels/slack/inbound.ts +0 -416
  370. package/src/channels/slack/index.ts +0 -53
  371. package/src/channels/slack/init.ts +0 -169
  372. package/src/channels/slack/interactive.ts +0 -406
  373. package/src/channels/slack/links.ts +0 -23
  374. package/src/channels/slack/live-delivery.ts +0 -489
  375. package/src/channels/slack/log.ts +0 -70
  376. package/src/channels/slack/manifest.ts +0 -240
  377. package/src/channels/slack/message-body.ts +0 -82
  378. package/src/channels/slack/nudge-carrier.ts +0 -224
  379. package/src/channels/slack/nudge-store.ts +0 -334
  380. package/src/channels/slack/paint-start.ts +0 -93
  381. package/src/channels/slack/placeholder.ts +0 -358
  382. package/src/channels/slack/pr-ref.ts +0 -74
  383. package/src/channels/slack/progress-delivery.ts +0 -138
  384. package/src/channels/slack/reasoning-card.ts +0 -125
  385. package/src/channels/slack/reasoning-chip.ts +0 -41
  386. package/src/channels/slack/recording-sink.ts +0 -167
  387. package/src/channels/slack/redact.ts +0 -6
  388. package/src/channels/slack/reply-options.ts +0 -279
  389. package/src/channels/slack/setup.ts +0 -125
  390. package/src/channels/slack/slack-channel.ts +0 -744
  391. package/src/channels/slack/socket-mode.ts +0 -140
  392. package/src/channels/slack/stop.ts +0 -25
  393. package/src/channels/slack/stream.ts +0 -66
  394. package/src/channels/slack/thread-context.ts +0 -485
  395. package/src/channels/slack/tool-approval-events.ts +0 -233
  396. package/src/channels/slack/tool-cards.ts +0 -198
  397. package/src/channels/slack/tool-chip.ts +0 -34
  398. package/src/channels/slack/types.ts +0 -787
  399. package/src/channels/slack/upload.ts +0 -137
  400. package/src/channels.ts +0 -543
  401. package/src/connections.ts +0 -153
  402. package/src/dashboard-session-url.ts +0 -30
  403. package/src/evals/assertions.ts +0 -688
  404. package/src/evals/expect.ts +0 -250
  405. package/src/evals/judge.ts +0 -329
  406. package/src/evals/loaders.ts +0 -111
  407. package/src/evals/matchers.ts +0 -223
  408. package/src/evals/reporters.ts +0 -257
  409. package/src/evals/results.ts +0 -130
  410. package/src/evals/run-facts.ts +0 -306
  411. package/src/evals.ts +0 -709
  412. package/src/extensions/cursor-cloud-agents/extension.ts +0 -131
  413. package/src/extensions/cursor-cloud-agents/lib/backend.ts +0 -386
  414. package/src/extensions/cursor-cloud-agents/lib/channels.ts +0 -11
  415. package/src/extensions/cursor-cloud-agents/lib/fleet.ts +0 -98
  416. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +0 -5
  417. package/src/extensions/cursor-cloud-agents/lib/repos.ts +0 -80
  418. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +0 -19
  419. package/src/extensions/cursor-cloud-agents/skills/handoff.md +0 -37
  420. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +0 -21
  421. package/src/extensions/cursor-cloud-agents/tools/dump.ts +0 -47
  422. package/src/extensions/cursor-cloud-agents/tools/get.ts +0 -18
  423. package/src/extensions/cursor-cloud-agents/tools/launch.ts +0 -62
  424. package/src/extensions/cursor-cloud-agents/tools/list.ts +0 -31
  425. package/src/extensions/cursor-cloud-agents/tools/reply.ts +0 -36
  426. package/src/extensions/improve/extension.ts +0 -69
  427. package/src/extensions/improve/skills/yourself.ts +0 -50
  428. package/src/extensions/jev/extension.ts +0 -95
  429. package/src/extensions/jev/lib/evaluate.ts +0 -266
  430. package/src/extensions/jev/skills/gated-write.md +0 -25
  431. package/src/extensions/jev/skills/questions.md +0 -33
  432. package/src/extensions/jev/tools/evaluate.ts +0 -82
  433. package/src/extensions/slack-communication/evals/harness.ts +0 -705
  434. package/src/extensions/slack-communication/evals/slack-communication.eval.ts +0 -830
  435. package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +0 -172
  436. package/src/extensions/slack-communication/extension.ts +0 -44
  437. package/src/extensions/slack-communication/skills/slack-voice.ts +0 -56
  438. package/src/extensions/slack-communication/tools/delete-message.ts +0 -33
  439. package/src/extensions/slack-communication/tools/edit-message.ts +0 -42
  440. package/src/extensions/slack-communication/tools/post-card.ts +0 -28
  441. package/src/extensions/slack-communication/tools/post-file.ts +0 -82
  442. package/src/extensions/slack-communication/tools/post-update.ts +0 -40
  443. package/src/extensions/slack-communication/tools/react.ts +0 -30
  444. package/src/extensions/slack-communication/tools/set-status.ts +0 -21
  445. package/src/extensions.ts +0 -179
  446. package/src/files-backends/agent-store-presigned-url.ts +0 -11
  447. package/src/files-backends/cursor-hosted.ts +0 -1212
  448. package/src/files-backends/local-fs.ts +0 -163
  449. package/src/files.ts +0 -293
  450. package/src/filesystem.ts +0 -2005
  451. package/src/hooks.ts +0 -30
  452. package/src/index.ts +0 -259
  453. package/src/internal/advertise-tools.ts +0 -370
  454. package/src/internal/approval-gate.ts +0 -103
  455. package/src/internal/artifacts-store.ts +0 -836
  456. package/src/internal/as-of.ts +0 -257
  457. package/src/internal/auth.ts +0 -46
  458. package/src/internal/authored-alias-hooks.ts +0 -138
  459. package/src/internal/authored-loaders.ts +0 -188
  460. package/src/internal/bounded-int.ts +0 -24
  461. package/src/internal/bounded.ts +0 -25
  462. package/src/internal/brand.ts +0 -28
  463. package/src/internal/browser-origin-guard.ts +0 -67
  464. package/src/internal/builtin-tools/artifacts.ts +0 -62
  465. package/src/internal/builtin-tools/index.ts +0 -53
  466. package/src/internal/builtin-tools/reminders.ts +0 -145
  467. package/src/internal/channel-dispatch.ts +0 -129
  468. package/src/internal/channel-route-dispatch.ts +0 -58
  469. package/src/internal/channel-state.ts +0 -83
  470. package/src/internal/chat-client.ts +0 -594
  471. package/src/internal/cli-ax.ts +0 -2273
  472. package/src/internal/cli-bitbucket.ts +0 -438
  473. package/src/internal/cli-convert-automation.ts +0 -335
  474. package/src/internal/cli-cursor.ts +0 -282
  475. package/src/internal/cli-deploy.ts +0 -2486
  476. package/src/internal/cli-docs.ts +0 -192
  477. package/src/internal/cli-github.ts +0 -806
  478. package/src/internal/cli-gitlab.ts +0 -452
  479. package/src/internal/cli-images.ts +0 -672
  480. package/src/internal/cli-manifest.ts +0 -56
  481. package/src/internal/cli-mcp-oauth.ts +0 -395
  482. package/src/internal/cli-mcp.ts +0 -808
  483. package/src/internal/cli-skills.ts +0 -99
  484. package/src/internal/cli-slack-manual.ts +0 -418
  485. package/src/internal/cli-slack.ts +0 -874
  486. package/src/internal/cloud-merge.ts +0 -51
  487. package/src/internal/cloud-turn-cost.ts +0 -159
  488. package/src/internal/continuation-channel.ts +0 -233
  489. package/src/internal/continuation-identity.ts +0 -935
  490. package/src/internal/conversation-mirror.ts +0 -423
  491. package/src/internal/convert-automation/convert-workflow.ts +0 -1377
  492. package/src/internal/convert-automation/slug.ts +0 -29
  493. package/src/internal/convert-automation/types.ts +0 -212
  494. package/src/internal/cron.ts +0 -76
  495. package/src/internal/cursor/account-mcp.ts +0 -692
  496. package/src/internal/cursor/backend-client.ts +0 -978
  497. package/src/internal/cursor/bound-secret-file.ts +0 -101
  498. package/src/internal/cursor/credentials.ts +0 -560
  499. package/src/internal/cursor/cursor-api-transport.ts +0 -65
  500. package/src/internal/cursor/github-credentials.ts +0 -228
  501. package/src/internal/cursor/hosted-bound-secrets.ts +0 -71
  502. package/src/internal/cursor/hosted-deployment-secrets.ts +0 -100
  503. package/src/internal/cursor/hosted-store-secrets.ts +0 -152
  504. package/src/internal/cursor/session-token.ts +0 -111
  505. package/src/internal/cursor/store-api-client.ts +0 -323
  506. package/src/internal/cursor-account-mcp-auth.ts +0 -303
  507. package/src/internal/cursor-agent-template.ts +0 -50
  508. package/src/internal/cursor-deployment-relay.ts +0 -315
  509. package/src/internal/cursor-event-relay.ts +0 -675
  510. package/src/internal/cursor-relay-core.ts +0 -563
  511. package/src/internal/deferred-channel-session.ts +0 -61
  512. package/src/internal/deploy-client.ts +0 -1504
  513. package/src/internal/deploy-manifest.ts +0 -361
  514. package/src/internal/deploy-source.ts +0 -144
  515. package/src/internal/describe-error.ts +0 -32
  516. package/src/internal/dev-mode.ts +0 -20
  517. package/src/internal/discovery/agent-config.ts +0 -288
  518. package/src/internal/discovery/agent.ts +0 -381
  519. package/src/internal/discovery/channels.ts +0 -100
  520. package/src/internal/discovery/connections.ts +0 -505
  521. package/src/internal/discovery/context.ts +0 -38
  522. package/src/internal/discovery/cursor-plugin.ts +0 -628
  523. package/src/internal/discovery/extension-overlay.ts +0 -247
  524. package/src/internal/discovery/extensions.ts +0 -490
  525. package/src/internal/discovery/fs.ts +0 -103
  526. package/src/internal/discovery/hooks.ts +0 -63
  527. package/src/internal/discovery/info.ts +0 -174
  528. package/src/internal/discovery/instructions.ts +0 -98
  529. package/src/internal/discovery/modules.ts +0 -107
  530. package/src/internal/discovery/names.ts +0 -45
  531. package/src/internal/discovery/project.ts +0 -319
  532. package/src/internal/discovery/reminders.ts +0 -65
  533. package/src/internal/discovery/runtime.ts +0 -158
  534. package/src/internal/discovery/schedules.ts +0 -120
  535. package/src/internal/discovery/seed-files.ts +0 -34
  536. package/src/internal/discovery/services.ts +0 -151
  537. package/src/internal/discovery/skills.ts +0 -174
  538. package/src/internal/discovery/subagent.ts +0 -138
  539. package/src/internal/discovery/tools.ts +0 -170
  540. package/src/internal/discovery.ts +0 -27
  541. package/src/internal/distribution.ts +0 -126
  542. package/src/internal/docs-site.ts +0 -248
  543. package/src/internal/duration.ts +0 -37
  544. package/src/internal/env-file.ts +0 -83
  545. package/src/internal/eval-judge-model.ts +0 -142
  546. package/src/internal/eval-run-store.ts +0 -585
  547. package/src/internal/eval-runner.ts +0 -823
  548. package/src/internal/evals-client.ts +0 -475
  549. package/src/internal/event-log.ts +0 -342
  550. package/src/internal/event-mapper.ts +0 -811
  551. package/src/internal/expected-delivery-failure.ts +0 -34
  552. package/src/internal/factory-resource-channel.ts +0 -103
  553. package/src/internal/filesystem/errors.ts +0 -207
  554. package/src/internal/filesystem/format.ts +0 -253
  555. package/src/internal/filesystem/merge.ts +0 -192
  556. package/src/internal/filesystem/nearest.ts +0 -112
  557. package/src/internal/filesystem/scratch.ts +0 -239
  558. package/src/internal/filesystem/sdk-schemas.ts +0 -204
  559. package/src/internal/filesystem/tools.ts +0 -804
  560. package/src/internal/filesystem/walk.ts +0 -366
  561. package/src/internal/fixtures/units-server.ts +0 -52
  562. package/src/internal/framework-file-storage.ts +0 -357
  563. package/src/internal/framework-storage-selection.ts +0 -156
  564. package/src/internal/frontmatter.ts +0 -108
  565. package/src/internal/github-fanout.ts +0 -144
  566. package/src/internal/guest-network.ts +0 -391
  567. package/src/internal/handleAgentServeTrigger.ts +0 -286
  568. package/src/internal/host-files.ts +0 -341
  569. package/src/internal/host-kv.ts +0 -81
  570. package/src/internal/host-otel.ts +0 -231
  571. package/src/internal/host-platforms.ts +0 -170
  572. package/src/internal/hosted-admission-adapter.ts +0 -47
  573. package/src/internal/hosted-admission-context.ts +0 -37
  574. package/src/internal/hosted-catch-protocol.ts +0 -112
  575. package/src/internal/hosted-catch.ts +0 -179
  576. package/src/internal/hosted-delivery-protocol.ts +0 -787
  577. package/src/internal/hosted-delivery.ts +0 -1152
  578. package/src/internal/hosted-execution-diag.ts +0 -291
  579. package/src/internal/hosted-execution-flush.ts +0 -136
  580. package/src/internal/hosted-execution-latency.ts +0 -301
  581. package/src/internal/hosted-managed-automation.ts +0 -116
  582. package/src/internal/hosting.ts +0 -107
  583. package/src/internal/http-channel-define.ts +0 -25
  584. package/src/internal/http-channel.ts +0 -669
  585. package/src/internal/http-control-plane-session.ts +0 -110
  586. package/src/internal/ids.ts +0 -39
  587. package/src/internal/incoming-headers-to-fetch.ts +0 -45
  588. package/src/internal/init-interview.ts +0 -360
  589. package/src/internal/init-project.ts +0 -711
  590. package/src/internal/init-scaffold.ts +0 -182
  591. package/src/internal/inline-stdio-define-stub.ts +0 -4
  592. package/src/internal/inline-stdio-mcp.ts +0 -230
  593. package/src/internal/install-cursor-skills.ts +0 -601
  594. package/src/internal/is-record.ts +0 -3
  595. package/src/internal/json-schema.ts +0 -95
  596. package/src/internal/legacy-command-guard.ts +0 -54
  597. package/src/internal/listen-port.ts +0 -85
  598. package/src/internal/local-control-plane.ts +0 -442
  599. package/src/internal/local-env.ts +0 -59
  600. package/src/internal/local-ingress.ts +0 -90
  601. package/src/internal/log-ring.ts +0 -59
  602. package/src/internal/logs-client.ts +0 -477
  603. package/src/internal/map-pool.ts +0 -39
  604. package/src/internal/mcp-endpoint.ts +0 -747
  605. package/src/internal/mcp-host.ts +0 -481
  606. package/src/internal/mcp-oauth-on-demand.ts +0 -337
  607. package/src/internal/mcp-oauth-persist.ts +0 -118
  608. package/src/internal/mcp-oauth.ts +0 -549
  609. package/src/internal/net.ts +0 -29
  610. package/src/internal/open-browser.ts +0 -41
  611. package/src/internal/otel/attrs.ts +0 -16
  612. package/src/internal/otel/collector.ts +0 -937
  613. package/src/internal/otel/config.ts +0 -287
  614. package/src/internal/otel/http.ts +0 -122
  615. package/src/internal/otel/mcp.ts +0 -56
  616. package/src/internal/otel/propagation.ts +0 -17
  617. package/src/internal/otel/runtime.ts +0 -441
  618. package/src/internal/package-inline-stdio.ts +0 -114
  619. package/src/internal/peer-connections.ts +0 -96
  620. package/src/internal/platform-schedule-sync.ts +0 -75
  621. package/src/internal/platform-timers.ts +0 -365
  622. package/src/internal/playground/static.ts +0 -278
  623. package/src/internal/playground/toolchain.ts +0 -270
  624. package/src/internal/playground-proxy.ts +0 -564
  625. package/src/internal/process-memory-telemetry.ts +0 -334
  626. package/src/internal/project-layout.ts +0 -31
  627. package/src/internal/prompt-context.ts +0 -116
  628. package/src/internal/reminder-control-plane-protocol.ts +0 -482
  629. package/src/internal/reminder-runner.ts +0 -1559
  630. package/src/internal/reminder-schedule.ts +0 -104
  631. package/src/internal/reminder-store.ts +0 -176
  632. package/src/internal/request-error-status.ts +0 -95
  633. package/src/internal/request-headers.ts +0 -21
  634. package/src/internal/resolve-prod-target.ts +0 -334
  635. package/src/internal/resolved-connections.ts +0 -190
  636. package/src/internal/router.ts +0 -143
  637. package/src/internal/run-client.ts +0 -354
  638. package/src/internal/runtime-dispatch-runner.ts +0 -50
  639. package/src/internal/sanitize-mcp-tool-name.ts +0 -31
  640. package/src/internal/schedule-runner.ts +0 -154
  641. package/src/internal/scm/pr-url.ts +0 -245
  642. package/src/internal/sdk-runner.ts +0 -948
  643. package/src/internal/serve-restart.ts +0 -113
  644. package/src/internal/server.ts +0 -3135
  645. package/src/internal/session-cost.ts +0 -208
  646. package/src/internal/session-engine.ts +0 -5618
  647. package/src/internal/session-links.ts +0 -84
  648. package/src/internal/session-run-log.ts +0 -535
  649. package/src/internal/session-store.ts +0 -307
  650. package/src/internal/session-urls.ts +0 -32
  651. package/src/internal/sessions-client.ts +0 -239
  652. package/src/internal/skill-catalog.ts +0 -66
  653. package/src/internal/skills-sync.ts +0 -55
  654. package/src/internal/slack-provision-client.ts +0 -544
  655. package/src/internal/slack-thread-key.ts +0 -11
  656. package/src/internal/sleep.ts +0 -3
  657. package/src/internal/start-log-store.ts +0 -164
  658. package/src/internal/steering.ts +0 -17
  659. package/src/internal/storage-coordinator.ts +0 -800
  660. package/src/internal/storage-roles.ts +0 -86
  661. package/src/internal/storage.ts +0 -1
  662. package/src/internal/store-api-protocol.ts +0 -205
  663. package/src/internal/store-mirror.ts +0 -73
  664. package/src/internal/stream-progress.ts +0 -294
  665. package/src/internal/terminal-style.ts +0 -133
  666. package/src/internal/testing/factory-resource-fixtures.ts +0 -84
  667. package/src/internal/testing/scm-continuation-fixtures.ts +0 -285
  668. package/src/internal/tool-catalog.ts +0 -104
  669. package/src/internal/tool-policy.ts +0 -222
  670. package/src/internal/tool-result.ts +0 -50
  671. package/src/internal/trajectory.ts +0 -418
  672. package/src/internal/turn-cost.ts +0 -136
  673. package/src/internal/turn-governor.ts +0 -145
  674. package/src/internal/turn-lease-store.ts +0 -144
  675. package/src/internal/turn-outbox.ts +0 -77
  676. package/src/internal/update-check.ts +0 -517
  677. package/src/internal/v2-hosting.ts +0 -52
  678. package/src/internal/workspace-sync.ts +0 -114
  679. package/src/internal/workspace.ts +0 -505
  680. package/src/kv/memory-kv.ts +0 -94
  681. package/src/kv.ts +0 -18
  682. package/src/memory.ts +0 -487
  683. package/src/otel-public.ts +0 -24
  684. package/src/otel.ts +0 -320
  685. package/src/prompt.ts +0 -80
  686. package/src/reminders.ts +0 -65
  687. package/src/schedules.ts +0 -31
  688. package/src/skills.ts +0 -27
  689. package/src/storage-backends/cursor-hosted-v2.ts +0 -204
  690. package/src/storage-backends/cursor-hosted.ts +0 -388
  691. package/src/storage-backends/file-kv.ts +0 -276
  692. package/src/storage-protocol.ts +0 -261
  693. package/src/storage.ts +0 -408
  694. package/src/tools.ts +0 -166
  695. package/src/types.ts +0 -3766
  696. /package/dist/docs/assets/{reference_agent-config.md.DzGI777n.lean.js → reference_agent-config.md.Cj5uBKp4.lean.js} +0 -0
  697. /package/dist/docs/assets/{reference_artifacts.md.CFMNPreZ.lean.js → reference_artifacts.md.CQfKq8F2.lean.js} +0 -0
@@ -1,787 +0,0 @@
1
- /**
2
- * Types for the Slack platform channel pack.
3
- */
4
-
5
- import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
6
- import type {
7
- AgentCloudOptions,
8
- ArtifactsApi,
9
- AuthContext,
10
- ChannelEventHandlers,
11
- HostContext,
12
- } from "../../types.js";
13
- import type { SlackReplyFooter } from "./footer.js";
14
-
15
- export type { SlackReplyFooter, SlackReplyFooterContext } from "./footer.js";
16
-
17
- /**
18
- * Pluggable Slack Web API caller. Instead of holding a raw `xoxb-…` token,
19
- * calls are executed by `call`. Implementations return the Slack response
20
- * body (including `ok: false` platform errors) and only throw on
21
- * programmer error.
22
- */
23
- export interface SlackApiTransport {
24
- kind: "api-transport";
25
- /** Human-readable transport label for logs. */
26
- label: string;
27
- call(method: string, args: Record<string, unknown>): Promise<Record<string, unknown>>;
28
- }
29
-
30
- /** Bot token as a string, a (possibly async) resolver, or an API transport. */
31
- export type SlackBotToken = string | (() => string | Promise<string>) | SlackApiTransport;
32
-
33
- export interface SlackCredentials {
34
- /**
35
- * Bot user OAuth token (`xoxb-…`), or a {@link SlackApiTransport} that
36
- * executes Web API calls without a local token. When omitted, falls back
37
- * to `SLACK_BOT_TOKEN` (or `{envPrefix}_SLACK_BOT_TOKEN` via
38
- * {@link SlackChannelOptions.envPrefix}).
39
- */
40
- botToken?: SlackBotToken;
41
- /**
42
- * App-level token (`xapp-…`) for Socket Mode. Requires scope
43
- * `connections:write`. Same fallback rules as `botToken`.
44
- */
45
- appToken?: string | (() => string | Promise<string>);
46
- }
47
-
48
- /** Per-session Slack adapter state. */
49
- export interface SlackChannelState {
50
- channelId: string | null;
51
- threadTs: string | null;
52
- teamId: string | null;
53
- triggeringUserId: string | null;
54
- pendingToolCallMessage: string | null;
55
- lastReasoningTypingAtMs: number | null;
56
- lastReasoningTypingStatus: string | null;
57
- /** Active chat stream message ts (`chat.startStream`). */
58
- streamTs: string | null;
59
- /** Channel id used when the stream was started. */
60
- streamChannelId?: string | null;
61
- /** Last assistant text delivered to the thread (stream or postMessage). */
62
- lastPostedText?: string | null;
63
- /**
64
- * Text of the current assistant block already written into the open stream.
65
- * The harness restarts its cumulative text at every tool boundary, so the
66
- * append delta cannot be measured against {@link lastPostedText}.
67
- */
68
- streamBlockText?: string | null;
69
- /**
70
- * Slack message ts of the agent's last delivered reply in this thread.
71
- * Warm turns use this as the `<slack_thread_delta>` watermark.
72
- */
73
- lastBotMessageTs?: string | null;
74
- /** Admission already posted the static placeholder; execution must not post it again. */
75
- placeholderPosted?: boolean;
76
- /**
77
- * When true, stream APIs failed for this session — use postMessage
78
- * for the rest of the turn.
79
- */
80
- streamingUnavailable?: boolean;
81
- /** The open stream hit Slack's size cap; appends stop until it closes. */
82
- streamFull?: boolean;
83
- /** Chunks Slack accepted on the open stream, reported when it closes. */
84
- streamAppendedChunks?: number;
85
- /** Editable progress message ts when `chat.startStream` is unavailable. */
86
- progressTs: string | null;
87
- /**
88
- * Message ts of approval cards keyed by tool call id (for
89
- * replacing Approve/Deny buttons after a decision).
90
- */
91
- approvalMessageByCallId?: Record<string, string>;
92
- /** `reply.reasoningCard` bookkeeping for the current turn. */
93
- reasoningCard?: ReasoningCardState;
94
- /** `reply.toolCards` per-tool tallies for the current turn, keyed by tool name. */
95
- toolCardCounts?: Record<string, ToolCardCount>;
96
- /** Staged `post-file` uploads this turn (`agentic`). */
97
- agenticFiles?: Array<{ path: string; name: string; workspace: string }>;
98
- /** Inbound already started ack + chip; `turn.started` skips the backstop. */
99
- startPainted?: boolean;
100
- /** `Date.now()` at `turn.started`. Footer elapsed time is measured from this. */
101
- turnStartedAtMs?: number | null;
102
- }
103
-
104
- /**
105
- * Slack appends a task card's `details` across updates, so the reasoning
106
- * card is fed deltas: `blockSent` is how much of the current reasoning block
107
- * is already on Slack, `pending` is buffered text awaiting a flush.
108
- */
109
- export interface ReasoningCardState {
110
- status: "in_progress" | "complete" | null;
111
- blockSent: number | null;
112
- pending: string;
113
- lastFlushMs: number | null;
114
- chars: number;
115
- }
116
-
117
- /**
118
- * `details` / `output` count the lines already on the card, so a later
119
- * batch can start on a new line (Slack appends updates verbatim).
120
- */
121
- export interface ToolCardCount {
122
- started: number;
123
- done: number;
124
- errors: number;
125
- details?: number;
126
- output?: number;
127
- }
128
-
129
- /** A tool call as the model requested it (`actions.requested`). */
130
- export interface SlackToolCall {
131
- callId: string;
132
- toolName: string;
133
- args?: unknown;
134
- }
135
-
136
- /** A finished tool call (`action.result`). */
137
- export interface SlackToolResult {
138
- callId: string;
139
- toolName: string;
140
- output?: unknown;
141
- isError: boolean;
142
- }
143
-
144
- /**
145
- * What the status chip under the thread shows while a turn runs. Slack caps
146
- * each line at 50 characters. While a `chat.startStream` is open Slack shows
147
- * its own generic "is working…" instead, so in `"stream"` mode these lines
148
- * are only visible until the first chunk goes out.
149
- */
150
- export interface SlackStatusOptions {
151
- /** First line of each reasoning block, throttled. Defaults to `true`. */
152
- reasoning?: boolean;
153
- /**
154
- * Tool calls as they start: `"Running grep, glob…"` (tool names through
155
- * {@link SlackChannelOptions.toolLabels}), or your own line. Defaults to
156
- * `true`.
157
- */
158
- tools?: boolean | ((calls: readonly SlackToolCall[]) => string);
159
- /**
160
- * Rotation Slack cycles through while nothing more specific is known
161
- * (turn start, long silent stretches). Up to 5 entries. Defaults to
162
- * Thinking… / Working on it… / Almost there….
163
- */
164
- idle?: readonly string[];
165
- }
166
-
167
- export type SlackToolCardGroup = "per-call" | "per-tool";
168
-
169
- /**
170
- * Task cards for tool calls inside the streamed reply. Slack appends each
171
- * update's `details` / `output` to the card, so the callbacks return the
172
- * text to add, not the full card.
173
- */
174
- export interface SlackToolCardOptions {
175
- /**
176
- * `"per-tool"` (default) keeps one card per tool name and counts calls in
177
- * the title (`grep ×3`). `"per-call"` shows one card per call.
178
- */
179
- group?: SlackToolCardGroup;
180
- /**
181
- * `true` (default): cards expand to show one line per call, the way the
182
- * reasoning card does. `false`: cards are their titles only.
183
- */
184
- collapsible?: boolean;
185
- /**
186
- * The line a collapsible card shows for a call. Defaults to what the
187
- * playground shows in that tool's header: the grep pattern, the file
188
- * path, the shell command.
189
- */
190
- details?: (call: SlackToolCall) => string | undefined;
191
- /** Text appended to a collapsible card when a call finishes. */
192
- output?: (result: SlackToolResult) => string | undefined;
193
- }
194
-
195
- /**
196
- * One task card that receives the model's reasoning as it streams. Its
197
- * status is `in_progress` while the model thinks and `complete` once the
198
- * answer text starts.
199
- */
200
- export interface SlackReasoningCardOptions {
201
- /** Card title. Defaults to `"Thinking"`. */
202
- title?: string;
203
- /**
204
- * Stop appending after this many characters. Defaults to 1500: Slack caps
205
- * a streamed message (answer text plus cards) near 12k, so a long card
206
- * shortens the answer that fits before the reply spills into a second
207
- * message.
208
- */
209
- maxChars?: number;
210
- }
211
-
212
- /**
213
- * How the reply reaches the thread while the turn runs.
214
- *
215
- * - `"post"` (default): live feedback is the status chip; the answer lands
216
- * as one message when the turn finishes.
217
- * - `"stream"`: the answer text streams into one message as it is written.
218
- * Slack replaces the status chip with its generic "is working…" for the
219
- * duration, so live feedback inside the message comes from cards.
220
- * - `"agentic"`: inbound still starts turns. At turn start the channel
221
- * acks the parent and raises the thinking chip, then paints thinking
222
- * from `reasoning.appended` and tool lines from `actions.requested`
223
- * (last assistant line before a `tool_call` wins when present).
224
- * Model `set-status` does not own the chip. It does not write tool
225
- * cards, reasoning cards, or assistant text. It watches `post-update`,
226
- * `post-file`, `post-card`, `react`, `edit-message`, and
227
- * `delete-message` and renders those.
228
- */
229
- export type SlackReplyOptions =
230
- | {
231
- mode: "post";
232
- status?: SlackStatusOptions;
233
- footer?: SlackReplyFooter;
234
- }
235
- | {
236
- mode: "stream";
237
- status?: SlackStatusOptions;
238
- /** Defaults to `false`. `true` is `{ group: "per-tool" }`. */
239
- toolCards?: boolean | SlackToolCardOptions;
240
- /** Defaults to `false`. */
241
- reasoningCard?: boolean | SlackReasoningCardOptions;
242
- footer?: SlackReplyFooter;
243
- }
244
- | {
245
- mode: "agentic";
246
- /**
247
- * Reaction on the parent at turn start. Slack name, with or without
248
- * colons. Default `eyes`.
249
- */
250
- ack?: string;
251
- /**
252
- * Post this exact static line as the first message (`chat.startStream`
253
- * when Slack allows, then `stopStream` so the chip can paint). The
254
- * first `post-update` edits that same ts. Maximum 80 characters.
255
- */
256
- placeholder?: string;
257
- /** Chip while the turn runs. Reasoning and tools default on. Idle is ignored. */
258
- status?: Omit<SlackStatusOptions, "idle">;
259
- footer?: SlackReplyFooter;
260
- };
261
-
262
- /**
263
- * Human labels for tool names, shared by the status chip and the cards.
264
- * A function may return `undefined` to keep the raw tool name.
265
- */
266
- export type SlackToolLabels =
267
- | Readonly<Record<string, string>>
268
- | ((toolName: string) => string | undefined);
269
-
270
- export interface SlackAuthor {
271
- /** Slack user id. Empty string for bot posts with no `user` field. */
272
- userId: string;
273
- userName?: string;
274
- isBot: boolean;
275
- /** Posting app's `bot_id` (`B…`) when the message is bot-authored. */
276
- botId?: string;
277
- }
278
-
279
- export interface SlackReactionAddedInfo {
280
- /** Slack reaction name without surrounding colons. */
281
- name: string;
282
- /** User id of the message author, when Slack includes it. */
283
- itemUserId?: string;
284
- }
285
-
286
- /**
287
- * Delegation metadata carried on bot-to-bot mention posts (Slack message
288
- * `metadata`, event type {@link SLACK_DELEGATION_METADATA_EVENT_TYPE}).
289
- * Absent on posts from bots that don't speak the protocol — the gate then
290
- * treats the mention as depth 1.
291
- */
292
- export interface SlackDelegationInfo {
293
- /** Delegation hop count. A dispatcher woken by a human posts depth 1. */
294
- depth: number;
295
- /** Mount slug / display name of the delegating agent. */
296
- fromAgent?: string;
297
- /** Session id on the delegating agent, for cross-agent tracing. */
298
- originSessionId?: string;
299
- }
300
-
301
- /** File upload on an inbound Slack message (see {@link SlackMessage.files}). */
302
- export interface SlackMessageFile {
303
- id: string;
304
- name?: string;
305
- title?: string;
306
- mimetype?: string;
307
- filetype?: string;
308
- mode?: string;
309
- size?: number;
310
- /**
311
- * When set, bytes were already downloaded by the caller. Skip a second
312
- * `files.info` / private URL fetch.
313
- */
314
- dataBase64?: string;
315
- }
316
-
317
- export interface SlackMessage {
318
- /** Raw top-level `text` exactly as Slack sent it. Often empty on bot posts. */
319
- text: string;
320
- /**
321
- * Raw mrkdwn body: top-level `text` plus attachment / Block Kit content.
322
- * Alert feeds (Datadog, PagerDuty) leave `text` empty and put the whole
323
- * notification in attachments, so read `body` for message content. Unlike
324
- * {@link markdown} this keeps `<url|label>` links intact.
325
- */
326
- body: string;
327
- /** Body roughly suitable for the model (mention markers cleaned). */
328
- markdown: string;
329
- ts: string;
330
- threadTs: string;
331
- channelId: string;
332
- teamId?: string;
333
- author?: SlackAuthor;
334
- /** Present only for a synthetic message dispatched from `reaction_added`. */
335
- reaction?: SlackReactionAddedInfo;
336
- /** Parsed delegation metadata when the post carried it (bot mentions). */
337
- delegation?: SlackDelegationInfo;
338
- /**
339
- * Slack file uploads on this message (top-level + forwarded shares).
340
- * Downloaded during dispatch into vision images / workspace files.
341
- */
342
- files?: SlackMessageFile[];
343
- }
344
-
345
- export interface SlackDispatchDecision {
346
- auth: AuthContext | null;
347
- /** Extra context blocks injected alongside the default Slack context. */
348
- context?: string[];
349
- /**
350
- * Override the user prompt sent to the model. When omitted, uses the Slack
351
- * message markdown (plus context blocks). Host-prepared reviews can pass
352
- * a short "read pr.txt" prompt here.
353
- */
354
- message?: string;
355
- /**
356
- * Absolute directory used as the local harness `cwd` for this session
357
- * (new sessions only).
358
- */
359
- workspaceDir?: string;
360
- /**
361
- * Relative path → contents written into the session workspace before the
362
- * first turn (new sessions only). Prefer this for host-prepared files like
363
- * `pr.txt` so default skill materialization stays on the session cwd.
364
- * Values may be utf8 strings or `{ encoding: "base64", data }` blobs.
365
- */
366
- workspaceFiles?: Record<string, string | { encoding: "base64"; data: string; mimeType?: string }>;
367
- /**
368
- * Base64 images attached to this turn for vision (Cursor SDK `images`).
369
- * Populated automatically from Slack file uploads during inbound dispatch.
370
- */
371
- images?: Array<{ data: string; mimeType: string }>;
372
- /** Session display title (new sessions only). */
373
- title?: string;
374
- /**
375
- * Per-session cloud options (new sessions only). Use this to attach a PR to
376
- * a cloud agent from an inbound Slack mention.
377
- */
378
- cloud?: AgentCloudOptions;
379
- /**
380
- * Seed the Cursor SDK agent id for a new session (ignored when the thread
381
- * already has one). Lets a handler reattach a Slack thread to an existing
382
- * cloud conversation (e.g. per-PR `bc-…` affinity).
383
- */
384
- sdkAgentId?: string;
385
- /**
386
- * Additional Slack message timestamps to omit from `<slack_thread>` hydration
387
- * (e.g. every message in a coalesced batch already folded into `message`).
388
- */
389
- excludeThreadTimestamps?: readonly string[];
390
- }
391
-
392
- export interface SlackSuggestedPrompt {
393
- title: string;
394
- message: string;
395
- }
396
-
397
- export interface SlackThreadHandle {
398
- post(text: string, options?: { blocks?: unknown[] }): Promise<{ ts: string }>;
399
- startTyping(status: string, loadingMessages?: string[]): Promise<void>;
400
- setTitle(title: string): Promise<void>;
401
- setSuggestedPrompts(prompts: SlackSuggestedPrompt[], title?: string): Promise<void>;
402
- }
403
-
404
- export interface SlackBinding {
405
- thread: SlackThreadHandle;
406
- slack: {
407
- channelId: string;
408
- threadTs: string;
409
- teamId?: string;
410
- };
411
- /** Shared host services (MCP / GitHub / Slack). */
412
- host: HostContext;
413
- /**
414
- * Durable artifacts (unbound — the handler runs before any session is
415
- * admitted; pass `sessionId` in `tag` input to attribute one).
416
- */
417
- artifacts: ArtifactsApi;
418
- }
419
-
420
- export type SlackMessageHandler = (
421
- ctx: SlackBinding,
422
- message: SlackMessage,
423
- ) => SlackDispatchDecision | null | undefined | Promise<SlackDispatchDecision | null | undefined>;
424
-
425
- /**
426
- * Host probes into a Slack thread's continuation. Optional on dispatch
427
- * deps; the serve host wires them at channel start.
428
- */
429
- export interface SlackContinuationProbes {
430
- /**
431
- * When set, full-thread hydration runs only for cold-start turns (no
432
- * existing session). Warm turns load a `<slack_thread_delta>` instead.
433
- */
434
- hasContinuationSession?: (continuationToken: string) => Promise<boolean>;
435
- /** True when a turn is already running for this Slack continuation. */
436
- isContinuationBusy?: (continuationToken: string) => Promise<boolean>;
437
- /**
438
- * Warm-delta watermark from session channel state (`lastBotMessageTs`).
439
- * When absent, delta falls back to the last matching bot post in-thread.
440
- */
441
- getContinuationLastBotMessageTs?: (continuationToken: string) => Promise<string | undefined>;
442
- /** Cancel the active turn + clear coalesced nudges for this continuation. */
443
- interruptContinuation?: (continuationToken: string) => Promise<boolean>;
444
- }
445
-
446
- /**
447
- * A Block Kit action click (Socket Mode `block_actions` payload) that the
448
- * framework does not own — the built-in tool-approval Approve/Deny actions
449
- * are routed to `resolveApproval` before author handlers see anything.
450
- */
451
- export interface SlackBlockAction {
452
- /** `action_id` of the clicked element. */
453
- actionId: string;
454
- /** `block_id` of the actions row holding the element (Slack always sets one). */
455
- blockId: string;
456
- /**
457
- * Element `value` payload; empty string when absent (button-style
458
- * elements only — select/overflow `selected_option`s are not read).
459
- */
460
- value: string;
461
- /** Plain-text label of the clicked element, when present. */
462
- label?: string;
463
- channelId: string;
464
- /**
465
- * Thread of the message carrying the element (the message's own ts when
466
- * it is a top-level post — clicks on a thread root stay in its thread).
467
- */
468
- threadTs: string;
469
- /** The message carrying the clicked element. */
470
- messageTs: string;
471
- /** That message's blocks, for `chat.update` resolution cards. */
472
- messageBlocks?: unknown[];
473
- /** Slack user who clicked. */
474
- userId: string;
475
- userName?: string;
476
- teamId?: string;
477
- /**
478
- * Slack `action_ts` — unique per click; block-action dispatch dedupes on
479
- * it. Empty when the payload omitted it (malformed; never dispatched).
480
- */
481
- actionTs: string;
482
- }
483
-
484
- /**
485
- * Author handler for {@link SlackBlockAction} clicks. Return a
486
- * {@link SlackDispatchDecision} to dispatch a turn on the click's thread —
487
- * the click is dispatched like an inbound message from the clicking user
488
- * (thread-scoped continuation, `<slack_context>` naming the clicker) — or
489
- * `null` to ignore the click.
490
- */
491
- export type SlackBlockActionHandler = (
492
- ctx: SlackBinding,
493
- action: SlackBlockAction,
494
- ) => SlackDispatchDecision | null | undefined | Promise<SlackDispatchDecision | null | undefined>;
495
-
496
- /**
497
- * Opt-in channel watch: dispatch on posts in configured channels without an
498
- * @mention. Mentions stay global (any channel the bot is in). Listening
499
- * without a mention names its channels, or `"*"` for every channel the bot
500
- * is in — thread replies only.
501
- */
502
- export interface SlackChannelPostsOptions {
503
- /**
504
- * Channels to watch. Either a lone `"*"` (every channel the bot is in;
505
- * thread replies only — set `posts: "replies"`) or a finite list: at
506
- * least one channel id (`C…` / `G…`), at most 10 distinct ids. Mixing
507
- * `"*"` with ids is a definition error. `#name` entries may accompany
508
- * ids (resolved via `conversations.list` on Socket Mode). On
509
- * Cursor-managed hosting, id entries become channel-scoped
510
- * subscriptions. A lone `"*"` is the guest watcher only: it is omitted
511
- * from the deploy manifest, and a thread reply is delivered when a
512
- * mention already opened that thread. The bot must be a member of a
513
- * channel to receive its messages.
514
- */
515
- allow: string[];
516
- /**
517
- * Which posts dispatch. `"top-level"` (default) fires only on new
518
- * channel posts — never on replies inside other people's threads.
519
- * `"replies"` is the opposite: thread replies only (`ts !== threadTs`),
520
- * never a top-level post. `"all"` is both. A lone `"*"` allowlist
521
- * requires `"replies"`.
522
- */
523
- posts?: "top-level" | "all" | "replies";
524
- /**
525
- * Delay dispatch by this many milliseconds so rapid edits settle first.
526
- * Edits during the window update the dispatched text; deleting the post
527
- * cancels the dispatch. Defaults to `0` (immediate). Socket Mode only —
528
- * the Cursor relay does not deliver edits/deletes.
529
- */
530
- debounceMs?: number;
531
- /**
532
- * Also dispatch bot-authored posts (alert feeds, webhook integrations,
533
- * other agents posting notes). Defaults to `false` — human posts only.
534
- * The watching bot's own posts are always dropped regardless (loop
535
- * safety), matched by the app's `bot_id` / bot user id from `auth.test`.
536
- */
537
- includeBotPosts?: boolean;
538
- }
539
-
540
- /**
541
- * Opt-in bot-to-bot mention wake: allow @mentions authored by explicitly
542
- * trusted bots (e.g. a dispatcher agent) to dispatch like human mentions.
543
- * Default off — bot-authored mentions are dropped (loop safety). There is
544
- * deliberately no "any bot" wildcard; trusting a bot is a per-bot decision.
545
- *
546
- * Loop protection is layered: this allowlist, the always-on own-post
547
- * filter, a delegation-depth budget (Slack message metadata), and a
548
- * per-thread wake budget.
549
- */
550
- export interface SlackBotMentionsOptions {
551
- /**
552
- * Bots whose mentions may wake this agent. Three entry forms:
553
- *
554
- * - `"B…"` — a `bot_id` (dedicated Slack app).
555
- * - `"U…"` — a bot *user* id.
556
- * - `"<botId>:<username>"` — compound: the posting app's `bot_id` AND its
557
- * message `username` must both match (case-insensitive username). Use
558
- * this when several agents post through one app under different
559
- * usernames. Fails closed when the event carries no username.
560
- *
561
- * Must be non-empty (empty is a definition error).
562
- */
563
- allowFrom: string[];
564
- /**
565
- * Maximum delegation depth admitted (from the mention's delegation
566
- * metadata; mentions without metadata count as depth 1). Defaults to 2 —
567
- * human → dispatcher → specialist, no deeper chains.
568
- */
569
- maxDepth?: number;
570
- /**
571
- * Maximum bot-initiated wakes per thread per hour (sliding window).
572
- * Defaults to 5. Rate-limits ping-pong between bots that carry no
573
- * delegation metadata; termination comes from {@link maxPerThreadTotal}.
574
- */
575
- maxPerThreadPerHour?: number;
576
- /**
577
- * Lifetime cap on bot-initiated wakes per thread (resets only after the
578
- * thread has been idle for 24h). Defaults to 20. This is the terminating
579
- * backstop: a sliding window alone refills, so two mutually-allowlisted
580
- * bots could ping-pong forever at the rate cap. Avoid mutual allowlists
581
- * regardless — keep the delegation graph a DAG.
582
- */
583
- maxPerThreadTotal?: number;
584
- }
585
-
586
- /**
587
- * How the agent engages over Slack. Omitted entirely = mentions + DMs,
588
- * which is also the default for each flag — summoned, never proactive.
589
- */
590
- export interface SlackEngagementOptions {
591
- /** Dispatch on `app_mention`. Defaults to `true`. */
592
- mentions?: boolean;
593
- /** Dispatch on direct messages (`message.im`). Defaults to `true`. */
594
- directMessages?: boolean;
595
- /**
596
- * Opt-in channel watch (see {@link SlackChannelPostsOptions}). Requires
597
- * the Slack app to subscribe to `message.channels` / `message.groups`
598
- * (`slack create --channel-posts`).
599
- */
600
- channelPosts?: SlackChannelPostsOptions;
601
- /**
602
- * Opt-in bot-to-bot mention wake (see {@link SlackBotMentionsOptions}).
603
- */
604
- botMentions?: SlackBotMentionsOptions;
605
- }
606
-
607
- /** `"thread"` = anyone in the thread (default); `"author"` = session starter only. */
608
- export type SlackRespondTo = "thread" | "author";
609
-
610
- export interface SlackAccessPolicy {
611
- /** Defaults to `"thread"`. Applied by the default inbound handlers. */
612
- respondTo?: SlackRespondTo;
613
- /** Refuse Slack Connect / guest / other-workspace senders. Defaults to `true`. */
614
- blockExternals?: boolean;
615
- }
616
-
617
- export interface SlackChannelOptions {
618
- credentials?: SlackCredentials;
619
- /**
620
- * Continuation selector. Omit this to inherit the agent architecture's
621
- * default. Set it explicitly only when migrating persisted identities.
622
- */
623
- continuation?: ContinuationIdentity;
624
- /** Defaults to `{ respondTo: "thread", blockExternals: true }`. */
625
- policy?: SlackAccessPolicy;
626
- /**
627
- * Per-agent env prefix for tokens. `envPrefix: "MY_AGENT"` reads
628
- * `MY_AGENT_SLACK_BOT_TOKEN` + `MY_AGENT_SLACK_APP_TOKEN`. Prefer this over
629
- * shared `SLACK_*` vars when serving multiple agents in one process.
630
- * Ignored when `credentials` is set explicitly.
631
- */
632
- envPrefix?: string;
633
- /**
634
- * Optional log sink. When omitted, uses `console.log` until the server
635
- * mounts the channel and rebinds to {@link ServeOptions.logger}.
636
- */
637
- logger?: (line: string) => void;
638
- /**
639
- * Engagement surface. Defaults to mentions + DMs only; channel watch is
640
- * opt-in via {@link SlackEngagementOptions.channelPosts}.
641
- */
642
- engagement?: SlackEngagementOptions;
643
- onAppMention?: SlackMessageHandler;
644
- onDirectMessage?: SlackMessageHandler;
645
- /**
646
- * Handler for Socket Mode `reaction_added` events on messages. The Slack
647
- * app must subscribe to `reaction_added` and have `reactions:read`.
648
- * The handler receives a synthetic message whose thread timestamp is the
649
- * reacted-to message and whose {@link SlackMessage.reaction} names the emoji.
650
- */
651
- onReactionAdded?: SlackMessageHandler;
652
- /**
653
- * Handler for watched channel posts (same contract as `onAppMention`:
654
- * return `null` to skip, or a {@link SlackDispatchDecision} to dispatch).
655
- * Only consulted when `engagement.channelPosts` is configured.
656
- */
657
- onChannelPost?: SlackMessageHandler;
658
- /**
659
- * Override / extend the default stream-event handlers (typing, replies).
660
- * Handlers you provide replace the matching default handlers.
661
- */
662
- events?: ChannelEventHandlers<SlackChannelState>;
663
- /**
664
- * When true (default), install the default turn sinks for `post` and
665
- * `stream`, or the signal watcher for `agentic`.
666
- */
667
- deliverDefaults?: boolean;
668
- /**
669
- * How the reply reaches the thread: status chip + one message at the end
670
- * (`"post"`, default), a live-streamed message with optional tool and
671
- * reasoning cards (`"stream"`), or agent-owned posts (`"agentic"`).
672
- * See {@link SlackReplyOptions}.
673
- */
674
- reply?: SlackReplyOptions;
675
- /** Human labels for tool names in the status chip and cards. */
676
- toolLabels?: SlackToolLabels;
677
- /**
678
- * @deprecated Use `reply: { mode: "stream" }` / `reply: { mode: "post" }`.
679
- * Ignored when `reply` is set.
680
- */
681
- streaming?: boolean;
682
- /**
683
- * @deprecated Use `reply: { mode: "stream", toolCards: true }`. Ignored
684
- * when `reply` is set.
685
- */
686
- thinkingSteps?: boolean;
687
- /**
688
- * Write Slack's assistant status chip ("Saw your follow-up…") when a
689
- * follow-up coalesces into a running turn. Defaults to `true`, except
690
- * when `reply.mode` is `"agentic"`.
691
- *
692
- * Set to `false` on channels that report progress themselves: the chip is
693
- * cleared by the default `message.completed` handler, so a channel that
694
- * replaces that handler has nothing to take it down and it outlives the
695
- * turn.
696
- */
697
- followUpStatus?: boolean;
698
- /**
699
- * Opt in to Slack delivery for human-in-the-loop tool approvals.
700
- *
701
- * Framework park/resume is enabled by `needsApproval` on server tools.
702
- * Set this to `true` to also post Block Kit Approve/Deny cards and route
703
- * the Socket Mode `interactive` clicks to `resolveApproval`.
704
- *
705
- * Defaults to `false`. For custom composition, spread
706
- * `buildToolApprovalEvents({ credentials })` into `events`.
707
- */
708
- toolApprovals?: boolean;
709
- /**
710
- * Route interactive payloads to approval resolution without opting into
711
- * the full {@link buildToolApprovalEvents} handler pack. Use when
712
- * composing `buildToolApprovalEvents` into `events` manually.
713
- */
714
- interactivity?: boolean;
715
- /**
716
- * Handler for Block Kit actions the framework does not own (the built-in
717
- * tool-approval Approve/Deny clicks are routed to `resolveApproval`
718
- * first). Return a {@link SlackDispatchDecision} — typically with a
719
- * thread-scoped auth via `buildSlackAuthContext` so replies in the same
720
- * thread continue the session — to dispatch a turn on the click's
721
- * thread, or `null` to ignore the click. Setting this implies
722
- * interactive routing; the Slack app manifest still needs
723
- * `interactivity` enabled (`buildSlackManifest({ interactivity: true })`).
724
- */
725
- onBlockAction?: SlackBlockActionHandler;
726
- /**
727
- * Suggested prompts shown when an assistant thread starts (and optionally
728
- * after a turn completes).
729
- */
730
- suggestedPrompts?: SlackSuggestedPrompt[];
731
- suggestedPromptsTitle?: string;
732
- /**
733
- * @deprecated Use `reply: { mode, status: { idle: [...] } }`. Ignored when
734
- * `reply` is set.
735
- */
736
- loadingMessages?: string[];
737
- /**
738
- * Built-in Slack `eval` / `eval list` / `eval status` directive that runs
739
- * playground eval batches (`host.evals` / `/v1/dev/evals/runs`) without an
740
- * agent turn, on mentions and DMs only. Defaults to `true`. Set `false` to
741
- * leave `eval …` for the model handler instead.
742
- */
743
- evalCommands?: boolean;
744
- /** Optional teardown (e.g. stop example-local debouncers). Runs after Socket Mode stops. */
745
- onStop?: () => void | Promise<void>;
746
- }
747
-
748
- export interface SlackManifestOptions {
749
- /** Display name for the Slack app. */
750
- name: string;
751
- /** Bot display name (handle without @). Defaults from `name`. */
752
- botDisplayName?: string;
753
- /** Env profile. Affects display name suffix. */
754
- env: "dev" | "prod";
755
- /** Optional short description shown in the Slack app directory. Slack caps this at 140 characters. */
756
- description?: string;
757
- /**
758
- * Slack agent profile (`features.agent_view.agent_description`).
759
- * Defaults to `description`. Separate from the 140-character marketplace line.
760
- */
761
- agentDescription?: string;
762
- /** Include `agent_view` + `assistant:write` for typing status. */
763
- assistant?: boolean;
764
- /**
765
- * Enable Slack interactivity (needed for Approve/Deny cards).
766
- * Defaults to `false` — enable when using `toolApprovals: true`.
767
- */
768
- interactivity?: boolean;
769
- /**
770
- * Subscribe to `message.channels` + `message.groups` for the opt-in
771
- * channel watch (`engagement.channelPosts`). Defaults to `false`.
772
- */
773
- channelPosts?: boolean;
774
- /** Seed suggested prompts into the manifest `agent_view`. */
775
- suggestedPrompts?: Array<{ title: string; message: string }>;
776
- /**
777
- * Emit `settings.managed_app_settings`. Defaults to `true` — Cursor
778
- * provisions these apps through its manager app. Pass `false` when the
779
- * caller is not a manager user token.
780
- */
781
- managedByCursor?: boolean;
782
- }
783
-
784
- /** Soft-fail result for optional Slack API features. */
785
- export type SoftSlackResult<T extends Record<string, unknown> = Record<string, unknown>> =
786
- | ({ ok: true } & T)
787
- | { ok: false; error: string; unsupported?: boolean };