@cursor/july 0.1.113 → 0.2.0

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 (278) hide show
  1. package/dist/channels/slack/inbound.d.ts +7 -0
  2. package/dist/channels/slack/inbound.d.ts.map +1 -1
  3. package/dist/channels/slack/inbound.js +23 -0
  4. package/dist/channels/slack/slack-channel.d.ts.map +1 -1
  5. package/dist/channels/slack/slack-channel.js +83 -4
  6. package/dist/docs/404.html +2 -2
  7. package/dist/docs/assets/{app.CAeK13eM.js → app.9eAtsjAM.js} +4 -4
  8. package/dist/docs/assets/chunks/@localSearchIndexroot.DjNBgxTF.js +1 -0
  9. package/dist/docs/assets/chunks/{VPLocalSearchBox.C9LbPHod.js → VPLocalSearchBox.C9s69nxj.js} +1 -1
  10. package/dist/docs/assets/chunks/{arc.CmMq2zmS.js → arc.DmWDRaF-.js} +1 -1
  11. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CCXB8Uj5.js → architectureDiagram-Q4EWVU46.BE1Wj4f3.js} +1 -1
  12. package/dist/docs/assets/chunks/{baseUniq.CyQo6eLe.js → baseUniq.pmEZGnWu.js} +1 -1
  13. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.JYq6w91N.js → blockDiagram-DXYQGD6D.D6mM-5XN.js} +1 -1
  14. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BRV8GPJJ.js → c4Diagram-AHTNJAMY.ZQYTPC1b.js} +1 -1
  15. package/dist/docs/assets/chunks/channel.BNF8VK-B.js +1 -0
  16. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Bv4ooYQR.js → chunk-4BX2VUAB.CKJ7gaK8.js} +1 -1
  17. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.t4JtKPcj.js → chunk-4TB4RGXK.CL61HnvB.js} +1 -1
  18. package/dist/docs/assets/chunks/{chunk-55IACEB6.34lCHj9Y.js → chunk-55IACEB6.DsA4XA1m.js} +1 -1
  19. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BSwrPNrt.js → chunk-EDXVE4YY.BODHCHFW.js} +1 -1
  20. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.Beeun-R-.js → chunk-FMBD7UC4.D6NBaZTa.js} +1 -1
  21. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BUUFUcJc.js → chunk-OYMX7WX6.BLPuqFXg.js} +1 -1
  22. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.B2XjHzN_.js → chunk-QZHKN3VN.BFs_ML8Z.js} +1 -1
  23. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CLYG8znk.js → chunk-YZCP3GAM.BDjuFyZv.js} +1 -1
  24. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.iViHzfrK.js +1 -0
  25. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.iViHzfrK.js +1 -0
  26. package/dist/docs/assets/chunks/clone.CJoR2BBM.js +1 -0
  27. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.DVEa6fZp.js → cose-bilkent-S5V4N54A.D85HNEsi.js} +1 -1
  28. package/dist/docs/assets/chunks/{dagre-KV5264BT.C9PZQK-S.js → dagre-KV5264BT.V463KlSF.js} +1 -1
  29. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DoN0uv3Y.js → diagram-5BDNPKRD.DhBDu1ab.js} +1 -1
  30. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.Czv3duqx.js → diagram-G4DWMVQ6.v6sC68zl.js} +1 -1
  31. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BinJ5kWb.js → diagram-MMDJMWI5.DhHsdXYv.js} +1 -1
  32. package/dist/docs/assets/chunks/{diagram-TYMM5635.DW326M4K.js → diagram-TYMM5635.BPWNSFZc.js} +1 -1
  33. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.U2pR_OA7.js → erDiagram-SMLLAGMA.Cq0wTMPL.js} +1 -1
  34. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.ByWJXeYK.js → flowDiagram-DWJPFMVM.MveMtucC.js} +1 -1
  35. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.OquF0Rtg.js → ganttDiagram-T4ZO3ILL.BzKfGUSf.js} +1 -1
  36. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.Bpn01P7X.js → gitGraphDiagram-UUTBAWPF.OToXTSW_.js} +1 -1
  37. package/dist/docs/assets/chunks/{graph.CNRB6ETL.js → graph.D82tam-l.js} +1 -1
  38. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.CqhknMWi.js → infoDiagram-42DDH7IO.DzFlRmcE.js} +1 -1
  39. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.C6xpR2af.js → ishikawaDiagram-UXIWVN3A.CVPRJiKe.js} +1 -1
  40. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.Cg5f7oB3.js → journeyDiagram-VCZTEJTY.CQvNTfQC.js} +1 -1
  41. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.Cx9YTwlU.js → kanban-definition-6JOO6SKY.BwywywUl.js} +1 -1
  42. package/dist/docs/assets/chunks/{layout.ljS-wFtK.js → layout.C4BkPPba.js} +1 -1
  43. package/dist/docs/assets/chunks/{linear.jSxNrsFC.js → linear.FoSfGKD4.js} +1 -1
  44. package/dist/docs/assets/chunks/{min.Cum8AlQw.js → min.yLh8jqfl.js} +1 -1
  45. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BLiysLpe.js → mindmap-definition-QFDTVHPH.C9Dq2_CN.js} +1 -1
  46. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BoIDyuKF.js → pieDiagram-DEJITSTG.CiGyBcES.js} +1 -1
  47. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DLkpDytR.js → quadrantDiagram-34T5L4WZ.1FWea9nj.js} +1 -1
  48. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DqTVqSu2.js → requirementDiagram-MS252O5E.B1q7ntiV.js} +1 -1
  49. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.CG_6FF7j.js → sankeyDiagram-XADWPNL6.Cpr4oU_k.js} +1 -1
  50. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BIp9602K.js → sequenceDiagram-FGHM5R23.CUK68STn.js} +1 -1
  51. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.COSXsD9I.js → stateDiagram-FHFEXIEX.zU0yL2m4.js} +1 -1
  52. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.nV8Nl-td.js +1 -0
  53. package/dist/docs/assets/chunks/{theme.CXJ7PNwy.js → theme.DhnKd0CD.js} +2 -2
  54. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.CXdVqkLq.js → timeline-definition-GMOUNBTQ.CNYoXo3F.js} +1 -1
  55. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZxGuc4r.js → vennDiagram-DHZGUBPP.DFWH3G9s.js} +1 -1
  56. package/dist/docs/assets/chunks/{wardley-RL74JXVD.3oVgfqQk.js → wardley-RL74JXVD.Do4PwzeN.js} +1 -1
  57. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.6_irCgGJ.js → wardleyDiagram-NUSXRM2D.7WLkqM7s.js} +1 -1
  58. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.TRPe92m3.js → xychartDiagram-5P7HB3ND.-SyUNgWw.js} +1 -1
  59. package/dist/docs/assets/{deployment.md.D2jQZuFx.js → deployment.md.D2YX7u_I.js} +1 -1
  60. package/dist/docs/assets/{guides_agent-to-agent.md.CD4T5FIl.js → guides_agent-to-agent.md.C6kPY8nu.js} +2 -2
  61. package/dist/docs/assets/{guides_cloud-agents.md.Cp1O3u-X.js → guides_cloud-agents.md.BPJqTZjT.js} +1 -1
  62. package/dist/docs/assets/{guides_grokbot-agents.md.CMhZNdEU.js → guides_grokbot-agents.md.CzV715v8.js} +1 -1
  63. package/dist/docs/assets/guides_hooks.md.BT9GLwEp.js +50 -0
  64. package/dist/docs/assets/guides_hooks.md.BT9GLwEp.lean.js +1 -0
  65. package/dist/docs/assets/{guides_jev.md.F5fAkkfN.js → guides_jev.md.DeSCqMaO.js} +6 -44
  66. package/dist/docs/assets/guides_jev.md.DeSCqMaO.lean.js +1 -0
  67. package/dist/docs/assets/{guides_slack.md.Bo96y42E.js → guides_slack.md.DVjNyqq5.js} +3 -3
  68. package/dist/docs/assets/{guides_slack.md.Bo96y42E.lean.js → guides_slack.md.DVjNyqq5.lean.js} +1 -1
  69. package/dist/docs/assets/reference_agent-config.md.BRxAlnRy.js +36 -0
  70. package/dist/docs/assets/{reference_agent-config.md.DGPyw7ms.lean.js → reference_agent-config.md.BRxAlnRy.lean.js} +1 -1
  71. package/dist/docs/assets/reference_artifacts.md.KRX0sAdt.js +18 -0
  72. package/dist/docs/assets/reference_artifacts.md.KRX0sAdt.lean.js +1 -0
  73. package/dist/docs/assets/reference_channels.md.DZr14vm7.js +23 -0
  74. package/dist/docs/assets/reference_channels.md.DZr14vm7.lean.js +1 -0
  75. package/dist/docs/assets/reference_cli.md.BvnQM8wd.js +97 -0
  76. package/dist/docs/assets/reference_cli.md.BvnQM8wd.lean.js +1 -0
  77. package/dist/docs/assets/{reference_connections.md.Je9dMsdd.js → reference_connections.md.DJGUCxrr.js} +18 -30
  78. package/dist/docs/assets/{reference_connections.md.Je9dMsdd.lean.js → reference_connections.md.DJGUCxrr.lean.js} +1 -1
  79. package/dist/docs/assets/{reference_evals.md.DNJzM_yf.js → reference_evals.md.C6umwNC6.js} +6 -7
  80. package/dist/docs/assets/reference_evals.md.C6umwNC6.lean.js +1 -0
  81. package/dist/docs/assets/{reference_extensions.md.Cv5aLCz_.js → reference_extensions.md.DbNYu-DP.js} +3 -3
  82. package/dist/docs/assets/{reference_extensions.md.Cv5aLCz_.lean.js → reference_extensions.md.DbNYu-DP.lean.js} +1 -1
  83. package/dist/docs/assets/reference_hooks.md.BfOkhTU0.js +45 -0
  84. package/dist/docs/assets/{reference_hooks.md.B7uzNENk.lean.js → reference_hooks.md.BfOkhTU0.lean.js} +1 -1
  85. package/dist/docs/assets/reference_http-api.md.DdwtBeCj.js +11 -0
  86. package/dist/docs/assets/{reference_http-api.md.CduHavZ2.lean.js → reference_http-api.md.DdwtBeCj.lean.js} +1 -1
  87. package/dist/docs/assets/reference_instructions.md.B2mcIzT6.js +14 -0
  88. package/dist/docs/assets/reference_instructions.md.B2mcIzT6.lean.js +1 -0
  89. package/dist/docs/assets/reference_playground.md.CyrQD_n3.js +1 -0
  90. package/dist/docs/assets/reference_playground.md.CyrQD_n3.lean.js +1 -0
  91. package/dist/docs/assets/reference_project-layout.md.BEMzxAkq.js +19 -0
  92. package/dist/docs/assets/{reference_project-layout.md.BGhgpy9V.lean.js → reference_project-layout.md.BEMzxAkq.lean.js} +1 -1
  93. package/dist/docs/assets/reference_prompt.md.BFrqjHFL.js +9 -0
  94. package/dist/docs/assets/reference_prompt.md.BFrqjHFL.lean.js +1 -0
  95. package/dist/docs/assets/reference_schedules.md.BB9N3tRR.js +47 -0
  96. package/dist/docs/assets/reference_schedules.md.BB9N3tRR.lean.js +1 -0
  97. package/dist/docs/assets/reference_sessions.md.BBp-GIt-.js +1 -0
  98. package/dist/docs/assets/{reference_sessions.md.1_6Vyv7x.lean.js → reference_sessions.md.BBp-GIt-.lean.js} +1 -1
  99. package/dist/docs/assets/reference_skills.md.BVmi3UJ_.js +15 -0
  100. package/dist/docs/assets/{reference_skills.md.DjQkRefx.lean.js → reference_skills.md.BVmi3UJ_.lean.js} +1 -1
  101. package/dist/docs/assets/reference_subagents.md.DRoRy2Uj.js +10 -0
  102. package/dist/docs/assets/{reference_subagents.md.Dl16gcBj.lean.js → reference_subagents.md.DRoRy2Uj.lean.js} +1 -1
  103. package/dist/docs/assets/{reference_tools.md.B1dH1lpa.js → reference_tools.md.CgocLDX1.js} +9 -6
  104. package/dist/docs/assets/{reference_tools.md.B1dH1lpa.lean.js → reference_tools.md.CgocLDX1.lean.js} +1 -1
  105. package/dist/docs/assets/troubleshooting.md.HY95rCCz.js +1 -0
  106. package/dist/docs/building-with-agents.html +35 -35
  107. package/dist/docs/deployment.html +37 -37
  108. package/dist/docs/deployment.md +1 -1
  109. package/dist/docs/evals.html +35 -35
  110. package/dist/docs/guides/agent-to-agent.html +38 -38
  111. package/dist/docs/guides/agent-to-agent.md +11 -12
  112. package/dist/docs/guides/bitbucket.html +35 -35
  113. package/dist/docs/guides/cloud-agents.html +36 -36
  114. package/dist/docs/guides/cloud-agents.md +1 -1
  115. package/dist/docs/guides/convert-automation.html +35 -35
  116. package/dist/docs/guides/github.html +35 -35
  117. package/dist/docs/guides/gitlab.html +35 -35
  118. package/dist/docs/guides/grokbot-agents.html +37 -37
  119. package/dist/docs/guides/grokbot-agents.md +1 -1
  120. package/dist/docs/guides/hooks.html +109 -0
  121. package/dist/docs/guides/hooks.md +111 -0
  122. package/dist/docs/guides/improve.html +35 -35
  123. package/dist/docs/guides/jev.html +42 -80
  124. package/dist/docs/guides/jev.md +22 -79
  125. package/dist/docs/guides/mcp-oauth.html +36 -36
  126. package/dist/docs/guides/opentelemetry.html +35 -35
  127. package/dist/docs/guides/slack.html +37 -37
  128. package/dist/docs/guides/slack.md +7 -0
  129. package/dist/docs/guides/webhooks.html +35 -35
  130. package/dist/docs/hashmap.json +1 -1
  131. package/dist/docs/hillclimbing.html +35 -35
  132. package/dist/docs/index.html +35 -35
  133. package/dist/docs/llms-full.txt +1683 -2054
  134. package/dist/docs/llms.txt +9 -8
  135. package/dist/docs/quickstart.html +35 -35
  136. package/dist/docs/reference/agent-config.html +42 -46
  137. package/dist/docs/reference/agent-config.md +48 -81
  138. package/dist/docs/reference/artifacts.html +39 -40
  139. package/dist/docs/reference/artifacts.md +71 -70
  140. package/dist/docs/reference/channels.html +41 -61
  141. package/dist/docs/reference/channels.md +134 -201
  142. package/dist/docs/reference/cli.html +127 -125
  143. package/dist/docs/reference/cli.md +685 -753
  144. package/dist/docs/reference/connections.html +54 -66
  145. package/dist/docs/reference/connections.md +92 -128
  146. package/dist/docs/reference/evals.html +42 -43
  147. package/dist/docs/reference/evals.md +42 -50
  148. package/dist/docs/reference/extensions.html +38 -38
  149. package/dist/docs/reference/extensions.md +9 -13
  150. package/dist/docs/reference/hooks.html +39 -67
  151. package/dist/docs/reference/hooks.md +72 -146
  152. package/dist/docs/reference/http-api.html +39 -39
  153. package/dist/docs/reference/http-api.md +137 -161
  154. package/dist/docs/reference/instructions.html +39 -39
  155. package/dist/docs/reference/instructions.md +21 -36
  156. package/dist/docs/reference/playground.html +36 -36
  157. package/dist/docs/reference/playground.md +26 -43
  158. package/dist/docs/reference/project-layout.html +38 -38
  159. package/dist/docs/reference/project-layout.md +12 -17
  160. package/dist/docs/reference/prompt.html +42 -42
  161. package/dist/docs/reference/prompt.md +18 -13
  162. package/dist/docs/reference/schedules.html +56 -91
  163. package/dist/docs/reference/schedules.md +52 -99
  164. package/dist/docs/reference/sessions.html +36 -36
  165. package/dist/docs/reference/sessions.md +36 -40
  166. package/dist/docs/reference/skills.html +38 -38
  167. package/dist/docs/reference/skills.md +15 -26
  168. package/dist/docs/reference/subagents.html +38 -38
  169. package/dist/docs/reference/subagents.md +20 -30
  170. package/dist/docs/reference/tools.html +44 -41
  171. package/dist/docs/reference/tools.md +45 -64
  172. package/dist/docs/templates/agentic-owners.html +35 -35
  173. package/dist/docs/templates/pr-autofixer.html +35 -35
  174. package/dist/docs/templates/security-reviewer.html +35 -35
  175. package/dist/docs/templates/thermo-quality-review.html +35 -35
  176. package/dist/docs/templates/thermo-review.html +35 -35
  177. package/dist/docs/templates/triage.html +35 -35
  178. package/dist/docs/troubleshooting.html +36 -36
  179. package/dist/docs/troubleshooting.md +1 -1
  180. package/dist/internal/cli-deploy.d.ts.map +1 -1
  181. package/dist/internal/cli-deploy.js +9 -1
  182. package/dist/internal/deploy-client.d.ts +6 -0
  183. package/dist/internal/deploy-client.d.ts.map +1 -1
  184. package/dist/internal/deploy-client.js +3 -0
  185. package/dist/internal/discovery/agent-config.d.ts +3 -1
  186. package/dist/internal/discovery/agent-config.d.ts.map +1 -1
  187. package/dist/internal/discovery/agent-config.js +7 -4
  188. package/dist/internal/framework-storage-selection.d.ts +1 -1
  189. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  190. package/dist/internal/platform-timers.d.ts.map +1 -1
  191. package/dist/internal/platform-timers.js +20 -2
  192. package/dist/internal/reminder-runner.d.ts +79 -1
  193. package/dist/internal/reminder-runner.d.ts.map +1 -1
  194. package/dist/internal/reminder-runner.js +276 -44
  195. package/dist/internal/server.d.ts.map +1 -1
  196. package/dist/internal/server.js +7 -0
  197. package/dist/memory.d.ts +4 -0
  198. package/dist/memory.d.ts.map +1 -1
  199. package/dist/memory.js +28 -4
  200. package/dist/playground/assets/index-DLwnR9ys.css +1 -0
  201. package/dist/playground/index.html +2 -2
  202. package/dist/types.d.ts +16 -9
  203. package/dist/types.d.ts.map +1 -1
  204. package/docs/deployment.md +1 -1
  205. package/docs/guides/agent-to-agent.md +11 -12
  206. package/docs/guides/cloud-agents.md +1 -1
  207. package/docs/guides/grokbot-agents.md +1 -1
  208. package/docs/guides/hooks.md +116 -0
  209. package/docs/guides/jev.md +23 -80
  210. package/docs/guides/slack.md +7 -0
  211. package/docs/reference/agent-config.md +48 -81
  212. package/docs/reference/artifacts.md +72 -71
  213. package/docs/reference/channels.md +135 -202
  214. package/docs/reference/cli.md +686 -754
  215. package/docs/reference/connections.md +93 -129
  216. package/docs/reference/evals.md +43 -51
  217. package/docs/reference/extensions.md +9 -13
  218. package/docs/reference/hooks.md +72 -146
  219. package/docs/reference/http-api.md +137 -161
  220. package/docs/reference/instructions.md +22 -37
  221. package/docs/reference/playground.md +26 -43
  222. package/docs/reference/project-layout.md +12 -17
  223. package/docs/reference/prompt.md +20 -15
  224. package/docs/reference/schedules.md +52 -99
  225. package/docs/reference/sessions.md +36 -40
  226. package/docs/reference/skills.md +15 -26
  227. package/docs/reference/subagents.md +20 -30
  228. package/docs/reference/tools.md +45 -64
  229. package/docs/troubleshooting.md +1 -1
  230. package/package.json +1 -1
  231. package/src/channels/slack/inbound.ts +24 -0
  232. package/src/channels/slack/slack-channel.ts +123 -1
  233. package/src/internal/cli-deploy.ts +12 -1
  234. package/src/internal/deploy-client.ts +9 -0
  235. package/src/internal/discovery/agent-config.ts +8 -6
  236. package/src/internal/framework-storage-selection.ts +1 -1
  237. package/src/internal/platform-timers.ts +24 -2
  238. package/src/internal/reminder-runner.ts +426 -63
  239. package/src/internal/server.ts +8 -0
  240. package/src/memory.ts +37 -3
  241. package/src/types.ts +16 -9
  242. package/dist/docs/assets/chunks/@localSearchIndexroot.Ck9E52Ls.js +0 -1
  243. package/dist/docs/assets/chunks/channel.BHiYmnZ4.js +0 -1
  244. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Degh8l90.js +0 -1
  245. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Degh8l90.js +0 -1
  246. package/dist/docs/assets/chunks/clone.BIywbczV.js +0 -1
  247. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.qrxrbFsX.js +0 -1
  248. package/dist/docs/assets/guides_jev.md.F5fAkkfN.lean.js +0 -1
  249. package/dist/docs/assets/reference_agent-config.md.DGPyw7ms.js +0 -40
  250. package/dist/docs/assets/reference_artifacts.md.Bu_4HmsD.js +0 -19
  251. package/dist/docs/assets/reference_artifacts.md.Bu_4HmsD.lean.js +0 -1
  252. package/dist/docs/assets/reference_channels.md.nFWbzAic.js +0 -43
  253. package/dist/docs/assets/reference_channels.md.nFWbzAic.lean.js +0 -1
  254. package/dist/docs/assets/reference_cli.md.DLWDz9ij.js +0 -95
  255. package/dist/docs/assets/reference_cli.md.DLWDz9ij.lean.js +0 -1
  256. package/dist/docs/assets/reference_evals.md.DNJzM_yf.lean.js +0 -1
  257. package/dist/docs/assets/reference_hooks.md.B7uzNENk.js +0 -73
  258. package/dist/docs/assets/reference_http-api.md.CduHavZ2.js +0 -11
  259. package/dist/docs/assets/reference_instructions.md.CU1My5My.js +0 -14
  260. package/dist/docs/assets/reference_instructions.md.CU1My5My.lean.js +0 -1
  261. package/dist/docs/assets/reference_playground.md.Ch2d0Iqi.js +0 -1
  262. package/dist/docs/assets/reference_playground.md.Ch2d0Iqi.lean.js +0 -1
  263. package/dist/docs/assets/reference_project-layout.md.BGhgpy9V.js +0 -19
  264. package/dist/docs/assets/reference_prompt.md.Ccp0R53H.js +0 -1
  265. package/dist/docs/assets/reference_prompt.md.Ccp0R53H.lean.js +0 -1
  266. package/dist/docs/assets/reference_schedules.md.B2Nm6FaD.js +0 -82
  267. package/dist/docs/assets/reference_schedules.md.B2Nm6FaD.lean.js +0 -1
  268. package/dist/docs/assets/reference_sessions.md.1_6Vyv7x.js +0 -1
  269. package/dist/docs/assets/reference_skills.md.DjQkRefx.js +0 -15
  270. package/dist/docs/assets/reference_subagents.md.Dl16gcBj.js +0 -10
  271. package/dist/docs/assets/troubleshooting.md.mnfFG2Em.js +0 -1
  272. package/dist/playground/assets/index-DSMAewbx.css +0 -1
  273. /package/dist/docs/assets/{deployment.md.D2jQZuFx.lean.js → deployment.md.D2YX7u_I.lean.js} +0 -0
  274. /package/dist/docs/assets/{guides_agent-to-agent.md.CD4T5FIl.lean.js → guides_agent-to-agent.md.C6kPY8nu.lean.js} +0 -0
  275. /package/dist/docs/assets/{guides_cloud-agents.md.Cp1O3u-X.lean.js → guides_cloud-agents.md.BPJqTZjT.lean.js} +0 -0
  276. /package/dist/docs/assets/{guides_grokbot-agents.md.CMhZNdEU.lean.js → guides_grokbot-agents.md.CzV715v8.lean.js} +0 -0
  277. /package/dist/docs/assets/{troubleshooting.md.mnfFG2Em.lean.js → troubleshooting.md.HY95rCCz.lean.js} +0 -0
  278. /package/dist/playground/assets/{index-De_lpFxE.js → index-CX6oTKwz.js} +0 -0
