@cursor/july 0.1.111 → 0.1.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agent-serve.js +18 -1
- package/dist/channels/github/github-channel.d.ts +29 -19
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +29 -19
- package/dist/channels/slack/agentic-delivery.d.ts.map +1 -1
- package/dist/channels/slack/agentic-delivery.js +2 -0
- package/dist/channels/slack/dispatch.d.ts +11 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +142 -39
- package/dist/channels/slack/placeholder.d.ts +26 -0
- package/dist/channels/slack/placeholder.d.ts.map +1 -1
- package/dist/channels/slack/placeholder.js +28 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +9 -16
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.Drol6mi6.js → app.DxTdhphC.js} +4 -4
- package/dist/docs/assets/building-with-agents.md.BBCx0AUo.js +9 -0
- package/dist/docs/assets/building-with-agents.md.BBCx0AUo.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.QmjDU6Jh.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CdqoBZJX.js → VPLocalSearchBox.CR3KTF0X.js} +1 -1
- package/dist/docs/assets/chunks/{arc.BVX3ycTn.js → arc.CVVqBOdS.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.CcChnMxX.js → architectureDiagram-Q4EWVU46.CJHGP4ki.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.xwtXO-yt.js → baseUniq.r7UVVRBP.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.CijZ_taK.js → blockDiagram-DXYQGD6D.DKmMaTre.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.0FBvwBvK.js → c4Diagram-AHTNJAMY.DDJsntUO.js} +1 -1
- package/dist/docs/assets/chunks/channel.BjpoSbz_.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.CELMmMDA.js → chunk-4BX2VUAB.BK2rKt6W.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.C4bhFtSm.js → chunk-4TB4RGXK.DRLV8RnF.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.ZnQ9gRRQ.js → chunk-55IACEB6.DaKjxtb7.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.DPlmglG-.js → chunk-EDXVE4YY.C5sPCIT1.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.BrUk8pff.js → chunk-FMBD7UC4.CSGWyNTB.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.CcmWIncu.js → chunk-OYMX7WX6.D5tK9XEr.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.D65-cs8I.js → chunk-QZHKN3VN.BeZGd1UZ.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.qoXZpG9F.js → chunk-YZCP3GAM.U_tfWwQR.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.BgxOlMHw.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.BgxOlMHw.js +1 -0
- package/dist/docs/assets/chunks/clone.DRuGBKZC.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.8rYtqudO.js → cose-bilkent-S5V4N54A.DVeRXIb6.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.DrRP1fOh.js → dagre-KV5264BT.BpKJAeRZ.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.DHj_xA2_.js → diagram-5BDNPKRD.BQOtrd1Z.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.Bz_6nAKj.js → diagram-G4DWMVQ6.CSDAhjPI.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.BWA0xSW9.js → diagram-MMDJMWI5.Dpztst2S.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.CpTJLNJI.js → diagram-TYMM5635.qJHRizHR.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.-7AWWSrP.js → erDiagram-SMLLAGMA.vbDotH3l.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.BTnQ742_.js → flowDiagram-DWJPFMVM.CqS_ZQr4.js} +1 -1
- package/dist/docs/assets/chunks/framework.BNw1pucY.js +19 -0
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.B5_HiiQ5.js → ganttDiagram-T4ZO3ILL.DTLdR4pN.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.CZcNTFZd.js → gitGraphDiagram-UUTBAWPF.D04lnbnr.js} +1 -1
- package/dist/docs/assets/chunks/{graph.V2GLaab4.js → graph.BlfqLJsM.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.7pZOkCCU.js → infoDiagram-42DDH7IO.tAooImWA.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.DSMo3Qa3.js → ishikawaDiagram-UXIWVN3A.ClUsVqnJ.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.BNEgWN1S.js → journeyDiagram-VCZTEJTY.C3tUgyCg.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.B-4d4tC7.js → kanban-definition-6JOO6SKY.CtD9-QCe.js} +1 -1
- package/dist/docs/assets/chunks/{layout.Dvbn9nSb.js → layout.D38U-LnT.js} +1 -1
- package/dist/docs/assets/chunks/{linear.D2GM4p4b.js → linear.BJmssyhN.js} +1 -1
- package/dist/docs/assets/chunks/{min.DVBtLK-B.js → min.DNgXoouU.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.CnJRI55x.js → mindmap-definition-QFDTVHPH.Dcp6cxeu.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.CtoaTFlA.js → pieDiagram-DEJITSTG.CLDw6zIs.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.DtT24_vN.js → quadrantDiagram-34T5L4WZ.CYaeeY4c.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.CjSO4o8f.js → requirementDiagram-MS252O5E.gMYuRpq2.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.-wWiIVWa.js → sankeyDiagram-XADWPNL6.CZqyHFbc.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.DSk8s4gX.js → sequenceDiagram-FGHM5R23.BTsCjUDN.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.BFKAsdkN.js → stateDiagram-FHFEXIEX.CftT9mLJ.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.-43J68xB.js +1 -0
- package/dist/docs/assets/chunks/{theme.C0MctGaz.js → theme.B_7J9ZsV.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.TUNJbAFe.js → timeline-definition-GMOUNBTQ.DbU3WUNw.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.C-RGNnk4.js → vennDiagram-DHZGUBPP.ixsq-q2u.js} +1 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.WRXz-Dux.js +162 -0
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.DH4zt73Y.js → wardleyDiagram-NUSXRM2D.C0ewvgbp.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.B-3k6bF6.js → xychartDiagram-5P7HB3ND.nAEhF4bO.js} +1 -1
- package/dist/docs/assets/deployment.md.D2jQZuFx.js +32 -0
- package/dist/docs/assets/deployment.md.D2jQZuFx.lean.js +1 -0
- package/dist/docs/assets/evals.md.BYvfZ-PO.js +72 -0
- package/dist/docs/assets/evals.md.BYvfZ-PO.lean.js +1 -0
- package/dist/docs/assets/guides_agent-to-agent.md.8oDTfu-E.js +30 -0
- package/dist/docs/assets/guides_agent-to-agent.md.8oDTfu-E.lean.js +1 -0
- package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.js +145 -0
- package/dist/docs/assets/guides_bitbucket.md.mpevW-VP.lean.js +1 -0
- package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.js +15 -0
- package/dist/docs/assets/guides_cloud-agents.md.Cp1O3u-X.lean.js +1 -0
- package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.js +43 -0
- package/dist/docs/assets/guides_convert-automation.md.CqEyfP6Y.lean.js +1 -0
- package/dist/docs/assets/guides_github.md.BwpBp3ed.js +156 -0
- package/dist/docs/assets/guides_github.md.BwpBp3ed.lean.js +1 -0
- package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.js +153 -0
- package/dist/docs/assets/guides_gitlab.md.DaEC3nMk.lean.js +1 -0
- package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.js +16 -0
- package/dist/docs/assets/guides_grokbot-agents.md.CMhZNdEU.lean.js +1 -0
- package/dist/docs/assets/guides_improve.md.Bnp4F99w.js +22 -0
- package/dist/docs/assets/guides_improve.md.Bnp4F99w.lean.js +1 -0
- package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.js +50 -0
- package/dist/docs/assets/guides_mcp-oauth.md.bSFakfCY.lean.js +1 -0
- package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.js +35 -0
- package/dist/docs/assets/guides_opentelemetry.md.BKDxQmmd.lean.js +1 -0
- package/dist/docs/assets/guides_slack.md.Bo96y42E.js +70 -0
- package/dist/docs/assets/guides_slack.md.Bo96y42E.lean.js +1 -0
- package/dist/docs/assets/guides_webhooks.md.1A72_VEE.js +92 -0
- package/dist/docs/assets/guides_webhooks.md.1A72_VEE.lean.js +1 -0
- package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.js +7 -0
- package/dist/docs/assets/hillclimbing.md.D4E1o5Sa.lean.js +1 -0
- package/dist/docs/assets/{index.md.BFVyY2KT.js → index.md.C-t81M5J.js} +2 -2
- package/dist/docs/assets/{index.md.BFVyY2KT.lean.js → index.md.C-t81M5J.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.D3MjSZN-.js → quickstart.md.DAvVhuuU.js} +1 -1
- package/dist/docs/assets/{quickstart.md.D3MjSZN-.lean.js → quickstart.md.DAvVhuuU.lean.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.js → reference_agent-config.md.DGPyw7ms.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CfVA-LZJ.lean.js → reference_agent-config.md.DGPyw7ms.lean.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.js → reference_artifacts.md.Bu_4HmsD.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Vf7qyIZ-.lean.js → reference_artifacts.md.Bu_4HmsD.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.icqLKcTc.js → reference_channels.md.nFWbzAic.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.icqLKcTc.lean.js → reference_channels.md.nFWbzAic.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.B2dBL6L8.js → reference_cli.md.DLWDz9ij.js} +3 -1
- package/dist/docs/assets/{reference_cli.md.B2dBL6L8.lean.js → reference_cli.md.DLWDz9ij.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.js → reference_connections.md.CmyrlXfY.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Cb3U_c8n.lean.js → reference_connections.md.CmyrlXfY.lean.js} +1 -1
- package/dist/docs/assets/reference_evals.md.DNJzM_yf.js +57 -0
- package/dist/docs/assets/reference_evals.md.DNJzM_yf.lean.js +1 -0
- package/dist/docs/assets/reference_extensions.md.Ceq-qT8d.js +58 -0
- package/dist/docs/assets/reference_extensions.md.Ceq-qT8d.lean.js +1 -0
- package/dist/docs/assets/{reference_hooks.md.CZuynAxj.js → reference_hooks.md.B7uzNENk.js} +2 -2
- package/dist/docs/assets/{reference_hooks.md.CZuynAxj.lean.js → reference_hooks.md.B7uzNENk.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.js → reference_http-api.md.CduHavZ2.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.DTKcYE6L.lean.js → reference_http-api.md.CduHavZ2.lean.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.D7gkckK-.js → reference_instructions.md.CU1My5My.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.D7gkckK-.lean.js → reference_instructions.md.CU1My5My.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.D2YExv5K.js → reference_playground.md.Ch2d0Iqi.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.D2YExv5K.lean.js → reference_playground.md.Ch2d0Iqi.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.js → reference_project-layout.md.BGhgpy9V.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DPxbUJyt.lean.js → reference_project-layout.md.BGhgpy9V.lean.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.js → reference_prompt.md.Ccp0R53H.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.BQ5uAv1F.lean.js → reference_prompt.md.Ccp0R53H.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BasfZWO-.js → reference_schedules.md.B2Nm6FaD.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.BasfZWO-.lean.js → reference_schedules.md.B2Nm6FaD.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.js → reference_sessions.md.1_6Vyv7x.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.YKvIsWAx.lean.js → reference_sessions.md.1_6Vyv7x.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.rNgpsGd0.js → reference_skills.md.DjQkRefx.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.rNgpsGd0.lean.js → reference_skills.md.DjQkRefx.lean.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.e5qitjJt.js → reference_subagents.md.BHsSMMyO.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.e5qitjJt.lean.js → reference_subagents.md.BHsSMMyO.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.js → reference_tools.md.BYzUTeVA.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.BdCO2aHZ.lean.js → reference_tools.md.BYzUTeVA.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.js → templates_agentic-owners.md.9M575F5C.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.Da_AGDlH.lean.js → templates_agentic-owners.md.9M575F5C.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.js → templates_pr-autofixer.md.ws0DDXDy.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.DqxocIGh.lean.js → templates_pr-autofixer.md.ws0DDXDy.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.js → templates_security-reviewer.md.KEFYXzfK.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.Bhnvd8VE.lean.js → templates_security-reviewer.md.KEFYXzfK.lean.js} +1 -1
- package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.js +3 -0
- package/dist/docs/assets/templates_thermo-quality-review.md.VNJ_mohX.lean.js +1 -0
- package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.js +3 -0
- package/dist/docs/assets/templates_thermo-review.md.Hi3zWOkP.lean.js +1 -0
- package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.js → templates_triage.md.CVGe_FG6.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.BdBWO9Ic.lean.js → templates_triage.md.CVGe_FG6.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.mnfFG2Em.js +1 -0
- package/dist/docs/assets/troubleshooting.md.mnfFG2Em.lean.js +1 -0
- package/dist/docs/building-with-agents.html +44 -48
- package/dist/docs/building-with-agents.md +94 -82
- package/dist/docs/deployment.html +59 -78
- package/dist/docs/deployment.md +117 -363
- package/dist/docs/evals.html +85 -224
- package/dist/docs/evals.md +146 -673
- package/dist/docs/guides/agent-to-agent.html +58 -42
- package/dist/docs/guides/agent-to-agent.md +112 -35
- package/dist/docs/guides/bitbucket.html +179 -44
- package/dist/docs/guides/bitbucket.md +249 -48
- package/dist/docs/guides/cloud-agents.html +46 -40
- package/dist/docs/guides/cloud-agents.md +119 -66
- package/dist/docs/guides/convert-automation.html +80 -49
- package/dist/docs/guides/convert-automation.md +156 -147
- package/dist/docs/guides/github.html +184 -92
- package/dist/docs/guides/github.md +260 -245
- package/dist/docs/guides/gitlab.html +184 -45
- package/dist/docs/guides/gitlab.md +249 -50
- package/dist/docs/guides/grokbot-agents.html +48 -41
- package/dist/docs/guides/grokbot-agents.md +99 -53
- package/dist/docs/guides/improve.html +48 -40
- package/dist/docs/guides/improve.md +111 -58
- package/dist/docs/guides/mcp-oauth.html +74 -52
- package/dist/docs/guides/mcp-oauth.md +111 -121
- package/dist/docs/guides/opentelemetry.html +63 -54
- package/dist/docs/guides/opentelemetry.md +96 -165
- package/dist/docs/guides/slack.html +83 -59
- package/dist/docs/guides/slack.md +157 -227
- package/dist/docs/guides/webhooks.html +97 -230
- package/dist/docs/guides/webhooks.md +154 -385
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +44 -38
- package/dist/docs/hillclimbing.md +101 -55
- package/dist/docs/index.html +38 -38
- package/dist/docs/index.md +2 -0
- package/dist/docs/llms-full.txt +3082 -3104
- package/dist/docs/llms.txt +21 -18
- package/dist/docs/quickstart.html +37 -37
- package/dist/docs/reference/agent-config.html +37 -37
- package/dist/docs/reference/artifacts.html +38 -38
- package/dist/docs/reference/channels.html +37 -37
- package/dist/docs/reference/cli.html +39 -37
- package/dist/docs/reference/cli.md +2 -0
- package/dist/docs/reference/connections.html +37 -37
- package/dist/docs/reference/evals.html +116 -0
- package/dist/docs/reference/evals.md +293 -0
- package/dist/docs/reference/extensions.html +80 -84
- package/dist/docs/reference/extensions.md +127 -199
- package/dist/docs/reference/hooks.html +39 -39
- package/dist/docs/reference/hooks.md +34 -34
- package/dist/docs/reference/http-api.html +37 -37
- package/dist/docs/reference/instructions.html +37 -37
- package/dist/docs/reference/playground.html +37 -37
- package/dist/docs/reference/project-layout.html +37 -37
- package/dist/docs/reference/prompt.html +37 -37
- package/dist/docs/reference/schedules.html +37 -37
- package/dist/docs/reference/sessions.html +37 -37
- package/dist/docs/reference/skills.html +37 -37
- package/dist/docs/reference/subagents.html +37 -37
- package/dist/docs/reference/tools.html +37 -37
- package/dist/docs/templates/agentic-owners.html +38 -38
- package/dist/docs/templates/pr-autofixer.html +37 -37
- package/dist/docs/templates/security-reviewer.html +38 -38
- package/dist/docs/templates/thermo-quality-review.html +62 -0
- package/dist/docs/templates/thermo-quality-review.md +75 -0
- package/dist/docs/templates/thermo-review.html +62 -0
- package/dist/docs/templates/thermo-review.md +74 -0
- package/dist/docs/templates/triage.html +37 -37
- package/dist/docs/troubleshooting.html +38 -38
- package/dist/docs/troubleshooting.md +97 -66
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/dist/extensions/improve/extension.d.ts +3 -1
- package/dist/extensions/improve/extension.d.ts.map +1 -1
- package/dist/extensions/improve/extension.js +4 -2
- package/dist/extensions/improve/skills/yourself.js +1 -1
- package/dist/filesystem.d.ts +46 -2
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +149 -102
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/cli-ax.d.ts +6 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +72 -14
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +1 -0
- package/dist/internal/cursor-agent-template.d.ts +1 -1
- package/dist/internal/cursor-agent-template.d.ts.map +1 -1
- package/dist/internal/cursor-agent-template.js +2 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +2 -2
- package/dist/internal/filesystem/walk.d.ts +7 -4
- package/dist/internal/filesystem/walk.d.ts.map +1 -1
- package/dist/internal/filesystem/walk.js +34 -11
- package/dist/internal/hosted-admission-adapter.d.ts +3 -0
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +17 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +50 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +8 -0
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +4 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +94 -39
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +11 -5
- package/dist/internal/skill-catalog.d.ts +28 -0
- package/dist/internal/skill-catalog.d.ts.map +1 -0
- package/dist/internal/skill-catalog.js +44 -0
- package/dist/playground/assets/index-B1c1LeIf.js +67 -0
- package/dist/playground/assets/index-CK2LX3iD.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +2 -0
- package/docs/building-with-agents.md +96 -84
- package/docs/deployment.md +118 -364
- package/docs/evals.md +147 -674
- package/docs/guides/agent-to-agent.md +113 -36
- package/docs/guides/bitbucket.md +250 -49
- package/docs/guides/cloud-agents.md +119 -67
- package/docs/guides/convert-automation.md +157 -148
- package/docs/guides/github.md +261 -246
- package/docs/guides/gitlab.md +250 -51
- package/docs/guides/grokbot-agents.md +100 -55
- package/docs/guides/improve.md +112 -59
- package/docs/guides/mcp-oauth.md +112 -122
- package/docs/guides/opentelemetry.md +97 -166
- package/docs/guides/slack.md +158 -228
- package/docs/guides/webhooks.md +155 -386
- package/docs/hillclimbing.md +102 -56
- package/docs/reference/cli.md +2 -0
- package/docs/reference/evals.md +298 -0
- package/docs/reference/extensions.md +128 -200
- package/docs/reference/hooks.md +34 -34
- package/docs/templates/thermo-quality-review.md +80 -0
- package/docs/templates/thermo-review.md +79 -0
- package/docs/troubleshooting.md +98 -67
- package/package.json +1 -1
- package/skills/github/SKILL.md +21 -13
- package/src/bin/agent-serve.ts +22 -0
- package/src/channels/github/github-channel.ts +29 -19
- package/src/channels/slack/agentic-delivery.ts +2 -0
- package/src/channels/slack/dispatch.ts +126 -4
- package/src/channels/slack/placeholder.ts +51 -0
- package/src/channels/slack/slack-channel.ts +9 -2
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/src/extensions/improve/extension.ts +4 -2
- package/src/extensions/improve/skills/yourself.ts +1 -1
- package/src/filesystem.ts +168 -65
- package/src/index.ts +3 -0
- package/src/internal/cli-ax.ts +88 -15
- package/src/internal/continuation-identity.ts +1 -0
- package/src/internal/cursor-agent-template.ts +2 -0
- package/src/internal/filesystem/tools.ts +2 -0
- package/src/internal/filesystem/walk.ts +60 -15
- package/src/internal/hosted-admission-adapter.ts +3 -0
- package/src/internal/hosted-delivery-protocol.ts +78 -1
- package/src/internal/hosted-delivery.ts +8 -0
- package/src/internal/init-project.ts +4 -0
- package/src/internal/server.ts +104 -41
- package/src/internal/session-engine.ts +16 -4
- package/src/internal/skill-catalog.ts +69 -0
- package/src/types.ts +9 -0
- package/templates/thermo-quality-review/README.md +35 -0
- package/templates/thermo-quality-review/agent/agent.ts +8 -0
- package/templates/thermo-quality-review/agent/channels/github.ts +42 -0
- package/templates/thermo-quality-review/agent/instructions.md +43 -0
- package/templates/thermo-quality-review/agent/tools/post_findings.ts +70 -0
- package/templates/thermo-quality-review/evals/evals.config.ts +5 -0
- package/templates/thermo-quality-review/evals/review.eval.ts +62 -0
- package/templates/thermo-quality-review/package.json +18 -0
- package/templates/thermo-quality-review/tsconfig.json +12 -0
- package/templates/thermo-review/README.md +35 -0
- package/templates/thermo-review/agent/agent.ts +8 -0
- package/templates/thermo-review/agent/channels/github.ts +42 -0
- package/templates/thermo-review/agent/instructions.md +40 -0
- package/templates/thermo-review/agent/tools/post_findings.ts +70 -0
- package/templates/thermo-review/evals/evals.config.ts +5 -0
- package/templates/thermo-review/evals/review.eval.ts +53 -0
- package/templates/thermo-review/package.json +18 -0
- package/templates/thermo-review/tsconfig.json +12 -0
- package/dist/docs/assets/building-with-agents.md.CEGVXkmO.js +0 -13
- package/dist/docs/assets/building-with-agents.md.CEGVXkmO.lean.js +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DtXk1hy-.js +0 -1
- package/dist/docs/assets/chunks/channel.Bkv1N-gK.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CZDco1o8.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CZDco1o8.js +0 -1
- package/dist/docs/assets/chunks/clone.YSt_40_s.js +0 -1
- package/dist/docs/assets/chunks/framework.dypDpWZ3.js +0 -19
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C4CLm481.js +0 -1
- package/dist/docs/assets/chunks/wardley-RL74JXVD.g5efOWmT.js +0 -162
- package/dist/docs/assets/deployment.md.Dm4Qo3hp.js +0 -51
- package/dist/docs/assets/deployment.md.Dm4Qo3hp.lean.js +0 -1
- package/dist/docs/assets/evals.md.BLDRt5LH.js +0 -211
- package/dist/docs/assets/evals.md.BLDRt5LH.lean.js +0 -1
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.js +0 -14
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.lean.js +0 -1
- package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.js +0 -10
- package/dist/docs/assets/guides_bitbucket.md.CTpCl__f.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.js +0 -9
- package/dist/docs/assets/guides_cloud-agents.md.lSE_l7lH.lean.js +0 -1
- package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.js +0 -12
- package/dist/docs/assets/guides_convert-automation.md.Ck6Cr68A.lean.js +0 -1
- package/dist/docs/assets/guides_github.md.D6ER29dG.js +0 -64
- package/dist/docs/assets/guides_github.md.D6ER29dG.lean.js +0 -1
- package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.js +0 -14
- package/dist/docs/assets/guides_gitlab.md.P-TjBnS5.lean.js +0 -1
- package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.js +0 -9
- package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.lean.js +0 -1
- package/dist/docs/assets/guides_improve.md.BKaDuKKK.js +0 -14
- package/dist/docs/assets/guides_improve.md.BKaDuKKK.lean.js +0 -1
- package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.js +0 -28
- package/dist/docs/assets/guides_mcp-oauth.md.DMNMpXtO.lean.js +0 -1
- package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.js +0 -26
- package/dist/docs/assets/guides_opentelemetry.md._CRfDyzH.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.DdT8rmsj.js +0 -46
- package/dist/docs/assets/guides_slack.md.DdT8rmsj.lean.js +0 -1
- package/dist/docs/assets/guides_webhooks.md.aQW10HRe.js +0 -225
- package/dist/docs/assets/guides_webhooks.md.aQW10HRe.lean.js +0 -1
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.js +0 -1
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.lean.js +0 -1
- package/dist/docs/assets/reference_extensions.md.wlFD3cUR.js +0 -62
- package/dist/docs/assets/reference_extensions.md.wlFD3cUR.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.js +0 -1
- package/dist/docs/assets/troubleshooting.md.BcgNoYtJ.lean.js +0 -1
- package/dist/playground/assets/index-BLlKgZtI.css +0 -1
- package/dist/playground/assets/index-CDS5p9sR.js +0 -67
|
@@ -1,207 +1,162 @@
|
|
|
1
1
|
# Extensions
|
|
2
2
|
|
|
3
|
-
An extension packages
|
|
4
|
-
`agent
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
[Mount a Cursor plugin](#mount-a-cursor-plugin).
|
|
3
|
+
An extension packages capabilities that would otherwise live under
|
|
4
|
+
`agent/`: tools, skills, instructions, connections, hooks, channels,
|
|
5
|
+
schedules, subagents, artifacts, and workspace seeds. One mount file
|
|
6
|
+
adds them under a namespace without copying their source into your
|
|
7
|
+
project.
|
|
9
8
|
|
|
10
|
-
Extensions
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
Extensions and Cursor plugins execute as trusted host code. A namespace
|
|
10
|
+
prevents name collisions; it does not sandbox the package or limit its
|
|
11
|
+
side effects. Review the package before mounting it.
|
|
13
12
|
|
|
14
13
|
## Mount an extension
|
|
15
14
|
|
|
16
|
-
Install the package
|
|
15
|
+
Install the package and add one file under `agent/extensions/`. The
|
|
16
|
+
filename becomes the namespace, so this mount contributes names such as
|
|
17
|
+
`ci__failed_jobs` and `ci__triage`.
|
|
17
18
|
|
|
18
19
|
```ts
|
|
19
20
|
// agent/extensions/ci.ts
|
|
20
21
|
import ci from "@acme/ci-triage";
|
|
21
22
|
|
|
22
|
-
export default ci({
|
|
23
|
+
export default ci({
|
|
24
|
+
org: "acme",
|
|
25
|
+
token: process.env.BUILDKITE_TOKEN,
|
|
26
|
+
});
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
with what it contributed, and `GET /v1/info` returns the same under
|
|
29
|
-
`extensions`.
|
|
29
|
+
The extension validates its configuration while the project loads.
|
|
30
|
+
Missing or mistyped settings fail `agent-sdk validate` before a turn
|
|
31
|
+
can call the contributed code.
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
`agent-sdk validate` instead of a tool call later.
|
|
33
|
+
Extension instructions are appended to the agent's prompt. The root
|
|
34
|
+
agent still needs its own `agent/instructions.md`.
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
`agent/tools/ci__failed_jobs.ts` fails discovery, so nothing outside a
|
|
37
|
-
mount can pose as one of its tools.
|
|
36
|
+
## See what the extension added
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
Run discovery after mounting or upgrading an extension:
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
```bash
|
|
41
|
+
agent-sdk validate --dir .
|
|
42
|
+
agent-sdk info --dir . --json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`info` lists each mount and its namespaced tools, skills, connections,
|
|
46
|
+
hooks, channels, schedules, subagents, and artifact kinds. The same
|
|
47
|
+
data appears under `extensions` in `GET /v1/info`.
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
| `mcp-connections/<name>.ts` | connection `<ns>__<name>` |
|
|
50
|
-
| `host-connections/<name>.ts` | host connection `<ns>__<name>` |
|
|
51
|
-
| `hooks/<name>.ts` | hook `<ns>__<name>` |
|
|
52
|
-
| `channels/<name>.ts` | channel `<ns>__<name>` |
|
|
53
|
-
| `schedules/<name>` | schedule `<ns>__<name>` |
|
|
54
|
-
| `subagents/<id>/` | subagent `<ns>__<id>` |
|
|
55
|
-
| `instructions.md` / `.ts` / dir | appended to the agent's system prompt |
|
|
56
|
-
| `sandbox/workspace/**` | seeded into each local session workspace |
|
|
57
|
-
| `artifacts.ts` | artifact kinds `<ns>__<kind>` |
|
|
58
|
-
|
|
59
|
-
The root agent still needs its own `instructions.md`. Extension
|
|
60
|
-
instructions are extra fragments, not a substitute.
|
|
61
|
-
|
|
62
|
-
The built-in HTTP session channel stays on the agent. An extension
|
|
63
|
-
authors `defineChannel` only; a file named `http.ts` becomes `<ns>__http`.
|
|
64
|
-
|
|
65
|
-
These stay on the agent that mounts the extension. Each is a singleton
|
|
66
|
-
or is outside discovery:
|
|
67
|
-
|
|
68
|
-
| Path | Why it stays on the agent |
|
|
69
|
-
| --- | --- |
|
|
70
|
-
| `agent.ts` | One `defineAgent` runtime per agent |
|
|
71
|
-
| `storage.ts` | One `host.kv` / `host.files` backend |
|
|
72
|
-
| `otel.ts` | One OTLP exporter |
|
|
73
|
-
| `playground/` | Custom chips are a Vite glob of the agent tree, not a discovery walk |
|
|
74
|
-
| `extensions/` | Nested mounts are not loaded |
|
|
75
|
-
| `sandbox.ts` | Custom sandbox backends stay on the agent |
|
|
76
|
-
|
|
77
|
-
`agent-sdk validate` warns when a tree carries those paths.
|
|
49
|
+
Names inside the extension stay short. A tool authored as
|
|
50
|
+
`tools/failed_jobs.ts` appears to the mounting agent as
|
|
51
|
+
`<namespace>__failed_jobs`. The `__` separator is reserved, so root
|
|
52
|
+
contributions cannot impersonate a mounted one.
|
|
78
53
|
|
|
79
54
|
## Adjust a mounted extension
|
|
80
55
|
|
|
81
|
-
|
|
82
|
-
|
|
56
|
+
Mount as a directory when you need to replace or remove one
|
|
57
|
+
contribution. Keep the package mount in `extension.ts`, then overlay the
|
|
58
|
+
extension's short name beneath it.
|
|
83
59
|
|
|
84
60
|
```text
|
|
85
61
|
agent/extensions/ci/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
62
|
+
extension.ts
|
|
63
|
+
tools/
|
|
64
|
+
job_log.ts
|
|
65
|
+
retry_job.ts
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
// agent/extensions/ci/tools/job_log.ts
|
|
70
|
+
import { defineTool } from "@cursor/july/tools";
|
|
71
|
+
import {
|
|
72
|
+
jobLogInput,
|
|
73
|
+
readRedactedLog,
|
|
74
|
+
} from "../../../lib/ci.js";
|
|
75
|
+
|
|
76
|
+
export default defineTool({
|
|
77
|
+
description: "Read a redacted CI log.",
|
|
78
|
+
inputSchema: jobLogInput,
|
|
79
|
+
execute: readRedactedLog,
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
// agent/extensions/ci/tools/retry_job.ts
|
|
85
|
+
import { disableTool } from "@cursor/july/extensions";
|
|
86
|
+
|
|
87
|
+
export default disableTool();
|
|
94
88
|
```
|
|
95
89
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
it alive.
|
|
102
|
-
|
|
103
|
-
| Slot | Helper |
|
|
104
|
-
| --- | --- |
|
|
105
|
-
| `tools/<name>.ts` | `disableTool()` |
|
|
106
|
-
| `mcp-connections/<name>.ts` / `host-connections/<name>.ts` | `disableConnection()` |
|
|
107
|
-
| `skills/<name>.ts` | `disableSkill()` |
|
|
108
|
-
| `hooks/<name>.ts` | `disableHook()` |
|
|
109
|
-
| `channels/<name>.ts` | `disableChannel()` |
|
|
110
|
-
| `schedules/<name>.ts` | `disableSchedule()` |
|
|
111
|
-
| `subagents/<id>.ts` | `disableSubagent()` |
|
|
112
|
-
| `instructions.ts` | `disableInstructions()` |
|
|
113
|
-
| `artifacts.ts` | `disableArtifacts()` |
|
|
114
|
-
|
|
115
|
-
`disable()` is the same brand as the slot helpers above and works in
|
|
116
|
-
any of those files.
|
|
117
|
-
|
|
118
|
-
A Cursor plugin mount overlays its MCP servers the same way; see below.
|
|
90
|
+
The first file replaces `ci__job_log`; the second removes
|
|
91
|
+
`ci__retry_job`. Use the matching `disable*` helper for another slot, or
|
|
92
|
+
generic `disable()` when the file location already identifies it.
|
|
93
|
+
Validation fails when an overlay names a contribution the package does
|
|
94
|
+
not provide.
|
|
119
95
|
|
|
120
96
|
## Mount a Cursor plugin
|
|
121
97
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
and mount it with `cursorPlugin`. The filename is the namespace, as with
|
|
126
|
-
any extension.
|
|
98
|
+
`cursorPlugin()` adapts a vendored Cursor or Claude plugin into the same
|
|
99
|
+
namespace model. Skills, commands, agents, and MCP servers become Agent
|
|
100
|
+
SDK skills, subagents, and connections.
|
|
127
101
|
|
|
128
102
|
```ts
|
|
129
103
|
// agent/extensions/notion.ts
|
|
130
104
|
import { cursorPlugin } from "@cursor/july/extensions";
|
|
131
105
|
|
|
132
106
|
export default cursorPlugin({
|
|
133
|
-
path: "plugins/notion-workspace",
|
|
134
|
-
variables: {
|
|
107
|
+
path: "plugins/notion-workspace",
|
|
108
|
+
variables: {
|
|
109
|
+
NOTION_TOKEN: process.env.NOTION_TOKEN,
|
|
110
|
+
},
|
|
135
111
|
});
|
|
136
112
|
```
|
|
137
113
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
| --- | --- |
|
|
142
|
-
| `skills/<name>/SKILL.md` | skill `notion__<name>` |
|
|
143
|
-
| `commands/<name>.md` | skill `notion__<name>`, since a command is a procedure the model runs on request |
|
|
144
|
-
| `agents/<name>.md` | subagent `notion__<name>` |
|
|
145
|
-
| MCP servers in `mcp.json` or the manifest | connection `notion__<server>` |
|
|
146
|
-
|
|
147
|
-
`variables` fills the `${NAME}` placeholders the plugin's MCP config
|
|
148
|
-
declares; names you leave out come from the environment by exact name. A
|
|
149
|
-
placeholder nothing fills fails `agent-sdk validate`, so a server never
|
|
150
|
-
attaches half configured. A server that declares an OAuth client
|
|
151
|
-
authorizes through [host MCP OAuth](/docs/guides/mcp-oauth.md) as
|
|
152
|
-
`agent-sdk mcp oauth notion__<server>`; its secret names collapse the
|
|
153
|
-
namespace separator, so `notion__notion` stores `MCP_OAUTH_NOTION_NOTION_*`.
|
|
154
|
-
A server that lists `enabledTools` mounts as an advertised connection with
|
|
155
|
-
that allowlist and requires the local runtime; `agent-sdk validate` fails
|
|
156
|
-
otherwise.
|
|
157
|
-
|
|
158
|
-
Mounting a plugin trusts it like authored code: its servers run the
|
|
159
|
-
commands and read the environment variables its config names. Review a
|
|
160
|
-
plugin before you vendor it.
|
|
161
|
-
|
|
162
|
-
Plugin rules and hooks are not mounted; `agent-sdk validate` warns when a
|
|
163
|
-
plugin carries them. To drop or reconfigure one of the plugin's servers,
|
|
164
|
-
mount as a directory and overlay `mcp-connections/<server>.ts`. An
|
|
165
|
-
overlaid server is never read from the plugin, so it needs no variables.
|
|
114
|
+
`path` is relative to the project root. `variables` fills placeholders
|
|
115
|
+
declared by the plugin's MCP configuration; unresolved placeholders
|
|
116
|
+
fail validation instead of mounting a partial server.
|
|
166
117
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
118
|
+
Plugin rules and hooks are not mounted. Overlay a generated
|
|
119
|
+
`mcp-connections/<server>.ts` file to replace or disable one plugin
|
|
120
|
+
server. OAuth-backed plugin servers use
|
|
121
|
+
[Host MCP OAuth](/docs/guides/mcp-oauth.md); transport and tool-filter
|
|
122
|
+
details live in [MCP connections](/docs/reference/connections.md).
|
|
123
|
+
|
|
124
|
+
## What an extension can contain
|
|
174
125
|
|
|
175
|
-
|
|
176
|
-
|
|
126
|
+
Share capabilities that can safely join another agent under a
|
|
127
|
+
namespace:
|
|
128
|
+
|
|
129
|
+
- Instructions, tools, skills, MCP and host connections
|
|
130
|
+
- Hooks, channels, schedules, and subagents
|
|
131
|
+
- Artifact kinds and local workspace seed files
|
|
132
|
+
|
|
133
|
+
Agent-wide configuration does not compose through a mount.
|
|
134
|
+
`agent.ts`, storage, OpenTelemetry, playground code, custom sandbox
|
|
135
|
+
backends, and nested extensions are ignored in an extension package;
|
|
136
|
+
`agent-sdk validate` reports unsupported paths.
|
|
177
137
|
|
|
178
138
|
## Build an extension
|
|
179
139
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
140
|
+
Lay out the package like the shareable part of `agent/`. The root
|
|
141
|
+
`extension.ts` supplies a description and validates any settings the
|
|
142
|
+
consumer must provide.
|
|
183
143
|
|
|
184
144
|
```text
|
|
185
145
|
@acme/ci-triage/
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
└── lib/
|
|
199
|
-
└── buildkite.ts # shared code, never discovered
|
|
146
|
+
package.json
|
|
147
|
+
extension.ts
|
|
148
|
+
instructions.md
|
|
149
|
+
tools/
|
|
150
|
+
failed_jobs.ts
|
|
151
|
+
job_log.ts
|
|
152
|
+
skills/
|
|
153
|
+
triage.md
|
|
154
|
+
hooks/
|
|
155
|
+
audit.ts
|
|
156
|
+
lib/
|
|
157
|
+
buildkite.ts
|
|
200
158
|
```
|
|
201
159
|
|
|
202
|
-
Declare the extension with its root and, when consumers must configure
|
|
203
|
-
it, a schema for their settings.
|
|
204
|
-
|
|
205
160
|
```ts
|
|
206
161
|
// extension.ts
|
|
207
162
|
import { defineExtension } from "@cursor/july/extensions";
|
|
@@ -209,7 +164,7 @@ import { z } from "zod";
|
|
|
209
164
|
|
|
210
165
|
export default defineExtension({
|
|
211
166
|
root: import.meta.dirname,
|
|
212
|
-
description: "Investigate failing
|
|
167
|
+
description: "Investigate failing Buildkite jobs.",
|
|
213
168
|
config: z.object({
|
|
214
169
|
org: z.string(),
|
|
215
170
|
token: z.string(),
|
|
@@ -218,48 +173,21 @@ export default defineExtension({
|
|
|
218
173
|
});
|
|
219
174
|
```
|
|
220
175
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
176
|
+
Modules inside the package import this definition and read
|
|
177
|
+
`extension.config`, which is already validated and has defaults
|
|
178
|
+
applied. Publish the built entry point with its slot directories and
|
|
179
|
+
prose assets beside it.
|
|
224
180
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
import { z } from "zod";
|
|
229
|
-
import extension from "../extension.js";
|
|
230
|
-
import { jobLogTail } from "../lib/buildkite.js";
|
|
181
|
+
The [Project layout](/docs/reference/project-layout.md) owns each contribution's
|
|
182
|
+
authoring contract. Keep extension instructions and tool descriptions
|
|
183
|
+
namespace-neutral because the consumer chooses the final prefix.
|
|
231
184
|
|
|
232
|
-
|
|
233
|
-
description: "Read the tail of a CI job's log.",
|
|
234
|
-
effect: "read",
|
|
235
|
-
inputSchema: z.object({ pipeline: z.string(), build: z.number(), job: z.string() }),
|
|
236
|
-
async execute({ pipeline, build, job }) {
|
|
237
|
-
const { org, token, logTailLines } = extension.config;
|
|
238
|
-
return jobLogTail({ org, token, pipeline, build, job, lines: logTailLines });
|
|
239
|
-
},
|
|
240
|
-
});
|
|
241
|
-
```
|
|
185
|
+
## Related
|
|
242
186
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
as `.ts`.
|
|
251
|
-
|
|
252
|
-
## What's next
|
|
253
|
-
|
|
254
|
-
Continue with these pages:
|
|
255
|
-
|
|
256
|
-
- [Cursor cloud agents](/docs/guides/cloud-agents.md): the extension that
|
|
257
|
-
lets an agent launch and steer cloud agents
|
|
258
|
-
- [Cursor Grok Bot agents](/docs/guides/grokbot-agents.md): the extension
|
|
259
|
-
that lets an agent talk to Grok Bot agents
|
|
260
|
-
- [Self-improvement](/docs/guides/improve.md): the extension that lets an
|
|
261
|
-
agent change its own source through a cloud agent and a pull request
|
|
262
|
-
- [Tools](/docs/reference/tools.md): the tool contract extensions contribute to
|
|
263
|
-
- [Skills](/docs/reference/skills.md): the skill forms an extension can carry
|
|
264
|
-
- [Project layout](/docs/reference/project-layout.md): where `agent/extensions/` sits
|
|
265
|
-
in the tree
|
|
187
|
+
- [Cloud agents](/docs/guides/cloud-agents.md): delegate repository work
|
|
188
|
+
through an extension
|
|
189
|
+
- [Grok Bot agents](/docs/guides/grokbot-agents.md): consult named bots
|
|
190
|
+
- [Self-improvement](/docs/guides/improve.md): propose source changes
|
|
191
|
+
through pull requests
|
|
192
|
+
- [Project layout](/docs/reference/project-layout.md): contribution slots
|
|
193
|
+
- [Tools](/docs/reference/tools.md) and [Skills](/docs/reference/skills.md): capability contracts
|