@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,23 +1,20 @@
1
1
  # Channels
2
2
 
3
- A channel is the surface an agent lives on. The built-in HTTP session
4
- channel is always mounted. Custom channels declare their own routes
5
- under `/v1/channels/<id>`. The Slack and GitHub packs are prebuilt
6
- channels with platform transports. GitLab and Bitbucket packs cover their
7
- hosted and self-managed products. This page is the authoring reference;
8
- for the walkthrough, see the [Webhooks guide](/docs/guides/webhooks.md).
3
+ A channel connects an external surface to agent sessions. A file at
4
+ `agent/channels/<id>.ts` defines channel `<id>` and mounts its routes
5
+ under `/v1/channels/<id>`. The built-in HTTP session channel is always
6
+ available alongside any custom or prebuilt channels.
9
7
 
10
8
  ## Built-in HTTP channel
11
9
 
12
- It's always mounted, under `/<slug>` in the default multi-agent layout:
13
- session create, follow-up, stream, stop, the sessions list, approvals,
14
- deterministic tool calls, health, and info. For the route-by-route
15
- contract, see the [HTTP API reference](/docs/reference/http-api.md).
10
+ The built-in channel serves the session, approval, tool, discovery, and
11
+ health routes. In a multi-agent host, each agent's routes sit under its
12
+ slug. See the [HTTP API](/docs/reference/http-api.md) for request and response
13
+ contracts.
16
14
 
17
15
  ## Define a custom channel
18
16
 
19
- Author `agent/channels/<id>.ts`. The filename is the channel id and the
20
- route prefix:
17
+ Use `defineChannel` with one or more typed routes:
21
18
 
22
19
  ```ts
23
20
  import { defineChannel, POST } from "@cursor/july/channels";
@@ -30,234 +27,170 @@ export default defineChannel({
30
27
  bodySchema: z.object({
31
28
  message: z.string(),
32
29
  prUrl: z.string().url(),
33
- thread: z.string().optional(),
34
30
  }),
35
- handler: async (_req, { callTool, send, body }) => {
36
- const prepared = await callTool("inspect_pr", {
37
- prUrl: body.prUrl,
38
- });
39
- if (prepared.isError) {
40
- return Response.json(
41
- { error: prepared.errorMessage ?? "Could not inspect pull request" },
42
- { status: 502 }
43
- );
44
- }
45
-
31
+ handler: async (_request, { send, body }) => {
46
32
  const session = await send(
47
- `${body.message}\n\nRead pr.json before answering.`,
33
+ `${body.message}\n\nPull request: ${body.prUrl}`,
48
34
  {
49
- continuationToken: body.thread ?? `pr:${body.prUrl}`,
50
- workspaceFiles: {
51
- "pr.json": JSON.stringify(prepared.result, null, 2) ?? "null",
52
- },
35
+ continuationToken: `pr:${body.prUrl}`,
53
36
  }
54
37
  );
55
38
  return Response.json({ sessionId: session.id });
56
39
  },
57
40
  }),
58
41
  ],
59
- events: {
60
- "message.completed"(event, channel, ctx) {
61
- // deliver the reply to the surface that owns this channel
62
- },
63
- },
64
- // auth: [...], state: {...}, onStart(...), onStop(...)
65
42
  });
66
43
  ```
67
44
 
68
- This example assumes `agent/tools/inspect_pr.ts` exists. The handler
69
- calls it before the model turn, so every review starts with validated PR
70
- data. It also derives a stable conversation key from the PR URL and
71
- writes the tool result to `pr.json`. Instructions can ask the model to
72
- inspect a PR, but host code guarantees it.
45
+ The route above is
46
+ `POST /v1/channels/<id>/review`. Calls for the same pull request reuse
47
+ one conversation because they pass the same continuation token.
73
48
 
74
49
  ## Route verbs and schemas
75
50
 
76
- `GET`, `POST`, `PUT`, `PATCH`, and `DELETE` helpers build routes. Their
77
- schemas are Zod, enforced at compile time:
51
+ Route paths must begin with `/`. The method helper determines which Zod
52
+ schemas the route accepts:
78
53
 
79
- | Verb | Required schema |
80
- | ------------------------ | ------------------------------------- |
81
- | `GET` | `querySchema` |
82
- | `POST` / `PUT` / `PATCH` | `bodySchema` (optional `querySchema`) |
83
- | `DELETE` | both optional |
54
+ | Helper | Schema contract |
55
+ | --- | --- |
56
+ | `GET` | `querySchema` is required |
57
+ | `POST`, `PUT`, `PATCH` | `bodySchema` is required; `querySchema` is optional |
58
+ | `DELETE` | Both schemas are optional |
84
59
 