@@ -1,28 +1,25 @@
1
1
  ---
2
2
  title: "Channels"
3
- description: "The authoring reference for defineChannel, the built-in HTTP channel, route schemas, handler args, and the auth policies."
3
+ description: "Define custom channel routes, schemas, state, events, and authentication."
4
4
  ---
5
5
 
6
6
  # Channels
7
7
 
8
- A channel is the surface an agent lives on. The built-in HTTP session
9
- channel is always mounted. Custom channels declare their own routes
10
- under `/v1/channels/<id>`. The Slack and GitHub packs are prebuilt
11
- channels with platform transports. GitLab and Bitbucket packs cover their
12
- hosted and self-managed products. This page is the authoring reference;
13
- for the walkthrough, see the [Webhooks guide](../guides/webhooks.md).
8
+ A channel connects an external surface to agent sessions. A file at
9
+ `agent/channels/<id>.ts` defines channel `<id>` and mounts its routes
10
+ under `/v1/channels/<id>`. The built-in HTTP session channel is always
11
+ available alongside any custom or prebuilt channels.
14
12
 
15
13
  ## Built-in HTTP channel
16
14
 
17
- It's always mounted, under `/<slug>` in the default multi-agent layout:
18
- session create, follow-up, stream, stop, the sessions list, approvals,
19
- deterministic tool calls, health, and info. For the route-by-route
20
- contract, see the [HTTP API reference](./http-api.md).
15
+ The built-in channel serves the session, approval, tool, discovery, and
16
+ health routes. In a multi-agent host, each agent's routes sit under its
17
+ slug. See the [HTTP API](./http-api.md) for request and response
18
+ contracts.
21
19
 
