@cursor/july 0.1.91 → 0.1.93
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/AGENTS.md +4 -0
- package/README.md +117 -162
- package/dist/channels/deployments/deployments-channel.d.ts +7 -0
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +26 -2
- package/dist/channels/deployments/types.d.ts +8 -0
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/github-channel.d.ts +3 -0
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +28 -56
- package/dist/continuation.d.ts +1 -1
- package/dist/continuation.js +1 -1
- package/dist/docs/404.html +4 -2
- package/dist/docs/ab.html +10 -8
- package/dist/docs/ab.md +332 -0
- package/dist/docs/assets/{ab.md.CVzWxLoB.js → ab.md.DJo5r4R-.js} +4 -4
- package/dist/docs/assets/{ab.md.CVzWxLoB.lean.js → ab.md.DJo5r4R-.lean.js} +1 -1
- package/dist/docs/assets/{app.Bci6CM9E.js → app.CjWU-x0z.js} +1 -1
- package/dist/docs/assets/building-with-agents.md.DI4mEzlt.js +13 -0
- package/dist/docs/assets/{building-with-agents.md.DH8A_cHA.lean.js → building-with-agents.md.DI4mEzlt.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.ChpIC3Zy.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BCPT6xA-.js → VPLocalSearchBox.Cxy8ySFQ.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BEA8BF3c.js → theme.Dvq1Bktu.js} +2 -2
- package/dist/docs/assets/concepts.md.F6AiPorA.js +1 -0
- package/dist/docs/assets/{concepts.md.CRfU3bVg.lean.js → concepts.md.F6AiPorA.lean.js} +1 -1
- package/dist/docs/assets/{deployment.md.DX_hc3ze.js → deployment.md.DoLFAzfm.js} +6 -6
- package/dist/docs/assets/{evals.md.a0SMN6r9.js → evals.md.lfJoEVc8.js} +6 -6
- package/dist/docs/assets/{evals.md.a0SMN6r9.lean.js → evals.md.lfJoEVc8.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_approval-buddy.md.DNL83puR.js → example-agents_approval-buddy.md.DmezILPg.js} +1 -1
- package/dist/docs/assets/{example-agents_benny.md.C40vHRLc.js → example-agents_benny.md.B0kwY7D_.js} +2 -4
- package/dist/docs/assets/{example-agents_benny.md.C40vHRLc.lean.js → example-agents_benny.md.B0kwY7D_.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_codebase-wiki.md.Dftj_tPp.js → example-agents_codebase-wiki.md.BBNw9Ekr.js} +3 -3
- package/dist/docs/assets/{example-agents_codebase-wiki.md.Dftj_tPp.lean.js → example-agents_codebase-wiki.md.BBNw9Ekr.lean.js} +1 -1
- package/dist/docs/assets/{example-agents_concierge.md.MrKpQndp.js → example-agents_concierge.md.BzB2b20R.js} +2 -3
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.js +2 -0
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.lean.js +1 -0
- package/dist/docs/assets/{example-agents_knowledge-base.md.DqKqHQ9u.js → example-agents_knowledge-base.md.CrA85ig-.js} +1 -1
- package/dist/docs/assets/{example-agents_security-reviewer.md.Bai6D0Ee.js → example-agents_security-reviewer.md.74pPpWYj.js} +1 -1
- package/dist/docs/assets/{example-agents_weather-agent.md.lVEAbWFf.js → example-agents_weather-agent.md.CaGpmw3Y.js} +2 -2
- package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.js → guides_agent-to-agent.md.B3JIaAqz.js} +1 -1
- package/dist/docs/assets/{guides_cloud-runtime.md.BSMLIBHr.js → guides_cloud-runtime.md.BnvjPiia.js} +2 -2
- package/dist/docs/assets/{guides_cloud-runtime.md.BSMLIBHr.lean.js → guides_cloud-runtime.md.BnvjPiia.lean.js} +1 -1
- package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.js → guides_convert-automation.md.Bboisykk.js} +1 -1
- package/dist/docs/assets/{guides_github.md.Cdt1s2QC.js → guides_github.md.DqJhuaN1.js} +5 -5
- package/dist/docs/assets/{guides_github.md.Cdt1s2QC.lean.js → guides_github.md.DqJhuaN1.lean.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.js → guides_mcp-oauth.md.CJvrXtkN.js} +2 -2
- package/dist/docs/assets/{guides_slack.md.DiUmk_Oi.js → guides_slack.md.mqeNKs84.js} +2 -2
- package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.js → guides_webhooks.md.DKdA43Qm.js} +2 -2
- package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.js → hillclimbing.md.DhESf3OO.js} +1 -1
- package/dist/docs/assets/{index.md.BAaMXLFd.js → index.md.B-lVR4wT.js} +3 -3
- package/dist/docs/assets/{index.md.BAaMXLFd.lean.js → index.md.B-lVR4wT.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.DsrarzEg.js → quickstart.md.BrmfrrIr.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.js → reference_agent-config.md.Cp_x38Nl.js} +3 -3
- package/dist/docs/assets/{reference_channels.md.DQZjCnyh.js → reference_channels.md.Cd2f2iyV.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.DQZjCnyh.lean.js → reference_channels.md.Cd2f2iyV.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.B7GkAJRC.js → reference_cli.md.D9KESDsD.js} +10 -11
- package/dist/docs/assets/{reference_cli.md.B7GkAJRC.lean.js → reference_cli.md.D9KESDsD.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DYidrb-j.js → reference_connections.md.DB6SsN6U.js} +3 -3
- package/dist/docs/assets/reference_hooks.md.BxN87gCw.js +14 -0
- package/dist/docs/assets/{reference_hooks.md.B9FSgdDe.lean.js → reference_hooks.md.BxN87gCw.lean.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.C68BERYr.js +11 -0
- package/dist/docs/assets/reference_http-api.md.C68BERYr.lean.js +1 -0
- package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.js → reference_instructions.md.CR7XSsGk.js} +3 -3
- package/dist/docs/assets/{reference_instructions.md.DhNCOl7r.lean.js → reference_instructions.md.CR7XSsGk.lean.js} +1 -1
- package/dist/docs/assets/reference_playground.md.DnX5nL-B.js +1 -0
- package/dist/docs/assets/reference_playground.md.DnX5nL-B.lean.js +1 -0
- package/dist/docs/assets/{reference_project-layout.md.CwkSbEWT.js → reference_project-layout.md.WN9nwJht.js} +2 -2
- package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.js → reference_prompt.md.DnaD5dNK.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DNipebiG.js → reference_schedules.md.DI_JrHgq.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.D0mIh4KK.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.tUFzz98S.lean.js → reference_sessions.md.D0mIh4KK.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.js → reference_skills.md.BFW9retM.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.wpaJtHn6.js → reference_tools.md.DuKvkYWG.js} +4 -4
- package/dist/docs/assets/{reference_tools.md.wpaJtHn6.lean.js → reference_tools.md.DuKvkYWG.lean.js} +1 -1
- package/dist/docs/assets/scaffolding-agents.md.D7UUkWw0.js +1 -0
- package/dist/docs/assets/{scaffolding-agents.md.CRDDUtYJ.lean.js → scaffolding-agents.md.D7UUkWw0.lean.js} +1 -1
- package/dist/docs/assets/{storage.md.JbjlHWZ6.js → storage.md.BOHeqk2M.js} +5 -5
- package/dist/docs/assets/{storage.md.JbjlHWZ6.lean.js → storage.md.BOHeqk2M.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.js → templates_agentic-owners.md.DqtPdm6f.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.js → templates_pr-autofixer.md.R4K_qytS.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.1HAR3RXE.lean.js → templates_pr-autofixer.md.R4K_qytS.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.vCWwvqcJ.js +1 -0
- package/dist/docs/assets/{troubleshooting.md.DYECCZiJ.lean.js → troubleshooting.md.vCWwvqcJ.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +9 -7
- package/dist/docs/building-with-agents.md +118 -0
- package/dist/docs/concepts.html +7 -8
- package/dist/docs/concepts.md +169 -0
- package/dist/docs/deployment.html +13 -11
- package/dist/docs/deployment.md +462 -0
- package/dist/docs/evals.html +12 -10
- package/dist/docs/evals.md +460 -0
- package/dist/docs/example-agents/approval-buddy.html +7 -5
- package/dist/docs/example-agents/approval-buddy.md +266 -0
- package/dist/docs/example-agents/benny.html +7 -7
- package/dist/docs/example-agents/benny.md +173 -0
- package/dist/docs/example-agents/bugbot.html +6 -4
- package/dist/docs/example-agents/bugbot.md +229 -0
- package/dist/docs/example-agents/codebase-wiki.html +8 -6
- package/dist/docs/example-agents/codebase-wiki.md +167 -0
- package/dist/docs/example-agents/codeowners-review.html +6 -4
- package/dist/docs/example-agents/codeowners-review.md +192 -0
- package/dist/docs/example-agents/concierge.html +9 -8
- package/dist/docs/example-agents/concierge.md +200 -0
- package/dist/docs/example-agents/index.html +8 -6
- package/dist/docs/example-agents/index.md +99 -0
- package/dist/docs/example-agents/knowledge-base.html +8 -6
- package/dist/docs/example-agents/knowledge-base.md +168 -0
- package/dist/docs/example-agents/oncall.html +6 -4
- package/dist/docs/example-agents/oncall.md +212 -0
- package/dist/docs/example-agents/security-reviewer.html +9 -7
- package/dist/docs/example-agents/security-reviewer.md +265 -0
- package/dist/docs/example-agents/slack-agent.html +6 -4
- package/dist/docs/example-agents/slack-agent.md +142 -0
- package/dist/docs/example-agents/weather-agent.html +9 -7
- package/dist/docs/example-agents/weather-agent.md +297 -0
- package/dist/docs/guides/agent-to-agent.html +7 -5
- package/dist/docs/guides/agent-to-agent.md +113 -0
- package/dist/docs/guides/cloud-runtime.html +8 -6
- package/dist/docs/guides/cloud-runtime.md +114 -0
- package/dist/docs/guides/convert-automation.html +8 -6
- package/dist/docs/guides/convert-automation.md +171 -0
- package/dist/docs/guides/github.html +11 -9
- package/dist/docs/guides/github.md +275 -0
- package/dist/docs/guides/human-in-the-loop.html +6 -4
- package/dist/docs/guides/human-in-the-loop.md +126 -0
- package/dist/docs/guides/mcp-oauth.html +8 -6
- package/dist/docs/guides/mcp-oauth.md +159 -0
- package/dist/docs/guides/opentelemetry.html +6 -4
- package/dist/docs/guides/opentelemetry.md +209 -0
- package/dist/docs/guides/slack.html +9 -7
- package/dist/docs/guides/slack.md +337 -0
- package/dist/docs/guides/webhooks.html +8 -6
- package/dist/docs/guides/webhooks.md +463 -0
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +8 -6
- package/dist/docs/hillclimbing.md +88 -0
- package/dist/docs/index.html +8 -6
- package/dist/docs/index.md +171 -0
- package/dist/docs/llms-full.txt +10968 -0
- package/dist/docs/llms.txt +74 -0
- package/dist/docs/quickstart.html +7 -5
- package/dist/docs/quickstart.md +364 -0
- package/dist/docs/reference/agent-config.html +10 -8
- package/dist/docs/reference/agent-config.md +251 -0
- package/dist/docs/reference/artifacts.html +6 -4
- package/dist/docs/reference/artifacts.md +112 -0
- package/dist/docs/reference/channels.html +8 -6
- package/dist/docs/reference/channels.md +244 -0
- package/dist/docs/reference/cli.html +16 -15
- package/dist/docs/reference/cli.md +947 -0
- package/dist/docs/reference/connections.html +10 -8
- package/dist/docs/reference/connections.md +263 -0
- package/dist/docs/reference/hooks.html +8 -6
- package/dist/docs/reference/hooks.md +98 -0
- package/dist/docs/reference/http-api.html +9 -7
- package/dist/docs/reference/http-api.md +247 -0
- package/dist/docs/reference/instructions.html +8 -6
- package/dist/docs/reference/instructions.md +74 -0
- package/dist/docs/reference/playground.html +7 -5
- package/dist/docs/reference/playground.md +57 -0
- package/dist/docs/reference/project-layout.html +9 -7
- package/dist/docs/reference/project-layout.md +107 -0
- package/dist/docs/reference/prompt.html +8 -6
- package/dist/docs/reference/prompt.md +42 -0
- package/dist/docs/reference/schedules.html +8 -6
- package/dist/docs/reference/schedules.md +214 -0
- package/dist/docs/reference/sessions.html +7 -12
- package/dist/docs/reference/sessions.md +159 -0
- package/dist/docs/reference/skills.html +8 -6
- package/dist/docs/reference/skills.md +83 -0
- package/dist/docs/reference/subagents.html +6 -4
- package/dist/docs/reference/subagents.md +71 -0
- package/dist/docs/reference/tools.html +10 -8
- package/dist/docs/reference/tools.md +293 -0
- package/dist/docs/scaffolding-agents.html +7 -5
- package/dist/docs/scaffolding-agents.md +129 -0
- package/dist/docs/storage.html +11 -9
- package/dist/docs/storage.md +176 -0
- package/dist/docs/templates/agentic-owners.html +9 -7
- package/dist/docs/templates/agentic-owners.md +92 -0
- package/dist/docs/templates/demo.html +6 -4
- package/dist/docs/templates/demo.md +79 -0
- package/dist/docs/templates/pr-autofixer.html +8 -6
- package/dist/docs/templates/pr-autofixer.md +128 -0
- package/dist/docs/templates/security-reviewer.html +6 -4
- package/dist/docs/templates/security-reviewer.md +84 -0
- package/dist/docs/templates/triage.html +6 -4
- package/dist/docs/templates/triage.md +98 -0
- package/dist/docs/troubleshooting.html +7 -5
- package/dist/docs/troubleshooting.md +111 -0
- package/dist/internal/authored-alias-hooks.d.ts +14 -11
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +14 -11
- package/dist/internal/authored-loaders.d.ts +7 -6
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +14 -10
- package/dist/internal/cli-deploy.d.ts +1 -1
- package/dist/internal/cli-deploy.js +5 -5
- package/dist/internal/continuation-channel.d.ts +6 -3
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +44 -40
- package/dist/internal/continuation-identity.d.ts +17 -16
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +109 -36
- package/dist/internal/deploy-manifest.d.ts +2 -2
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +4 -9
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +3 -0
- package/dist/internal/distribution.d.ts +4 -3
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +4 -3
- package/dist/internal/hosted-delivery-protocol.d.ts +38 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -0
- package/dist/internal/hosted-delivery-protocol.js +70 -0
- package/dist/internal/hosted-delivery.d.ts +35 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -0
- package/dist/internal/hosted-delivery.js +226 -0
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -1
- package/dist/internal/init-scaffold.d.ts.map +1 -1
- package/dist/internal/init-scaffold.js +1 -0
- package/dist/internal/playground/static.d.ts.map +1 -1
- package/dist/internal/playground/static.js +2 -0
- package/dist/internal/review-comments.d.ts +186 -63
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +350 -168
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +21 -3
- package/dist/internal/session-engine.d.ts +5 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +16 -4
- package/dist/internal/shallow-clone.d.ts +8 -2
- package/dist/internal/shallow-clone.d.ts.map +1 -1
- package/dist/internal/shallow-clone.js +17 -10
- package/dist/playground/assets/{index-DDvyC2z6.js → index-D9MFzhNE.js} +1 -1
- package/dist/playground/index.html +1 -1
- package/dist/types.d.ts +9 -17
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +2 -10
- package/docs/ab.md +7 -13
- package/docs/building-with-agents.md +5 -11
- package/docs/concepts.md +12 -17
- package/docs/deployment.md +8 -10
- package/docs/evals.md +16 -37
- package/docs/example-agents/approval-buddy.md +1 -1
- package/docs/example-agents/benny.md +4 -13
- package/docs/example-agents/codebase-wiki.md +5 -8
- package/docs/example-agents/concierge.md +2 -3
- package/docs/example-agents/index.md +6 -9
- package/docs/example-agents/knowledge-base.md +2 -2
- package/docs/example-agents/security-reviewer.md +5 -5
- package/docs/example-agents/weather-agent.md +4 -3
- package/docs/guides/agent-to-agent.md +1 -1
- package/docs/guides/cloud-runtime.md +8 -25
- package/docs/guides/convert-automation.md +3 -3
- package/docs/guides/github.md +11 -23
- package/docs/guides/mcp-oauth.md +4 -4
- package/docs/guides/slack.md +4 -4
- package/docs/guides/webhooks.md +3 -3
- package/docs/hillclimbing.md +1 -1
- package/docs/quickstart.md +1 -1
- package/docs/reference/agent-config.md +10 -15
- package/docs/reference/channels.md +20 -31
- package/docs/reference/cli.md +27 -37
- package/docs/reference/connections.md +9 -14
- package/docs/reference/hooks.md +10 -14
- package/docs/reference/http-api.md +18 -38
- package/docs/reference/instructions.md +1 -1
- package/docs/reference/playground.md +14 -19
- package/docs/reference/project-layout.md +2 -2
- package/docs/reference/prompt.md +1 -1
- package/docs/reference/schedules.md +1 -2
- package/docs/reference/sessions.md +8 -19
- package/docs/reference/skills.md +3 -3
- package/docs/reference/tools.md +12 -17
- package/docs/scaffolding-agents.md +4 -5
- package/docs/storage.md +37 -80
- package/docs/templates/agentic-owners.md +2 -2
- package/docs/templates/pr-autofixer.md +3 -6
- package/docs/troubleshooting.md +6 -6
- package/package.json +9 -2
- package/skills/ab/SKILL.md +3 -0
- package/skills/create-agent/SKILL.md +3 -0
- package/skills/debug/SKILL.md +3 -0
- package/skills/evals/SKILL.md +3 -0
- package/skills/framework-map/SKILL.md +3 -0
- package/skills/github/SKILL.md +3 -0
- package/skills/hillclimb/SKILL.md +3 -0
- package/skills/mcp-auth/SKILL.md +3 -0
- package/skills/otel/SKILL.md +3 -0
- package/skills/setup-slack/SKILL.md +3 -0
- package/src/channels/deployments/deployments-channel.ts +32 -2
- package/src/channels/deployments/types.ts +8 -0
- package/src/channels/github/github-channel.ts +71 -21
- package/src/continuation.ts +1 -1
- package/src/internal/authored-alias-hooks.ts +14 -11
- package/src/internal/authored-loaders.ts +14 -10
- package/src/internal/cli-deploy.ts +5 -5
- package/src/internal/continuation-channel.ts +62 -45
- package/src/internal/continuation-identity.ts +123 -38
- package/src/internal/deploy-manifest.ts +5 -9
- package/src/internal/discovery.ts +3 -0
- package/src/internal/distribution.ts +4 -3
- package/src/internal/hosted-delivery-protocol.ts +114 -0
- package/src/internal/hosted-delivery.ts +327 -0
- package/src/internal/http-channel.ts +0 -2
- package/src/internal/init-scaffold.ts +1 -0
- package/src/internal/playground/static.ts +2 -0
- package/src/internal/review-comments.ts +542 -229
- package/src/internal/server.ts +29 -2
- package/src/internal/session-engine.ts +29 -7
- package/src/internal/shallow-clone.ts +30 -16
- package/src/types.ts +9 -17
- package/dist/docs/assets/building-with-agents.md.DH8A_cHA.js +0 -13
- package/dist/docs/assets/chunks/@localSearchIndexroot.Dv-Q0XtU.js +0 -1
- package/dist/docs/assets/concepts.md.CRfU3bVg.js +0 -4
- package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.js +0 -15
- package/dist/docs/assets/example-agents_fsd.md.ZWHWWZPE.lean.js +0 -1
- package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.js +0 -2
- package/dist/docs/assets/example-agents_index.md.QZ8mhr6n.lean.js +0 -1
- package/dist/docs/assets/reference_hooks.md.B9FSgdDe.js +0 -14
- package/dist/docs/assets/reference_http-api.md.CSHVobzG.js +0 -11
- package/dist/docs/assets/reference_http-api.md.CSHVobzG.lean.js +0 -1
- package/dist/docs/assets/reference_playground.md.Dfb92yQf.js +0 -1
- package/dist/docs/assets/reference_playground.md.Dfb92yQf.lean.js +0 -1
- package/dist/docs/assets/reference_sessions.md.tUFzz98S.js +0 -8
- package/dist/docs/assets/scaffolding-agents.md.CRDDUtYJ.js +0 -1
- package/dist/docs/assets/troubleshooting.md.DYECCZiJ.js +0 -1
- package/dist/docs/example-agents/fsd.html +0 -39
- package/docs/example-agents/fsd.md +0 -334
- /package/dist/docs/assets/{deployment.md.DX_hc3ze.lean.js → deployment.md.DoLFAzfm.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_approval-buddy.md.DNL83puR.lean.js → example-agents_approval-buddy.md.DmezILPg.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_concierge.md.MrKpQndp.lean.js → example-agents_concierge.md.BzB2b20R.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_knowledge-base.md.DqKqHQ9u.lean.js → example-agents_knowledge-base.md.CrA85ig-.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_security-reviewer.md.Bai6D0Ee.lean.js → example-agents_security-reviewer.md.74pPpWYj.lean.js} +0 -0
- /package/dist/docs/assets/{example-agents_weather-agent.md.lVEAbWFf.lean.js → example-agents_weather-agent.md.CaGpmw3Y.lean.js} +0 -0
- /package/dist/docs/assets/{guides_agent-to-agent.md.BCeVdJRJ.lean.js → guides_agent-to-agent.md.B3JIaAqz.lean.js} +0 -0
- /package/dist/docs/assets/{guides_convert-automation.md.D06eIzea.lean.js → guides_convert-automation.md.Bboisykk.lean.js} +0 -0
- /package/dist/docs/assets/{guides_mcp-oauth.md.Du0f7pGU.lean.js → guides_mcp-oauth.md.CJvrXtkN.lean.js} +0 -0
- /package/dist/docs/assets/{guides_slack.md.DiUmk_Oi.lean.js → guides_slack.md.mqeNKs84.lean.js} +0 -0
- /package/dist/docs/assets/{guides_webhooks.md.BpnIdO0i.lean.js → guides_webhooks.md.DKdA43Qm.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.ywF3yDAd.lean.js → hillclimbing.md.DhESf3OO.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.DsrarzEg.lean.js → quickstart.md.BrmfrrIr.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.Bqylgw50.lean.js → reference_agent-config.md.Cp_x38Nl.lean.js} +0 -0
- /package/dist/docs/assets/{reference_connections.md.DYidrb-j.lean.js → reference_connections.md.DB6SsN6U.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.CwkSbEWT.lean.js → reference_project-layout.md.WN9nwJht.lean.js} +0 -0
- /package/dist/docs/assets/{reference_prompt.md.DZUMtLPD.lean.js → reference_prompt.md.DnaD5dNK.lean.js} +0 -0
- /package/dist/docs/assets/{reference_schedules.md.DNipebiG.lean.js → reference_schedules.md.DI_JrHgq.lean.js} +0 -0
- /package/dist/docs/assets/{reference_skills.md.B5ZEuHfG.lean.js → reference_skills.md.BFW9retM.lean.js} +0 -0
- /package/dist/docs/assets/{templates_agentic-owners.md.DSJSIpWU.lean.js → templates_agentic-owners.md.DqtPdm6f.lean.js} +0 -0
|
@@ -79,7 +79,7 @@ within one session. The `at` field is an ISO-8601 timestamp.
|
|
|
79
79
|
| Phase | Events | What they tell you |
|
|
80
80
|
| --- | --- | --- |
|
|
81
81
|
| Session | `session.started`, [`ab.assigned`](../ab.md#assign-sticky-variants), `session.waiting`, `session.completed`, `session.failed` | Session creation, A/B enrollment, readiness, and task completion |
|
|
82
|
-
| Agent | `agent.bound` |
|
|
82
|
+
| Agent | `agent.bound` | Cloud conversation URL |
|
|
83
83
|
| Input | `message.received` | A user message was accepted |
|
|
84
84
|
| Turn | `turn.queued`, `turn.started`, `turn.completed`, `turn.failed` | Queue position under a [`maxRunningTurns` cap](./agent-config.md#concurrency), then turn status, final result, and token usage |
|
|
85
85
|
| Steps | `step.started`, `step.completed` | Model step boundaries and duration |
|
|
@@ -118,7 +118,7 @@ The Agent SDK creates a workspace before the first local turn:
|
|
|
118
118
|
| ---------------------------------- | ----------------------------------------------------------------------- |
|
|
119
119
|
| `instructions.*` | `AGENTS.md` |
|
|
120
120
|
| `skills/*` | `.cursor/skills/<name>/SKILL.md` |
|
|
121
|
-
| agent tools (`execution: "agent"`) | scripts
|
|
121
|
+
| agent tools (`execution: "agent"`) | scripts in the session workspace, with a catalog in `AGENTS.md` |
|
|
122
122
|
| `sandbox/workspace/**` | copied in as seed files |
|
|
123
123
|
| per-send `workspaceFiles` | written before the turn |
|
|
124
124
|
|
|
@@ -133,34 +133,23 @@ inheritance rules.
|
|
|
133
133
|
|
|
134
134
|
## Where does the Agent SDK store session data?
|
|
135
135
|
|
|
136
|
-
Local state
|
|
137
|
-
|
|
138
|
-
```text
|
|
139
|
-
<project>/.agent-serve/ # or <stateRoot>/<slug>/ under serve
|
|
140
|
-
sessions/<id>/session.json # metadata: channel, mode, principal, tokens
|
|
141
|
-
sessions/<id>/events.ndjson # the durable stream
|
|
142
|
-
sessions/<id>/workspace/ # the harness cwd
|
|
143
|
-
traces/<sessionId>.ndjson # written by `run`
|
|
144
|
-
runner/ # Cursor SDK conversation store
|
|
145
|
-
tool-calls/<callId>/ # ephemeral deterministic-call workspaces
|
|
146
|
-
```
|
|
136
|
+
Local state lives under `--state-root`. Slugged mounts store it under
|
|
137
|
+
a subdirectory named for the slug.
|
|
147
138
|
|
|
148
139
|
Deleting a session directory removes the session from the server: it
|
|
149
140
|
disappears from listings and can no longer be streamed or continued.
|
|
150
|
-
The `runner/` store keeps its own conversation copy until you remove it.
|
|
151
141
|
Cloud conversations remain on the Cursor backend.
|
|
152
142
|
|
|
153
|
-
|
|
154
|
-
|
|
143
|
+
Nested git checkouts already default `local.cwd` outside the enclosing
|
|
144
|
+
repo. See
|
|
155
145
|
[local session workspaces](../concepts.md#what-files-can-a-local-session-access).
|
|
156
146
|
|
|
157
147
|
## How do I inspect a saved event stream?
|
|
158
148
|
|
|
159
|
-
Use `trajectory` with a trace
|
|
149
|
+
Use `trajectory` with a saved trace:
|
|
160
150
|
|
|
161
151
|
```bash
|
|
162
|
-
agent-sdk trajectory --events
|
|
163
|
-
agent-sdk trajectory --events <stateRoot>/<slug>/sessions/<id>/events.ndjson
|
|
152
|
+
agent-sdk trajectory --events <state-root>/traces/<sessionId>.ndjson
|
|
164
153
|
```
|
|
165
154
|
|
|
166
155
|
The command prints tool calls, the reply, and token usage in the same
|
package/docs/reference/skills.md
CHANGED
|
@@ -57,9 +57,9 @@ the engine copies the same SKILL.md tree onto an Agent Store for native
|
|
|
57
57
|
discovery:
|
|
58
58
|
|
|
59
59
|
- Hosted deployments write store-root `skills/<name>/`.
|
|
60
|
-
- `agent-
|
|
61
|
-
|
|
62
|
-
|
|
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
63
|
|
|
64
64
|
`validate` still warns about the combination so the store path is
|
|
65
65
|
visible. Cloud turns with neither a hosted store nor an API key see
|
package/docs/reference/tools.md
CHANGED
|
@@ -64,7 +64,7 @@ export default defineTool({
|
|
|
64
64
|
});
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
###
|
|
67
|
+
### Tool context
|
|
68
68
|
|
|
69
69
|
`execute` receives a `ctx` with the runtime accessors:
|
|
70
70
|
|
|
@@ -76,7 +76,7 @@ export default defineTool({
|
|
|
76
76
|
| `ctx.stateRoot` | The agent's durable state root, shared across every session |
|
|
77
77
|
| `ctx.host` | Shared host services (see below) |
|
|
78
78
|
| `ctx.send(channelId, message, options?)` | Start or resume a session on any channel: the cross-channel handoff primitive, e.g. a chat tool opening a `drive` cloud session for a PR. `auth` defaults to this call's session principal |
|
|
79
|
-
| `ctx.getSession(channelId, sessionId)` | Look up a session on a channel
|
|
79
|
+
| `ctx.getSession(channelId, sessionId)` | Look up a session on a channel |
|
|
80
80
|
| `ctx.artifacts` | Session-bound [artifacts](./artifacts.md) facade: `tag` auto-fills the session |
|
|
81
81
|
|
|
82
82
|
`ctx.host` carries the shared host services: `host.mcp` (authored MCP
|
|
@@ -84,9 +84,7 @@ connections: `names()`, `listTools(name)`, `callTool(name, tool, args)`),
|
|
|
84
84
|
`host.github` and `host.slack` (shared platform clients), `host.kv` and
|
|
85
85
|
`host.files` (durable [storage](../storage.md)), `host.otel` (custom
|
|
86
86
|
metrics and session tags; see [OpenTelemetry](../guides/opentelemetry.md)),
|
|
87
|
-
`host.reminders` (per-session wakes, when attached)
|
|
88
|
-
(playground eval batches, when attached), and `host.slackNudges`
|
|
89
|
-
(Slack ask-dedupe helpers).
|
|
87
|
+
`host.reminders` (per-session wakes, when attached).
|
|
90
88
|
|
|
91
89
|
### Return values
|
|
92
90
|
|
|
@@ -174,15 +172,15 @@ printf '%s\\n' "$message"
|
|
|
174
172
|
});
|
|
175
173
|
```
|
|
176
174
|
|
|
177
|
-
On the local runtime, scripts land
|
|
178
|
-
|
|
179
|
-
|
|
175
|
+
On the local runtime, scripts land in the session workspace with a
|
|
176
|
+
catalog in `AGENTS.md`. On cloud, the catalog and script bodies travel
|
|
177
|
+
on the first prompt.
|
|
180
178
|
|
|
181
179
|
## Tools from an MCP connection, advertised by name
|
|
182
180
|
|
|
183
181
|
Authored `agent/tools/` files are one catalog for every session. When
|
|
184
|
-
the tools should come from an MCP server
|
|
185
|
-
resolved at runtime
|
|
182
|
+
the tools should come from an MCP server, including per-tenant toolsets
|
|
183
|
+
resolved at runtime, declare the connection with
|
|
186
184
|
`advertiseTools: true` (plus per-session `auth` when the credential
|
|
187
185
|
depends on who the session is for) and the engine synthesizes named 1:1
|
|
188
186
|
passthrough server tools from the connection's live `listTools` on every
|
|
@@ -259,15 +257,12 @@ const outcome = await handle.callTool("inspect_pr", {
|
|
|
259
257
|
// { toolName, callId, isError, result, durationMs }
|
|
260
258
|
```
|
|
261
259
|
|
|
262
|
-
By default the call runs against an ephemeral
|
|
263
|
-
|
|
264
|
-
and removed when the call returns. Pass a `sessionId` (a body field over
|
|
260
|
+
By default the call runs against an ephemeral workspace and is removed
|
|
261
|
+
when the call returns. Pass a `sessionId` (a body field over
|
|
265
262
|
HTTP, `--session` on the CLI, `options.sessionId` programmatically) to
|
|
266
263
|
run inside an existing session instead: the tool sees that session's
|
|
267
|
-
workspace, and the call is recorded on the session's event stream
|
|
268
|
-
|
|
269
|
-
any model-initiated call. Session-bound calls serialize with model
|
|
270
|
-
turns and return `409 session_busy` while a turn runs.
|
|
264
|
+
workspace, and the call is recorded on the session's event stream.
|
|
265
|
+
Session-bound calls return `409 session_busy` while a turn runs.
|
|
271
266
|
|
|
272
267
|
The error semantics match the model path. Unknown tools are rejected
|
|
273
268
|
with the available names, agent-execution tools cannot be called on the
|
|
@@ -22,12 +22,11 @@ Where to find the file depends on how you got the package:
|
|
|
22
22
|
injects the skill body into context instead of waiting for the
|
|
23
23
|
model to pick it from the catalog. The `/` menu lists them as
|
|
24
24
|
`/agentsdk-create-agent`, `/agentsdk-hillclimb`, and the rest. Re-installing overwrites those
|
|
25
|
-
copies with the package version.
|
|
26
|
-
`CURSOR_JULY_SKIP_SKILL_INSTALL=1` to skip the copy.
|
|
25
|
+
copies with the package version.
|
|
27
26
|
- Installed `@cursor/july` as a dependency? The skill also ships inside
|
|
28
27
|
the package at `node_modules/@cursor/july/skills/create-agent/SKILL.md`.
|
|
29
|
-
- Working
|
|
30
|
-
`
|
|
28
|
+
- Working from this package's source? The skill is at
|
|
29
|
+
[`skills/create-agent/SKILL.md`](../skills/create-agent/SKILL.md). Run
|
|
31
30
|
`agent-sdk install-skills` if you want the same copies in
|
|
32
31
|
`~/.cursor/skills/agentsdk/` (the package postinstall skips the
|
|
33
32
|
source checkout).
|
|
@@ -127,7 +126,7 @@ inputs again, and adds an eval for each improvement you keep.
|
|
|
127
126
|
|
|
128
127
|
## Related
|
|
129
128
|
|
|
130
|
-
- [Build your first PR
|
|
129
|
+
- [Build your first PR reviewer](./quickstart.md)
|
|
131
130
|
- [Convert a Cursor Automation](./guides/convert-automation.md)
|
|
132
131
|
- [Building agents with agents](./building-with-agents.md)
|
|
133
132
|
- [Evals](./evals.md)
|
package/docs/storage.md
CHANGED
|
@@ -7,15 +7,10 @@ description: "Point the Agent SDK's durable storage at a backend you own with de
|
|
|
7
7
|
|
|
8
8
|
The Agent SDK owns durable storage for sessions, continuation tokens,
|
|
9
9
|
reminders, playground eval history, and live A/B samples. It chooses the
|
|
10
|
-
keys
|
|
11
|
-
after restart.
|
|
10
|
+
keys, when to read and write, and how to restore after restart.
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
bytes is replaced by its `sha256:…` digest — deterministically, so writes
|
|
16
|
-
and lookups always agree. Backends can rely on this instead of imposing
|
|
17
|
-
their own key-length caps (which would silently drop writes, since a
|
|
18
|
-
throwing `put` is at-most-once).
|
|
12
|
+
The Agent SDK owns key encoding. Backends must accept the keys they are
|
|
13
|
+
given. Do not fail `put` to enforce a shorter cap.
|
|
19
14
|
|
|
20
15
|
By default that storage lives under `--state-root` on local disk. Fine
|
|
21
16
|
for one machine; it does not survive replacing the host.
|
|
@@ -23,8 +18,7 @@ for one machine; it does not survive replacing the host.
|
|
|
23
18
|
To keep the same framework storage across hosts, plug in a key-value
|
|
24
19
|
backend with `agent/storage.ts`. You provide `put` / `get` / `delete` /
|
|
25
20
|
`list`. The optional `cas` group adds conditional writes (see
|
|
26
|
-
[Conditional writes](#conditional-writes-the-cas-group)).
|
|
27
|
-
does the rest.
|
|
21
|
+
[Conditional writes](#conditional-writes-the-cas-group)).
|
|
28
22
|
|
|
29
23
|
```ts
|
|
30
24
|
// agent/storage.ts
|
|
@@ -44,15 +38,10 @@ export default defineStorage({
|
|
|
44
38
|
});
|
|
45
39
|
```
|
|
46
40
|
|
|
47
|
-
> [!NOTE]
|
|
48
|
-
> Import paths here use `@cursor/july/storage`. On projects still
|
|
49
|
-
> using `@anysphere/agent-serve`, swap the import. See
|
|
50
|
-
> [Run the CLI](/#run-the-cli) for the full rename table.
|
|
51
|
-
|
|
52
41
|
## Which fields to provide
|
|
53
42
|
|
|
54
|
-
Implement the small KV core
|
|
55
|
-
group
|
|
43
|
+
Implement the small KV core (`put`/`get`/`delete`/`list` plus the `cas`
|
|
44
|
+
group) and you get **full functionality**: eval-run and A/B history are
|
|
56
45
|
derived over the core automatically. The dedicated `evals` / `abs` groups
|
|
57
46
|
are backend-native optimizations, not required-or-lose-history hooks.
|
|
58
47
|
|
|
@@ -60,13 +49,13 @@ are backend-native optimizations, not required-or-lose-history hooks.
|
|
|
60
49
|
| --- | --- | --- |
|
|
61
50
|
| `put` | Yes | Write or update a value |
|
|
62
51
|
| `cas` | Optional | Conditional writes; see [Conditional writes](#conditional-writes-the-cas-group) |
|
|
63
|
-
| `get` | For restore | Look up one key
|
|
64
|
-
| `list` | For restore | Return entries under a prefix, in key order
|
|
65
|
-
| `delete` | For cleanup | Remove a key
|
|
52
|
+
| `get` | For restore | Look up one key |
|
|
53
|
+
| `list` | For restore | Return entries under a prefix, in key order |
|
|
54
|
+
| `delete` | For cleanup | Remove a key |
|
|
66
55
|
| `name` | No | Label surfaced on `GET /v1/info` diagnostics |
|
|
67
56
|
| `policy` | No | Timing knobs; see [Policy](#policy) |
|
|
68
|
-
| `evals` | No | Backend-native eval-runs table; derived over the core when omitted
|
|
69
|
-
| `abs` | No | Backend-native A/B metrics table; derived over the core when omitted
|
|
57
|
+
| `evals` | No | Backend-native eval-runs table; derived over the core when omitted. See [Eval and A/B tables](#eval-and-a-b-tables) |
|
|
58
|
+
| `abs` | No | Backend-native A/B metrics table; derived over the core when omitted. See [Eval and A/B tables](#eval-and-a-b-tables) |
|
|
70
59
|
|
|
71
60
|
A throwing `put` is logged and dropped. It never fails a turn. When
|
|
72
61
|
resolving a missing continuation token, a throwing `get` fails the
|
|
@@ -80,30 +69,20 @@ values. Both are **optional optimizations**: when a group is not
|
|
|
80
69
|
authored, `defineStorage` derives it over the KV core, so a backend that
|
|
81
70
|
implements only the core loses nothing. Author a group only when the
|
|
82
71
|
backend has a better native shape (a real database table, an analytics
|
|
83
|
-
pipeline)
|
|
72
|
+
pipeline). The built-in `fileKv` and `cursorHostedStorage` both do.
|
|
84
73
|
|
|
85
74
|
`evals` keeps playground eval batches across restarts (`put`, `delete`,
|
|
86
|
-
`list` over run snapshots keyed by `runId`).
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
**Derived form**: one key per run under
|
|
90
|
-
`agentkit/v1/{agent}/eval-runs/{runId}` — needs core `put` + `delete` +
|
|
91
|
-
`list`. Only a core missing `delete` or `list` leaves eval history in
|
|
92
|
-
process memory (cleared on restart). See
|
|
93
|
-
[Evals](./evals.md#configure-eval-runs).
|
|
75
|
+
`list` over run snapshots keyed by `runId`). A core missing `delete` or
|
|
76
|
+
`list` leaves eval history in memory until restart.
|
|
77
|
+
See [Evals](./evals.md#configure-eval-runs).
|
|
94
78
|
|
|
95
79
|
`abs` exports live A/B metrics: `putSample` appends one cumulative
|
|
96
80
|
metric sample per enrolled experiment on each completed or failed turn;
|
|
97
81
|
optional `putSnapshot` / `getSnapshot` store and serve back the latest
|
|
98
|
-
aggregate so a replacement host
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
and the snapshot lives at the fixed `agentkit/v1/{agent}/ab-snapshot`
|
|
103
|
-
key (last-write-wins is correct for "latest aggregate"). `putSample` and
|
|
104
|
-
`putSnapshot` need only core `put`; `getSnapshot` needs core `get`.
|
|
105
|
-
Session event logs remain the assignment source of truth either way. See
|
|
106
|
-
[Live A/B metrics](./ab.md).
|
|
82
|
+
aggregate so a replacement host can still serve the A/Bs surface.
|
|
83
|
+
`putSample` and `putSnapshot` need only core `put`; `getSnapshot` needs
|
|
84
|
+
core `get`. Session event logs remain the assignment source of truth
|
|
85
|
+
either way. See [Live A/B metrics](./ab.md).
|
|
107
86
|
|
|
108
87
|
## Policy
|
|
109
88
|
|
|
@@ -137,8 +116,6 @@ follow-up arrives instead of at startup.
|
|
|
137
116
|
With `get` and `list`, serve can rebuild local state from your store:
|
|
138
117
|
|
|
139
118
|
- At startup, the Agent SDK loads recent sessions up to the restore caps.
|
|
140
|
-
Local disk wins when both sides have the same session. Reminders
|
|
141
|
-
hydrate the same way into `--state-root/reminders`.
|
|
142
119
|
- On demand, a missing continuation token resolves through the store
|
|
143
120
|
and resumes that session.
|
|
144
121
|
- Playground eval history and A/B aggregates can load from the same
|
|
@@ -157,19 +134,16 @@ await ctx.host.kv.put("alert-memory/abc", { updated: "…" });
|
|
|
157
134
|
const prior = await ctx.host.kv.get("alert-memory/abc");
|
|
158
135
|
```
|
|
159
136
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
propagate errors — unlike session mirrors, which are at-most-once.
|
|
137
|
+
Writes **await** the sink and propagate errors, unlike session mirrors,
|
|
138
|
+
which are at-most-once.
|
|
163
139
|
|
|
164
|
-
Without `agent/storage.ts`, `host.kv`
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
platform Bugbot tables through a control-plane HTTP proxy (authenticated
|
|
169
|
-
as the deployment pod credential — engines never receive a database URL).
|
|
140
|
+
Without `agent/storage.ts`, `host.kv` is local-only and does not
|
|
141
|
+
survive replacing the host. Hosted agents should author
|
|
142
|
+
`cursorHostedStorage()` so session and `host.kv` records survive
|
|
143
|
+
replace.
|
|
170
144
|
|
|
171
145
|
```ts
|
|
172
|
-
// agent/storage.ts
|
|
146
|
+
// agent/storage.ts: Cursor-managed hosting
|
|
173
147
|
import { defineStorage } from "@cursor/july/storage";
|
|
174
148
|
import { cursorHostedStorage } from "@cursor/july/storage/cursor-hosted";
|
|
175
149
|
|
|
@@ -182,32 +156,18 @@ Built-in helpers:
|
|
|
182
156
|
|
|
183
157
|
| Import | Backend |
|
|
184
158
|
| --- | --- |
|
|
185
|
-
| `@cursor/july/storage/file-kv` | File-per-key under
|
|
186
|
-
| `@cursor/july/storage/cursor-hosted` |
|
|
159
|
+
| `@cursor/july/storage/file-kv` | File-per-key under the project state directory |
|
|
160
|
+
| `@cursor/july/storage/cursor-hosted` | Cursor-managed hosting; records survive replace |
|
|
187
161
|
|
|
188
162
|
## Bring your own backend
|
|
189
163
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
writes map directly onto the contract (`putIfAbsent` = put with
|
|
198
|
-
`If-None-Match: *`, `putIfVersion` = put with `If-Match: <etag>`,
|
|
199
|
-
the ETag is the version token, `listKeys` is a prefix listing).
|
|
200
|
-
- **Redis, DynamoDB, a SQL table, …** — anything that can do an
|
|
201
|
-
atomic compare-and-set and a prefix listing.
|
|
202
|
-
|
|
203
|
-
Implement the `StorageConfig` methods (and the optional `cas` group)
|
|
204
|
-
against that store. The
|
|
205
|
-
contract, defined at `@cursor/july/kv`: version tokens are opaque
|
|
206
|
-
strings that change on every successful write — including plain
|
|
207
|
-
`put`, so a stale token fences instead of clobbering; conditional
|
|
208
|
-
writes are atomic; `listKeys` returns every key under the prefix.
|
|
209
|
-
`@cursor/july/kv/memory` is a complete reference implementation to
|
|
210
|
-
compare behavior against.
|
|
164
|
+
Any durable store works if it can put, get, delete, list by prefix,
|
|
165
|
+
and optionally compare-and-set. Implement the `StorageConfig` methods
|
|
166
|
+
(and the optional `cas` group) against that store. The contract,
|
|
167
|
+
defined at `@cursor/july/kv`: version tokens are opaque strings that
|
|
168
|
+
change on every successful write, including plain `put`, so a stale
|
|
169
|
+
token fences instead of clobbering; conditional writes are atomic;
|
|
170
|
+
`listKeys` returns every key under the prefix.
|
|
211
171
|
|
|
212
172
|
## Conditional writes (the `cas` group)
|
|
213
173
|
|
|
@@ -215,10 +175,7 @@ The `cas` group is compare-and-swap over the same keyspace:
|
|
|
215
175
|
`getWithVersion` / `putIfAbsent` / `putIfVersion` / `listKeys`, defined
|
|
216
176
|
backend-agnostically at `@cursor/july/kv`. Plain storage works without
|
|
217
177
|
it, so an existing backend keeps working across a platform upgrade.
|
|
218
|
-
`defineStorage` rejects a partial group
|
|
178
|
+
`defineStorage` rejects a partial group. Implement all four methods or
|
|
219
179
|
none. Version tokens are opaque strings that must change on every write
|
|
220
180
|
(a counter column, a row version, a content hash). The built-in backends
|
|
221
|
-
both include
|
|
222
|
-
correctness) and `cursorHostedStorage` the control-plane proxy (a
|
|
223
|
-
`version` counter on the server). `memoryCasTable()` is for test fixtures
|
|
224
|
-
and inert sinks only.
|
|
181
|
+
both include the group.
|
|
@@ -32,7 +32,7 @@ agent-sdk login
|
|
|
32
32
|
agent-sdk dev
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
PR events stream through your Cursor account
|
|
35
|
+
PR events stream through your Cursor account. No webhook or GitHub App
|
|
36
36
|
setup. Open a PR, or replay a real one deterministically (this also works
|
|
37
37
|
with `repos` empty):
|
|
38
38
|
|
|
@@ -75,7 +75,7 @@ applies the deterministic decision:
|
|
|
75
75
|
|
|
76
76
|
- **Approve** when the tier is low and no matched rule demands a human,
|
|
77
77
|
bound to the head SHA.
|
|
78
|
-
- **Request reviewers** otherwise
|
|
78
|
+
- **Request reviewers** otherwise: the policy owners (max 2, never the
|
|
79
79
|
author), plus one status comment the agent keeps updated in place.
|
|
80
80
|
|
|
81
81
|
The model never writes to GitHub. A broken policy file fails closed with
|
|
@@ -91,12 +91,9 @@ opted-in PR wakes the agent. A comment on a plain GitHub issue does
|
|
|
91
91
|
not. The channel buffers about 3 seconds per PR. Payload details are
|
|
92
92
|
dropped on purpose. The follow-up says something changed.
|
|
93
93
|
|
|
94
|
-
Pending wakes
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
`agent.bound`. `agent/storage.ts` uses `cursorHostedStorage`, so both
|
|
98
|
-
survive host replace. Local serve without that plug-in falls back to
|
|
99
|
-
`--state-root/kv`.
|
|
94
|
+
Pending wakes and the PR-to-cloud-agent map persist in `host.kv` so
|
|
95
|
+
they survive restart. `cursorHostedStorage` keeps both across replace.
|
|
96
|
+
Without that plug-in, `host.kv` is local-only.
|
|
100
97
|
|
|
101
98
|
Closing a PR cancels its merge-conflict reminder and drops buffered
|
|
102
99
|
wakes.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -12,8 +12,8 @@ Start with four checks, in order:
|
|
|
12
12
|
3. What the playground or HTTP API shows
|
|
13
13
|
4. The session event stream (trace)
|
|
14
14
|
|
|
15
|
-
Match your symptom below. Keep the commands as `agent-sdk
|
|
16
|
-
|
|
15
|
+
Match your symptom below. Keep the commands as `agent-sdk`. If it is
|
|
16
|
+
not on `PATH`, use `npx @cursor/july`.
|
|
17
17
|
|
|
18
18
|
## What if serve or the playground looks wrong?
|
|
19
19
|
|
|
@@ -21,9 +21,9 @@ Match your symptom below. Keep the commands as `agent-sdk`; see
|
|
|
21
21
|
| --- | --- |
|
|
22
22
|
| `serve` won't start | Run `agent-sdk validate --dir .` and fix the reported errors. |
|
|
23
23
|
| Playground is blank or says there are no agents | The UI needs a running `serve` process. Building the playground assets alone is not enough. |
|
|
24
|
-
|
|
|
25
|
-
| Sessions exist
|
|
26
|
-
| Port 3000
|
|
24
|
+
| The playground UI looks stale | `serve --dev` prints a playground URL. Open that URL. Agent-file edits still need a restart (press Enter on the TTY). |
|
|
25
|
+
| Sessions exist but the playground list is empty | The list shows sessions for the authenticated caller. In `--dev` on loopback the list is wider. Otherwise open `/<slug>/playground?sessionId=ses_…`. |
|
|
26
|
+
| Port 3000 is already in use | For the default serve port, the CLI tries the next free port and prints a notice. Pass `--port` to pick one, or `--port 0` for any free port. Stop leftover playground or webhook-forwarder processes if you need the original port. |
|
|
27
27
|
|
|
28
28
|
## What if a model turn goes wrong?
|
|
29
29
|
|
|
@@ -31,7 +31,7 @@ Match your symptom below. Keep the commands as `agent-sdk`; see
|
|
|
31
31
|
| --- | --- |
|
|
32
32
|
| Built-in file reads and greps fail; the turn retries for a long time | Run under Node 22.13+ (or `tsx`), never Bun. Look for `NGHTTP2_FRAME_SIZE_ERROR` in logs. |
|
|
33
33
|
| The turn fails immediately with an API-key error | Sign in with `agent-sdk login`, or set `CURSOR_API_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
|
|
34
|
-
| Replies quote rules or `AGENTS.md` from outside your agent project | The session workspace inherited parent-folder config. Nested git checkouts default `local.cwd` to `~/.cache
|
|
34
|
+
| Replies quote rules or `AGENTS.md` from outside your agent project | The session workspace inherited parent-folder config. Nested git checkouts default `local.cwd` to a per-project cache directory under `~/.cache`. Point `defineAgent({ local: { cwd } })` at a checkout only when the agent should inherit that tree, or set `--state-root` to a clean directory (for example under `/tmp`). |
|
|
35
35
|
| Yellow box shows Datadog/Linear tools, but the model lists `GetDynamicTools` / IDE `cursor` tools and never calls them | Attached MCP sits behind harness meta-tools, or `hostOnly` hid the connection, or the harness cwd is still inside another checkout. Set `advertiseTools: true` for named tools on local turns. Check `GET /v1/info` `local.cwd` and `connections[].advertiseTools`. |
|
|
36
36
|
| Server tools, skills, or workspace seed files never appear | Server tools and sandbox seeds apply on the local runtime (cloud server tools need `--public-url` / `--cloud-tools-url`). Skills reach cloud through the Agent Store when hosting or a personal `CURSOR_API_KEY` is available; otherwise only skills already in the cloud repo. `validate` warns when this combination is present. |
|
|
37
37
|
| `validate` and `run` succeed, but typecheck fails in CI | The CLI runs TypeScript with type-stripping only. Keep tool `execute` return types as object literals or `type` aliases, not `interface` types. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cursor/july",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.93",
|
|
4
4
|
"description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -47,6 +47,13 @@
|
|
|
47
47
|
"import": "./dist/index.js",
|
|
48
48
|
"default": "./dist/index.js"
|
|
49
49
|
},
|
|
50
|
+
"./internal/hosted-delivery-protocol": {
|
|
51
|
+
"anysphere-source": "./src/internal/hosted-delivery-protocol.ts",
|
|
52
|
+
"bun": "./dist/internal/hosted-delivery-protocol.js",
|
|
53
|
+
"types": "./dist/internal/hosted-delivery-protocol.d.ts",
|
|
54
|
+
"import": "./dist/internal/hosted-delivery-protocol.js",
|
|
55
|
+
"default": "./dist/internal/hosted-delivery-protocol.js"
|
|
56
|
+
},
|
|
50
57
|
"./tools": {
|
|
51
58
|
"anysphere-source": "./src/tools.ts",
|
|
52
59
|
"types": "./dist/tools.d.ts",
|
|
@@ -226,7 +233,7 @@
|
|
|
226
233
|
},
|
|
227
234
|
"dependencies": {
|
|
228
235
|
"@bazel/runfiles": "6.5.0",
|
|
229
|
-
"@cursor/sdk": "1.0.
|
|
236
|
+
"@cursor/sdk": "1.0.30",
|
|
230
237
|
"@modelcontextprotocol/sdk": "1.25.1",
|
|
231
238
|
"@octokit/auth-app": "^7.2.0",
|
|
232
239
|
"@octokit/rest": "^21.1.1",
|
package/skills/ab/SKILL.md
CHANGED
|
@@ -9,6 +9,9 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Agent SDK A/B metrics (`defineAB`)
|
|
11
11
|
|
|
12
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
13
|
+
host serves the same index at `/docs/llms.txt`.
|
|
14
|
+
|
|
12
15
|
`defineAB` is a **live metrics plug-in**. At session creation the engine runs
|
|
13
16
|
`split` and appends durable `ab.assigned` events; the collector folds the
|
|
14
17
|
session event stream and calls `onSample`. There is **no** `agent-sdk ab`
|
|
@@ -11,6 +11,9 @@ paths:
|
|
|
11
11
|
|
|
12
12
|
# Create an Agent SDK agent
|
|
13
13
|
|
|
14
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
15
|
+
host serves the same index at `/docs/llms.txt`.
|
|
16
|
+
|
|
14
17
|
Stand up one new agent project via a short interview, scaffold it, get
|
|
15
18
|
channels working
|
|
16
19
|
with the user, prove a turn runs end-to-end, and set up the improvement loop.
|
package/skills/debug/SKILL.md
CHANGED
|
@@ -10,6 +10,9 @@ description: >-
|
|
|
10
10
|
|
|
11
11
|
# Debugging the Agent SDK locally
|
|
12
12
|
|
|
13
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
14
|
+
host serves the same index at `/docs/llms.txt`.
|
|
15
|
+
|
|
13
16
|
This skill is **local** `agent-sdk serve` / playground. A **hosted**
|
|
14
17
|
deployment that is stopped, slow to start, or failing `/v1/health` is
|
|
15
18
|
`.cursor/skills/debugging/debug-agent-serve-deployment/SKILL.md`.
|
package/skills/evals/SKILL.md
CHANGED
|
@@ -9,6 +9,9 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Agent SDK evals
|
|
11
11
|
|
|
12
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
13
|
+
host serves the same index at `/docs/llms.txt`.
|
|
14
|
+
|
|
12
15
|
Evals are the ratchet that makes iteration trustworthy: a fixed input, a
|
|
13
16
|
model turn, and gates over the recorded trajectory. They live at the
|
|
14
17
|
**project root** `evals/**/*.eval.ts` (never `agent/evals/` — that slot is
|
|
@@ -16,6 +16,9 @@ over HTTP/Slack/GitHub channels, with the Cursor SDK + harness as the
|
|
|
16
16
|
execution engine. Ground truth is the package `README.md` (full reference)
|
|
17
17
|
and `AGENTS.md` (coding-agent loop) — this skill is the map, not the spec.
|
|
18
18
|
|
|
19
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
20
|
+
host serves the same index at `/docs/llms.txt`.
|
|
21
|
+
|
|
19
22
|
Run the CLI as `agent-sdk <cmd>`. In the everysphere monorepo there is no
|
|
20
23
|
installed bin — use:
|
|
21
24
|
|
package/skills/github/SKILL.md
CHANGED
|
@@ -9,6 +9,9 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# GitHub channels in the Agent SDK
|
|
11
11
|
|
|
12
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
13
|
+
host serves the same index at `/docs/llms.txt`.
|
|
14
|
+
|
|
12
15
|
Author `agent/channels/github.ts` with `githubChannel()` from
|
|
13
16
|
`@cursor/july/channels/github`. It mounts
|
|
14
17
|
`POST /<slug>/v1/channels/github` and publishes the events it dispatches on
|
|
@@ -11,6 +11,9 @@ paths:
|
|
|
11
11
|
|
|
12
12
|
# Agent SDK hillclimb
|
|
13
13
|
|
|
14
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
15
|
+
host serves the same index at `/docs/llms.txt`.
|
|
16
|
+
|
|
14
17
|
Optimize one Agent SDK agent project
|
|
15
18
|
with a tight measure → change → remeasure loop. Do not redesign the
|
|
16
19
|
whole framework; climb one concrete failure mode at a time. Sibling skills:
|
package/skills/mcp-auth/SKILL.md
CHANGED
|
@@ -8,6 +8,9 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Host MCP OAuth (mcp auth)
|
|
10
10
|
|
|
11
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
12
|
+
host serves the same index at `/docs/llms.txt`.
|
|
13
|
+
|
|
11
14
|
Use this skill when a human asks to authorize a remote MCP server on an
|
|
12
15
|
Agent SDK host, store credentials for Cursor-managed hosting, or debug
|
|
13
16
|
`host.mcp` auth failures for `oauth: true` connections.
|
package/skills/otel/SKILL.md
CHANGED
|
@@ -8,6 +8,9 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Agent SDK OpenTelemetry (`defineOtel`)
|
|
10
10
|
|
|
11
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
12
|
+
host serves the same index at `/docs/llms.txt`.
|
|
13
|
+
|
|
11
14
|
Push session, turn, tool, and subagent traces, plus token and cost
|
|
12
15
|
metrics, from the serve process to an OTLP collector. Logs are off
|
|
13
16
|
until you opt in.
|
|
@@ -9,6 +9,9 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Setup Slack for the Agent SDK
|
|
11
11
|
|
|
12
|
+
Public docs index: `node_modules/@cursor/july/dist/docs/llms.txt`. A running
|
|
13
|
+
host serves the same index at `/docs/llms.txt`.
|
|
14
|
+
|
|
12
15
|
Use this skill when a human asks to wire Slack to an Agent SDK agent.
|
|
13
16
|
|
|
14
17
|
There are **two ways to connect**:
|