@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.
- package/dist/channels/slack/inbound.d.ts +7 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +23 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +83 -4
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.CAeK13eM.js → app.9eAtsjAM.js} +4 -4
- package/dist/docs/assets/chunks/@localSearchIndexroot.DjNBgxTF.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.C9LbPHod.js → VPLocalSearchBox.C9s69nxj.js} +1 -1
- package/dist/docs/assets/chunks/{arc.CmMq2zmS.js → arc.DmWDRaF-.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CCXB8Uj5.js → architectureDiagram-Q4EWVU46.BE1Wj4f3.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.CyQo6eLe.js → baseUniq.pmEZGnWu.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.JYq6w91N.js → blockDiagram-DXYQGD6D.D6mM-5XN.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.BRV8GPJJ.js → c4Diagram-AHTNJAMY.ZQYTPC1b.js} +1 -1
- package/dist/docs/assets/chunks/channel.BNF8VK-B.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.Bv4ooYQR.js → chunk-4BX2VUAB.CKJ7gaK8.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.t4JtKPcj.js → chunk-4TB4RGXK.CL61HnvB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.34lCHj9Y.js → chunk-55IACEB6.DsA4XA1m.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BSwrPNrt.js → chunk-EDXVE4YY.BODHCHFW.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.Beeun-R-.js → chunk-FMBD7UC4.D6NBaZTa.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BUUFUcJc.js → chunk-OYMX7WX6.BLPuqFXg.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.B2XjHzN_.js → chunk-QZHKN3VN.BFs_ML8Z.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.CLYG8znk.js → chunk-YZCP3GAM.BDjuFyZv.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.iViHzfrK.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.iViHzfrK.js +1 -0
- package/dist/docs/assets/chunks/clone.CJoR2BBM.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.DVEa6fZp.js → cose-bilkent-S5V4N54A.D85HNEsi.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.C9PZQK-S.js → dagre-KV5264BT.V463KlSF.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DoN0uv3Y.js → diagram-5BDNPKRD.DhBDu1ab.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.Czv3duqx.js → diagram-G4DWMVQ6.v6sC68zl.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BinJ5kWb.js → diagram-MMDJMWI5.DhHsdXYv.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DW326M4K.js → diagram-TYMM5635.BPWNSFZc.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.U2pR_OA7.js → erDiagram-SMLLAGMA.Cq0wTMPL.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.ByWJXeYK.js → flowDiagram-DWJPFMVM.MveMtucC.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.OquF0Rtg.js → ganttDiagram-T4ZO3ILL.BzKfGUSf.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.Bpn01P7X.js → gitGraphDiagram-UUTBAWPF.OToXTSW_.js} +1 -1
- package/dist/docs/assets/chunks/{graph.CNRB6ETL.js → graph.D82tam-l.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.CqhknMWi.js → infoDiagram-42DDH7IO.DzFlRmcE.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.C6xpR2af.js → ishikawaDiagram-UXIWVN3A.CVPRJiKe.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.Cg5f7oB3.js → journeyDiagram-VCZTEJTY.CQvNTfQC.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.Cx9YTwlU.js → kanban-definition-6JOO6SKY.BwywywUl.js} +1 -1
- package/dist/docs/assets/chunks/{layout.ljS-wFtK.js → layout.C4BkPPba.js} +1 -1
- package/dist/docs/assets/chunks/{linear.jSxNrsFC.js → linear.FoSfGKD4.js} +1 -1
- package/dist/docs/assets/chunks/{min.Cum8AlQw.js → min.yLh8jqfl.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.BLiysLpe.js → mindmap-definition-QFDTVHPH.C9Dq2_CN.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.BoIDyuKF.js → pieDiagram-DEJITSTG.CiGyBcES.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DLkpDytR.js → quadrantDiagram-34T5L4WZ.1FWea9nj.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DqTVqSu2.js → requirementDiagram-MS252O5E.B1q7ntiV.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.CG_6FF7j.js → sankeyDiagram-XADWPNL6.Cpr4oU_k.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.BIp9602K.js → sequenceDiagram-FGHM5R23.CUK68STn.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.COSXsD9I.js → stateDiagram-FHFEXIEX.zU0yL2m4.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.nV8Nl-td.js +1 -0
- package/dist/docs/assets/chunks/{theme.CXJ7PNwy.js → theme.DhnKd0CD.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.CXdVqkLq.js → timeline-definition-GMOUNBTQ.CNYoXo3F.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.CZxGuc4r.js → vennDiagram-DHZGUBPP.DFWH3G9s.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.3oVgfqQk.js → wardley-RL74JXVD.Do4PwzeN.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.6_irCgGJ.js → wardleyDiagram-NUSXRM2D.7WLkqM7s.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.TRPe92m3.js → xychartDiagram-5P7HB3ND.-SyUNgWw.js} +1 -1
- package/dist/docs/assets/{deployment.md.D2jQZuFx.js → deployment.md.D2YX7u_I.js} +1 -1
- package/dist/docs/assets/{guides_agent-to-agent.md.CD4T5FIl.js → guides_agent-to-agent.md.C6kPY8nu.js} +2 -2
- package/dist/docs/assets/{guides_cloud-agents.md.Cp1O3u-X.js → guides_cloud-agents.md.BPJqTZjT.js} +1 -1
- package/dist/docs/assets/{guides_grokbot-agents.md.CMhZNdEU.js → guides_grokbot-agents.md.CzV715v8.js} +1 -1
- package/dist/docs/assets/guides_hooks.md.BT9GLwEp.js +50 -0
- package/dist/docs/assets/guides_hooks.md.BT9GLwEp.lean.js +1 -0
- package/dist/docs/assets/{guides_jev.md.F5fAkkfN.js → guides_jev.md.DeSCqMaO.js} +6 -44
- package/dist/docs/assets/guides_jev.md.DeSCqMaO.lean.js +1 -0
- package/dist/docs/assets/{guides_slack.md.Bo96y42E.js → guides_slack.md.DVjNyqq5.js} +3 -3
- package/dist/docs/assets/{guides_slack.md.Bo96y42E.lean.js → guides_slack.md.DVjNyqq5.lean.js} +1 -1
- package/dist/docs/assets/reference_agent-config.md.BRxAlnRy.js +36 -0
- package/dist/docs/assets/{reference_agent-config.md.DGPyw7ms.lean.js → reference_agent-config.md.BRxAlnRy.lean.js} +1 -1
- package/dist/docs/assets/reference_artifacts.md.KRX0sAdt.js +18 -0
- package/dist/docs/assets/reference_artifacts.md.KRX0sAdt.lean.js +1 -0
- package/dist/docs/assets/reference_channels.md.DZr14vm7.js +23 -0
- package/dist/docs/assets/reference_channels.md.DZr14vm7.lean.js +1 -0
- package/dist/docs/assets/reference_cli.md.BvnQM8wd.js +97 -0
- package/dist/docs/assets/reference_cli.md.BvnQM8wd.lean.js +1 -0
- package/dist/docs/assets/{reference_connections.md.Je9dMsdd.js → reference_connections.md.DJGUCxrr.js} +18 -30
- package/dist/docs/assets/{reference_connections.md.Je9dMsdd.lean.js → reference_connections.md.DJGUCxrr.lean.js} +1 -1
- package/dist/docs/assets/{reference_evals.md.DNJzM_yf.js → reference_evals.md.C6umwNC6.js} +6 -7
- package/dist/docs/assets/reference_evals.md.C6umwNC6.lean.js +1 -0
- package/dist/docs/assets/{reference_extensions.md.Cv5aLCz_.js → reference_extensions.md.DbNYu-DP.js} +3 -3
- package/dist/docs/assets/{reference_extensions.md.Cv5aLCz_.lean.js → reference_extensions.md.DbNYu-DP.lean.js} +1 -1
- package/dist/docs/assets/reference_hooks.md.BfOkhTU0.js +45 -0
- package/dist/docs/assets/{reference_hooks.md.B7uzNENk.lean.js → reference_hooks.md.BfOkhTU0.lean.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.DdwtBeCj.js +11 -0
- package/dist/docs/assets/{reference_http-api.md.CduHavZ2.lean.js → reference_http-api.md.DdwtBeCj.lean.js} +1 -1
- package/dist/docs/assets/reference_instructions.md.B2mcIzT6.js +14 -0
- package/dist/docs/assets/reference_instructions.md.B2mcIzT6.lean.js +1 -0
- package/dist/docs/assets/reference_playground.md.CyrQD_n3.js +1 -0
- package/dist/docs/assets/reference_playground.md.CyrQD_n3.lean.js +1 -0
- package/dist/docs/assets/reference_project-layout.md.BEMzxAkq.js +19 -0
- package/dist/docs/assets/{reference_project-layout.md.BGhgpy9V.lean.js → reference_project-layout.md.BEMzxAkq.lean.js} +1 -1
- package/dist/docs/assets/reference_prompt.md.BFrqjHFL.js +9 -0
- package/dist/docs/assets/reference_prompt.md.BFrqjHFL.lean.js +1 -0
- package/dist/docs/assets/reference_schedules.md.BB9N3tRR.js +47 -0
- package/dist/docs/assets/reference_schedules.md.BB9N3tRR.lean.js +1 -0
- package/dist/docs/assets/reference_sessions.md.BBp-GIt-.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.1_6Vyv7x.lean.js → reference_sessions.md.BBp-GIt-.lean.js} +1 -1
- package/dist/docs/assets/reference_skills.md.BVmi3UJ_.js +15 -0
- package/dist/docs/assets/{reference_skills.md.DjQkRefx.lean.js → reference_skills.md.BVmi3UJ_.lean.js} +1 -1
- package/dist/docs/assets/reference_subagents.md.DRoRy2Uj.js +10 -0
- package/dist/docs/assets/{reference_subagents.md.Dl16gcBj.lean.js → reference_subagents.md.DRoRy2Uj.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.B1dH1lpa.js → reference_tools.md.CgocLDX1.js} +9 -6
- package/dist/docs/assets/{reference_tools.md.B1dH1lpa.lean.js → reference_tools.md.CgocLDX1.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.HY95rCCz.js +1 -0
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +37 -37
- package/dist/docs/deployment.md +1 -1
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +38 -38
- package/dist/docs/guides/agent-to-agent.md +11 -12
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +36 -36
- package/dist/docs/guides/cloud-agents.md +1 -1
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +37 -37
- package/dist/docs/guides/grokbot-agents.md +1 -1
- package/dist/docs/guides/hooks.html +109 -0
- package/dist/docs/guides/hooks.md +111 -0
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +42 -80
- package/dist/docs/guides/jev.md +22 -79
- package/dist/docs/guides/mcp-oauth.html +36 -36
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +37 -37
- package/dist/docs/guides/slack.md +7 -0
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/llms-full.txt +1683 -2054
- package/dist/docs/llms.txt +9 -8
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +42 -46
- package/dist/docs/reference/agent-config.md +48 -81
- package/dist/docs/reference/artifacts.html +39 -40
- package/dist/docs/reference/artifacts.md +71 -70
- package/dist/docs/reference/channels.html +41 -61
- package/dist/docs/reference/channels.md +134 -201
- package/dist/docs/reference/cli.html +127 -125
- package/dist/docs/reference/cli.md +685 -753
- package/dist/docs/reference/connections.html +54 -66
- package/dist/docs/reference/connections.md +92 -128
- package/dist/docs/reference/evals.html +42 -43
- package/dist/docs/reference/evals.md +42 -50
- package/dist/docs/reference/extensions.html +38 -38
- package/dist/docs/reference/extensions.md +9 -13
- package/dist/docs/reference/hooks.html +39 -67
- package/dist/docs/reference/hooks.md +72 -146
- package/dist/docs/reference/http-api.html +39 -39
- package/dist/docs/reference/http-api.md +137 -161
- package/dist/docs/reference/instructions.html +39 -39
- package/dist/docs/reference/instructions.md +21 -36
- package/dist/docs/reference/playground.html +36 -36
- package/dist/docs/reference/playground.md +26 -43
- package/dist/docs/reference/project-layout.html +38 -38
- package/dist/docs/reference/project-layout.md +12 -17
- package/dist/docs/reference/prompt.html +42 -42
- package/dist/docs/reference/prompt.md +18 -13
- package/dist/docs/reference/schedules.html +56 -91
- package/dist/docs/reference/schedules.md +52 -99
- package/dist/docs/reference/sessions.html +36 -36
- package/dist/docs/reference/sessions.md +36 -40
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/skills.md +15 -26
- package/dist/docs/reference/subagents.html +38 -38
- package/dist/docs/reference/subagents.md +20 -30
- package/dist/docs/reference/tools.html +44 -41
- package/dist/docs/reference/tools.md +45 -64
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/pr-autofixer.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +36 -36
- package/dist/docs/troubleshooting.md +1 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +9 -1
- package/dist/internal/deploy-client.d.ts +6 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -0
- package/dist/internal/discovery/agent-config.d.ts +3 -1
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +7 -4
- package/dist/internal/framework-storage-selection.d.ts +1 -1
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/platform-timers.d.ts.map +1 -1
- package/dist/internal/platform-timers.js +20 -2
- package/dist/internal/reminder-runner.d.ts +79 -1
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +276 -44
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +7 -0
- package/dist/memory.d.ts +4 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +28 -4
- package/dist/playground/assets/index-DLwnR9ys.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +16 -9
- package/dist/types.d.ts.map +1 -1
- package/docs/deployment.md +1 -1
- package/docs/guides/agent-to-agent.md +11 -12
- package/docs/guides/cloud-agents.md +1 -1
- package/docs/guides/grokbot-agents.md +1 -1
- package/docs/guides/hooks.md +116 -0
- package/docs/guides/jev.md +23 -80
- package/docs/guides/slack.md +7 -0
- package/docs/reference/agent-config.md +48 -81
- package/docs/reference/artifacts.md +72 -71
- package/docs/reference/channels.md +135 -202
- package/docs/reference/cli.md +686 -754
- package/docs/reference/connections.md +93 -129
- package/docs/reference/evals.md +43 -51
- package/docs/reference/extensions.md +9 -13
- package/docs/reference/hooks.md +72 -146
- package/docs/reference/http-api.md +137 -161
- package/docs/reference/instructions.md +22 -37
- package/docs/reference/playground.md +26 -43
- package/docs/reference/project-layout.md +12 -17
- package/docs/reference/prompt.md +20 -15
- package/docs/reference/schedules.md +52 -99
- package/docs/reference/sessions.md +36 -40
- package/docs/reference/skills.md +15 -26
- package/docs/reference/subagents.md +20 -30
- package/docs/reference/tools.md +45 -64
- package/docs/troubleshooting.md +1 -1
- package/package.json +1 -1
- package/src/channels/slack/inbound.ts +24 -0
- package/src/channels/slack/slack-channel.ts +123 -1
- package/src/internal/cli-deploy.ts +12 -1
- package/src/internal/deploy-client.ts +9 -0
- package/src/internal/discovery/agent-config.ts +8 -6
- package/src/internal/framework-storage-selection.ts +1 -1
- package/src/internal/platform-timers.ts +24 -2
- package/src/internal/reminder-runner.ts +426 -63
- package/src/internal/server.ts +8 -0
- package/src/memory.ts +37 -3
- package/src/types.ts +16 -9
- package/dist/docs/assets/chunks/@localSearchIndexroot.Ck9E52Ls.js +0 -1
- package/dist/docs/assets/chunks/channel.BHiYmnZ4.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Degh8l90.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Degh8l90.js +0 -1
- package/dist/docs/assets/chunks/clone.BIywbczV.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.qrxrbFsX.js +0 -1
- package/dist/docs/assets/guides_jev.md.F5fAkkfN.lean.js +0 -1
- package/dist/docs/assets/reference_agent-config.md.DGPyw7ms.js +0 -40
- package/dist/docs/assets/reference_artifacts.md.Bu_4HmsD.js +0 -19
- package/dist/docs/assets/reference_artifacts.md.Bu_4HmsD.lean.js +0 -1
- package/dist/docs/assets/reference_channels.md.nFWbzAic.js +0 -43
- package/dist/docs/assets/reference_channels.md.nFWbzAic.lean.js +0 -1
- package/dist/docs/assets/reference_cli.md.DLWDz9ij.js +0 -95
- package/dist/docs/assets/reference_cli.md.DLWDz9ij.lean.js +0 -1
- package/dist/docs/assets/reference_evals.md.DNJzM_yf.lean.js +0 -1
- package/dist/docs/assets/reference_hooks.md.B7uzNENk.js +0 -73
- package/dist/docs/assets/reference_http-api.md.CduHavZ2.js +0 -11
- package/dist/docs/assets/reference_instructions.md.CU1My5My.js +0 -14
- package/dist/docs/assets/reference_instructions.md.CU1My5My.lean.js +0 -1
- package/dist/docs/assets/reference_playground.md.Ch2d0Iqi.js +0 -1
- package/dist/docs/assets/reference_playground.md.Ch2d0Iqi.lean.js +0 -1
- package/dist/docs/assets/reference_project-layout.md.BGhgpy9V.js +0 -19
- package/dist/docs/assets/reference_prompt.md.Ccp0R53H.js +0 -1
- package/dist/docs/assets/reference_prompt.md.Ccp0R53H.lean.js +0 -1
- package/dist/docs/assets/reference_schedules.md.B2Nm6FaD.js +0 -82
- package/dist/docs/assets/reference_schedules.md.B2Nm6FaD.lean.js +0 -1
- package/dist/docs/assets/reference_sessions.md.1_6Vyv7x.js +0 -1
- package/dist/docs/assets/reference_skills.md.DjQkRefx.js +0 -15
- package/dist/docs/assets/reference_subagents.md.Dl16gcBj.js +0 -10
- package/dist/docs/assets/troubleshooting.md.mnfFG2Em.js +0 -1
- package/dist/playground/assets/index-DSMAewbx.css +0 -1
- /package/dist/docs/assets/{deployment.md.D2jQZuFx.lean.js → deployment.md.D2YX7u_I.lean.js} +0 -0
- /package/dist/docs/assets/{guides_agent-to-agent.md.CD4T5FIl.lean.js → guides_agent-to-agent.md.C6kPY8nu.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-agents.md.Cp1O3u-X.lean.js → guides_cloud-agents.md.BPJqTZjT.lean.js} +0 -0
- /package/dist/docs/assets/{guides_grokbot-agents.md.CMhZNdEU.lean.js → guides_grokbot-agents.md.CzV715v8.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.mnfFG2Em.lean.js → troubleshooting.md.HY95rCCz.lean.js} +0 -0
- /package/dist/playground/assets/{index-De_lpFxE.js → index-CX6oTKwz.js} +0 -0
|
@@ -29,7 +29,7 @@ to the directory name. When serving multiple agents, the slug is the
|
|
|
29
29
|
directory name and must match `[A-Za-z0-9][A-Za-z0-9_-]*` (and not the
|
|
30
30
|
reserved `v1`, `playground`, or `docs` segments).
|
|
31
31
|
|
|
32
|
-
## Project
|
|
32
|
+
## Project tree
|
|
33
33
|
|
|
34
34
|
Most projects start with this shape.
|
|
35
35
|
|
|
@@ -54,8 +54,8 @@ my-agent/
|
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Evals live in `evals/` at the project root, a sibling of `agent/`, never
|
|
57
|
-
inside it. `agent/evals/` is
|
|
58
|
-
[Evals](../evals.md).
|
|
57
|
+
inside it. `agent/evals/` is ignored, and `validate` warns about it.
|
|
58
|
+
See [Evals](../evals.md).
|
|
59
59
|
|
|
60
60
|
## Folder reference
|
|
61
61
|
|
|
@@ -73,30 +73,26 @@ Each path maps to a capability and a reference page.
|
|
|
73
73
|
| `agent/extensions/<ns>.ts` or `agent/extensions/<ns>/` | A mounted extension or Cursor plugin; its contributions become `<ns>__<name>` | [Extensions](./extensions.md) |
|
|
74
74
|
| `agent/channels/*.ts` | HTTP surfaces beyond the built-in session API; `slack.ts` and `github.ts` use the platform packs | [Channels](./channels.md) |
|
|
75
75
|
| `agent/hooks/*.ts` | Observe-only event subscribers, never fatal | [Hooks](./hooks.md) |
|
|
76
|
-
| `agent/otel.ts` | Factory-only OTLP authoring (`defineOtel`). Public path is env / `serve({ otel })`. | [OpenTelemetry](../guides/opentelemetry.md) |
|
|
77
|
-
| `agent/storage.ts` | `defineStorage` backend for the durable `host.kv` / `host.files` APIs | None |
|
|
78
76
|
| `agent/artifacts.ts` | `defineArtifacts` kinds, the `tag_artifact` opt-in, and retention | [Artifacts](./artifacts.md) |
|
|
79
77
|
| `agent/result.ts` | `defineResult` host `commit` on the final assistant text (`throw` or `ctx.reject`) | None |
|
|
80
78
|
| `agent/schedules/*` | Cron-driven runs (UTC, 5-field; never auto-fire under `--dev`) | [Schedules](./schedules.md) |
|
|
81
|
-
| `agent/
|
|
82
|
-
| `agent/
|
|
79
|
+
| `agent/reminders/*.ts` | Named reminder handlers that stay armed across restarts | [Schedules](./schedules.md#reminders) |
|
|
80
|
+
| `agent/sandbox/workspace/**` | Seed files copied into each local session workspace | [Sessions](./sessions.md#local-session-workspace) |
|
|
83
81
|
| `agent/lib/` | Import-only shared code, never discovered | None |
|
|
84
82
|
| `evals/evals.config.ts` | Shared eval settings (e.g. `maxConcurrency`); required when evals exist | [Evals](../evals.md) |
|
|
85
83
|
| `evals/**/*.eval.ts` | Filesystem evals; case id = path under `evals/` | [Evals](../evals.md) |
|
|
86
84
|
|
|
87
|
-
`agent/lib/`
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
Use `agent/lib/` for shared imports. A `.ts` file in one of the listed
|
|
86
|
+
discovery folders loads as a definition; unrecognized directories
|
|
87
|
+
produce a validation warning.
|
|
90
88
|
|
|
91
|
-
##
|
|
89
|
+
## Inspect discovery
|
|
92
90
|
|
|
93
91
|
Run `agent-sdk validate --dir .` and `agent-sdk info --dir .`.
|
|
94
92
|
`validate` prints diagnostics, and `serve` refuses to start on
|
|
95
93
|
error-severity ones. Warnings, such as cloud runtime combined with
|
|
96
94
|
local-only capabilities, print but don't block. `info` lists the discovered
|
|
97
|
-
surface, so a missing tool or channel shows up immediately.
|
|
98
|
-
there, check the folder reference: the file is usually in the wrong directory
|
|
99
|
-
or has the wrong extension.
|
|
95
|
+
surface, so a missing tool or channel shows up immediately.
|
|
100
96
|
|
|
101
97
|
```bash
|
|
102
98
|
agent-sdk validate --dir . # diagnostics; non-zero exit on errors
|
|
@@ -104,9 +100,8 @@ agent-sdk info --dir . # human-readable surface
|
|
|
104
100
|
agent-sdk info --dir . --json # machine-readable project info (same shape as GET /v1/info)
|
|
105
101
|
```
|
|
106
102
|
|
|
107
|
-
##
|
|
108
|
-
|
|
109
|
-
Continue with these pages:
|
|
103
|
+
## Related
|
|
110
104
|
|
|
111
105
|
- [Agent config](./agent-config.md): the runtime config at the root
|
|
112
106
|
- [Tools](./tools.md): add typed actions under `agent/tools/`
|
|
107
|
+
- [CLI](./cli.md): commands that discover this tree
|
package/docs/reference/prompt.md
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
3
|
-
description: "
|
|
2
|
+
title: "Prompt strings"
|
|
3
|
+
description: "Write indented multi-line strings without carrying source indentation into their values."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Prompt strings
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
and
|
|
8
|
+
The `prompt` template tag keeps multi-line strings aligned with the
|
|
9
|
+
surrounding TypeScript while returning dedented text. Use it for tool
|
|
10
|
+
descriptions, reminder prompts, channel context, and errors. Import it
|
|
11
|
+
from the package root or the dedicated entrypoint:
|
|
11
12
|
|
|
12
13
|
```ts
|
|
13
14
|
import { prompt } from "@cursor/july";
|
|
14
15
|
// or: import { prompt } from "@cursor/july/prompt";
|
|
15
16
|
```
|
|
16
17
|
|
|
17
|
-
##
|
|
18
|
+
## Dedented strings
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
multiline form stays readable in source.
|
|
20
|
+
`prompt` returns one string. It removes the common leading whitespace
|
|
21
|
+
and one newline immediately after the opening backtick.
|
|
22
22
|
|
|
23
23
|
```ts
|
|
24
24
|
throw new Error(prompt`
|
|
25
|
-
It is outside business hours (Mon
|
|
25
|
+
It is outside business hours (Mon-Fri 9am-5pm ET).
|
|
26
26
|
Use request_author_approval, or pass approval=human_request.
|
|
27
27
|
`);
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Blank lines inside the body are preserved. Relative indentation after the
|
|
31
|
-
common prefix is
|
|
31
|
+
common prefix is preserved, so nested lists keep their shape.
|
|
32
32
|
|
|
33
33
|
When interpolating multi-line values (for example a list of services), give
|
|
34
34
|
those lines the same indent as the `prompt` body so dedent stays consistent.
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Line arrays
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
`prompt.lines` applies the same rules and returns `string[]`, with one
|
|
39
|
+
entry per line. Use it when an API accepts separate context lines:
|
|
40
40
|
|
|
41
41
|
```ts
|
|
42
42
|
context: prompt.lines`
|
|
@@ -45,3 +45,8 @@ context: prompt.lines`
|
|
|
45
45
|
Call plan_deploy, then follow its nextStep.
|
|
46
46
|
`
|
|
47
47
|
```
|
|
48
|
+
|
|
49
|
+
## Related
|
|
50
|
+
|
|
51
|
+
- [Tools](./tools.md)
|
|
52
|
+
- [Channels](./channels.md)
|
|
@@ -5,7 +5,7 @@ description: "Cron-driven runs defined at deploy time, and per-session durable w
|
|
|
5
5
|
|
|
6
6
|
# Schedules and reminders
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
An agent can act without an inbound message in two ways. A schedule is
|
|
9
9
|
deploy-time cron: "every weekday at 09:00, summarize open incidents." A
|
|
10
10
|
reminder is a runtime wake bound to one conversation: "re-check this
|
|
11
11
|
PR's CI in two hours." Schedules live in the filesystem; reminders are
|
|
@@ -16,10 +16,9 @@ created by running code.
|
|
|
16
16
|
Cron expressions are standard 5-field, evaluated in UTC with minute
|
|
17
17
|
granularity.
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### Markdown schedules
|
|
20
20
|
|
|
21
|
-
A
|
|
22
|
-
task:
|
|
21
|
+
A markdown file with `cron:` frontmatter is a fire-and-forget task:
|
|
23
22
|
|
|
24
23
|
```md
|
|
25
24
|
---
|
|
@@ -33,10 +32,10 @@ Each firing starts a task-mode session: the body is the prompt, the
|
|
|
33
32
|
session runs to `session.completed` or `session.failed`, and it isn't
|
|
34
33
|
followable.
|
|
35
34
|
|
|
36
|
-
###
|
|
35
|
+
### Schedule handlers
|
|
37
36
|
|
|
38
|
-
`defineSchedule` with a `run` handler
|
|
39
|
-
|
|
37
|
+
Use `defineSchedule` with a `run` handler to call tools or hand work into
|
|
38
|
+
a channel so its delivery events fire:
|
|
40
39
|
|
|
41
40
|
```ts
|
|
42
41
|
import { defineSchedule } from "@cursor/july/schedules";
|
|
@@ -45,7 +44,6 @@ import webhook from "../channels/webhook.js";
|
|
|
45
44
|
export default defineSchedule({
|
|
46
45
|
cron: "*/30 * * * *",
|
|
47
46
|
async run({ receive, waitUntil, appAuth, host }) {
|
|
48
|
-
// optional: await host.mcp.callTool("units", "celsius_to_fahrenheit", { value: 0 });
|
|
49
47
|
waitUntil(
|
|
50
48
|
receive(webhook, {
|
|
51
49
|
message:
|
|
@@ -64,14 +62,12 @@ schedule-scoped principal for work the agent does on its own behalf),
|
|
|
64
62
|
and `host` (shared services: `host.mcp`, `host.github`, `host.slack`,
|
|
65
63
|
`host.reminders`).
|
|
66
64
|
|
|
67
|
-
### Dispatch
|
|
65
|
+
### Dispatch a schedule
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
In dev (`serve --dev`), schedules never fire automatically. Dispatch one
|
|
74
|
-
by hand, exactly once, through the same path production uses:
|
|
67
|
+
| Mode | What fires |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| Production `agent-sdk serve` | Cron cadence. `--no-schedules` disables them. Run them in exactly one process per project |
|
|
70
|
+
| `serve --dev` | Nothing automatic. Dispatch by hand through the same path production uses |
|
|
75
71
|
|
|
76
72
|
```bash
|
|
77
73
|
curl -X POST http://127.0.0.1:3000/<slug>/v1/dev/schedules/heartbeat
|
|
@@ -83,104 +79,67 @@ The playground can dispatch schedules in dev mode too, and
|
|
|
83
79
|
|
|
84
80
|
## Reminders
|
|
85
81
|
|
|
86
|
-
A reminder is created at runtime and bound to a channel continuation.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
A reminder is created at runtime and bound to a channel continuation. A
|
|
83
|
+
prompt reminder wakes that conversation when it fires; a handler reminder
|
|
84
|
+
runs host code, which can call `followup` to wake it. Recurring reminders
|
|
85
|
+
behave like `setInterval`, and one-shots behave like `setTimeout`. Prompt
|
|
86
|
+
and named-handler reminders stay armed across restarts.
|
|
90
87
|
|
|
91
88
|
```ts
|
|
92
89
|
await handle.createReminder({
|
|
93
90
|
purpose: "ci_recheck",
|
|
94
91
|
channelId: "drive",
|
|
95
|
-
continuationToken: "pr:
|
|
96
|
-
delay: "2h",
|
|
92
|
+
continuationToken: "pr:acme/checkout#42",
|
|
93
|
+
delay: "2h",
|
|
97
94
|
prompt: "Re-check CI. Only act if still failing.",
|
|
98
95
|
until: "Cancel once CI is green or the PR is merged.",
|
|
99
96
|
});
|
|
100
97
|
```
|
|
101
98
|
|
|
102
|
-
|
|
99
|
+
When host code must decide what happens on each tick, author a named
|
|
100
|
+
handler and pass its default export with serializable `args`:
|
|
103
101
|
|
|
104
102
|
```ts
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
channelId: "drive",
|
|
108
|
-
continuationToken: "pr:owner/repo#1",
|
|
109
|
-
every: "30m",
|
|
110
|
-
async run({ fireCount, followup }) {
|
|
111
|
-
if (fireCount >= 3) {
|
|
112
|
-
return { action: "stop" };
|
|
113
|
-
}
|
|
103
|
+
// agent/reminders/ci_recheck.ts
|
|
104
|
+
import { defineReminder } from "@cursor/july/reminders";
|
|
114
105
|
|
|
106
|
+
export default defineReminder({
|
|
107
|
+
async run({ args, followup }) {
|
|
115
108
|
await followup({
|
|
116
|
-
message:
|
|
109
|
+
message: `Re-check CI for ${String(args.prUrl)}. Report only if the status changed.`,
|
|
117
110
|
});
|
|
118
111
|
return { action: "delivered" };
|
|
119
112
|
},
|
|
120
113
|
});
|
|
121
114
|
```
|
|
122
115
|
|
|
123
|
-
This reminder wakes the conversation three times, then stops itself.
|
|
124
|
-
|
|
125
|
-
The same API is `host.reminders` on channel handlers, tools, and
|
|
126
|
-
schedule runs. An agent can even be given a tool that creates its own
|
|
127
|
-
reminders.
|
|
128
|
-
|
|
129
|
-
For example, create `agent/tools/remind_me.ts`:
|
|
130
|
-
|
|
131
116
|
```ts
|
|
132
|
-
import
|
|
133
|
-
import { z } from "zod";
|
|
134
|
-
|
|
135
|
-
export default defineTool({
|
|
136
|
-
description: "Schedule a one-time reminder in this conversation.",
|
|
137
|
-
inputSchema: z.object({
|
|
138
|
-
delay: z
|
|
139
|
-
.string()
|
|
140
|
-
.describe("When to wake the conversation, such as 20m or 2h"),
|
|
141
|
-
prompt: z
|
|
142
|
-
.string()
|
|
143
|
-
.min(1)
|
|
144
|
-
.describe("What the agent should do when it wakes"),
|
|
145
|
-
}),
|
|
146
|
-
async execute({ delay, prompt }, ctx) {
|
|
147
|
-
const reminders = ctx.host.reminders;
|
|
148
|
-
if (reminders === undefined) {
|
|
149
|
-
throw new Error("Reminders are disabled on this host.");
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const continuationToken = ctx.session.continuationKey;
|
|
153
|
-
if (continuationToken == null) {
|
|
154
|
-
throw new Error("This session cannot receive reminder follow-ups.");
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
const reminder = await reminders.create({
|
|
158
|
-
purpose: "user_follow_up",
|
|
159
|
-
channelId: ctx.session.channelId,
|
|
160
|
-
continuationToken,
|
|
161
|
-
delay,
|
|
162
|
-
prompt,
|
|
163
|
-
});
|
|
117
|
+
import ciRecheck from "./agent/reminders/ci_recheck.js";
|
|
164
118
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
119
|
+
await handle.createReminder({
|
|
120
|
+
purpose: "ci_recheck",
|
|
121
|
+
channelId: "drive",
|
|
122
|
+
continuationToken: "pr:acme/checkout#42",
|
|
123
|
+
every: "30m",
|
|
124
|
+
handler: ciRecheck,
|
|
125
|
+
args: { prUrl: "https://github.com/acme/checkout/pull/42" },
|
|
170
126
|
});
|
|
171
127
|
```
|
|
172
128
|
|
|
173
|
-
|
|
174
|
-
|
|
129
|
+
Use an anonymous `run` handler only for legacy projects that can re-arm
|
|
130
|
+
it after a restart. New projects should use a named handler.
|
|
175
131
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
cancellation condition for the model
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
132
|
+
| Form | What it does | After a restart |
|
|
133
|
+
| --- | --- | --- |
|
|
134
|
+
| Prompt | Sends `prompt` into the session. `until` is the standing cancellation condition for the model | Stays armed |
|
|
135
|
+
| Named handler | Runs a discovered handler with serializable `args`; it starts a model turn only if the handler calls `followup` | Stays armed |
|
|
136
|
+
| Anonymous `run` | Host handler returns `stop`, `skip`, or `delivered` per tick; it starts a model turn only if it calls `followup` | Must be re-armed |
|
|
137
|
+
|
|
138
|
+
The same API is `host.reminders` on channel handlers, tools, and
|
|
139
|
+
schedule runs. `builtinTools: { reminders: true }` adds
|
|
140
|
+
`reminders_create`, `reminders_list`, and `reminders_cancel` on the
|
|
141
|
+
current conversation; see
|
|
142
|
+
[Agent config: built-in tools](./agent-config.md#built-in-tools).
|
|
184
143
|
|
|
185
144
|
`--dev` does not auto-fire reminders. Dispatch one by hand:
|
|
186
145
|
|
|
@@ -191,27 +150,21 @@ curl -X POST http://127.0.0.1:3000/<slug>/v1/dev/reminders/<id> # fire one
|
|
|
191
150
|
|
|
192
151
|
`handle.dispatchReminder(id)` is the programmatic equivalent.
|
|
193
152
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
replaying stale payload details, because the agent re-reads the live
|
|
198
|
-
state when it wakes.
|
|
153
|
+
Cancel reminders when their subject dies, for example on
|
|
154
|
+
`pull_request.closed`. Keep wake prompts generic so the agent re-reads
|
|
155
|
+
live state instead of replaying a stale payload.
|
|
199
156
|
|
|
200
|
-
##
|
|
201
|
-
|
|
202
|
-
The split comes down to scope and timing.
|
|
157
|
+
## Schedules vs reminders
|
|
203
158
|
|
|
204
159
|
| | Schedule | Reminder |
|
|
205
160
|
| -------- | ---------------------------------------------------------- | ----------------------------------------------- |
|
|
206
161
|
| Defined | at deploy time, `agent/schedules/*` | at runtime, `createReminder` / `host.reminders` |
|
|
207
162
|
| Scope | global to the agent | one channel continuation (one conversation) |
|
|
208
163
|
| Session | starts a new task session (or hands off through `receive`) | wakes an existing conversation |
|
|
209
|
-
| Cadence | cron (UTC) |
|
|
164
|
+
| Cadence | cron (UTC) | `every`, `cron`, `delay`, or `at` |
|
|
210
165
|
| Dev mode | manual dispatch only | manual dispatch only (timers off) |
|
|
211
166
|
|
|
212
|
-
##
|
|
213
|
-
|
|
214
|
-
Continue with these pages:
|
|
167
|
+
## Related
|
|
215
168
|
|
|
216
169
|
- [Channels](./channels.md): `receive` and the delivery events
|
|
217
170
|
- [GitHub guide](../guides/github.md): reminders in a real webhook loop
|
|
@@ -6,9 +6,12 @@ description: "Understand how conversations continue, how events stream, and wher
|
|
|
6
6
|
# Sessions, events, and streaming
|
|
7
7
|
|
|
8
8
|
A session keeps one conversation, its workspace, and an append-only
|
|
9
|
-
record of every message and tool call.
|
|
9
|
+
record of every message and tool call. Continue it with a continuation
|
|
10
|
+
token, inspect it with a session ID, and follow progress on the NDJSON
|
|
11
|
+
stream. Chat sessions wait for follow-ups; task sessions run once and
|
|
12
|
+
stop.
|
|
10
13
|
|
|
11
|
-
##
|
|
14
|
+
## Session contents
|
|
12
15
|
|
|
13
16
|
Each session combines:
|
|
14
17
|
|
|
@@ -16,12 +19,12 @@ Each session combines:
|
|
|
16
19
|
- A conversation the caller can continue
|
|
17
20
|
- A workspace for local turns
|
|
18
21
|
- An NDJSON event stream
|
|
19
|
-
-
|
|
22
|
+
- State that lets the conversation resume after a restart
|
|
20
23
|
|
|
21
24
|
Sessions belong to the principal that created them. Follow-up, stream,
|
|
22
25
|
and list routes return `403` when another caller tries to access one.
|
|
23
26
|
|
|
24
|
-
##
|
|
27
|
+
## Session identifiers
|
|
25
28
|
|
|
26
29
|
Sessions have two identifiers because conversation routing and
|
|
27
30
|
inspection are different jobs.
|
|
@@ -39,7 +42,7 @@ accepted follow-up. Reusing a stale HTTP token returns `409`.
|
|
|
39
42
|
Use the continuation token to keep talking. Use the session ID to
|
|
40
43
|
observe or manage the stored session.
|
|
41
44
|
|
|
42
|
-
##
|
|
45
|
+
## Session modes
|
|
43
46
|
|
|
44
47
|
| Mode | Created by | What happens after a turn |
|
|
45
48
|
| --- | --- | --- |
|
|
@@ -48,7 +51,7 @@ observe or manage the stored session.
|
|
|
48
51
|
|
|
49
52
|
Task sessions don't accept follow-ups. Trying one returns `409`.
|
|
50
53
|
|
|
51
|
-
##
|
|
54
|
+
## Follow-ups
|
|
52
55
|
|
|
53
56
|
A follow-up to an idle chat session starts another turn. Admission when
|
|
54
57
|
the session is already busy depends on the channel:
|
|
@@ -56,23 +59,21 @@ the session is already busy depends on the channel:
|
|
|
56
59
|
| Path | Busy-session policy |
|
|
57
60
|
| --- | --- |
|
|
58
61
|
| HTTP playground / `POST /v1/session/:id` / MCP `ask` | **Preempt** (default): interrupt the in-flight turn, wait for it to settle, then run the new message |
|
|
59
|
-
| Slack mentions / DMs / alert-watch | **Coalesce**: leave the active turn running
|
|
62
|
+
| Slack mentions / DMs / alert-watch | **Coalesce**: leave the active turn running and queue the follow-up. The running turn may receive it at a tool boundary; any asks that remain become one follow-up turn when it finishes |
|
|
60
63
|
|
|
61
64
|
Pass `admission: "coalesce"` on `send()` to opt into the Slack policy from
|
|
62
65
|
other callers. Omit it (or pass `"preempt"`) to keep interrupt semantics.
|
|
63
66
|
|
|
64
67
|
`POST /v1/session/:id/stop` interrupts a turn without sending a new
|
|
65
|
-
message.
|
|
66
|
-
|
|
67
|
-
Slack `stop` / `@agent stop` does the same for that thread
|
|
68
|
-
pending coalesced
|
|
68
|
+
message. The stream records `turn.failed` with `status: "cancelled"`;
|
|
69
|
+
the session stays a chat session and can take another follow-up. A
|
|
70
|
+
whole-message Slack `stop` / `@agent stop` does the same for that thread
|
|
71
|
+
and clears pending coalesced follow-ups.
|
|
69
72
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
running, a read-effect call runs alongside the turn (see
|
|
73
|
-
[Tools](./tools.md#call-a-tool-without-a-model-turn)).
|
|
73
|
+
See [Tools](./tools.md#call-a-tool-without-a-model-turn) for direct-call
|
|
74
|
+
behavior while a session is busy.
|
|
74
75
|
|
|
75
|
-
##
|
|
76
|
+
## Stream events
|
|
76
77
|
|
|
77
78
|
Each NDJSON line uses this envelope:
|
|
78
79
|
`{ type, index, sessionId, turnId?, at, data }`. The `index` increases
|
|
@@ -94,13 +95,11 @@ within one session. The `at` field is an ISO-8601 timestamp.
|
|
|
94
95
|
|
|
95
96
|
Pair `actions.requested` with `action.result` to reconstruct the tool
|
|
96
97
|
trajectory. Read `turn.completed.data.usage` for input, output, and
|
|
97
|
-
cache token counts.
|
|
98
|
-
`commit
|
|
99
|
-
|
|
100
|
-
`ctx.reject(message)` re-runs the same turn with that message so the
|
|
101
|
-
model can revise while tools and the session filesystem are still up.
|
|
98
|
+
cache token counts. With `agent/result.ts`, `turn.failed` is emitted when
|
|
99
|
+
`commit` throws, the turn has no assistant text, or `ctx.reject(message)`
|
|
100
|
+
doesn't lead to an accepted revision.
|
|
102
101
|
|
|
103
|
-
##
|
|
102
|
+
## Stream or replay events
|
|
104
103
|
|
|
105
104
|
One endpoint handles both live streaming and replay:
|
|
106
105
|
|
|
@@ -108,27 +107,27 @@ One endpoint handles both live streaming and replay:
|
|
|
108
107
|
curl -N 'http://127.0.0.1:3000/<slug>/v1/session/ses_…/stream?startIndex=0'
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
Pass `startIndex` to continue after the last event you received
|
|
112
|
-
or pass `0` to replay the
|
|
110
|
+
Pass `startIndex` to continue after the last event you received,
|
|
111
|
+
including after a server restart. Omit it or pass `0` to replay the
|
|
112
|
+
full session before following new events.
|
|
113
113
|
`GET /v1/session/:id/events` returns a one-time dump without staying
|
|
114
114
|
connected.
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
state resumes from the Cursor SDK store.
|
|
118
|
-
|
|
119
|
-
## What goes into a local session workspace?
|
|
116
|
+
## Local session workspace
|
|
120
117
|
|
|
121
118
|
The Agent SDK creates a workspace before the first local turn:
|
|
122
119
|
|
|
123
120
|
| Source path | Lands as |
|
|
124
121
|
| ---------------------------------- | ----------------------------------------------------------------------- |
|
|
125
|
-
| `instructions.*` | `AGENTS.md` |
|
|
126
122
|
| `skills/*` | `.cursor/skills/<name>/SKILL.md` |
|
|
127
123
|
| agent tools (`execution: "agent"`) | scripts in the session workspace, with a catalog in `AGENTS.md` |
|
|
128
124
|
| `sandbox/workspace/**` | copied in as seed files |
|
|
129
125
|
| per-send `workspaceFiles` | written before the turn |
|
|
130
126
|
|
|
131
|
-
|
|
127
|
+
Instructions reach the model as its system prompt; they aren't written
|
|
128
|
+
into the workspace. See [Instructions](./instructions.md#delivery).
|
|
129
|
+
|
|
130
|
+
Local turns use this workspace as their working directory. Parent
|
|
132
131
|
directories can contribute `AGENTS.md` and `.cursor` settings. Set
|
|
133
132
|
`local.cwd` when you need a clean parent directory. A channel can also
|
|
134
133
|
provide a different working directory for one session, such as a PR
|
|
@@ -137,20 +136,16 @@ worktree.
|
|
|
137
136
|
See [Agent config: local cwd](./agent-config.md#local-cwd) for the
|
|
138
137
|
inheritance rules.
|
|
139
138
|
|
|
140
|
-
##
|
|
139
|
+
## Session storage
|
|
141
140
|
|
|
142
|
-
Local state lives under `--state-root`.
|
|
143
|
-
a subdirectory named for the slug.
|
|
141
|
+
Local session state lives under `--state-root`. A slugged mount stores
|
|
142
|
+
it in a subdirectory named for the slug.
|
|
144
143
|
|
|
145
144
|
Deleting a session directory removes the session from the server: it
|
|
146
145
|
disappears from listings and can no longer be streamed or continued.
|
|
147
146
|
Cloud conversations remain on the Cursor backend.
|
|
148
147
|
|
|
149
|
-
|
|
150
|
-
repo. See
|
|
151
|
-
[What goes into a local session workspace?](#what-goes-into-a-local-session-workspace).
|
|
152
|
-
|
|
153
|
-
## How do I inspect a saved event stream?
|
|
148
|
+
## Inspect a saved event stream
|
|
154
149
|
|
|
155
150
|
Use `trajectory` with a saved trace:
|
|
156
151
|
|
|
@@ -159,10 +154,11 @@ agent-sdk trajectory --events <state-root>/traces/<sessionId>.ndjson
|
|
|
159
154
|
```
|
|
160
155
|
|
|
161
156
|
The command prints tool calls, the reply, and token usage in the same
|
|
162
|
-
JSON shape as `run`.
|
|
163
|
-
|
|
157
|
+
JSON shape as `run`. Open the session's **Trace** view in the playground
|
|
158
|
+
for a visual timeline.
|
|
164
159
|
|
|
165
160
|
## Related
|
|
166
161
|
|
|
167
162
|
- [HTTP API](./http-api.md)
|
|
168
163
|
- [Hooks](./hooks.md)
|
|
164
|
+
- [Tools](./tools.md)
|
package/docs/reference/skills.md
CHANGED
|
@@ -13,15 +13,15 @@ always-on [instructions](./instructions.md).
|
|
|
13
13
|
|
|
14
14
|
## Authoring forms
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Skills support three authoring forms.
|
|
17
17
|
|
|
18
18
|
| Form | Reach for it when |
|
|
19
19
|
| --- | --- |
|
|
20
|
-
| `agent/skills/<name>.md` |
|
|
20
|
+
| `agent/skills/<name>.md` | Static Markdown. Optional `description` frontmatter; the first body line is the fallback. |
|
|
21
21
|
| `agent/skills/<name>/SKILL.md` plus siblings | A packaged directory with reference files (`references/…`). Requires `description` frontmatter. |
|
|
22
22
|
| `agent/skills/<name>.ts` | Generated content, with `defineSkill` from `@cursor/july/skills`. |
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Use flat Markdown for static content:
|
|
25
25
|
|
|
26
26
|
```md
|
|
27
27
|
---
|
|
@@ -35,8 +35,8 @@ description: Use when a pull request needs a structured approval checklist.
|
|
|
35
35
|
3. Call `approve_pr` only after an explicit request; it requires approval.
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
TypeScript
|
|
39
|
-
files:
|
|
38
|
+
Use TypeScript when the content must be generated or include inline
|
|
39
|
+
sibling files:
|
|
40
40
|
|
|
41
41
|
```ts
|
|
42
42
|
import { defineSkill } from "@cursor/july/skills";
|
|
@@ -48,40 +48,29 @@ export default defineSkill({
|
|
|
48
48
|
});
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## Skill delivery
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
them
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
Local turns receive authored skills automatically. Hosted deployments
|
|
54
|
+
and local `serve` or `run` processes with a personal `CURSOR_API_KEY`
|
|
55
|
+
also make them available to cloud turns. Otherwise, a cloud turn sees
|
|
56
|
+
only skills already in its checkout. `agent-sdk validate` warns when
|
|
57
|
+
`runtime: "cloud"` is combined with authored skills.
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
- `agent-sdk serve` / `run` with a personal `CURSOR_API_KEY` write
|
|
61
|
-
namespaced skills on the USER store so they cannot collide with the
|
|
62
|
-
user's own skills.
|
|
63
|
-
|
|
64
|
-
`validate` still warns about the combination so the store path is
|
|
65
|
-
visible. Cloud turns with neither a hosted store nor an API key see
|
|
66
|
-
only skills already in the cloud repo.
|
|
67
|
-
|
|
68
|
-
## Instructions, skills, or tools?
|
|
59
|
+
## Skills, instructions, and tools
|
|
69
60
|
|
|
70
61
|
Instructions are always in context: identity, tool-choice rules, the
|
|
71
62
|
output contract. Keep them short. Skills load when relevant: procedures,
|
|
72
63
|
checklists, house style. Reach for a skill when the model needs to
|
|
73
|
-
|
|
64
|
+
follow something but only sometimes needs it loaded. Tools are typed,
|
|
74
65
|
executable behavior: anything that must be correct every time belongs in
|
|
75
66
|
tool code, not in prose the model might paraphrase.
|
|
76
67
|
|
|
77
|
-
A good skill description is a routing rule, not a title. Say
|
|
68
|
+
A good skill description is a routing rule, not a title. Say when to
|
|
78
69
|
use it, like "Use when a pull request needs a structured approval
|
|
79
70
|
checklist," because the description is all the model sees before
|
|
80
71
|
deciding to load it.
|
|
81
72
|
|
|
82
|
-
##
|
|
83
|
-
|
|
84
|
-
Continue with these pages:
|
|
73
|
+
## Related
|
|
85
74
|
|
|
86
75
|
- [Instructions](./instructions.md): what stays always-on
|
|
87
76
|
- [Tools](./tools.md): when prose needs to become code
|