22
20
  ## Define a custom channel
23
21
 
24
- Author `agent/channels/<id>.ts`. The filename is the channel id and the
25
- route prefix:
22
+ Use `defineChannel` with one or more typed routes:
26
23
 
27
24
  ```ts
28
25
  import { defineChannel, POST } from "@cursor/july/channels";
@@ -35,234 +32,170 @@ export default defineChannel({
35
32
  bodySchema: z.object({
36
33
  message: z.string(),
37
34
  prUrl: z.string().url(),
38
- thread: z.string().optional(),
39
35
  }),
40
- handler: async (_req, { callTool, send, body }) => {
41
- const prepared = await callTool("inspect_pr", {
42
- prUrl: body.prUrl,
43
- });
44
- if (prepared.isError) {
45
- return Response.json(
46
- { error: prepared.errorMessage ?? "Could not inspect pull request" },
47
- { status: 502 }
48
- );
49
- }
50
-
36
+ handler: async (_request, { send, body }) => {
51
37
  const session = await send(
52
- `${body.message}\n\nRead pr.json before answering.`,
38
+ `${body.message}\n\nPull request: ${body.prUrl}`,
53
39
  {
54
- continuationToken: body.thread ?? `pr:${body.prUrl}`,
55
- workspaceFiles: {
56
- "pr.json": JSON.stringify(prepared.result, null, 2) ?? "null",
57
- },
40
+ continuationToken: `pr:${body.prUrl}`,
58
41
  }
59
42
  );
60
43
  return Response.json({ sessionId: session.id });
61
44
  },
62
45
  }),
63
46
  ],
64
- events: {
65
- "message.completed"(event, channel, ctx) {
66
- // deliver the reply to the surface that owns this channel
67
- },
68
- },
69
- // auth: [...], state: {...}, onStart(...), onStop(...)
70
47
  });
71
48
  ```
