@cursor/july 0.1.92 → 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/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 +2 -2
- package/dist/docs/ab.html +8 -8
- package/dist/docs/ab.md +7 -13
- 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 +7 -7
- package/dist/docs/building-with-agents.md +5 -11
- package/dist/docs/concepts.html +5 -8
- package/dist/docs/concepts.md +12 -17
- package/dist/docs/deployment.html +11 -11
- package/dist/docs/deployment.md +8 -10
- package/dist/docs/evals.html +10 -10
- package/dist/docs/evals.md +16 -37
- package/dist/docs/example-agents/approval-buddy.html +5 -5
- package/dist/docs/example-agents/approval-buddy.md +1 -1
- package/dist/docs/example-agents/benny.html +5 -7
- package/dist/docs/example-agents/benny.md +4 -13
- package/dist/docs/example-agents/bugbot.html +4 -4
- package/dist/docs/example-agents/codebase-wiki.html +6 -6
- package/dist/docs/example-agents/codebase-wiki.md +5 -8
- package/dist/docs/example-agents/codeowners-review.html +4 -4
- package/dist/docs/example-agents/concierge.html +7 -8
- package/dist/docs/example-agents/concierge.md +2 -3
- package/dist/docs/example-agents/index.html +6 -6
- package/dist/docs/example-agents/index.md +5 -8
- package/dist/docs/example-agents/knowledge-base.html +6 -6
- package/dist/docs/example-agents/knowledge-base.md +2 -2
- package/dist/docs/example-agents/oncall.html +4 -4
- package/dist/docs/example-agents/security-reviewer.html +7 -7
- package/dist/docs/example-agents/security-reviewer.md +5 -5
- package/dist/docs/example-agents/slack-agent.html +4 -4
- package/dist/docs/example-agents/weather-agent.html +7 -7
- package/dist/docs/example-agents/weather-agent.md +4 -3
- package/dist/docs/guides/agent-to-agent.html +5 -5
- package/dist/docs/guides/agent-to-agent.md +1 -1
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +8 -25
- package/dist/docs/guides/convert-automation.html +6 -6
- package/dist/docs/guides/convert-automation.md +3 -3
- package/dist/docs/guides/github.html +9 -9
- package/dist/docs/guides/github.md +11 -23
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +6 -6
- package/dist/docs/guides/mcp-oauth.md +4 -4
- package/dist/docs/guides/opentelemetry.html +4 -4
- package/dist/docs/guides/slack.html +7 -7
- package/dist/docs/guides/slack.md +4 -4
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/guides/webhooks.md +3 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/hillclimbing.md +1 -1
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +2 -10
- package/dist/docs/llms-full.txt +300 -850
- package/dist/docs/llms.txt +2 -3
- package/dist/docs/quickstart.html +5 -5
- package/dist/docs/quickstart.md +1 -1
- package/dist/docs/reference/agent-config.html +8 -8
- package/dist/docs/reference/agent-config.md +10 -15
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +20 -31
- package/dist/docs/reference/cli.html +14 -15
- package/dist/docs/reference/cli.md +27 -37
- package/dist/docs/reference/connections.html +8 -8
- package/dist/docs/reference/connections.md +9 -14
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/hooks.md +10 -14
- package/dist/docs/reference/http-api.html +7 -7
- package/dist/docs/reference/http-api.md +17 -37
- package/dist/docs/reference/instructions.html +6 -6
- package/dist/docs/reference/instructions.md +1 -1
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +14 -19
- package/dist/docs/reference/project-layout.html +7 -7
- package/dist/docs/reference/project-layout.md +2 -2
- package/dist/docs/reference/prompt.html +6 -6
- package/dist/docs/reference/prompt.md +1 -1
- package/dist/docs/reference/schedules.html +6 -6
- package/dist/docs/reference/schedules.md +1 -2
- package/dist/docs/reference/sessions.html +5 -12
- package/dist/docs/reference/sessions.md +8 -19
- package/dist/docs/reference/skills.html +6 -6
- package/dist/docs/reference/skills.md +3 -3
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +8 -8
- package/dist/docs/reference/tools.md +12 -17
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/scaffolding-agents.md +4 -5
- package/dist/docs/storage.html +9 -9
- package/dist/docs/storage.md +37 -80
- package/dist/docs/templates/agentic-owners.html +7 -7
- package/dist/docs/templates/agentic-owners.md +2 -2
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +3 -6
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/docs/troubleshooting.md +6 -6
- 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/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 +13 -3
- 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 +8 -1
- 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/review-comments.ts +542 -229
- package/src/internal/server.ts +29 -2
- package/src/internal/session-engine.ts +25 -1
- 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 -41
- package/dist/docs/example-agents/fsd.md +0 -329
- 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
package/src/internal/server.ts
CHANGED
|
@@ -56,6 +56,7 @@ import type {
|
|
|
56
56
|
ReminderInfo,
|
|
57
57
|
ServeOptions,
|
|
58
58
|
} from "../types.js";
|
|
59
|
+
import { V2EngineError } from "./continuation-identity.js";
|
|
59
60
|
import {
|
|
60
61
|
type CursorAccountConnectionRef,
|
|
61
62
|
CursorAccountMcpBridge,
|
|
@@ -118,6 +119,7 @@ import {
|
|
|
118
119
|
handleAgentServeTrigger,
|
|
119
120
|
} from "./handleAgentServeTrigger.js";
|
|
120
121
|
import { createHostPlatforms, warmupHostGitHubAuth } from "./host-platforms.js";
|
|
122
|
+
import { registerHostedDeliveryRoute } from "./hosted-delivery.js";
|
|
121
123
|
import {
|
|
122
124
|
buildHttpChannelRoutes,
|
|
123
125
|
errorResponse,
|
|
@@ -279,7 +281,11 @@ export async function startServer(
|
|
|
279
281
|
);
|
|
280
282
|
const dev = options.dev ?? false;
|
|
281
283
|
const playground = options.playground ?? true;
|
|
282
|
-
const
|
|
284
|
+
const hosted = options as {
|
|
285
|
+
noControlPlane?: boolean;
|
|
286
|
+
cursorGithubProxy?: boolean;
|
|
287
|
+
};
|
|
288
|
+
const noControlPlane = hosted.noControlPlane === true;
|
|
283
289
|
const runSchedules = options.schedules ?? !dev;
|
|
284
290
|
const runReminders = options.reminders ?? !dev;
|
|
285
291
|
|
|
@@ -371,7 +377,7 @@ export async function startServer(
|
|
|
371
377
|
// through github-proxy exactly like channel Octokit calls.
|
|
372
378
|
let hostGithubProxyResolver: CursorAccountGithubTokenResolver | undefined;
|
|
373
379
|
if (cursorGithubTargets.length > 0) {
|
|
374
|
-
const githubProxyRequested =
|
|
380
|
+
const githubProxyRequested = hosted.cursorGithubProxy === true;
|
|
375
381
|
const needsGithubAuth =
|
|
376
382
|
cursorGithubConfig.scope !== undefined || githubProxyRequested;
|
|
377
383
|
if (needsGithubAuth) {
|
|
@@ -1285,6 +1291,19 @@ function mountAgentRoutes(
|
|
|
1285
1291
|
}
|
|
1286
1292
|
return null;
|
|
1287
1293
|
};
|
|
1294
|
+
if (noControlPlane === true && isV2Project(project)) {
|
|
1295
|
+
registerHostedDeliveryRoute({
|
|
1296
|
+
router,
|
|
1297
|
+
base,
|
|
1298
|
+
channels: project.channels,
|
|
1299
|
+
buildHandlerArgs: (channelId, hostedSessionId) =>
|
|
1300
|
+
buildChannelHandlerArgs({
|
|
1301
|
+
runtime,
|
|
1302
|
+
channelId,
|
|
1303
|
+
hostedSessionId,
|
|
1304
|
+
}),
|
|
1305
|
+
});
|
|
1306
|
+
}
|
|
1288
1307
|
// Playground lists/opens Slack (and other channel) sessions across
|
|
1289
1308
|
// principals when `--dev` (loopback) or `--allow-anonymous` (trusted
|
|
1290
1309
|
// shared host, e.g. corp Okta ALB). Never when bearer / custom channel
|
|
@@ -2762,6 +2781,7 @@ function buildChannelHandlerArgs(input: {
|
|
|
2762
2781
|
params?: Record<string, string>;
|
|
2763
2782
|
requestIp?: string | null;
|
|
2764
2783
|
auth?: AuthContext | null;
|
|
2784
|
+
hostedSessionId?: string;
|
|
2765
2785
|
}): ChannelHandlerArgs {
|
|
2766
2786
|
const { runtime, channelId } = input;
|
|
2767
2787
|
const base = runtime.slug === "" ? "" : `/${runtime.slug}`;
|
|
@@ -2776,6 +2796,7 @@ function buildChannelHandlerArgs(input: {
|
|
|
2776
2796
|
runtime.engine.send(channelId, message, {
|
|
2777
2797
|
...sendOptions,
|
|
2778
2798
|
auth: sendOptions.auth !== undefined ? sendOptions.auth : auth,
|
|
2799
|
+
hostedSessionId: input.hostedSessionId,
|
|
2779
2800
|
}),
|
|
2780
2801
|
getSession: (sessionId) =>
|
|
2781
2802
|
runtime.engine.getChannelSession(channelId, sessionId),
|
|
@@ -2838,6 +2859,12 @@ async function handleRequest(
|
|
|
2838
2859
|
} catch (error) {
|
|
2839
2860
|
if (error instanceof SessionBusyError) {
|
|
2840
2861
|
response = errorResponse(409, "session_busy", error.message);
|
|
2862
|
+
} else if (error instanceof V2EngineError) {
|
|
2863
|
+
response = errorResponse(
|
|
2864
|
+
409,
|
|
2865
|
+
"v2_identity_conflict",
|
|
2866
|
+
"Control-plane session identity conflicts with existing state."
|
|
2867
|
+
);
|
|
2841
2868
|
} else if (error instanceof SessionAuthError) {
|
|
2842
2869
|
response = errorResponse(403, "forbidden", error.message);
|
|
2843
2870
|
} else {
|
|
@@ -283,6 +283,11 @@ interface ActiveToolContext {
|
|
|
283
283
|
|
|
284
284
|
export interface EngineSendOptions extends SendMessageOptions {
|
|
285
285
|
mode?: "chat" | "task";
|
|
286
|
+
/**
|
|
287
|
+
* Hosted v2 control-plane identity. Private host plumbing only: channel
|
|
288
|
+
* authors cannot choose a session id through the public SendMessageOptions.
|
|
289
|
+
*/
|
|
290
|
+
hostedSessionId?: string;
|
|
286
291
|
}
|
|
287
292
|
|
|
288
293
|
interface CoalescedQueuedTurn {
|
|
@@ -816,6 +821,14 @@ export class SessionEngine {
|
|
|
816
821
|
}
|
|
817
822
|
|
|
818
823
|
if (existing !== undefined) {
|
|
824
|
+
if (
|
|
825
|
+
sendOptions.hostedSessionId !== undefined &&
|
|
826
|
+
existing.sessionId !== sendOptions.hostedSessionId
|
|
827
|
+
) {
|
|
828
|
+
throw new V2EngineError(
|
|
829
|
+
`v2: continuation belongs to session ${existing.sessionId}, not ${sendOptions.hostedSessionId}`
|
|
830
|
+
);
|
|
831
|
+
}
|
|
819
832
|
if (!samePrincipal(existing.auth, auth)) {
|
|
820
833
|
throw new SessionAuthError(existing.sessionId);
|
|
821
834
|
}
|
|
@@ -886,11 +899,22 @@ export class SessionEngine {
|
|
|
886
899
|
);
|
|
887
900
|
}
|
|
888
901
|
|
|
902
|
+
if (sendOptions.hostedSessionId !== undefined) {
|
|
903
|
+
const collision = await this.getOrRestoreSession(
|
|
904
|
+
sendOptions.hostedSessionId
|
|
905
|
+
);
|
|
906
|
+
if (collision !== undefined) {
|
|
907
|
+
throw new V2EngineError(
|
|
908
|
+
`v2: hosted session id ${sendOptions.hostedSessionId} already belongs to another mailbox`
|
|
909
|
+
);
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
|
|
889
913
|
const now = new Date().toISOString();
|
|
890
914
|
const channelState = this.initialChannelState(channelId, sendOptions.state);
|
|
891
915
|
const purpose = sendOptions.purpose === "eval" ? "eval" : "live";
|
|
892
916
|
let record: SessionRecord = {
|
|
893
|
-
sessionId: newSessionId(),
|
|
917
|
+
sessionId: sendOptions.hostedSessionId ?? newSessionId(),
|
|
894
918
|
channelId,
|
|
895
919
|
mode: sendOptions.mode ?? "chat",
|
|
896
920
|
purpose,
|
|
@@ -155,8 +155,14 @@ export type CommitRangeDiff =
|
|
|
155
155
|
export async function tryDiffCommitRange(args: {
|
|
156
156
|
/** Existing checkout to run git in (see {@link createShallowPrCheckout}). */
|
|
157
157
|
checkoutDir: string;
|
|
158
|
-
/**
|
|
159
|
-
|
|
158
|
+
/**
|
|
159
|
+
* The checkout's clone target; supplies the remote's ref + auth
|
|
160
|
+
* conventions. Omit for SCMs without a clone target (e.g. Origin, where
|
|
161
|
+
* the host checkout is the reviewed repo): the diff then relies on
|
|
162
|
+
* commits already present locally, plus one uncredentialed fetch-by-SHA
|
|
163
|
+
* through the checkout's own remote.
|
|
164
|
+
*/
|
|
165
|
+
target?: ScmCloneTarget | undefined;
|
|
160
166
|
from: string;
|
|
161
167
|
to: string;
|
|
162
168
|
/** Restrict the diff to one path when set. */
|
|
@@ -171,10 +177,13 @@ export async function tryDiffCommitRange(args: {
|
|
|
171
177
|
"Could not compute a reliable diff because a commit SHA was not a full 40-character SHA.",
|
|
172
178
|
};
|
|
173
179
|
}
|
|
174
|
-
const credential =
|
|
175
|
-
args.target
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
const credential =
|
|
181
|
+
args.target === undefined
|
|
182
|
+
? undefined
|
|
183
|
+
: cloneCredential(
|
|
184
|
+
args.target,
|
|
185
|
+
args.auth ?? defaultCloneAuth(args.target)
|
|
186
|
+
);
|
|
178
187
|
for (const sha of [args.from, args.to]) {
|
|
179
188
|
if (
|
|
180
189
|
!(await ensureCommitFetched(
|
|
@@ -222,7 +231,7 @@ function isFullCommitSha(value: string): boolean {
|
|
|
222
231
|
async function ensureCommitFetched(
|
|
223
232
|
checkoutDir: string,
|
|
224
233
|
sha: string,
|
|
225
|
-
target: ScmCloneTarget,
|
|
234
|
+
target: ScmCloneTarget | undefined,
|
|
226
235
|
credential: GitCredential | undefined
|
|
227
236
|
): Promise<boolean> {
|
|
228
237
|
if ((await revParse(checkoutDir, sha)) !== undefined) {
|
|
@@ -231,15 +240,20 @@ async function ensureCommitFetched(
|
|
|
231
240
|
const attempts = [
|
|
232
241
|
[...FETCH_ARGS, sha],
|
|
233
242
|
// Deeper history on the PR head ref: the older end of an inter-run range
|
|
234
|
-
// is usually an ancestor of the tip rather than the tip itself.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
+
// is usually an ancestor of the tip rather than the tip itself. Only
|
|
244
|
+
// possible when the clone target (and so the PR head ref) is known.
|
|
245
|
+
...(target === undefined
|
|
246
|
+
? []
|
|
247
|
+
: [
|
|
248
|
+
[
|
|
249
|
+
"fetch",
|
|
250
|
+
"--depth=200",
|
|
251
|
+
"--no-tags",
|
|
252
|
+
"--quiet",
|
|
253
|
+
"origin",
|
|
254
|
+
target.prHeadRef,
|
|
255
|
+
],
|
|
256
|
+
]),
|
|
243
257
|
];
|
|
244
258
|
for (const attempt of attempts) {
|
|
245
259
|
try {
|
package/src/types.ts
CHANGED
|
@@ -263,7 +263,8 @@ export interface AgentConfig {
|
|
|
263
263
|
* deploys onto the v2 control plane (v2 APIs and schemas). Omitted
|
|
264
264
|
* channel `continuation` then inherits from declared events (`github.pr/v2`,
|
|
265
265
|
* `github.issue/v2`, `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
|
|
266
|
-
* `none/v2`). An explicit per-channel selector
|
|
266
|
+
* `deployments.deployment/v2`, `none/v2`). An explicit per-channel selector
|
|
267
|
+
* still overrides.
|
|
267
268
|
*
|
|
268
269
|
* ```ts
|
|
269
270
|
* export default defineAgent({
|
|
@@ -2160,6 +2161,11 @@ export interface ChannelMeta {
|
|
|
2160
2161
|
* to dispatch on. Used by `--cursor-events` to subscribe `provider: "origin"`.
|
|
2161
2162
|
*/
|
|
2162
2163
|
originWebhookEvents?: readonly string[];
|
|
2164
|
+
/**
|
|
2165
|
+
* For deployments packs: the factory event types this channel is wired
|
|
2166
|
+
* to dispatch on. Extracted into the deploy manifest as `eventTypes`.
|
|
2167
|
+
*/
|
|
2168
|
+
deploymentEventTypes?: readonly string[];
|
|
2163
2169
|
/**
|
|
2164
2170
|
* For Slack packs with the opt-in channel watch: the allowlisted channels
|
|
2165
2171
|
* (ids or `#names`) this channel dispatches on without a mention. Surfaced
|
|
@@ -2840,6 +2846,8 @@ export interface AgentProjectInfo {
|
|
|
2840
2846
|
githubWebhookEvents?: readonly string[];
|
|
2841
2847
|
/** Origin webhook event types the channel dispatches on, when declared. */
|
|
2842
2848
|
originWebhookEvents?: readonly string[];
|
|
2849
|
+
/** Factory deployment event types the channel dispatches on, when declared. */
|
|
2850
|
+
deploymentEventTypes?: readonly string[];
|
|
2843
2851
|
/** Slack channels watched for posts (opt-in channel watch), when declared. */
|
|
2844
2852
|
slackChannelPosts?: readonly string[];
|
|
2845
2853
|
}>;
|
|
@@ -2997,12 +3005,6 @@ export interface ServeOptions {
|
|
|
2997
3005
|
* or `handle.dispatchReminder`.
|
|
2998
3006
|
*/
|
|
2999
3007
|
reminders?: boolean;
|
|
3000
|
-
/**
|
|
3001
|
-
* Do not start the bundled control plane (schedule/reminder clocks).
|
|
3002
|
-
* Cursor hosting passes this so the kit talks to the Cursor backend
|
|
3003
|
-
* instead. Local `serve` should leave this unset.
|
|
3004
|
-
*/
|
|
3005
|
-
noControlPlane?: boolean;
|
|
3006
3008
|
/**
|
|
3007
3009
|
* Serve the bundled web playground at `/playground` (chat, streaming,
|
|
3008
3010
|
* tool calls, sessions, schedule dispatch). Defaults to true; the API
|
|
@@ -3047,16 +3049,6 @@ export interface ServeOptions {
|
|
|
3047
3049
|
* authenticates callers (e.g. an SSO/Okta proxy in front of the host).
|
|
3048
3050
|
*/
|
|
3049
3051
|
allowAnonymousGrokbot?: boolean;
|
|
3050
|
-
/**
|
|
3051
|
-
* Route `githubChannel({ cursorAccount })` API calls through the Cursor
|
|
3052
|
-
* backend's GitHub forwarder (`/v0/github-proxy`) instead of minting raw
|
|
3053
|
-
* installation tokens into this process. The backend logs and meters every
|
|
3054
|
-
* call with per-deployment attribution. `AGENT_SERVE_GITHUB_PROXY_URL`
|
|
3055
|
-
* overrides the forwarder base URL (default: the resolved Cursor API base
|
|
3056
|
-
* URL + `/v0/github-proxy`). Child `gh` processes still use a minted
|
|
3057
|
-
* `GH_TOKEN` lease (proxying `gh` is a follow-up).
|
|
3058
|
-
*/
|
|
3059
|
-
cursorGithubProxy?: boolean;
|
|
3060
3052
|
/**
|
|
3061
3053
|
* Allow {@link allowAnonymous} together with
|
|
3062
3054
|
* `defineConnection({ cursorAccount: true })`. Without this opt-in, `serve`
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{_ as a,c as t,o as s,ag as i}from"./chunks/framework.BCISBCiQ.js";const k=JSON.parse('{"title":"Building agents with agents","description":"Use the built-in skills to have a coding agent create, verify, and improve your agent.","frontmatter":{"title":"Building agents with agents","description":"Use the built-in skills to have a coding agent create, verify, and improve your agent."},"headers":[],"relativePath":"building-with-agents.md","filePath":"building-with-agents.md"}'),n={name:"building-with-agents.md"};function l(h,e,r,o,d,c){return s(),t("div",null,[...e[0]||(e[0]=[i(`<h1 id="building-agents-with-agents" tabindex="-1">Building agents with agents <a class="header-anchor" href="#building-agents-with-agents" aria-label="Permalink to "Building agents with agents""></a></h1><p>Give a coding agent the goal. The built-in skills guide it through scaffolding, channels, verification, evals, and measured improvement.</p><h2 id="what-can-a-coding-agent-build-for-me" tabindex="-1">What can a coding agent build for me? <a class="header-anchor" href="#what-can-a-coding-agent-build-for-me" aria-label="Permalink to "What can a coding agent build for me?""></a></h2><p>A coding agent can take an Agent SDK project from an idea to a verified first version. It can:</p><ul><li>Create the project and choose the smallest useful surface</li><li>Add tools, skills, channels, MCP connections, and approval gates</li><li>Run a real turn and inspect its trace</li><li>Add evals for the behavior you want to keep</li><li>Improve the agent against fixed inputs</li></ul><p>This works because the project surface lives in files. The CLI also returns structured JSON and records each run as an NDJSON trace. Your coding agent can inspect what the framework discovered, run the agent, and verify the result without reading terminal prose.</p><h2 id="how-do-i-create-an-agent-with-the-built-in-skill" tabindex="-1">How do I create an agent with the built-in skill? <a class="header-anchor" href="#how-do-i-create-an-agent-with-the-built-in-skill" aria-label="Permalink to "How do I create an agent with the built-in skill?""></a></h2><p>Have the coding agent read <a href="./../skills/create-agent/SKILL.html"><code>skills/create-agent/SKILL.md</code></a> (in the monorepo: <code>packages/agent-serve/skills/create-agent/SKILL.md</code>) and follow it.</p><p>The skill asks about your agent's purpose, runtime, model, channels, MCP connections, and capabilities. It then shows you a plan, writes the project, and verifies the result.</p><p>For example:</p><blockquote><p>Use the Agent SDK create-agent skill to build a PR triage agent reachable through GitHub. It should summarize failed checks, require approval before posting a review, and include one smoke eval.</p></blockquote><p>The skill starts with a small surface: short instructions, one or two tools, the channels you chose, and a smoke eval. You can add more after the first end-to-end turn works.</p><h2 id="which-built-in-skill-should-i-use" tabindex="-1">Which built-in skill should I use? <a class="header-anchor" href="#which-built-in-skill-should-i-use" aria-label="Permalink to "Which built-in skill should I use?""></a></h2><p>The package ships task-specific guides under <a href="./../skills/"><code>skills/</code></a>:</p><table tabindex="0"><thead><tr><th>What you want to do</th><th>Skill</th></tr></thead><tbody><tr><td>Understand the project layout and runtimes</td><td><a href="./../skills/framework-map/SKILL.html"><code>framework-map</code></a></td></tr><tr><td>Create and verify a new agent</td><td><a href="./../skills/create-agent/SKILL.html"><code>create-agent</code></a></td></tr><tr><td>Write fixtures and regression checks</td><td><a href="./../skills/evals/SKILL.html"><code>evals</code></a></td></tr><tr><td>Live A/B metrics on traffic (<code>defineAB</code>)</td><td><a href="./../skills/ab/SKILL.html"><code>ab</code></a></td></tr><tr><td>Improve an agent against fixed inputs</td><td><a href="./../skills/hillclimb/SKILL.html"><code>hillclimb</code></a></td></tr><tr><td>Add GitHub webhooks and replay events</td><td><a href="./../skills/github/SKILL.html"><code>github</code></a></td></tr><tr><td>Connect an agent to Slack</td><td><a href="./../skills/setup-slack/SKILL.html"><code>setup-slack</code></a></td></tr><tr><td>Diagnose a local run</td><td><a href="./../skills/debug/SKILL.html"><code>debug</code></a></td></tr></tbody></table><p>Point your coding agent at the matching <code>SKILL.md</code>. The guide contains the workflow, commands, and common mistakes for that task.</p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>The skill bodies use the current <code>agent-serve</code> CLI names. This guide uses the upcoming <code>agent-sdk</code> names. See <a href="/docs/#run-the-cli">Run the CLI</a> for the full rename table.</p></div><h2 id="how-does-a-coding-agent-verify-its-work" tabindex="-1">How does a coding agent verify its work? <a class="header-anchor" href="#how-does-a-coding-agent-verify-its-work" aria-label="Permalink to "How does a coding agent verify its work?""></a></h2><p>The coding agent should discover the project, test each server tool, run a real turn, and finish with evals:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> validate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span>
|
|
2
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> info</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --json</span></span>
|
|
3
|
-
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> call</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> inspect_pr</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\</span></span>
|
|
5
|
-
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --input</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '{"prUrl":"https://github.com/acme/checkout/pull/42"}'</span></span>
|
|
6
|
-
<span class="line"></span>
|
|
7
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\</span></span>
|
|
8
|
-
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --message</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "Is https://github.com/acme/checkout/pull/42 ready to approve?"</span></span>
|
|
9
|
-
<span class="line"></span>
|
|
10
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> trajectory</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --events</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .agent-serve/traces/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">sessionI</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">d</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.ndjson</span></span>
|
|
11
|
-
<span class="line"></span>
|
|
12
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> eval</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --list</span></span>
|
|
13
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">agent-sdk</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> eval</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --json</span></span></code></pre></div><p><code>serve</code> boots without an API key, which is enough to check channel mounts and the playground shell. Model turns need a credential. When the environment lacks one, finish every key-free check, then hand the <code>run</code> and <code>eval</code> commands to the operator.</p><p>Test server tools with <code>call</code> before tuning the prompt. It runs a tool in-process with schema validation and no model turn. If the tool returns the wrong data, a prompt change won't fix it.</p><p><code>validate</code> and <code>run</code> don't type-check the project because tsx strips types. Run the project's TypeScript check before shipping. Tool results must also be JSON-shaped. Use object literals or <code>type</code> aliases for <code>execute</code> return types instead of <code>interface</code> types.</p><h2 id="how-do-i-improve-the-agent-after-its-first-run" tabindex="-1">How do I improve the agent after its first run? <a class="header-anchor" href="#how-do-i-improve-the-agent-after-its-first-run" aria-label="Permalink to "How do I improve the agent after its first run?""></a></h2><p>Scaffolding proves the agent runs. It says nothing about quality. Once a smoke turn passes, give the hillclimb skill:</p><ol><li><strong>Fixtures</strong>: one to three fixed inputs, such as a PR URL, a canonical question, or a saved webhook payload</li><li><strong>Success criteria</strong>: correct tool choice, fewer tool calls, lower wall time, or better output</li><li><strong>The freeze line</strong>: the API contract, output shape, and existing evals that must stay unchanged</li></ol><p>Have the coding agent read <a href="./../skills/hillclimb/SKILL.html"><code>skills/hillclimb/SKILL.md</code></a>. It measures the current run, proposes one change, remeasures the same fixtures, and adds an eval for each kept improvement.</p><h2 id="related" tabindex="-1">Related <a class="header-anchor" href="#related" aria-label="Permalink to "Related""></a></h2><ul><li><a href="./quickstart.html">Create your first agent</a></li><li><a href="./scaffolding-agents.html">Scaffold an agent with Cursor</a></li><li><a href="./evals.html">Evals</a></li><li><a href="./hillclimbing.html">Hillclimbing</a></li><li><a href="./reference/cli.html">CLI reference</a></li></ul>`,29)])])}const g=a(n,[["render",l]]);export{k as __pageData,g as default};
|