85
- Plain JSON Schema objects won't type-check; use `z.object({})` or
86
- `z.unknown()` for intentionally open surfaces. The host validates before
87
- the handler runs. Handlers receive typed `args.body` and `args.query`,
88
- and empty POST bodies are coerced to `{}` first. Declared schemas are
89
- projected on `GET /v1/info`, which powers the playground's **Try**
90
- buttons and composer **slash commands**.
60
+ Plain JSON Schema objects don't type-check. Use `z.object({})` or
61
+ `z.unknown()` for an open surface. The host validates the body and query
62
+ before calling the handler, returning `400` on failure; an empty body is
63
+ read as `{}`. Declared schemas also appear in `GET /v1/info` for
64
+ playground requests and slash commands.
91
65
 
92
66
  ## Handler arguments
93
67
 
94
- Handlers receive the Fetch `Request` and an args object:
95
-
96
- | Member | What it is |
97
- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
98
- | `send(message, options?)` | Run a model turn on this channel; returns the session handle (options below) |
99
- | `getSession(sessionId)` | Look up an existing session on this channel |
100
- | `receive(channelDefinition, input)` | Hand off to another channel (schedules use this) |
101
- | `callTool(name, input, options?)` | Deterministic server-tool call ([Tools](/docs/reference/tools.md#call-a-tool-without-a-model-turn)) |
102
- | `body`, `query`, `params` | Validated payloads and `:param` path segments |
103
- | `auth` | The `AuthContext` resolved by this route's auth chain |
104
- | `requestIp` | The TCP peer address |
105
- | `host` | Shared services: `host.mcp`, `host.github`, `host.slack`, `host.kv`, `host.files`, `host.reminders` |
106
- | `waitUntil(promise)` | Background work that outlives the response |
107
- | `sessionUrls(request, sessionId)` | Absolute playground + trace URLs for a session on this mount |
108
- | `artifacts` | Unbound [artifacts](/docs/reference/artifacts.md) facade; pass `sessionId` in `tag` input to attribute one |
109
-
110
- `send` options: `continuationToken` (the conversation key),
111
- `admission` (`"preempt"` interrupts a busy session, the default;
112
- `"coalesce"` enqueues behind the running turn, the
113
- [Slack policy](/docs/reference/sessions.md#what-happens-when-i-send-a-follow-up)),
114
- `workspaceFiles`, `workspaceDir`, `cloud` (attach cloud repos for this
115
- session), `auth` (defaults to the request principal), `state` (starting
116
- channel state for new sessions), `title` (session display title), and
117
- `purpose` (`"eval"` marks the session as regression traffic).
68
+ Each handler receives the Fetch `Request` and a typed arguments object.
69
+
70
+ | Member | Contract |
71
+ | --- | --- |
72
+ | `send(message, options?)` | Start or resume a session on this channel |
73
+ | `getSession(sessionId)` | Return this channel's session, or `null` |
74
+ | `receive(channel, input)` | Hand work to another channel |
75
+ | `callTool(name, input, options?)` | [Call a server tool](/docs/reference/tools.md#call-a-tool-without-a-model-turn) without a model turn |
76
+ | `body`, `query`, `params` | Validated inputs and `:param` path segments |
77
+ | `auth` | The `AuthContext` returned by the route's auth chain |
78
+ | `requestIp` | The TCP peer address, or `null` |
79
+ | `host` | Shared MCP, provider, storage, telemetry, and reminder services |
80
+ | `waitUntil(promise)` | Track work after the response returns |
81
+ | `sessionUrls(request, sessionId)` | Build absolute playground and trace URLs for this mount |
82
+ | `artifacts` | List or tag [artifacts](/docs/reference/artifacts.md); pass `sessionId` when attributing one |
83
+
84
+ ### `send` options
85
+
86
+ | Option | Contract |
87
+ | --- | --- |
88
+ | `continuationToken` | Resume the session with this channel-local key, or create one when the key is new |
89
+ | `admission` | `"preempt"` interrupts a busy turn; `"coalesce"` queues behind it. The default is `"preempt"` |
90
+ | `workspaceFiles` | Add relative files for the next turn |
91
+ | `workspaceDir` | Use an absolute local working directory |
92
+ | `cloud` | Override cloud session options when creating a session |
93
+ | `auth` | Set the session principal; defaults to the request principal |
94
+ | `state` | Set starting channel state for a new session |
95
+ | `title` | Set the display title for a new session |
96
+ | `purpose` | Use `"eval"` to mark a new session as regression traffic |
97
+ | `dryRun` | Run read tools and stub write tools for a new session |
98
+ | `asOf` | Freeze a new session at an ISO-8601 instant with a timezone |
99
+
100
+ `send` returns a `ChannelSession`. Its `id` identifies the session,
101
+ `continuationToken` contains its current channel key, and `isNew` says
102
+ whether this call created it. A coalesced call also returns
103
+ `coalesced: true`.
118
104
 
119
105
  ## Events
120
106
 
121
107
  The `events` map subscribes the channel to stream events for the
122
108
  sessions it owns. Keys are event types from the
123
- [event vocabulary](/docs/reference/sessions.md#which-events-can-i-stream), or `"*"`.
124
- Handlers receive `(event, channel, ctx)`, where `channel.state` is the
125
- per-session adapter state, `ctx.session` is the session info, and
126
- `ctx.host` is the shared host services, bound to that session as in a
127
- [hook](/docs/reference/hooks.md#handler-context). This is where a channel delivers
128
- replies back to its surface.
129
-
130
- ## State and lifecycle
131
-
132
- `state` declares the starting per-session adapter state (JSON), persisted
133
- on the session record. Routes and event handlers read and mutate it
134
- through `channel.state`. `onStart(args)` runs when the channel mounts.
135
- `onStop()` runs when the server stops.
136
-
137
- `onStart` receives the route helpers (`send`, `getSession`, `receive`,
138
- `callTool`, `host`, `waitUntil`, `artifacts`, `logger`) plus helpers
139
- for long-lived transports:
140
-
141
- - `emitAssistantMessage(sessionId, text)` appends an assistant message
142
- without a model turn, for host tasks that already produced the final
143
- text.
144
- - `hasContinuationSession(token)` and `isContinuationBusy(token)`
145
- report whether a continuation token has a live session and whether a
146
- turn is in flight on it.
147
- - `interruptContinuation(token)` stops the in-flight turn and clears
148
- coalesced follow-ups queued behind it.
149
- - `resolveApproval(sessionId, callId, decision, auth, options?)`
150
- approves or denies a parked tool call, how Slack Block Kit buttons
151
- unblock a turn without the HTTP approvals route.
109
+ [event vocabulary](/docs/reference/sessions.md#stream-events), or `"*"`. Each handler
110
+ receives `(event, channel, ctx)`, including the session's
111
+ `channel.state`, session info, and shared host services. Use these
112
+ handlers to deliver progress and replies to the surface that owns the
113
+ channel.
152
114
 
153
- ## Auth policies
115
+ ## Session state
116
+
117
+ `state` on the channel definition supplies starting JSON for each new
118
+ session. A route can instead pass `state` to `send`; event handlers read
119
+ and update the active value through `channel.state`.
154
120
 
155
- Every route runs an auth-policy chain: the channel's `auth` array, or
156
- `[localDevStrict()]` when unset. A policy is a function
157
- `(request, info) => AuthContext | null` (async allowed); the first
158
- non-null wins, and a request no policy admits gets `401`.
121
+ ## Start and stop a channel
159
122
 
160
- | Policy | Admits |
161
- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
162
- | `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. |
163
- | `localDev()` | Like `localDevStrict()` but without the `Host` check. An explicit, weaker opt-in. |
164
- | `loopbackOnly()` | A loopback TCP peer, ignoring forwarding headers; for dev relays that legitimately carry them, like `gh webhook forward`. |
165
- | `bearerAuth(token)` | `Authorization: Bearer <token>`, compared in constant time. Also accepts a verifier function mapping a presented token to an `AuthContext`. |
166
- | `allowAll()` | Everyone, as an `anonymous` principal. Only for surfaces protected upstream (an HMAC-verified webhook) or intentionally public. |
167
- | `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. |
123
+ `onStart(args)` runs when the channel mounts, and `onStop()` runs when
124
+ the host stops. `onStart` receives the route helpers plus these
125
+ transport controls:
168
126
 
169
- `publicEndpoint()` applies only to custom channel routes. It does not open
170
- the built-in session or tool API.
127
+ | Helper | Contract |
128
+ | --- | --- |
129
+ | `emitAssistantMessage(sessionId, text)` | Append final assistant text without starting a model turn |
130
+ | `hasContinuationSession(token)` | Check whether a token maps to a session |
131
+ | `isContinuationBusy(token)` | Check whether a turn is active for a token |
132
+ | `interruptContinuation(token)` | Stop the active turn and clear queued coalesced follow-ups |
133
+ | `resolveApproval(...)` | Approve or deny a parked tool call |
134
+
135
+ ## Auth policies
136
+
137
+ Every route runs the channel's `auth` array. The default is
138
+ `[localDevStrict()]`. Policies may be asynchronous; the first one to
139
+ return an `AuthContext` admits the request, and an all-null result
140
+ returns `401`.
141
+
142
+ | Policy | Admits |
143
+ | --- | --- |
144
+ | `localDevStrict()` | Direct loopback requests with a loopback hostname and no proxy-forwarding headers |
145
+ | `localDev()` | Direct loopback requests with no proxy-forwarding headers, without checking the hostname |
146
+ | `loopbackOnly()` | Any loopback TCP peer, including local relays that carry forwarding headers |
147
+ | `bearerAuth(tokenOrVerify)` | A matching bearer token, or a token accepted by the verifier |
148
+ | `sharedSecretAuth({ header, secret })` | A header matching the named environment or deployment secret |
149
+ | `hmacSignatureAuth({ header, secret, prefix? })` | A hex HMAC-SHA256 signature over the raw body using the named secret |
150
+ | `allowAll()` | Every caller as an anonymous principal |
151
+ | `publicEndpoint()` | Every caller on this custom channel; managed hosting also exposes the route without an alias token |
152
+
153
+ Use `allowAll()` only for an intentionally public surface or one
154
+ protected upstream. With `publicEndpoint()`, the handler must verify the
155
+ provider's signature. The policy applies only to custom channel routes;
156
+ it doesn't open the built-in session or tool API.
171
157
 
172
158
  The resolved `AuthContext` (`{ authenticator, principalId,
173
159
  principalType, attributes? }`) becomes the request principal. Sessions
174
- bind to the principal that created them, and follow-up, stream, and list
175
- routes enforce ownership (`403` otherwise).
160
+ belong to the principal that created them, and other principals receive
161
+ `403` on owned routes.
176
162
 
177
163
  Server flags interact with authored auth: `--bearer-token` swaps the
178
164
  default `localDevStrict()` for `bearerAuth(...)` on channels that don't
179
165
  author their own chain, and `--allow-anonymous` swaps it for
180
- `allowAll()`. Authored `auth` arrays always win over both. A channel that
181
- declares `[localDevStrict()]` stays loopback-only even on an
182
- `--allow-anonymous` host.
183
-
184
- ## First class channels
185
-
186
- **Slack** (`@cursor/july/channels/slack`): Socket Mode
187
- transport, streaming replies, engagement rules, approval cards, and a
188
- default block on Slack Connect / guest / other-workspace senders. Author
189
- `agent/channels/slack.ts` with `slackChannel()`. Guide:
190
- [Slack](/docs/guides/slack.md).
191
-
192
- **GitHub** (`@cursor/july/channels/github`): webhook dispatch
193
- with signature verification, per-event hooks returning `{ auth }` (a
194
- model turn), `{ task }` (host work), or `null`, and CLI tooling for
195
- replay and live forwarding. Author `agent/channels/github.ts` with
196
- `githubChannel()`. Opt-in `progress.commitStatus` and `progress.banner`
197
- converge a merge-box check and sticky PR comment from default stream
198
- events. Supports GitHub.com and GitHub Enterprise Server. Guide:
199
- [GitHub](/docs/guides/github.md).
200
-
201
- **GitLab** (`@cursor/july/channels/gitlab`): verified project hooks for
202
- merge requests, notes, pipelines, pushes, and custom event types. Supports
203
- GitLab.com and self-managed GitLab. Author `agent/channels/gitlab.ts` with
204
- `gitlabChannel()`. Guide: [GitLab](/docs/guides/gitlab.md).
205
-
206
- **Bitbucket** (`@cursor/july/channels/bitbucket`): verified repository hooks
207
- for pull requests, comments, pushes, and custom event types. Supports
208
- Bitbucket Cloud and Bitbucket Data Center through one normalized hook API.
209
- Author `agent/channels/bitbucket.ts` with `bitbucketChannel()`. Guide:
210
- [Bitbucket](/docs/guides/bitbucket.md).
211
-
212
- **Deployments** (`@cursor/july/channels/deployments`): pull deploy
213
- events. Declare `events` and handle each one in `onEvent`. Each event
214
- carries `deploySourceUri` and `deployVersion`. Author
215
- `agent/channels/deployments.ts` with `deploymentsChannel()`.
216
-
217
- On Cursor-managed hosting, omit `deploySourceUris`. The deployment's
218
- watched repositories bind the event scope automatically. Name sources
219
- to narrow the scope or to drive the self-hosted pull relay. Subscribe
220
- per deploy source with `deploySourceUris` and narrow with `environments`
221
- or `events`. Each entry must match `Deployment.deploy_source_uri` as
222
- your deployment writer records it. Matching is case-insensitive but
223
- otherwise literal. It uses the host credential. A restart resumes
224
- rather than dropping events. An empty `deploySourceUris` list mounts the
225
- channel but starts no pull, so an env-configured agent stays inert until
226
- its deploy sources are set.
227
-
228
- **Change Monitors** (`@cursor/july/channels/change-monitors`): Change
229
- Monitor Checkpoint events. The channel publishes Factory
230
- `checkpoint.created` for every Checkpoint create. The agent filters the
231
- result (for example to the `issues` arm). The payload contains the
232
- full Checkpoint resource. This channel is scoped to Change Monitors,
233
- not generic Factory Checkpoints. There is no repository filter or
234
- resource filter. Author `agent/channels/change-monitors.ts` with
235
- `changeMonitorsChannel()`. It uses the host credential.
236
-
237
- **Issues** (`@cursor/july/channels/issues`): Factory issue events.
238
- The channel publishes `issue.created` for every Issue create. The
239
- agent filters if it needs a subset. The payload contains the full
240
- Issue resource. There is no repository filter or resource filter.
241
- Author `agent/channels/issues.ts` with `issuesChannel()`. It uses the
242
- host credential.
166
+ `allowAll()`. An authored `auth` array always takes precedence.
243
167
 
244
- For other platforms like Discord or Teams, use the authored
245
- `defineChannel` webhook form.
168
+ ## Prebuilt channels
246
169
 
247
- ## Continuation semantics
170
+ | Import | Factory | Surface |
171
+ | --- | --- | --- |
172
+ | `@cursor/july/channels/slack` | `slackChannel()` | Slack messages, threads, streaming replies, and approvals. See [Slack](/docs/guides/slack.md) |
173
+ | `@cursor/july/channels/github` | `githubChannel()` | GitHub and GitHub Enterprise webhooks. See [GitHub](/docs/guides/github.md) |
174
+ | `@cursor/july/channels/gitlab` | `gitlabChannel()` | GitLab.com and self-managed GitLab hooks. See [GitLab](/docs/guides/gitlab.md) |
175
+ | `@cursor/july/channels/bitbucket` | `bitbucketChannel()` | Bitbucket Cloud and Data Center hooks. See [Bitbucket](/docs/guides/bitbucket.md) |
176
+ | `@cursor/july/channels/deployments` | `deploymentsChannel()` | Deployment events filtered by source, environment, or event name |
177
+ | `@cursor/july/channels/change-monitors` | `changeMonitorsChannel()` | Change Monitor `checkpoint.created` events |
178
+ | `@cursor/july/channels/issues` | `issuesChannel()` | Factory `issue.created` events |
179
+
180
+ For other platforms like Discord or Teams, use the authored
181
+ `defineChannel` route form.
248
182
 
249
- Channels own their continuation-token format. The built-in HTTP channel
250
- mints opaque rotating tokens, Slack uses `channelId:threadTs`, and PR
251
- automations use keys like `pr:owner/repo#N`. Same token, same durable
252
- session; one active continuation per session; the HTTP channel returns
253
- `409` for stale tokens. For the full session model, see
254
- [Sessions](/docs/reference/sessions.md).
183
+ ## Continuation tokens
255
184
 
256
- ## What's next
185
+ Each channel defines its continuation-token format. The same token
186
+ resumes the same conversation; the built-in HTTP channel rotates its
187
+ opaque token after every accepted follow-up and returns `409` for a
188
+ stale token. See [Session identifiers](/docs/reference/sessions.md#session-identifiers)
189
+ for the full contract.
257
190
 
258
- Continue with these pages:
191
+ ## Related
259
192
 
260
- - [Webhooks guide](/docs/guides/webhooks.md): the same API, walked through
261
- - [HTTP API](/docs/reference/http-api.md): session, discovery, and channel routes
262
- - [Sessions and streaming](/docs/reference/sessions.md): the events channels
263
- subscribe to
193
+ - [Webhooks](/docs/guides/webhooks.md)
194
+ - [HTTP API](/docs/reference/http-api.md)
195
+ - [Sessions](/docs/reference/sessions.md)
196
+ - [Hooks](/docs/reference/hooks.md)