72
49
 
73
- This example assumes `agent/tools/inspect_pr.ts` exists. The handler
74
- calls it before the model turn, so every review starts with validated PR
75
- data. It also derives a stable conversation key from the PR URL and
76
- writes the tool result to `pr.json`. Instructions can ask the model to
77
- inspect a PR, but host code guarantees it.
50
+ The route above is
51
+ `POST /v1/channels/<id>/review`. Calls for the same pull request reuse
52
+ one conversation because they pass the same continuation token.
78
53
 
79
54
  ## Route verbs and schemas
80
55
 
81
- `GET`, `POST`, `PUT`, `PATCH`, and `DELETE` helpers build routes. Their
82
- schemas are Zod, enforced at compile time:
56
+ Route paths must begin with `/`. The method helper determines which Zod
57
+ schemas the route accepts:
83
58
 
84
- | Verb | Required schema |
85
- | ------------------------ | ------------------------------------- |
86
- | `GET` | `querySchema` |
87
- | `POST` / `PUT` / `PATCH` | `bodySchema` (optional `querySchema`) |
88
- | `DELETE` | both optional |
59
+ | Helper | Schema contract |
60
+ | --- | --- |
61
+ | `GET` | `querySchema` is required |
62
+ | `POST`, `PUT`, `PATCH` | `bodySchema` is required; `querySchema` is optional |
63
+ | `DELETE` | Both schemas are optional |
89
64
 
90
- Plain JSON Schema objects won't type-check; use `z.object({})` or
91
- `z.unknown()` for intentionally open surfaces. The host validates before
92
- the handler runs. Handlers receive typed `args.body` and `args.query`,
93
- and empty POST bodies are coerced to `{}` first. Declared schemas are
94
- projected on `GET /v1/info`, which powers the playground's **Try**
95
- buttons and composer **slash commands**.
65
+ Plain JSON Schema objects don't type-check. Use `z.object({})` or
66
+ `z.unknown()` for an open surface. The host validates the body and query
67
+ before calling the handler, returning `400` on failure; an empty body is
68
+ read as `{}`. Declared schemas also appear in `GET /v1/info` for
69
+ playground requests and slash commands.
96
70
 
97
71
  ## Handler arguments
98
72
 
99
- Handlers receive the Fetch `Request` and an args object:
100
-
101
- | Member | What it is |
102
- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
103
- | `send(message, options?)` | Run a model turn on this channel; returns the session handle (options below) |
104
- | `getSession(sessionId)` | Look up an existing session on this channel |
105
- | `receive(channelDefinition, input)` | Hand off to another channel (schedules use this) |
106
- | `callTool(name, input, options?)` | Deterministic server-tool call ([Tools](./tools.md#call-a-tool-without-a-model-turn)) |
107
- | `body`, `query`, `params` | Validated payloads and `:param` path segments |
108
- | `auth` | The `AuthContext` resolved by this route's auth chain |
109
- | `requestIp` | The TCP peer address |
110
- | `host` | Shared services: `host.mcp`, `host.github`, `host.slack`, `host.kv`, `host.files`, `host.reminders` |
111
- | `waitUntil(promise)` | Background work that outlives the response |
112
- | `sessionUrls(request, sessionId)` | Absolute playground + trace URLs for a session on this mount |
113
- | `artifacts` | Unbound [artifacts](./artifacts.md) facade; pass `sessionId` in `tag` input to attribute one |
114
-
115
- `send` options: `continuationToken` (the conversation key),
116
- `admission` (`"preempt"` interrupts a busy session, the default;
117
- `"coalesce"` enqueues behind the running turn, the
118
- [Slack policy](./sessions.md#what-happens-when-i-send-a-follow-up)),
119
- `workspaceFiles`, `workspaceDir`, `cloud` (attach cloud repos for this
120
- session), `auth` (defaults to the request principal), `state` (starting
121
- channel state for new sessions), `title` (session display title), and
122
- `purpose` (`"eval"` marks the session as regression traffic).
73
+ Each handler receives the Fetch `Request` and a typed arguments object.
74
+
75
+ | Member | Contract |
76
+ | --- | --- |
77
+ | `send(message, options?)` | Start or resume a session on this channel |
78
+ | `getSession(sessionId)` | Return this channel's session, or `null` |
79
+ | `receive(channel, input)` | Hand work to another channel |
80
+ | `callTool(name, input, options?)` | [Call a server tool](./tools.md#call-a-tool-without-a-model-turn) without a model turn |
81
+ | `body`, `query`, `params` | Validated inputs and `:param` path segments |
82
+ | `auth` | The `AuthContext` returned by the route's auth chain |
83
+ | `requestIp` | The TCP peer address, or `null` |
84
+ | `host` | Shared MCP, provider, storage, telemetry, and reminder services |
85
+ | `waitUntil(promise)` | Track work after the response returns |
86
+ | `sessionUrls(request, sessionId)` | Build absolute playground and trace URLs for this mount |
87
+ | `artifacts` | List or tag [artifacts](./artifacts.md); pass `sessionId` when attributing one |
88
+
89
+ ### `send` options
90
+
91
+ | Option | Contract |
92
+ | --- | --- |
93
+ | `continuationToken` | Resume the session with this channel-local key, or create one when the key is new |
94
+ | `admission` | `"preempt"` interrupts a busy turn; `"coalesce"` queues behind it. The default is `"preempt"` |
95
+ | `workspaceFiles` | Add relative files for the next turn |
96
+ | `workspaceDir` | Use an absolute local working directory |
97
+ | `cloud` | Override cloud session options when creating a session |
98
+ | `auth` | Set the session principal; defaults to the request principal |
99
+ | `state` | Set starting channel state for a new session |
100
+ | `title` | Set the display title for a new session |
101
+ | `purpose` | Use `"eval"` to mark a new session as regression traffic |
102
+ | `dryRun` | Run read tools and stub write tools for a new session |
103
+ | `asOf` | Freeze a new session at an ISO-8601 instant with a timezone |
104
+
105
+ `send` returns a `ChannelSession`. Its `id` identifies the session,
106
+ `continuationToken` contains its current channel key, and `isNew` says
107
+ whether this call created it. A coalesced call also returns
108
+ `coalesced: true`.
123
109
 
124
110
  ## Events
125
111
 
126
112
  The `events` map subscribes the channel to stream events for the
127
113
  sessions it owns. Keys are event types from the
128
- [event vocabulary](./sessions.md#which-events-can-i-stream), or `"*"`.
129
- Handlers receive `(event, channel, ctx)`, where `channel.state` is the
130
- per-session adapter state, `ctx.session` is the session info, and
131
- `ctx.host` is the shared host services, bound to that session as in a
132
- [hook](./hooks.md#handler-context). This is where a channel delivers
133
- replies back to its surface.
134
-
135
- ## State and lifecycle
136
-
137
- `state` declares the starting per-session adapter state (JSON), persisted
138
- on the session record. Routes and event handlers read and mutate it
139
- through `channel.state`. `onStart(args)` runs when the channel mounts.
140
- `onStop()` runs when the server stops.
141
-
142
- `onStart` receives the route helpers (`send`, `getSession`, `receive`,
143
- `callTool`, `host`, `waitUntil`, `artifacts`, `logger`) plus helpers
144
- for long-lived transports:
145
-
146
- - `emitAssistantMessage(sessionId, text)` appends an assistant message
147
- without a model turn, for host tasks that already produced the final
148
- text.
149
- - `hasContinuationSession(token)` and `isContinuationBusy(token)`
150
- report whether a continuation token has a live session and whether a
151
- turn is in flight on it.
152
- - `interruptContinuation(token)` stops the in-flight turn and clears
153
- coalesced follow-ups queued behind it.
154
- - `resolveApproval(sessionId, callId, decision, auth, options?)`
155
- approves or denies a parked tool call, how Slack Block Kit buttons
156
- unblock a turn without the HTTP approvals route.
114
+ [event vocabulary](./sessions.md#stream-events), or `"*"`. Each handler
115
+ receives `(event, channel, ctx)`, including the session's
116
+ `channel.state`, session info, and shared host services. Use these
117
+ handlers to deliver progress and replies to the surface that owns the
118
+ channel.
157
119
 
158
- ## Auth policies
120
+ ## Session state
121
+
122
+ `state` on the channel definition supplies starting JSON for each new
123
+ session. A route can instead pass `state` to `send`; event handlers read
124
+ and update the active value through `channel.state`.
159
125
 
160
- Every route runs an auth-policy chain: the channel's `auth` array, or
161
- `[localDevStrict()]` when unset. A policy is a function
162
- `(request, info) => AuthContext | null` (async allowed); the first
163
- non-null wins, and a request no policy admits gets `401`.
126
+ ## Start and stop a channel
164
127
 
165
- | Policy | Admits |
166
- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
167
- | `localDevStrict()` | Direct loopback callers with no proxy-forwarding headers (`X-Forwarded-For`, `X-Real-IP`, `Forwarded`, and `X-Forwarded-Host` are all rejected, so tunnels and same-host reverse proxies don't silently re-expose the route), plus a loopback `Host` header, which rejects DNS-rebinding callers that reach 127.0.0.1 with a remote hostname. |
168
- | `localDev()` | Like `localDevStrict()` but without the `Host` check. An explicit, weaker opt-in. |
169
- | `loopbackOnly()` | A loopback TCP peer, ignoring forwarding headers; for dev relays that legitimately carry them, like `gh webhook forward`. |
170
- | `bearerAuth(token)` | `Authorization: Bearer <token>`, compared in constant time. Also accepts a verifier function mapping a presented token to an `AuthContext`. |
171
- | `allowAll()` | Everyone, as an `anonymous` principal. Only for surfaces protected upstream (an HMAC-verified webhook) or intentionally public. |
172
- | `publicEndpoint()` | Everyone on this custom channel. Managed hosting also serves the channel without an alias token. Use it only when the handler verifies the provider signature. |
128
+ `onStart(args)` runs when the channel mounts, and `onStop()` runs when
129
+ the host stops. `onStart` receives the route helpers plus these
130
+ transport controls:
173
131
 
174
- `publicEndpoint()` applies only to custom channel routes. It does not open
175
- the built-in session or tool API.
132
+ | Helper | Contract |
133
+ | --- | --- |
134
+ | `emitAssistantMessage(sessionId, text)` | Append final assistant text without starting a model turn |
135
+ | `hasContinuationSession(token)` | Check whether a token maps to a session |
136
+ | `isContinuationBusy(token)` | Check whether a turn is active for a token |
137
+ | `interruptContinuation(token)` | Stop the active turn and clear queued coalesced follow-ups |
138
+ | `resolveApproval(...)` | Approve or deny a parked tool call |
139
+
140
+ ## Auth policies
141
+
142
+ Every route runs the channel's `auth` array. The default is
143
+ `[localDevStrict()]`. Policies may be asynchronous; the first one to
144
+ return an `AuthContext` admits the request, and an all-null result
145
+ returns `401`.
146
+
147
+ | Policy | Admits |
148
+ | --- | --- |
149
+ | `localDevStrict()` | Direct loopback requests with a loopback hostname and no proxy-forwarding headers |
150
+ | `localDev()` | Direct loopback requests with no proxy-forwarding headers, without checking the hostname |
151
+ | `loopbackOnly()` | Any loopback TCP peer, including local relays that carry forwarding headers |
152
+ | `bearerAuth(tokenOrVerify)` | A matching bearer token, or a token accepted by the verifier |
153
+ | `sharedSecretAuth({ header, secret })` | A header matching the named environment or deployment secret |
154
+ | `hmacSignatureAuth({ header, secret, prefix? })` | A hex HMAC-SHA256 signature over the raw body using the named secret |
155
+ | `allowAll()` | Every caller as an anonymous principal |
156
+ | `publicEndpoint()` | Every caller on this custom channel; managed hosting also exposes the route without an alias token |
157
+
158
+ Use `allowAll()` only for an intentionally public surface or one
159
+ protected upstream. With `publicEndpoint()`, the handler must verify the
160
+ provider's signature. The policy applies only to custom channel routes;
161
+ it doesn't open the built-in session or tool API.
176
162
 
177
163
  The resolved `AuthContext` (`{ authenticator, principalId,
178
164
  principalType, attributes? }`) becomes the request principal. Sessions
179
- bind to the principal that created them, and follow-up, stream, and list
180
- routes enforce ownership (`403` otherwise).
165
+ belong to the principal that created them, and other principals receive
166
+ `403` on owned routes.
181
167
 
182
168
  Server flags interact with authored auth: `--bearer-token` swaps the
183
169
  default `localDevStrict()` for `bearerAuth(...)` on channels that don't
184
170
  author their own chain, and `--allow-anonymous` swaps it for
185
- `allowAll()`. Authored `auth` arrays always win over both. A channel that
186
- declares `[localDevStrict()]` stays loopback-only even on an
187
- `--allow-anonymous` host.
188
-
189
- ## First class channels
190
-
191
- **Slack** (`@cursor/july/channels/slack`): Socket Mode
192
- transport, streaming replies, engagement rules, approval cards, and a
193
- default block on Slack Connect / guest / other-workspace senders. Author
194
- `agent/channels/slack.ts` with `slackChannel()`. Guide:
195
- [Slack](../guides/slack.md).
196
-
197
- **GitHub** (`@cursor/july/channels/github`): webhook dispatch
198
- with signature verification, per-event hooks returning `{ auth }` (a
199
- model turn), `{ task }` (host work), or `null`, and CLI tooling for
200
- replay and live forwarding. Author `agent/channels/github.ts` with
201
- `githubChannel()`. Opt-in `progress.commitStatus` and `progress.banner`
202
- converge a merge-box check and sticky PR comment from default stream
203
- events. Supports GitHub.com and GitHub Enterprise Server. Guide:
204
- [GitHub](../guides/github.md).
205
-
206
- **GitLab** (`@cursor/july/channels/gitlab`): verified project hooks for
207
- merge requests, notes, pipelines, pushes, and custom event types. Supports
208
- GitLab.com and self-managed GitLab. Author `agent/channels/gitlab.ts` with
209
- `gitlabChannel()`. Guide: [GitLab](../guides/gitlab.md).
210
-
211
- **Bitbucket** (`@cursor/july/channels/bitbucket`): verified repository hooks
212
- for pull requests, comments, pushes, and custom event types. Supports
213
- Bitbucket Cloud and Bitbucket Data Center through one normalized hook API.
214
- Author `agent/channels/bitbucket.ts` with `bitbucketChannel()`. Guide:
215
- [Bitbucket](../guides/bitbucket.md).
216
-
217
- **Deployments** (`@cursor/july/channels/deployments`): pull deploy
218
- events. Declare `events` and handle each one in `onEvent`. Each event
219
- carries `deploySourceUri` and `deployVersion`. Author
220
- `agent/channels/deployments.ts` with `deploymentsChannel()`.
221
-
222
- On Cursor-managed hosting, omit `deploySourceUris`. The deployment's
223
- watched repositories bind the event scope automatically. Name sources
224
- to narrow the scope or to drive the self-hosted pull relay. Subscribe
225
- per deploy source with `deploySourceUris` and narrow with `environments`
226
- or `events`. Each entry must match `Deployment.deploy_source_uri` as
227
- your deployment writer records it. Matching is case-insensitive but
228
- otherwise literal. It uses the host credential. A restart resumes
229
- rather than dropping events. An empty `deploySourceUris` list mounts the
230
- channel but starts no pull, so an env-configured agent stays inert until
231
- its deploy sources are set.
232
-
233
- **Change Monitors** (`@cursor/july/channels/change-monitors`): Change
234
- Monitor Checkpoint events. The channel publishes Factory
235
- `checkpoint.created` for every Checkpoint create. The agent filters the
236
- result (for example to the `issues` arm). The payload contains the
237
- full Checkpoint resource. This channel is scoped to Change Monitors,
238
- not generic Factory Checkpoints. There is no repository filter or
239
- resource filter. Author `agent/channels/change-monitors.ts` with
240
- `changeMonitorsChannel()`. It uses the host credential.
241
-
242
- **Issues** (`@cursor/july/channels/issues`): Factory issue events.
243
- The channel publishes `issue.created` for every Issue create. The
244
- agent filters if it needs a subset. The payload contains the full
245
- Issue resource. There is no repository filter or resource filter.
246
- Author `agent/channels/issues.ts` with `issuesChannel()`. It uses the
247
- host credential.
171
+ `allowAll()`. An authored `auth` array always takes precedence.
248
172
 
249
- For other platforms like Discord or Teams, use the authored
250
- `defineChannel` webhook form.
173
+ ## Prebuilt channels
251
174
 
252
- ## Continuation semantics
175
+ | Import | Factory | Surface |
176
+ | --- | --- | --- |
177
+ | `@cursor/july/channels/slack` | `slackChannel()` | Slack messages, threads, streaming replies, and approvals. See [Slack](../guides/slack.md) |
178
+ | `@cursor/july/channels/github` | `githubChannel()` | GitHub and GitHub Enterprise webhooks. See [GitHub](../guides/github.md) |
179
+ | `@cursor/july/channels/gitlab` | `gitlabChannel()` | GitLab.com and self-managed GitLab hooks. See [GitLab](../guides/gitlab.md) |
180
+ | `@cursor/july/channels/bitbucket` | `bitbucketChannel()` | Bitbucket Cloud and Data Center hooks. See [Bitbucket](../guides/bitbucket.md) |
181
+ | `@cursor/july/channels/deployments` | `deploymentsChannel()` | Deployment events filtered by source, environment, or event name |
182
+ | `@cursor/july/channels/change-monitors` | `changeMonitorsChannel()` | Change Monitor `checkpoint.created` events |
183
+ | `@cursor/july/channels/issues` | `issuesChannel()` | Factory `issue.created` events |
184
+
185
+ For other platforms like Discord or Teams, use the authored
186
+ `defineChannel` route form.
253
187
 
254
- Channels own their continuation-token format. The built-in HTTP channel
255
- mints opaque rotating tokens, Slack uses `channelId:threadTs`, and PR
256
- automations use keys like `pr:owner/repo#N`. Same token, same durable
257
- session; one active continuation per session; the HTTP channel returns
258
- `409` for stale tokens. For the full session model, see
259
- [Sessions](./sessions.md).
188
+ ## Continuation tokens
260
189
 
261
- ## What's next
190
+ Each channel defines its continuation-token format. The same token
191
+ resumes the same conversation; the built-in HTTP channel rotates its
192
+ opaque token after every accepted follow-up and returns `409` for a
193
+ stale token. See [Session identifiers](./sessions.md#session-identifiers)
194
+ for the full contract.
262
195
 
263
- Continue with these pages:
196
+ ## Related
264
197
 
265
- - [Webhooks guide](../guides/webhooks.md): the same API, walked through
266
- - [HTTP API](./http-api.md): session, discovery, and channel routes
267
- - [Sessions and streaming](./sessions.md): the events channels
268
- subscribe to
198
+ - [Webhooks](../guides/webhooks.md)
199
+ - [HTTP API](./http-api.md)
200
+ - [Sessions](./sessions.md)
201
+ - [Hooks](./hooks.md)