@cursor/july 0.1.109 → 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/AGENTS.md +1 -1
- package/README.md +0 -15
- package/dist/bin/agent-serve.js +99 -67
- package/dist/channels/bitbucket/api.js +8 -8
- package/dist/channels/bitbucket/binding.js +4 -4
- package/dist/channels/bitbucket/bitbucket-channel.js +1 -1
- package/dist/channels/bitbucket/bitbucket-webhook.js +1 -1
- package/dist/channels/bitbucket/checks.d.ts.map +1 -1
- package/dist/channels/bitbucket/checks.js +1 -1
- package/dist/channels/bitbucket/cursor-account.js +1 -1
- package/dist/channels/bitbucket/events.js +1 -1
- package/dist/channels/change-monitors/change-monitors-channel.js +1 -1
- package/dist/channels/checks.d.ts.map +1 -1
- package/dist/channels/checks.js +2 -2
- package/dist/channels/deployments/deployments-channel.js +1 -1
- package/dist/channels/github/cursor-account.js +3 -3
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +5 -3
- package/dist/channels/github/events.js +1 -1
- package/dist/channels/github/forward.js +8 -8
- 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 +46 -32
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/github/progress.js +7 -2
- package/dist/channels/github/state.d.ts +6 -0
- package/dist/channels/github/state.d.ts.map +1 -1
- package/dist/channels/github/types.d.ts +6 -0
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/binding.js +4 -4
- package/dist/channels/gitlab/checks.d.ts.map +1 -1
- package/dist/channels/gitlab/checks.js +1 -1
- package/dist/channels/gitlab/cursor-account.js +1 -1
- package/dist/channels/gitlab/events.js +1 -1
- package/dist/channels/gitlab/gitlab-channel.js +1 -1
- package/dist/channels/gitlab/gitlab-webhook.js +1 -1
- package/dist/channels/gitlab/replay.js +2 -2
- package/dist/channels/origin/binding.d.ts +2 -0
- package/dist/channels/origin/binding.d.ts.map +1 -1
- package/dist/channels/origin/binding.js +3 -3
- package/dist/channels/origin/checks.d.ts +19 -7
- package/dist/channels/origin/checks.d.ts.map +1 -1
- package/dist/channels/origin/checks.js +13 -9
- package/dist/channels/origin/cursor-account.js +1 -1
- package/dist/channels/origin/defaults.d.ts.map +1 -1
- package/dist/channels/origin/defaults.js +3 -1
- package/dist/channels/origin/events.js +1 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +2 -1
- package/dist/channels/origin/origin-webhook.js +2 -2
- package/dist/channels/slack/agentic-delivery.d.ts +23 -0
- package/dist/channels/slack/agentic-delivery.d.ts.map +1 -0
- package/dist/channels/slack/agentic-delivery.js +560 -0
- package/dist/channels/slack/agentic-posted.d.ts +30 -0
- package/dist/channels/slack/agentic-posted.d.ts.map +1 -0
- package/dist/channels/slack/agentic-posted.js +102 -0
- package/dist/channels/slack/agentic-signals.d.ts +48 -0
- package/dist/channels/slack/agentic-signals.d.ts.map +1 -0
- package/dist/channels/slack/agentic-signals.js +204 -0
- package/dist/channels/slack/api.d.ts +20 -1
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +43 -11
- package/dist/channels/slack/approvals.js +1 -1
- package/dist/channels/slack/auth.d.ts.map +1 -1
- package/dist/channels/slack/auth.js +3 -1
- package/dist/channels/slack/blocks.js +3 -3
- package/dist/channels/slack/bot-mentions.d.ts.map +1 -1
- package/dist/channels/slack/bot-mentions.js +5 -5
- package/dist/channels/slack/channel-watch.js +1 -1
- package/dist/channels/slack/cli-project.js +3 -3
- package/dist/channels/slack/defaults.d.ts +3 -0
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +90 -29
- package/dist/channels/slack/dispatch.d.ts +44 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +323 -107
- package/dist/channels/slack/doctor.js +1 -1
- package/dist/channels/slack/eval-directive.js +1 -1
- package/dist/channels/slack/external-policy.d.ts +2 -1
- package/dist/channels/slack/external-policy.d.ts.map +1 -1
- package/dist/channels/slack/external-policy.js +13 -2
- package/dist/channels/slack/footer.d.ts +30 -0
- package/dist/channels/slack/footer.d.ts.map +1 -0
- package/dist/channels/slack/footer.js +88 -0
- package/dist/channels/slack/index.d.ts +2 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +2 -0
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +5 -3
- package/dist/channels/slack/live-delivery.d.ts +1 -1
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +20 -6
- package/dist/channels/slack/log.d.ts.map +1 -1
- package/dist/channels/slack/log.js +1 -1
- package/dist/channels/slack/manifest.js +1 -1
- package/dist/channels/slack/nudge-carrier.js +1 -1
- package/dist/channels/slack/nudge-store.js +2 -2
- package/dist/channels/slack/paint-start.d.ts +22 -0
- package/dist/channels/slack/paint-start.d.ts.map +1 -0
- package/dist/channels/slack/paint-start.js +91 -0
- package/dist/channels/slack/placeholder.d.ts +62 -0
- package/dist/channels/slack/placeholder.d.ts.map +1 -0
- package/dist/channels/slack/placeholder.js +268 -0
- package/dist/channels/slack/progress-delivery.d.ts.map +1 -1
- package/dist/channels/slack/progress-delivery.js +13 -4
- package/dist/channels/slack/reasoning-chip.d.ts +8 -0
- package/dist/channels/slack/reasoning-chip.d.ts.map +1 -0
- package/dist/channels/slack/reasoning-chip.js +30 -0
- package/dist/channels/slack/recording-sink.d.ts +29 -0
- package/dist/channels/slack/recording-sink.d.ts.map +1 -0
- package/dist/channels/slack/recording-sink.js +142 -0
- package/dist/channels/slack/reply-options.d.ts +8 -1
- package/dist/channels/slack/reply-options.d.ts.map +1 -1
- package/dist/channels/slack/reply-options.js +59 -14
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/slack-channel.d.ts +2 -2
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +58 -30
- package/dist/channels/slack/socket-mode.js +2 -2
- package/dist/channels/slack/thread-context.js +5 -5
- package/dist/channels/slack/tool-approval-events.d.ts +5 -0
- package/dist/channels/slack/tool-approval-events.d.ts.map +1 -1
- package/dist/channels/slack/tool-approval-events.js +50 -38
- package/dist/channels/slack/tool-cards.js +1 -1
- package/dist/channels/slack/tool-chip.d.ts +9 -0
- package/dist/channels/slack/tool-chip.d.ts.map +1 -0
- package/dist/channels/slack/tool-chip.js +25 -0
- package/dist/channels/slack/types.d.ts +49 -7
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/upload.d.ts +13 -0
- package/dist/channels/slack/upload.d.ts.map +1 -0
- package/dist/channels/slack/upload.js +135 -0
- package/dist/channels.d.ts +10 -14
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +9 -21
- package/dist/dashboard-session-url.d.ts +15 -0
- package/dist/dashboard-session-url.d.ts.map +1 -0
- package/dist/dashboard-session-url.js +25 -0
- package/dist/docs/404.html +3 -3
- package/dist/docs/architecture.svg +59 -0
- package/dist/docs/assets/app.DxTdhphC.js +309 -0
- 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.CVQERt56.js → VPLocalSearchBox.CR3KTF0X.js} +2 -2
- package/dist/docs/assets/chunks/arc.CVVqBOdS.js +1 -0
- package/dist/docs/assets/chunks/architectureDiagram-Q4EWVU46.CJHGP4ki.js +36 -0
- package/dist/docs/assets/chunks/baseUniq.r7UVVRBP.js +1 -0
- package/dist/docs/assets/chunks/blockDiagram-DXYQGD6D.DKmMaTre.js +132 -0
- package/dist/docs/assets/chunks/c4Diagram-AHTNJAMY.DDJsntUO.js +10 -0
- package/dist/docs/assets/chunks/channel.BjpoSbz_.js +1 -0
- package/dist/docs/assets/chunks/chunk-4BX2VUAB.BK2rKt6W.js +1 -0
- package/dist/docs/assets/chunks/chunk-4TB4RGXK.DRLV8RnF.js +206 -0
- package/dist/docs/assets/chunks/chunk-55IACEB6.DaKjxtb7.js +1 -0
- package/dist/docs/assets/chunks/chunk-EDXVE4YY.C5sPCIT1.js +1 -0
- package/dist/docs/assets/chunks/chunk-FMBD7UC4.CSGWyNTB.js +15 -0
- package/dist/docs/assets/chunks/chunk-OYMX7WX6.D5tK9XEr.js +231 -0
- package/dist/docs/assets/chunks/chunk-QZHKN3VN.BeZGd1UZ.js +1 -0
- package/dist/docs/assets/chunks/chunk-YZCP3GAM.U_tfWwQR.js +1 -0
- 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.DVeRXIb6.js +1 -0
- package/dist/docs/assets/chunks/cytoscape.esm.BQk4lpUV.js +331 -0
- package/dist/docs/assets/chunks/dagre-KV5264BT.BpKJAeRZ.js +4 -0
- package/dist/docs/assets/chunks/defaultLocale.C4B-KCzX.js +1 -0
- package/dist/docs/assets/chunks/diagram-5BDNPKRD.BQOtrd1Z.js +10 -0
- package/dist/docs/assets/chunks/diagram-G4DWMVQ6.CSDAhjPI.js +24 -0
- package/dist/docs/assets/chunks/diagram-MMDJMWI5.Dpztst2S.js +43 -0
- package/dist/docs/assets/chunks/diagram-TYMM5635.qJHRizHR.js +24 -0
- package/dist/docs/assets/chunks/erDiagram-SMLLAGMA.vbDotH3l.js +85 -0
- package/dist/docs/assets/chunks/flowDiagram-DWJPFMVM.CqS_ZQr4.js +162 -0
- package/dist/docs/assets/chunks/{framework.BCISBCiQ.js → framework.BNw1pucY.js} +6 -6
- package/dist/docs/assets/chunks/ganttDiagram-T4ZO3ILL.DTLdR4pN.js +292 -0
- package/dist/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.D04lnbnr.js +106 -0
- package/dist/docs/assets/chunks/graph.BlfqLJsM.js +1 -0
- package/dist/docs/assets/chunks/infoDiagram-42DDH7IO.tAooImWA.js +2 -0
- package/dist/docs/assets/chunks/init.Gi6I4Gst.js +1 -0
- package/dist/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.ClUsVqnJ.js +70 -0
- package/dist/docs/assets/chunks/journeyDiagram-VCZTEJTY.C3tUgyCg.js +139 -0
- package/dist/docs/assets/chunks/kanban-definition-6JOO6SKY.CtD9-QCe.js +89 -0
- package/dist/docs/assets/chunks/katex.DkKDou_j.js +257 -0
- package/dist/docs/assets/chunks/layout.D38U-LnT.js +1 -0
- package/dist/docs/assets/chunks/linear.BJmssyhN.js +1 -0
- package/dist/docs/assets/chunks/min.DNgXoouU.js +1 -0
- package/dist/docs/assets/chunks/mindmap-definition-QFDTVHPH.Dcp6cxeu.js +96 -0
- package/dist/docs/assets/chunks/ordinal.DBvzRdQf.js +1 -0
- package/dist/docs/assets/chunks/pieDiagram-DEJITSTG.CLDw6zIs.js +30 -0
- package/dist/docs/assets/chunks/quadrantDiagram-34T5L4WZ.CYaeeY4c.js +7 -0
- package/dist/docs/assets/chunks/requirementDiagram-MS252O5E.gMYuRpq2.js +84 -0
- package/dist/docs/assets/chunks/sankeyDiagram-XADWPNL6.CZqyHFbc.js +10 -0
- package/dist/docs/assets/chunks/sequenceDiagram-FGHM5R23.BTsCjUDN.js +157 -0
- package/dist/docs/assets/chunks/stateDiagram-FHFEXIEX.CftT9mLJ.js +1 -0
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.-43J68xB.js +1 -0
- package/dist/docs/assets/chunks/{theme.Dnsd3XOn.js → theme.B_7J9ZsV.js} +2 -2
- package/dist/docs/assets/chunks/timeline-definition-GMOUNBTQ.DbU3WUNw.js +120 -0
- package/dist/docs/assets/chunks/vennDiagram-DHZGUBPP.ixsq-q2u.js +34 -0
- package/dist/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js +1 -0
- package/dist/docs/assets/chunks/wardley-RL74JXVD.WRXz-Dux.js +162 -0
- package/dist/docs/assets/chunks/wardleyDiagram-NUSXRM2D.C0ewvgbp.js +20 -0
- package/dist/docs/assets/chunks/xychartDiagram-5P7HB3ND.nAEhF4bO.js +7 -0
- 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.C-t81M5J.js +17 -0
- package/dist/docs/assets/index.md.C-t81M5J.lean.js +1 -0
- package/dist/docs/assets/{quickstart.md.DdQOF7Y8.js → quickstart.md.DAvVhuuU.js} +30 -38
- package/dist/docs/assets/quickstart.md.DAvVhuuU.lean.js +1 -0
- package/dist/docs/assets/{reference_agent-config.md.CvoL6pof.js → reference_agent-config.md.DGPyw7ms.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CvoL6pof.lean.js → reference_agent-config.md.DGPyw7ms.lean.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Dior32Qw.js → reference_artifacts.md.Bu_4HmsD.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Dior32Qw.lean.js → reference_artifacts.md.Bu_4HmsD.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.CAo-iK4j.js → reference_channels.md.nFWbzAic.js} +2 -12
- package/dist/docs/assets/{reference_channels.md.CAo-iK4j.lean.js → reference_channels.md.nFWbzAic.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.Deg7849l.js → reference_cli.md.DLWDz9ij.js} +5 -3
- package/dist/docs/assets/{reference_cli.md.Deg7849l.lean.js → reference_cli.md.DLWDz9ij.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.BojkC6c5.js → reference_connections.md.CmyrlXfY.js} +4 -4
- package/dist/docs/assets/{reference_connections.md.BojkC6c5.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.BlM_bOg6.js → reference_hooks.md.B7uzNENk.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.BlM_bOg6.lean.js → reference_hooks.md.B7uzNENk.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.BwaCo-VO.js → reference_http-api.md.CduHavZ2.js} +3 -3
- package/dist/docs/assets/{reference_http-api.md.BwaCo-VO.lean.js → reference_http-api.md.CduHavZ2.lean.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.CR7XSsGk.js → reference_instructions.md.CU1My5My.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.CR7XSsGk.lean.js → reference_instructions.md.CU1My5My.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DLnoaczX.js → reference_playground.md.Ch2d0Iqi.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DLnoaczX.lean.js → reference_playground.md.Ch2d0Iqi.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.BEU8MtQV.js → reference_project-layout.md.BGhgpy9V.js} +3 -3
- package/dist/docs/assets/{reference_project-layout.md.BEU8MtQV.lean.js → reference_project-layout.md.BGhgpy9V.lean.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.DnaD5dNK.js → reference_prompt.md.Ccp0R53H.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.DnaD5dNK.lean.js → reference_prompt.md.Ccp0R53H.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DI_JrHgq.js → reference_schedules.md.B2Nm6FaD.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DI_JrHgq.lean.js → reference_schedules.md.B2Nm6FaD.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CyXV1MUw.js → reference_sessions.md.1_6Vyv7x.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CyXV1MUw.lean.js → reference_sessions.md.1_6Vyv7x.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.l2ezAcaN.js → reference_skills.md.DjQkRefx.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.l2ezAcaN.lean.js → reference_skills.md.DjQkRefx.lean.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.CfsIloPm.js → reference_subagents.md.BHsSMMyO.js} +2 -2
- package/dist/docs/assets/{reference_subagents.md.CfsIloPm.lean.js → reference_subagents.md.BHsSMMyO.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.aGrn99hP.js → reference_tools.md.BYzUTeVA.js} +4 -4
- package/dist/docs/assets/{reference_tools.md.aGrn99hP.lean.js → reference_tools.md.BYzUTeVA.lean.js} +1 -1
- package/dist/docs/assets/{style.DCD_zyg3.css → style.Cfo2vbik.css} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.BZSH4N9z.js → templates_agentic-owners.md.9M575F5C.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.BZSH4N9z.lean.js → templates_agentic-owners.md.9M575F5C.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.Bds_XWcV.js → templates_pr-autofixer.md.ws0DDXDy.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.Bds_XWcV.lean.js → templates_pr-autofixer.md.ws0DDXDy.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.lshxbCLK.js → templates_security-reviewer.md.KEFYXzfK.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.lshxbCLK.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.Co4UNzkZ.js → templates_triage.md.CVGe_FG6.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.Co4UNzkZ.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 +47 -18
- package/dist/docs/building-with-agents.md +94 -84
- package/dist/docs/deployment.html +62 -48
- package/dist/docs/deployment.md +117 -364
- package/dist/docs/evals.html +88 -194
- package/dist/docs/evals.md +146 -673
- package/dist/docs/guides/agent-to-agent.html +65 -12
- package/dist/docs/guides/agent-to-agent.md +125 -91
- package/dist/docs/guides/bitbucket.html +182 -14
- package/dist/docs/guides/bitbucket.md +249 -48
- package/dist/docs/guides/cloud-agents.html +49 -10
- package/dist/docs/guides/cloud-agents.md +123 -66
- package/dist/docs/guides/convert-automation.html +83 -19
- package/dist/docs/guides/convert-automation.md +156 -147
- package/dist/docs/guides/github.html +187 -62
- package/dist/docs/guides/github.md +260 -245
- package/dist/docs/guides/gitlab.html +187 -15
- package/dist/docs/guides/gitlab.md +249 -50
- package/dist/docs/guides/grokbot-agents.html +51 -11
- package/dist/docs/guides/grokbot-agents.md +116 -63
- package/dist/docs/guides/improve.html +51 -10
- package/dist/docs/guides/improve.md +111 -58
- package/dist/docs/guides/mcp-oauth.html +77 -22
- package/dist/docs/guides/mcp-oauth.md +111 -121
- package/dist/docs/guides/opentelemetry.html +72 -30
- package/dist/docs/guides/opentelemetry.md +105 -187
- package/dist/docs/guides/slack.html +89 -24
- package/dist/docs/guides/slack.md +170 -191
- package/dist/docs/guides/webhooks.html +100 -200
- package/dist/docs/guides/webhooks.md +154 -386
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +47 -11
- package/dist/docs/hillclimbing.md +101 -55
- package/dist/docs/index.html +57 -12
- package/dist/docs/index.md +83 -150
- package/dist/docs/llms-full.txt +6244 -10784
- package/dist/docs/llms.txt +23 -46
- package/dist/docs/quickstart.html +70 -45
- package/dist/docs/quickstart.md +44 -105
- package/dist/docs/reference/agent-config.html +41 -8
- package/dist/docs/reference/artifacts.html +41 -8
- package/dist/docs/reference/channels.html +41 -18
- package/dist/docs/reference/channels.md +0 -16
- package/dist/docs/reference/cli.html +44 -9
- package/dist/docs/reference/cli.md +2 -16
- package/dist/docs/reference/connections.html +43 -10
- package/dist/docs/reference/connections.md +3 -5
- package/dist/docs/reference/evals.html +116 -0
- package/dist/docs/reference/evals.md +293 -0
- package/dist/docs/reference/extensions.html +83 -54
- package/dist/docs/reference/extensions.md +127 -199
- package/dist/docs/reference/hooks.html +42 -9
- package/dist/docs/reference/hooks.md +34 -36
- package/dist/docs/reference/http-api.html +42 -9
- package/dist/docs/reference/http-api.md +5 -5
- package/dist/docs/reference/instructions.html +41 -8
- package/dist/docs/reference/playground.html +40 -7
- package/dist/docs/reference/playground.md +2 -2
- package/dist/docs/reference/project-layout.html +42 -9
- package/dist/docs/reference/project-layout.md +3 -4
- package/dist/docs/reference/prompt.html +41 -8
- package/dist/docs/reference/schedules.html +41 -8
- package/dist/docs/reference/sessions.html +40 -7
- package/dist/docs/reference/sessions.md +5 -4
- package/dist/docs/reference/skills.html +41 -8
- package/dist/docs/reference/subagents.html +41 -8
- package/dist/docs/reference/subagents.md +2 -4
- package/dist/docs/reference/tools.html +43 -10
- package/dist/docs/reference/tools.md +2 -5
- package/dist/docs/templates/agentic-owners.html +41 -8
- package/dist/docs/templates/pr-autofixer.html +41 -8
- package/dist/docs/templates/security-reviewer.html +41 -8
- 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 +41 -8
- package/dist/docs/troubleshooting.html +41 -8
- package/dist/docs/troubleshooting.md +97 -67
- package/dist/evals/assertions.js +19 -19
- package/dist/evals/expect.js +1 -1
- package/dist/evals/judge.js +1 -1
- package/dist/evals/reporters.d.ts.map +1 -1
- package/dist/evals/reporters.js +8 -8
- package/dist/evals/run-facts.js +2 -2
- package/dist/evals.d.ts +1 -1
- package/dist/evals.d.ts.map +1 -1
- package/dist/evals.js +7 -7
- package/dist/extensions/cursor-cloud-agents/extension.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/backend.js +3 -3
- package/dist/extensions/cursor-cloud-agents/lib/fleet.js +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/repos.js +6 -6
- package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -1
- package/dist/extensions/cursor-cloud-agents/lib/transcript.js +2 -2
- package/dist/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
- 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 +2 -2
- package/dist/extensions/slack-communication/extension.d.ts +28 -0
- package/dist/extensions/slack-communication/extension.d.ts.map +1 -0
- package/dist/extensions/slack-communication/extension.js +32 -0
- package/dist/extensions/slack-communication/skills/slack-voice.d.ts +5 -0
- package/dist/extensions/slack-communication/skills/slack-voice.d.ts.map +1 -0
- package/dist/extensions/slack-communication/skills/slack-voice.js +54 -0
- package/dist/extensions/slack-communication/tools/delete-message.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/delete-message.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/delete-message.js +29 -0
- package/dist/extensions/slack-communication/tools/edit-message.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/edit-message.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/edit-message.js +37 -0
- package/dist/extensions/slack-communication/tools/post-card.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/post-card.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/post-card.js +25 -0
- package/dist/extensions/slack-communication/tools/post-file.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/post-file.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/post-file.js +76 -0
- package/dist/extensions/slack-communication/tools/post-update.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/post-update.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/post-update.js +36 -0
- package/dist/extensions/slack-communication/tools/react.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/react.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/react.js +27 -0
- package/dist/extensions/slack-communication/tools/set-status.d.ts +4 -0
- package/dist/extensions/slack-communication/tools/set-status.d.ts.map +1 -0
- package/dist/extensions/slack-communication/tools/set-status.js +18 -0
- package/dist/files-backends/cursor-hosted.d.ts +18 -6
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +357 -74
- package/dist/files-backends/local-fs.js +1 -1
- package/dist/files.d.ts +15 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/filesystem.d.ts +46 -2
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +160 -113
- package/dist/index.d.ts +7 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/internal/advertise-tools.js +6 -6
- package/dist/internal/approval-gate.js +1 -1
- package/dist/internal/artifacts-store.js +3 -3
- package/dist/internal/as-of.js +2 -2
- package/dist/internal/authored-alias-hooks.js +1 -1
- package/dist/internal/builtin-tools/reminders.js +2 -2
- package/dist/internal/chat-client.js +5 -5
- package/dist/internal/cli-ax.d.ts +7 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +140 -27
- package/dist/internal/cli-bitbucket.js +10 -10
- package/dist/internal/cli-convert-automation.js +2 -2
- package/dist/internal/cli-cursor.d.ts +3 -11
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +5 -10
- package/dist/internal/cli-deploy.d.ts +12 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +328 -96
- package/dist/internal/cli-docs.js +5 -5
- package/dist/internal/cli-github.js +15 -16
- package/dist/internal/cli-gitlab.js +10 -10
- package/dist/internal/cli-manifest.js +1 -1
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +5 -5
- package/dist/internal/cli-mcp.js +3 -3
- package/dist/internal/cli-skills.js +2 -2
- package/dist/internal/cli-slack.js +5 -5
- package/dist/internal/cloud-turn-cost.js +1 -1
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +15 -9
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +33 -2
- package/dist/internal/convert-automation/convert-workflow.js +25 -24
- package/dist/internal/convert-automation/types.d.ts +8 -0
- package/dist/internal/convert-automation/types.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.d.ts +2 -2
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +32 -27
- package/dist/internal/cursor/backend-client.d.ts +15 -10
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +17 -11
- package/dist/internal/cursor/credentials.js +1 -1
- package/dist/internal/cursor/hosted-store-secrets.d.ts +16 -0
- package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +25 -0
- package/dist/internal/cursor-account-mcp-auth.js +9 -9
- 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/cursor-deployment-relay.js +9 -9
- package/dist/internal/cursor-event-relay.js +10 -10
- package/dist/internal/cursor-relay-core.js +2 -2
- package/dist/internal/deploy-client.d.ts +106 -9
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +171 -23
- package/dist/internal/deploy-manifest.d.ts +13 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +32 -16
- package/dist/internal/discovery/agent-config.d.ts +5 -0
- package/dist/internal/discovery/agent-config.d.ts.map +1 -1
- package/dist/internal/discovery/agent-config.js +27 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +10 -8
- package/dist/internal/discovery/channels.js +4 -4
- package/dist/internal/discovery/connections.js +4 -4
- package/dist/internal/discovery/cursor-plugin.js +12 -12
- package/dist/internal/discovery/extension-overlay.js +3 -3
- package/dist/internal/discovery/extensions.js +6 -6
- package/dist/internal/discovery/info.js +9 -9
- package/dist/internal/discovery/instructions.js +1 -1
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +4 -4
- package/dist/internal/discovery/services.js +1 -1
- package/dist/internal/discovery/tools.js +1 -1
- package/dist/internal/docs-site.js +2 -2
- package/dist/internal/env-file.js +1 -1
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +7 -7
- package/dist/internal/eval-runner.js +14 -14
- package/dist/internal/evals-client.js +4 -4
- package/dist/internal/event-log.js +8 -8
- package/dist/internal/event-mapper.d.ts +18 -0
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +34 -2
- package/dist/internal/filesystem/format.d.ts.map +1 -1
- package/dist/internal/filesystem/format.js +6 -3
- package/dist/internal/filesystem/scratch.js +3 -3
- package/dist/internal/filesystem/tools.d.ts.map +1 -1
- package/dist/internal/filesystem/tools.js +7 -7
- 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 +35 -12
- package/dist/internal/framework-file-storage.d.ts +6 -2
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +91 -2
- package/dist/internal/framework-storage-selection.d.ts +0 -6
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +2 -11
- package/dist/internal/github-fanout.js +3 -3
- package/dist/internal/guest-network.js +4 -4
- package/dist/internal/host-files.js +1 -1
- package/dist/internal/host-kv.js +2 -2
- package/dist/internal/hosted-admission-adapter.d.ts +5 -0
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.js +2 -4
- package/dist/internal/hosted-catch.js +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +46 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +126 -9
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +209 -64
- package/dist/internal/hosted-execution-diag.js +3 -3
- package/dist/internal/hosted-execution-latency.d.ts +80 -0
- package/dist/internal/hosted-execution-latency.d.ts.map +1 -0
- package/dist/internal/hosted-execution-latency.js +220 -0
- package/dist/internal/hosting.d.ts +5 -5
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +5 -6
- package/dist/internal/http-channel-define.d.ts +11 -0
- package/dist/internal/http-channel-define.d.ts.map +1 -0
- package/dist/internal/http-channel-define.js +18 -0
- package/dist/internal/http-channel.d.ts +2 -3
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +3 -4
- package/dist/internal/http-control-plane-session.d.ts +7 -3
- package/dist/internal/http-control-plane-session.d.ts.map +1 -1
- package/dist/internal/http-control-plane-session.js +22 -10
- package/dist/internal/incoming-headers-to-fetch.d.ts +10 -0
- package/dist/internal/incoming-headers-to-fetch.d.ts.map +1 -0
- package/dist/internal/incoming-headers-to-fetch.js +41 -0
- package/dist/internal/init-interview.js +7 -7
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +18 -14
- package/dist/internal/init-scaffold.js +1 -1
- package/dist/internal/inline-stdio-mcp.js +2 -2
- package/dist/internal/install-cursor-skills.js +10 -10
- package/dist/internal/json-schema.js +1 -1
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +3 -3
- package/dist/internal/local-env.js +3 -3
- package/dist/internal/log-ring.js +1 -1
- package/dist/internal/logs-client.js +1 -1
- package/dist/internal/mcp-endpoint.js +8 -8
- package/dist/internal/mcp-host.js +4 -4
- package/dist/internal/mcp-oauth-on-demand.js +3 -3
- package/dist/internal/mcp-oauth.js +5 -5
- package/dist/internal/net.js +2 -2
- package/dist/internal/otel/config.js +3 -3
- package/dist/internal/otel/runtime.js +13 -13
- package/dist/internal/peer-connections.js +2 -2
- package/dist/internal/platform-schedule-sync.js +1 -1
- package/dist/internal/platform-timers.js +1 -1
- package/dist/internal/playground/static.js +2 -2
- package/dist/internal/playground/toolchain.js +2 -2
- package/dist/internal/playground-proxy.js +3 -3
- package/dist/internal/process-memory-telemetry.js +1 -1
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +7 -7
- package/dist/internal/reminder-store.js +1 -1
- package/dist/internal/request-error-status.d.ts.map +1 -1
- package/dist/internal/request-error-status.js +9 -0
- package/dist/internal/resolved-connections.js +8 -8
- package/dist/internal/result-output.d.ts +14 -2
- package/dist/internal/result-output.d.ts.map +1 -1
- package/dist/internal/result-output.js +45 -2
- package/dist/internal/router.js +4 -4
- package/dist/internal/run-client.js +2 -2
- package/dist/internal/schedule-runner.js +6 -6
- package/dist/internal/scm/pr-url.d.ts +3 -1
- package/dist/internal/scm/pr-url.d.ts.map +1 -1
- package/dist/internal/scm/pr-url.js +10 -2
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +14 -15
- package/dist/internal/serve-restart.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +175 -126
- package/dist/internal/session-cost.js +3 -3
- package/dist/internal/session-engine.d.ts +34 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +386 -184
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +4 -4
- package/dist/internal/session-store.d.ts +47 -3
- package/dist/internal/session-store.d.ts.map +1 -1
- package/dist/internal/session-store.js +198 -33
- package/dist/internal/sessions-client.js +3 -3
- 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/internal/slack-thread-key.d.ts +7 -0
- package/dist/internal/slack-thread-key.d.ts.map +1 -0
- package/dist/internal/slack-thread-key.js +10 -0
- package/dist/internal/sleep.js +1 -1
- package/dist/internal/storage-coordinator.d.ts +17 -0
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +111 -11
- package/dist/internal/storage.d.ts +2 -0
- package/dist/internal/storage.d.ts.map +1 -0
- package/dist/internal/storage.js +1 -0
- package/dist/internal/store-mirror.js +4 -4
- package/dist/internal/terminal-style.js +2 -2
- package/dist/internal/tool-result.js +3 -3
- package/dist/internal/trajectory.js +7 -7
- package/dist/internal/turn-governor.js +2 -2
- package/dist/internal/turn-outbox.js +1 -1
- package/dist/internal/update-check.js +2 -2
- package/dist/internal/v2-hosting.d.ts +9 -0
- package/dist/internal/v2-hosting.d.ts.map +1 -1
- package/dist/internal/v2-hosting.js +10 -0
- package/dist/internal/workspace.d.ts +13 -10
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +17 -16
- package/dist/kv/memory-kv.d.ts +6 -4
- package/dist/kv/memory-kv.d.ts.map +1 -1
- package/dist/kv/memory-kv.js +9 -7
- package/dist/kv.d.ts +4 -7
- package/dist/kv.d.ts.map +1 -1
- package/dist/kv.js +4 -7
- package/dist/otel-public.d.ts +7 -0
- package/dist/otel-public.d.ts.map +1 -0
- package/dist/otel-public.js +5 -0
- package/dist/otel.d.ts +7 -2
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +7 -2
- 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/prompt.js +1 -1
- package/dist/result.d.ts +10 -4
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +9 -3
- package/dist/storage-backends/cursor-hosted-v2.js +2 -2
- package/dist/storage-backends/cursor-hosted.d.ts +5 -17
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +6 -20
- package/dist/storage-backends/file-kv.js +7 -7
- package/dist/storage.d.ts +20 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +7 -6
- package/dist/types.d.ts +76 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -4
- package/docs/README.md +85 -152
- package/docs/building-with-agents.md +96 -86
- package/docs/deployment.md +118 -365
- package/docs/evals.md +147 -674
- package/docs/guides/agent-to-agent.md +126 -92
- package/docs/guides/bitbucket.md +250 -49
- package/docs/guides/cloud-agents.md +124 -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 +117 -64
- package/docs/guides/improve.md +112 -59
- package/docs/guides/mcp-oauth.md +112 -122
- package/docs/guides/opentelemetry.md +106 -188
- package/docs/guides/slack.md +171 -192
- package/docs/guides/webhooks.md +155 -387
- package/docs/hillclimbing.md +102 -56
- package/docs/quickstart.md +45 -106
- package/docs/reference/channels.md +0 -16
- package/docs/reference/cli.md +2 -16
- package/docs/reference/connections.md +3 -5
- package/docs/reference/evals.md +298 -0
- package/docs/reference/extensions.md +128 -200
- package/docs/reference/hooks.md +34 -36
- package/docs/reference/http-api.md +5 -5
- package/docs/reference/playground.md +2 -2
- package/docs/reference/project-layout.md +3 -4
- package/docs/reference/sessions.md +5 -4
- package/docs/reference/subagents.md +2 -4
- package/docs/reference/tools.md +2 -5
- package/docs/templates/thermo-quality-review.md +80 -0
- package/docs/templates/thermo-review.md +79 -0
- package/docs/troubleshooting.md +98 -68
- package/package.json +55 -37
- package/skills/framework-map/SKILL.md +2 -2
- package/skills/github/SKILL.md +21 -13
- package/skills/otel/SKILL.md +8 -18
- package/src/bin/agent-serve.ts +115 -72
- package/src/channels/bitbucket/api.ts +8 -8
- package/src/channels/bitbucket/binding.ts +4 -4
- package/src/channels/bitbucket/bitbucket-channel.ts +1 -1
- package/src/channels/bitbucket/bitbucket-webhook.ts +1 -1
- package/src/channels/bitbucket/checks.ts +3 -4
- package/src/channels/bitbucket/cursor-account.ts +1 -1
- package/src/channels/bitbucket/events.ts +1 -1
- package/src/channels/change-monitors/change-monitors-channel.ts +2 -2
- package/src/channels/checks.ts +5 -4
- package/src/channels/deployments/deployments-channel.ts +1 -1
- package/src/channels/github/api.ts +1 -1
- package/src/channels/github/checks.ts +1 -1
- package/src/channels/github/cursor-account.ts +3 -3
- package/src/channels/github/defaults.ts +8 -4
- package/src/channels/github/events.ts +1 -1
- package/src/channels/github/forward.ts +8 -8
- package/src/channels/github/github-channel.ts +48 -21
- package/src/channels/github/progress.ts +7 -2
- package/src/channels/github/state.ts +6 -0
- package/src/channels/github/types.ts +6 -0
- package/src/channels/gitlab/binding.ts +4 -4
- package/src/channels/gitlab/checks.ts +3 -4
- package/src/channels/gitlab/cursor-account.ts +1 -1
- package/src/channels/gitlab/events.ts +1 -1
- package/src/channels/gitlab/gitlab-channel.ts +1 -1
- package/src/channels/gitlab/gitlab-webhook.ts +1 -1
- package/src/channels/gitlab/replay.ts +2 -2
- package/src/channels/origin/binding.ts +6 -3
- package/src/channels/origin/checks.ts +27 -17
- package/src/channels/origin/cursor-account.ts +1 -1
- package/src/channels/origin/defaults.ts +5 -1
- package/src/channels/origin/events.ts +1 -1
- package/src/channels/origin/origin-channel.ts +2 -1
- package/src/channels/origin/origin-webhook.ts +2 -2
- package/src/channels/slack/agentic-delivery.ts +661 -0
- package/src/channels/slack/agentic-posted.ts +148 -0
- package/src/channels/slack/agentic-signals.ts +248 -0
- package/src/channels/slack/api.ts +51 -11
- package/src/channels/slack/approvals.ts +1 -1
- package/src/channels/slack/attachments.ts +1 -1
- package/src/channels/slack/auth.ts +3 -1
- package/src/channels/slack/blocks.ts +3 -3
- package/src/channels/slack/bot-mentions.ts +5 -7
- package/src/channels/slack/channel-watch.ts +1 -1
- package/src/channels/slack/cli-project.ts +3 -3
- package/src/channels/slack/defaults.ts +109 -37
- package/src/channels/slack/dispatch.ts +419 -168
- package/src/channels/slack/doctor.ts +1 -1
- package/src/channels/slack/eval-directive.ts +1 -1
- package/src/channels/slack/external-policy.ts +15 -2
- package/src/channels/slack/footer.ts +108 -0
- package/src/channels/slack/index.ts +2 -0
- package/src/channels/slack/interactive.ts +4 -2
- package/src/channels/slack/live-delivery.ts +23 -7
- package/src/channels/slack/log.ts +1 -1
- package/src/channels/slack/manifest.ts +1 -1
- package/src/channels/slack/nudge-carrier.ts +1 -1
- package/src/channels/slack/nudge-store.ts +2 -2
- package/src/channels/slack/paint-start.ts +93 -0
- package/src/channels/slack/placeholder.ts +366 -0
- package/src/channels/slack/progress-delivery.ts +14 -1
- package/src/channels/slack/reasoning-chip.ts +48 -0
- package/src/channels/slack/recording-sink.ts +176 -0
- package/src/channels/slack/reply-options.ts +71 -15
- package/src/channels/slack/setup.ts +1 -1
- package/src/channels/slack/slack-channel.ts +81 -14
- package/src/channels/slack/socket-mode.ts +2 -2
- package/src/channels/slack/thread-context.ts +5 -5
- package/src/channels/slack/tool-approval-events.ts +54 -38
- package/src/channels/slack/tool-cards.ts +1 -1
- package/src/channels/slack/tool-chip.ts +36 -0
- package/src/channels/slack/types.ts +47 -7
- package/src/channels/slack/upload.ts +142 -0
- package/src/channels.ts +12 -30
- package/src/dashboard-session-url.ts +32 -0
- package/src/evals/assertions.ts +19 -19
- package/src/evals/expect.ts +1 -1
- package/src/evals/judge.ts +1 -1
- package/src/evals/reporters.ts +8 -9
- package/src/evals/run-facts.ts +2 -2
- package/src/evals.ts +7 -10
- package/src/extensions/cursor-cloud-agents/extension.ts +1 -1
- package/src/extensions/cursor-cloud-agents/lib/backend.ts +3 -3
- package/src/extensions/cursor-cloud-agents/lib/fleet.ts +1 -1
- package/src/extensions/cursor-cloud-agents/lib/repos.ts +3 -3
- package/src/extensions/cursor-cloud-agents/lib/transcript.ts +3 -4
- package/src/extensions/cursor-cloud-agents/skills/handoff.md +3 -7
- package/src/extensions/cursor-cloud-agents/tools/list.ts +1 -1
- package/src/extensions/improve/extension.ts +4 -2
- package/src/extensions/improve/skills/yourself.ts +2 -2
- package/src/extensions/slack-communication/evals/harness.ts +728 -0
- package/src/extensions/slack-communication/evals/slack-communication.eval.ts +953 -0
- package/src/extensions/slack-communication/evals/slack-placeholder.eval.ts +194 -0
- package/src/extensions/slack-communication/extension.ts +45 -0
- package/src/extensions/slack-communication/skills/slack-voice.ts +59 -0
- package/src/extensions/slack-communication/tools/delete-message.ts +34 -0
- package/src/extensions/slack-communication/tools/edit-message.ts +42 -0
- package/src/extensions/slack-communication/tools/post-card.ts +28 -0
- package/src/extensions/slack-communication/tools/post-file.ts +85 -0
- package/src/extensions/slack-communication/tools/post-update.ts +41 -0
- package/src/extensions/slack-communication/tools/react.ts +33 -0
- package/src/extensions/slack-communication/tools/set-status.ts +21 -0
- package/src/files-backends/cursor-hosted.ts +502 -98
- package/src/files-backends/local-fs.ts +1 -1
- package/src/files.ts +15 -0
- package/src/filesystem.ts +182 -81
- package/src/index.ts +7 -36
- package/src/internal/advertise-tools.ts +6 -6
- package/src/internal/approval-gate.ts +1 -1
- package/src/internal/artifacts-store.ts +3 -3
- package/src/internal/as-of.ts +2 -2
- package/src/internal/authored-alias-hooks.ts +1 -1
- package/src/internal/authored-loaders.ts +2 -3
- package/src/internal/builtin-tools/reminders.ts +2 -2
- package/src/internal/chat-client.ts +5 -5
- package/src/internal/cli-ax.ts +172 -29
- package/src/internal/cli-bitbucket.ts +11 -11
- package/src/internal/cli-convert-automation.ts +2 -2
- package/src/internal/cli-cursor.ts +5 -16
- package/src/internal/cli-deploy.ts +389 -104
- package/src/internal/cli-docs.ts +5 -5
- package/src/internal/cli-github.ts +16 -19
- package/src/internal/cli-gitlab.ts +11 -11
- package/src/internal/cli-manifest.ts +1 -1
- package/src/internal/cli-mcp-oauth.ts +5 -7
- package/src/internal/cli-mcp.ts +3 -3
- package/src/internal/cli-skills.ts +2 -2
- package/src/internal/cli-slack.ts +5 -5
- package/src/internal/cloud-turn-cost.ts +1 -1
- package/src/internal/continuation-identity.ts +14 -9
- package/src/internal/conversation-mirror.ts +36 -3
- package/src/internal/convert-automation/convert-workflow.ts +27 -27
- package/src/internal/convert-automation/types.ts +9 -0
- package/src/internal/cursor/account-mcp.ts +48 -31
- package/src/internal/cursor/backend-client.ts +28 -17
- package/src/internal/cursor/credentials.ts +1 -1
- package/src/internal/cursor/hosted-store-secrets.ts +34 -0
- package/src/internal/cursor-account-mcp-auth.ts +9 -9
- package/src/internal/cursor-agent-template.ts +2 -0
- package/src/internal/cursor-deployment-relay.ts +10 -10
- package/src/internal/cursor-event-relay.ts +10 -10
- package/src/internal/cursor-relay-core.ts +2 -2
- package/src/internal/deploy-client.ts +266 -24
- package/src/internal/deploy-manifest.ts +46 -8
- package/src/internal/discovery/agent-config.ts +34 -0
- package/src/internal/discovery/agent.ts +14 -6
- package/src/internal/discovery/channels.ts +4 -4
- package/src/internal/discovery/connections.ts +4 -4
- package/src/internal/discovery/cursor-plugin.ts +12 -12
- package/src/internal/discovery/extension-overlay.ts +3 -3
- package/src/internal/discovery/extensions.ts +6 -6
- package/src/internal/discovery/info.ts +9 -9
- package/src/internal/discovery/instructions.ts +1 -1
- package/src/internal/discovery/project.ts +4 -4
- package/src/internal/discovery/services.ts +1 -1
- package/src/internal/discovery/tools.ts +1 -1
- package/src/internal/docs-site.ts +2 -2
- package/src/internal/env-file.ts +2 -2
- package/src/internal/eval-run-store.ts +7 -9
- package/src/internal/eval-runner.ts +20 -20
- package/src/internal/evals-client.ts +6 -6
- package/src/internal/event-log.ts +10 -10
- package/src/internal/event-mapper.ts +37 -2
- package/src/internal/filesystem/format.ts +11 -12
- package/src/internal/filesystem/scratch.ts +3 -3
- package/src/internal/filesystem/tools.ts +8 -8
- package/src/internal/filesystem/walk.ts +61 -16
- package/src/internal/framework-file-storage.ts +104 -4
- package/src/internal/framework-storage-selection.ts +2 -12
- package/src/internal/github-fanout.ts +4 -4
- package/src/internal/guest-network.ts +4 -4
- package/src/internal/host-files.ts +1 -1
- package/src/internal/host-kv.ts +2 -2
- package/src/internal/hosted-admission-adapter.ts +5 -0
- package/src/internal/hosted-catch-protocol.ts +3 -5
- package/src/internal/hosted-catch.ts +1 -1
- package/src/internal/hosted-delivery-protocol.ts +189 -14
- package/src/internal/hosted-delivery.ts +294 -81
- package/src/internal/hosted-execution-diag.ts +3 -3
- package/src/internal/hosted-execution-latency.ts +334 -0
- package/src/internal/hosting.ts +5 -6
- package/src/internal/http-channel-define.ts +27 -0
- package/src/internal/http-channel.ts +3 -4
- package/src/internal/http-control-plane-session.ts +24 -11
- package/src/internal/incoming-headers-to-fetch.ts +54 -0
- package/src/internal/init-interview.ts +7 -7
- package/src/internal/init-project.ts +18 -16
- package/src/internal/init-scaffold.ts +1 -1
- package/src/internal/inline-stdio-mcp.ts +2 -2
- package/src/internal/install-cursor-skills.ts +11 -11
- package/src/internal/json-schema.ts +1 -1
- package/src/internal/local-control-plane.ts +4 -5
- package/src/internal/local-env.ts +3 -3
- package/src/internal/log-ring.ts +1 -1
- package/src/internal/logs-client.ts +1 -1
- package/src/internal/mcp-endpoint.ts +10 -10
- package/src/internal/mcp-host.ts +9 -9
- package/src/internal/mcp-oauth-on-demand.ts +3 -3
- package/src/internal/mcp-oauth.ts +5 -5
- package/src/internal/net.ts +2 -2
- package/src/internal/otel/config.ts +3 -3
- package/src/internal/otel/runtime.ts +14 -14
- package/src/internal/peer-connections.ts +2 -2
- package/src/internal/platform-schedule-sync.ts +1 -1
- package/src/internal/platform-timers.ts +1 -1
- package/src/internal/playground/static.ts +2 -2
- package/src/internal/playground/toolchain.ts +2 -2
- package/src/internal/playground-proxy.ts +3 -3
- package/src/internal/process-memory-telemetry.ts +1 -1
- package/src/internal/reminder-runner.ts +8 -10
- package/src/internal/reminder-store.ts +1 -1
- package/src/internal/request-error-status.ts +9 -0
- package/src/internal/resolved-connections.ts +8 -8
- package/src/internal/result-output.ts +62 -5
- package/src/internal/router.ts +4 -4
- package/src/internal/run-client.ts +2 -2
- package/src/internal/schedule-runner.ts +6 -6
- package/src/internal/scm/pr-url.ts +11 -2
- package/src/internal/sdk-runner.ts +14 -28
- package/src/internal/serve-restart.ts +1 -1
- package/src/internal/server.ts +201 -140
- package/src/internal/session-cost.ts +3 -3
- package/src/internal/session-engine.ts +516 -244
- package/src/internal/session-run-log.ts +4 -6
- package/src/internal/session-store.ts +213 -39
- package/src/internal/sessions-client.ts +3 -3
- package/src/internal/skill-catalog.ts +69 -0
- package/src/internal/slack-thread-key.ts +11 -0
- package/src/internal/sleep.ts +1 -1
- package/src/internal/storage-coordinator.ts +118 -21
- package/src/internal/storage.ts +1 -0
- package/src/internal/store-mirror.ts +4 -4
- package/src/internal/terminal-style.ts +2 -2
- package/src/internal/tool-result.ts +3 -3
- package/src/internal/trajectory.ts +7 -7
- package/src/internal/turn-governor.ts +2 -2
- package/src/internal/turn-outbox.ts +1 -1
- package/src/internal/update-check.ts +2 -2
- package/src/internal/v2-hosting.ts +14 -0
- package/src/internal/workspace.ts +17 -17
- package/src/kv/memory-kv.ts +9 -7
- package/src/kv.ts +4 -7
- package/src/otel-public.ts +24 -0
- package/src/otel.ts +7 -2
- package/src/prompt.ts +1 -1
- package/src/result.ts +10 -8
- package/src/storage-backends/cursor-hosted-v2.ts +2 -2
- package/src/storage-backends/cursor-hosted.ts +6 -23
- package/src/storage-backends/file-kv.ts +7 -7
- package/src/storage.ts +22 -7
- package/src/types.ts +91 -17
- package/templates/agentic-owners/agent/channels/github.ts +3 -6
- package/templates/agentic-owners/agent/lib/github.ts +5 -5
- package/templates/agentic-owners/agent/lib/owners/decision.ts +13 -10
- package/templates/agentic-owners/agent/lib/owners/handles.ts +2 -2
- package/templates/agentic-owners/agent/lib/owners/match.ts +3 -3
- package/templates/agentic-owners/agent/lib/owners/matching.ts +1 -1
- package/templates/agentic-owners/agent/lib/owners/parse.ts +4 -9
- package/templates/agentic-owners/agent/lib/owners/prompt.ts +1 -1
- package/templates/agentic-owners/agent/lib/review.ts +37 -30
- package/templates/agentic-owners/evals/owners.eval.ts +2 -2
- package/templates/agentic-owners/package.json +1 -1
- package/templates/agents-md/agent/lib/collect.ts +16 -10
- package/templates/agents-md/agent/lib/config.ts +1 -1
- package/templates/agents-md/agent/tools/apply_agents.ts +10 -8
- package/templates/agents-md/package.json +1 -1
- package/templates/code-wiki/agent/channels/github.ts +4 -7
- package/templates/code-wiki/agent/lib/repos.ts +1 -1
- package/templates/code-wiki/agent/tools/apply_wiki.ts +3 -4
- package/templates/code-wiki/package.json +1 -1
- package/templates/demo/agent/lib/collect.ts +6 -2
- package/templates/demo/agent/lib/repos.ts +1 -1
- package/templates/demo/agent/tools/record_demo.ts +1 -1
- package/templates/demo/evals/demo.eval.ts +1 -5
- package/templates/demo/package.json +1 -1
- package/templates/grokbot-agents/package.json +1 -1
- package/templates/pr-autofixer/agent/channels/github.ts +16 -13
- package/templates/pr-autofixer/agent/lib/merge-watch.ts +2 -4
- package/templates/pr-autofixer/agent/lib/repos.ts +2 -2
- package/templates/pr-autofixer/agent/lib/webhook-routing.ts +1 -1
- package/templates/pr-autofixer/package.json +1 -1
- package/templates/security-help/agent/lib/repos.ts +1 -1
- package/templates/security-help/package.json +1 -1
- package/templates/security-reviewer/agent/lib/repos.ts +1 -1
- package/templates/security-reviewer/agent/tools/post_findings.ts +1 -3
- package/templates/security-reviewer/package.json +1 -1
- 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/templates/triage/agent/lib/actuate.ts +26 -41
- package/templates/triage/agent/lib/parse-queue-event.ts +2 -1
- package/templates/triage/agent/lib/verify-webhook.ts +10 -5
- package/templates/triage/agent/tools/record_triage.ts +1 -4
- package/templates/triage/package.json +1 -1
- package/dist/client.d.ts +0 -14
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -12
- package/dist/docs/assets/app.Cr-wVbnB.js +0 -1
- package/dist/docs/assets/building-with-agents.md.D0KbSkJn.js +0 -13
- package/dist/docs/assets/building-with-agents.md.D0KbSkJn.lean.js +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CFVQ4S17.js +0 -1
- package/dist/docs/assets/concepts.md.B4o63Gul.js +0 -1
- package/dist/docs/assets/concepts.md.B4o63Gul.lean.js +0 -1
- package/dist/docs/assets/deployment.md.JenwuCCB.js +0 -51
- package/dist/docs/assets/deployment.md.JenwuCCB.lean.js +0 -1
- package/dist/docs/assets/evals.md.C7JLjoEP.js +0 -211
- package/dist/docs/assets/evals.md.C7JLjoEP.lean.js +0 -1
- package/dist/docs/assets/guides_agent-to-agent.md.BDb0t1QV.js +0 -10
- package/dist/docs/assets/guides_agent-to-agent.md.BDb0t1QV.lean.js +0 -1
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.js +0 -10
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.BsloyHdY.js +0 -9
- package/dist/docs/assets/guides_cloud-agents.md.BsloyHdY.lean.js +0 -1
- package/dist/docs/assets/guides_convert-automation.md.B4sjlodG.js +0 -12
- package/dist/docs/assets/guides_convert-automation.md.B4sjlodG.lean.js +0 -1
- package/dist/docs/assets/guides_github.md.TZaTZlfz.js +0 -64
- package/dist/docs/assets/guides_github.md.TZaTZlfz.lean.js +0 -1
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.js +0 -14
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.lean.js +0 -1
- package/dist/docs/assets/guides_grokbot-agents.md.DyV-WArv.js +0 -9
- package/dist/docs/assets/guides_grokbot-agents.md.DyV-WArv.lean.js +0 -1
- package/dist/docs/assets/guides_human-in-the-loop.md.By1G2T3_.js +0 -28
- package/dist/docs/assets/guides_human-in-the-loop.md.By1G2T3_.lean.js +0 -1
- package/dist/docs/assets/guides_improve.md.BGVk32bK.js +0 -14
- package/dist/docs/assets/guides_improve.md.BGVk32bK.lean.js +0 -1
- package/dist/docs/assets/guides_mcp-oauth.md.Dp6cDP7f.js +0 -28
- package/dist/docs/assets/guides_mcp-oauth.md.Dp6cDP7f.lean.js +0 -1
- package/dist/docs/assets/guides_opentelemetry.md.SCRMskno.js +0 -26
- package/dist/docs/assets/guides_opentelemetry.md.SCRMskno.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.D4RVMM4G.js +0 -38
- package/dist/docs/assets/guides_slack.md.D4RVMM4G.lean.js +0 -1
- package/dist/docs/assets/guides_webhooks.md.CJK484ex.js +0 -225
- package/dist/docs/assets/guides_webhooks.md.CJK484ex.lean.js +0 -1
- package/dist/docs/assets/hillclimbing.md.BOiVo1tf.js +0 -4
- package/dist/docs/assets/hillclimbing.md.BOiVo1tf.lean.js +0 -1
- package/dist/docs/assets/index.md.DD9Q2XuJ.js +0 -5
- package/dist/docs/assets/index.md.DD9Q2XuJ.lean.js +0 -1
- package/dist/docs/assets/quickstart.md.DdQOF7Y8.lean.js +0 -1
- package/dist/docs/assets/reference_extensions.md.ZAVUyuEX.js +0 -62
- package/dist/docs/assets/reference_extensions.md.ZAVUyuEX.lean.js +0 -1
- package/dist/docs/assets/reference_result.md.BK5SxDrf.js +0 -19
- package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +0 -1
- package/dist/docs/assets/scaffolding-agents.md.Kctn3OVb.js +0 -1
- package/dist/docs/assets/scaffolding-agents.md.Kctn3OVb.lean.js +0 -1
- package/dist/docs/assets/skills_create-agent.md.Q3h6Je-e.js +0 -8
- package/dist/docs/assets/skills_create-agent.md.Q3h6Je-e.lean.js +0 -1
- package/dist/docs/assets/skills_debug.md.CVjCXMFF.js +0 -1
- package/dist/docs/assets/skills_debug.md.CVjCXMFF.lean.js +0 -1
- package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.js +0 -35
- package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.lean.js +0 -1
- package/dist/docs/assets/skills_evals.md.DFxYPErF.js +0 -25
- package/dist/docs/assets/skills_evals.md.DFxYPErF.lean.js +0 -1
- package/dist/docs/assets/skills_framework-map.md.BxLSOhSY.js +0 -1
- package/dist/docs/assets/skills_framework-map.md.BxLSOhSY.lean.js +0 -1
- package/dist/docs/assets/skills_github.md.hgFX_oKY.js +0 -16
- package/dist/docs/assets/skills_github.md.hgFX_oKY.lean.js +0 -1
- package/dist/docs/assets/skills_hillclimb.md.B_zJerxA.js +0 -7
- package/dist/docs/assets/skills_hillclimb.md.B_zJerxA.lean.js +0 -1
- package/dist/docs/assets/skills_index.md.DL7EHaQ-.js +0 -1
- package/dist/docs/assets/skills_index.md.DL7EHaQ-.lean.js +0 -1
- package/dist/docs/assets/skills_mcp-auth.md.DGvFP3HE.js +0 -18
- package/dist/docs/assets/skills_mcp-auth.md.DGvFP3HE.lean.js +0 -1
- package/dist/docs/assets/skills_otel.md.B5Ddv1xH.js +0 -8
- package/dist/docs/assets/skills_otel.md.B5Ddv1xH.lean.js +0 -1
- package/dist/docs/assets/skills_setup-slack.md.BBgx8lUz.js +0 -20
- package/dist/docs/assets/skills_setup-slack.md.BBgx8lUz.lean.js +0 -1
- package/dist/docs/assets/storage.md.BUrhJ-Zz.js +0 -30
- package/dist/docs/assets/storage.md.BUrhJ-Zz.lean.js +0 -1
- package/dist/docs/assets/templates_agents-md.md.CXSMZljE.js +0 -2
- package/dist/docs/assets/templates_agents-md.md.CXSMZljE.lean.js +0 -1
- package/dist/docs/assets/templates_code-wiki.md.CDYZIBFN.js +0 -2
- package/dist/docs/assets/templates_code-wiki.md.CDYZIBFN.lean.js +0 -1
- package/dist/docs/assets/templates_demo.md.BeQX9V3H.js +0 -4
- package/dist/docs/assets/templates_demo.md.BeQX9V3H.lean.js +0 -1
- package/dist/docs/assets/templates_grokbot-agents.md.c1s6Flp9.js +0 -3
- package/dist/docs/assets/templates_grokbot-agents.md.c1s6Flp9.lean.js +0 -1
- package/dist/docs/assets/templates_security-help.md.C3Ny_Qr2.js +0 -4
- package/dist/docs/assets/templates_security-help.md.C3Ny_Qr2.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.CYEAO9bM.js +0 -1
- package/dist/docs/assets/troubleshooting.md.CYEAO9bM.lean.js +0 -1
- package/dist/docs/concepts.html +0 -27
- package/dist/docs/concepts.md +0 -166
- package/dist/docs/design/filesystem.md +0 -376
- package/dist/docs/design/runtime-abstraction.md +0 -1756
- package/dist/docs/guides/human-in-the-loop.html +0 -54
- package/dist/docs/guides/human-in-the-loop.md +0 -126
- package/dist/docs/reference/result.html +0 -45
- package/dist/docs/reference/result.md +0 -89
- package/dist/docs/scaffolding-agents.html +0 -27
- package/dist/docs/scaffolding-agents.md +0 -130
- package/dist/docs/skills/create-agent.html +0 -34
- package/dist/docs/skills/create-agent.md +0 -160
- package/dist/docs/skills/debug.html +0 -27
- package/dist/docs/skills/debug.md +0 -36
- package/dist/docs/skills/deploy.html +0 -61
- package/dist/docs/skills/deploy.md +0 -161
- package/dist/docs/skills/evals.html +0 -51
- package/dist/docs/skills/evals.md +0 -137
- package/dist/docs/skills/framework-map.html +0 -27
- package/dist/docs/skills/framework-map.md +0 -99
- package/dist/docs/skills/github.html +0 -42
- package/dist/docs/skills/github.md +0 -93
- package/dist/docs/skills/hillclimb.html +0 -33
- package/dist/docs/skills/hillclimb.md +0 -55
- package/dist/docs/skills/index.html +0 -27
- package/dist/docs/skills/index.md +0 -21
- package/dist/docs/skills/mcp-auth.html +0 -44
- package/dist/docs/skills/mcp-auth.md +0 -76
- package/dist/docs/skills/otel.html +0 -34
- package/dist/docs/skills/otel.md +0 -53
- package/dist/docs/skills/setup-slack.html +0 -46
- package/dist/docs/skills/setup-slack.md +0 -141
- package/dist/docs/storage.html +0 -56
- package/dist/docs/storage.md +0 -167
- package/dist/docs/templates/agents-md.html +0 -28
- package/dist/docs/templates/agents-md.md +0 -105
- package/dist/docs/templates/code-wiki.html +0 -28
- package/dist/docs/templates/code-wiki.md +0 -91
- package/dist/docs/templates/demo.html +0 -30
- package/dist/docs/templates/demo.md +0 -80
- package/dist/docs/templates/grokbot-agents.html +0 -29
- package/dist/docs/templates/grokbot-agents.md +0 -48
- package/dist/docs/templates/security-help.html +0 -30
- package/dist/docs/templates/security-help.md +0 -65
- package/dist/internal/tenant-slack/relay.d.ts +0 -75
- package/dist/internal/tenant-slack/relay.d.ts.map +0 -1
- package/dist/internal/tenant-slack/relay.js +0 -148
- package/dist/playground/assets/index-Bhxzrcf6.css +0 -1
- package/dist/playground/assets/index-CqLX5uF3.js +0 -67
- package/docs/concepts.md +0 -171
- package/docs/design/filesystem.md +0 -376
- package/docs/design/runtime-abstraction.md +0 -1756
- package/docs/guides/human-in-the-loop.md +0 -131
- package/docs/reference/result.md +0 -94
- package/docs/scaffolding-agents.md +0 -135
- package/docs/skills/index.md +0 -26
- package/docs/storage.md +0 -172
- package/docs/templates/agents-md.md +0 -110
- package/docs/templates/code-wiki.md +0 -96
- package/docs/templates/demo.md +0 -85
- package/docs/templates/grokbot-agents.md +0 -53
- package/docs/templates/security-help.md +0 -70
- package/src/client.ts +0 -23
- package/src/internal/tenant-slack/relay.ts +0 -203
- package/templates/pr-autofixer/agent/storage.ts +0 -7
package/src/types.ts
CHANGED
|
@@ -155,7 +155,7 @@ export function toPublicCloudInfo(
|
|
|
155
155
|
...rest,
|
|
156
156
|
...(repos !== undefined
|
|
157
157
|
? {
|
|
158
|
-
repos: repos.map(
|
|
158
|
+
repos: repos.map(repo => ({
|
|
159
159
|
...repo,
|
|
160
160
|
url: redactHttpUrlCredentials(repo.url),
|
|
161
161
|
...(repo.prUrl !== undefined
|
|
@@ -283,6 +283,19 @@ export interface AgentConfig {
|
|
|
283
283
|
* you to select a specific architecture.
|
|
284
284
|
*/
|
|
285
285
|
architecture?: AgentArchitecture;
|
|
286
|
+
/**
|
|
287
|
+
* Persistent hosting for `architecture: "v2"`.
|
|
288
|
+
*
|
|
289
|
+
* Default (`false`): each session boots a pod from the release snapshot;
|
|
290
|
+
* framework and author state are mirrored to Cursor stores because pod
|
|
291
|
+
* disks are disposable.
|
|
292
|
+
*
|
|
293
|
+
* `true`: one long-lived pod per deployment runs each deployed version as
|
|
294
|
+
* a container over one state directory on the pod's disk. Nothing is
|
|
295
|
+
* mirrored: that directory is the durable copy. A redeploy starts the new
|
|
296
|
+
* version beside the old one on the same state, then drains the old one.
|
|
297
|
+
*/
|
|
298
|
+
persistent?: boolean;
|
|
286
299
|
}
|
|
287
300
|
|
|
288
301
|
/** Hosted architecture on {@link AgentConfig.architecture}. */
|
|
@@ -1141,8 +1154,10 @@ export interface ExtensionOptions<TConfig, TInput = TConfig> {
|
|
|
1141
1154
|
* `agent/extensions/<ns>.ts` to mount the extension with a configuration;
|
|
1142
1155
|
* the extension's own modules import it to read that configuration.
|
|
1143
1156
|
*/
|
|
1144
|
-
export interface Extension<
|
|
1145
|
-
|
|
1157
|
+
export interface Extension<
|
|
1158
|
+
TConfig = undefined,
|
|
1159
|
+
TInput = TConfig,
|
|
1160
|
+
> extends ExtensionDeclaration {
|
|
1146
1161
|
(
|
|
1147
1162
|
...args: undefined extends TInput ? [config?: TInput] : [config: TInput]
|
|
1148
1163
|
): ExtensionMount;
|
|
@@ -1309,7 +1324,7 @@ export function normalizeCursorAccountServers(
|
|
|
1309
1324
|
if (servers === undefined || servers === "*") {
|
|
1310
1325
|
return undefined;
|
|
1311
1326
|
}
|
|
1312
|
-
const trimmed = servers.map(
|
|
1327
|
+
const trimmed = servers.map(server => server.trim());
|
|
1313
1328
|
if (trimmed.length === 1 && trimmed[0] === "*") {
|
|
1314
1329
|
return undefined;
|
|
1315
1330
|
}
|
|
@@ -1323,8 +1338,8 @@ export function cursorAccountServersHasMixedWildcard(
|
|
|
1323
1338
|
if (servers === undefined || servers === "*") {
|
|
1324
1339
|
return false;
|
|
1325
1340
|
}
|
|
1326
|
-
const trimmed = servers.map(
|
|
1327
|
-
return trimmed.includes("*") && trimmed.some(
|
|
1341
|
+
const trimmed = servers.map(server => server.trim());
|
|
1342
|
+
return trimmed.includes("*") && trimmed.some(server => server !== "*");
|
|
1328
1343
|
}
|
|
1329
1344
|
|
|
1330
1345
|
/**
|
|
@@ -2115,6 +2130,15 @@ export interface SendMessageOptions {
|
|
|
2115
2130
|
* runtime is forced local with no override path.
|
|
2116
2131
|
*/
|
|
2117
2132
|
cloud?: AgentCloudOptions;
|
|
2133
|
+
/**
|
|
2134
|
+
* Clear cloud options retained by an existing continuation session before
|
|
2135
|
+
* starting this turn. Use when a caller intentionally moves a previously
|
|
2136
|
+
* cloud-attached session back to the agent's configured runtime. Cannot be
|
|
2137
|
+
* combined with {@link cloud}.
|
|
2138
|
+
*
|
|
2139
|
+
* On a new session this is a no-op.
|
|
2140
|
+
*/
|
|
2141
|
+
clearCloudOverride?: boolean;
|
|
2118
2142
|
/**
|
|
2119
2143
|
* Seed the Cursor SDK agent id for a **new** session (ignored when the
|
|
2120
2144
|
* continuation token matches an existing session). For cloud agents this
|
|
@@ -2278,6 +2302,13 @@ export interface ChannelHandlerArgs {
|
|
|
2278
2302
|
* pass `sessionId` in `tag` input to attribute one).
|
|
2279
2303
|
*/
|
|
2280
2304
|
artifacts: ArtifactsApi;
|
|
2305
|
+
/** Hosted Slack admission uses this to paint a warm follow-up. */
|
|
2306
|
+
hasContinuationSession?(continuationToken: string): Promise<boolean>;
|
|
2307
|
+
isContinuationBusy?(continuationToken: string): Promise<boolean>;
|
|
2308
|
+
getContinuationLastBotMessageTs?(
|
|
2309
|
+
continuationToken: string
|
|
2310
|
+
): Promise<string | undefined>;
|
|
2311
|
+
interruptContinuation?(continuationToken: string): Promise<boolean>;
|
|
2281
2312
|
}
|
|
2282
2313
|
|
|
2283
2314
|
export type ChannelRouteHandler = (
|
|
@@ -2509,9 +2540,9 @@ export interface ChannelStartArgs {
|
|
|
2509
2540
|
}
|
|
2510
2541
|
|
|
2511
2542
|
/**
|
|
2512
|
-
*
|
|
2513
|
-
*
|
|
2514
|
-
*
|
|
2543
|
+
* Metadata a channel pack attaches for discovery, `projectInfo`, and CLI
|
|
2544
|
+
* helpers (e.g. `agent-sdk github forward`). Most fields are descriptive;
|
|
2545
|
+
* explicitly documented protocol fields may also be consumed by the host.
|
|
2515
2546
|
*/
|
|
2516
2547
|
export interface ChannelMeta {
|
|
2517
2548
|
/** Well-known pack kind, e.g. `"github"` or `"slack"`. */
|
|
@@ -2556,6 +2587,16 @@ export interface ChannelMeta {
|
|
|
2556
2587
|
* whatever the app manifest subscribed to).
|
|
2557
2588
|
*/
|
|
2558
2589
|
slackEventTypes?: readonly string[];
|
|
2590
|
+
/**
|
|
2591
|
+
* Static agentic-reply protocol for hosted Slack ingress. Only literals
|
|
2592
|
+
* belong here: the control plane persists this declaration at deploy time
|
|
2593
|
+
* and may act before author code starts.
|
|
2594
|
+
*/
|
|
2595
|
+
slackReply?: {
|
|
2596
|
+
mode: "agentic";
|
|
2597
|
+
ack: string;
|
|
2598
|
+
placeholder?: string;
|
|
2599
|
+
};
|
|
2559
2600
|
/**
|
|
2560
2601
|
* For Slack packs with the opt-in channel watch: the allowlisted channels
|
|
2561
2602
|
* (ids or `#names`) this channel dispatches on without a mention. Surfaced
|
|
@@ -2622,10 +2663,33 @@ export interface HttpChannelConfig {
|
|
|
2622
2663
|
message: string,
|
|
2623
2664
|
info: { auth: AuthContext | null }
|
|
2624
2665
|
) => string | Promise<string>;
|
|
2666
|
+
/**
|
|
2667
|
+
* Bind host state after the control plane names this session's mailbox
|
|
2668
|
+
* key and before `send()`.
|
|
2669
|
+
*/
|
|
2670
|
+
onAdmit?: (info: HttpSessionAdmitInfo) => void | Promise<void>;
|
|
2625
2671
|
/** Stream-event handlers for sessions created over HTTP. */
|
|
2626
2672
|
events?: ChannelEventHandlers;
|
|
2627
2673
|
}
|
|
2628
2674
|
|
|
2675
|
+
/** Subject of a hosted HTTP startSession, seen by {@link HttpChannelConfig.onAdmit}. */
|
|
2676
|
+
export type HttpSessionAdmitInfo = {
|
|
2677
|
+
message: string;
|
|
2678
|
+
sessionKey: string;
|
|
2679
|
+
dryRun?: boolean;
|
|
2680
|
+
asOf?: string;
|
|
2681
|
+
host: HostContext;
|
|
2682
|
+
};
|
|
2683
|
+
|
|
2684
|
+
/** Reject a hosted startSession subject from {@link HttpChannelConfig.onAdmit}. */
|
|
2685
|
+
export class HttpSessionAdmitError extends Error {
|
|
2686
|
+
readonly status = 400 as const;
|
|
2687
|
+
constructor(message: string) {
|
|
2688
|
+
super(message);
|
|
2689
|
+
this.name = "HttpSessionAdmitError";
|
|
2690
|
+
}
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2629
2693
|
export type HttpChannelDefinition = HttpChannelConfig &
|
|
2630
2694
|
BrandedDefinition<"http-channel">;
|
|
2631
2695
|
|
|
@@ -2727,16 +2791,24 @@ export interface ResultContext {
|
|
|
2727
2791
|
workspaceDir: string;
|
|
2728
2792
|
/** Full assistant text for the turn. */
|
|
2729
2793
|
text: string;
|
|
2794
|
+
/**
|
|
2795
|
+
* The commit did not apply; re-run this turn with `message` so the
|
|
2796
|
+
* model can revise. After two repairs the turn fails like a throw.
|
|
2797
|
+
*/
|
|
2798
|
+
reject(message: string): never;
|
|
2730
2799
|
}
|
|
2731
2800
|
|
|
2732
2801
|
/**
|
|
2733
2802
|
* Input to `defineResult` (authored at `agent/result.ts`).
|
|
2734
|
-
* Parse `ctx.text` in `commit`. Throw to fail the turn.
|
|
2803
|
+
* Parse `ctx.text` in `commit`. Throw to fail the turn. Call
|
|
2804
|
+
* {@link ResultContext.reject} for a model-correctable miss so the
|
|
2805
|
+
* same turn can revise before `turn.completed`.
|
|
2735
2806
|
*/
|
|
2736
2807
|
export interface ResultConfig {
|
|
2737
2808
|
/**
|
|
2738
2809
|
* Host actuation after the model finishes, before `turn.completed`.
|
|
2739
|
-
* Throw to fail the turn.
|
|
2810
|
+
* Throw to fail the turn. `ctx.reject(message)` re-prompts the model
|
|
2811
|
+
* in this turn (two repairs). A dry-run session skips this callback.
|
|
2740
2812
|
*/
|
|
2741
2813
|
commit: (ctx: ResultContext) => void | Promise<void>;
|
|
2742
2814
|
}
|
|
@@ -3256,6 +3328,7 @@ export interface ResolvedAgent {
|
|
|
3256
3328
|
* continuation defaults onto channels that omitted a selector.
|
|
3257
3329
|
*/
|
|
3258
3330
|
architecture?: AgentArchitecture;
|
|
3331
|
+
persistent?: boolean;
|
|
3259
3332
|
tools: DiscoveredTool[];
|
|
3260
3333
|
skills: DiscoveredSkill[];
|
|
3261
3334
|
/**
|
|
@@ -3281,7 +3354,7 @@ export interface AgentProject {
|
|
|
3281
3354
|
agentDir: string;
|
|
3282
3355
|
name: string;
|
|
3283
3356
|
agent: ResolvedAgent;
|
|
3284
|
-
/** Built-in HTTP channel
|
|
3357
|
+
/** Built-in HTTP session channel. */
|
|
3285
3358
|
httpChannel: HttpChannelDefinition;
|
|
3286
3359
|
channels: DiscoveredChannel[];
|
|
3287
3360
|
schedules: DiscoveredSchedule[];
|
|
@@ -3461,11 +3534,12 @@ export interface RunnerTurnRequest {
|
|
|
3461
3534
|
/** Cloud options when {@link runtime} is `"cloud"`. */
|
|
3462
3535
|
cloud?: AgentCloudOptions;
|
|
3463
3536
|
/**
|
|
3464
|
-
* Composed instructions ({@link ResolvedAgent.instructions}
|
|
3465
|
-
*
|
|
3466
|
-
*
|
|
3467
|
-
* prompt
|
|
3468
|
-
* this unset
|
|
3537
|
+
* Composed instructions ({@link ResolvedAgent.instructions} plus identity
|
|
3538
|
+
* and tool catalog) delivered as the harness system prompt. Local turns
|
|
3539
|
+
* pass them to the Cursor SDK as `systemPrompt`, replacing Cursor's
|
|
3540
|
+
* built-in prompt; grokbot turns carry them into the hosted session so
|
|
3541
|
+
* they reach the Sand system prompt. Cloud turns leave this unset and
|
|
3542
|
+
* inline the same text into the first prompt instead.
|
|
3469
3543
|
*/
|
|
3470
3544
|
instructions?: string;
|
|
3471
3545
|
/**
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defaultGitHubAuth,
|
|
3
|
-
githubChannel,
|
|
4
|
-
} from "@cursor/july/channels/github";
|
|
1
|
+
import { defaultGitHubAuth, githubChannel } from "@cursor/july/channels/github";
|
|
5
2
|
import config from "../lib/config.js";
|
|
6
3
|
import { githubOwnersForge } from "../lib/github.js";
|
|
7
4
|
import { AgenticOwnersConfigValidationError } from "../lib/owners/parse.js";
|
|
@@ -27,8 +24,8 @@ export default githubChannel({
|
|
|
27
24
|
cursorAccount: config.repos.length > 0 ? { repos: config.repos } : undefined,
|
|
28
25
|
// The model never writes to GitHub; record_review actuates host-side.
|
|
29
26
|
deliverReplies: false,
|
|
30
|
-
onStart:
|
|
31
|
-
log =
|
|
27
|
+
onStart: args => {
|
|
28
|
+
log = line => args.logger(`[agentic-owners] ${line}`);
|
|
32
29
|
},
|
|
33
30
|
onPullRequest: async (ctx, pr) => {
|
|
34
31
|
// A base retarget re-resolves policy against the new base. The fresh
|
|
@@ -90,10 +90,10 @@ export function githubOwnersForge(
|
|
|
90
90
|
pull_number: ref.number,
|
|
91
91
|
});
|
|
92
92
|
const requestedUsers = (data.requested_reviewers ?? []).flatMap(
|
|
93
|
-
|
|
93
|
+
reviewer => ("login" in reviewer ? [reviewer.login] : [])
|
|
94
94
|
);
|
|
95
95
|
const requestedTeams = (data.requested_teams ?? []).map(
|
|
96
|
-
|
|
96
|
+
team => `${ref.owner}/${team.slug}`
|
|
97
97
|
);
|
|
98
98
|
return {
|
|
99
99
|
number: data.number,
|
|
@@ -114,7 +114,7 @@ export function githubOwnersForge(
|
|
|
114
114
|
pull_number: ref.number,
|
|
115
115
|
per_page: 100,
|
|
116
116
|
});
|
|
117
|
-
return files.map(
|
|
117
|
+
return files.map(file => ({
|
|
118
118
|
filename: file.filename,
|
|
119
119
|
status: file.status,
|
|
120
120
|
previousFilename: file.previous_filename,
|
|
@@ -201,7 +201,7 @@ export function githubOwnersForge(
|
|
|
201
201
|
pull_number: ref.number,
|
|
202
202
|
per_page: 100,
|
|
203
203
|
});
|
|
204
|
-
return reviews.map(
|
|
204
|
+
return reviews.map(review => ({
|
|
205
205
|
id: review.id,
|
|
206
206
|
state: review.state,
|
|
207
207
|
body: review.body ?? "",
|
|
@@ -214,7 +214,7 @@ export function githubOwnersForge(
|
|
|
214
214
|
octokit.rest.issues.listComments,
|
|
215
215
|
{ ...repo, issue_number: ref.number, per_page: 100 }
|
|
216
216
|
);
|
|
217
|
-
return comments.map(
|
|
217
|
+
return comments.map(comment => ({
|
|
218
218
|
id: comment.id,
|
|
219
219
|
body: comment.body ?? "",
|
|
220
220
|
}));
|
|
@@ -144,7 +144,7 @@ export function authorOwnsRule(
|
|
|
144
144
|
return false;
|
|
145
145
|
}
|
|
146
146
|
const handle = normalizeHandle(author.handle);
|
|
147
|
-
return rule.users.some(
|
|
147
|
+
return rule.users.some(user => normalizeHandle(user) === handle);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
/**
|
|
@@ -157,7 +157,7 @@ function selfReviewRuleForAuthor(
|
|
|
157
157
|
author: ApprovalAuthor | undefined
|
|
158
158
|
): AgenticOwnersPathRule | undefined {
|
|
159
159
|
return matchedRules.find(
|
|
160
|
-
|
|
160
|
+
rule => rule.selfReview && authorOwnsRule(rule, author)
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -185,12 +185,12 @@ export function authorSelfReviewCoversMatchedRules(
|
|
|
185
185
|
author: ApprovalAuthor | undefined
|
|
186
186
|
): boolean {
|
|
187
187
|
const reviewCapableRules = matchedRules.filter(
|
|
188
|
-
|
|
188
|
+
rule => !rule.alwaysApprove && !ruleIsNotifyOnly(rule)
|
|
189
189
|
);
|
|
190
190
|
return (
|
|
191
191
|
reviewCapableRules.length > 0 &&
|
|
192
192
|
reviewCapableRules.every(
|
|
193
|
-
|
|
193
|
+
rule => rule.selfReview && authorOwnsRule(rule, author)
|
|
194
194
|
)
|
|
195
195
|
);
|
|
196
196
|
}
|
|
@@ -248,11 +248,11 @@ function reviewersToRequest({
|
|
|
248
248
|
function reasonForNoBlockingOwners(
|
|
249
249
|
matchedRules: readonly AgenticOwnersPathRule[]
|
|
250
250
|
): string {
|
|
251
|
-
const anyNotifyOnly = matchedRules.some(
|
|
251
|
+
const anyNotifyOnly = matchedRules.some(rule => ruleIsNotifyOnly(rule));
|
|
252
252
|
if (!anyNotifyOnly) {
|
|
253
253
|
return "all matched policies set always_approve";
|
|
254
254
|
}
|
|
255
|
-
const anyAlwaysApprove = matchedRules.some(
|
|
255
|
+
const anyAlwaysApprove = matchedRules.some(rule => rule.alwaysApprove);
|
|
256
256
|
return anyAlwaysApprove
|
|
257
257
|
? "matched policies are notify-only or always_approve (no blocking owners)"
|
|
258
258
|
: "all matched policies are notify-only (no blocking owners)";
|
|
@@ -286,10 +286,10 @@ export function decideApproval(input: {
|
|
|
286
286
|
}): ApprovalDecision {
|
|
287
287
|
const { matchedRules, riskLevel, author } = input;
|
|
288
288
|
const reviewRequiredRules = matchedRules.filter(
|
|
289
|
-
|
|
289
|
+
rule => !rule.alwaysApprove && !ruleIsNotifyOnly(rule)
|
|
290
290
|
);
|
|
291
291
|
const riskBucket = approvalRiskBucket(riskLevel);
|
|
292
|
-
const humanReviewRequired = reviewRequiredRules.some(
|
|
292
|
+
const humanReviewRequired = reviewRequiredRules.some(rule =>
|
|
293
293
|
ruleIsHardGate(rule)
|
|
294
294
|
);
|
|
295
295
|
const requestReviewers = reviewersToRequest({
|
|
@@ -367,7 +367,10 @@ export function decideApproval(input: {
|
|
|
367
367
|
const selfReviewClearsEvidence =
|
|
368
368
|
authorSelfReviewCoversMatchedRules(matchedRules, author) &&
|
|
369
369
|
!evidence.diffEmpty;
|
|
370
|
-
if (
|
|
370
|
+
if (
|
|
371
|
+
(evidence.diffEmpty || evidence.diffTruncated) &&
|
|
372
|
+
!selfReviewClearsEvidence
|
|
373
|
+
) {
|
|
371
374
|
return hold(
|
|
372
375
|
evidence.diffEmpty
|
|
373
376
|
? "no usable patch hunks — auto-approve disabled (fail closed)"
|
|
@@ -408,7 +411,7 @@ function baseApprovalVerdict(input: {
|
|
|
408
411
|
// owner self_review on that same rule. Low-risk auto-approve never clears a
|
|
409
412
|
// hard gate without self_review.
|
|
410
413
|
const blockingHardGate = reviewRequiredRules.find(
|
|
411
|
-
|
|
414
|
+
rule =>
|
|
412
415
|
ruleIsHardGate(rule) && !(rule.selfReview && authorOwnsRule(rule, author))
|
|
413
416
|
);
|
|
414
417
|
if (blockingHardGate !== undefined) {
|
|
@@ -28,8 +28,8 @@ export function sanitizeReviewerHandle(raw: string): string | undefined {
|
|
|
28
28
|
.replace(/\.+$/, "")
|
|
29
29
|
.toLowerCase()
|
|
30
30
|
.split("/")
|
|
31
|
-
.map(
|
|
32
|
-
.filter(
|
|
31
|
+
.map(segment => segment.trim())
|
|
32
|
+
.filter(segment => segment !== "");
|
|
33
33
|
// A GitHub team handle is always exactly `org/team`. Collapse a duplicated
|
|
34
34
|
// leading org (the shape a double-prefix bug produces) before validating.
|
|
35
35
|
while (segments.length > 2 && segments[0] === segments[1]) {
|
|
@@ -78,7 +78,7 @@ function ruleMatchesFile({
|
|
|
78
78
|
rule: PathScopedRule;
|
|
79
79
|
filepath: string;
|
|
80
80
|
}): boolean {
|
|
81
|
-
return rule.paths.some(
|
|
81
|
+
return rule.paths.some(pattern =>
|
|
82
82
|
patternMatchesFileFromPolicy({
|
|
83
83
|
rule,
|
|
84
84
|
pattern,
|
|
@@ -192,7 +192,7 @@ export function changedFilesWithoutWinningRule({
|
|
|
192
192
|
rules: readonly AgenticOwnersPathRule[];
|
|
193
193
|
}): string[] {
|
|
194
194
|
return changedFiles.filter(
|
|
195
|
-
|
|
195
|
+
filepath => pickWinningRuleForFile({ filepath, rules }) === undefined
|
|
196
196
|
);
|
|
197
197
|
}
|
|
198
198
|
|
|
@@ -215,7 +215,7 @@ export function everyChangedFileGloballyExcluded({
|
|
|
215
215
|
return false;
|
|
216
216
|
}
|
|
217
217
|
return changedFiles.every(
|
|
218
|
-
|
|
218
|
+
filepath =>
|
|
219
219
|
pickWinningRuleForFile({ filepath, rules })?.globalExclusion === true
|
|
220
220
|
);
|
|
221
221
|
}
|
|
@@ -71,7 +71,7 @@ export function patternSpecificity(pattern: string): number {
|
|
|
71
71
|
globIndex === -1 ? normalized : normalized.slice(0, globIndex);
|
|
72
72
|
const segments = literalPrefix
|
|
73
73
|
.split("/")
|
|
74
|
-
.filter(
|
|
74
|
+
.filter(segment => segment !== "").length;
|
|
75
75
|
return literalPrefix.length * 100 + segments;
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -106,16 +106,11 @@ function parsePaths(
|
|
|
106
106
|
issues.push(`${label}: missing paths`);
|
|
107
107
|
return undefined;
|
|
108
108
|
}
|
|
109
|
-
if (
|
|
110
|
-
!Array.isArray(value) ||
|
|
111
|
-
value.some((entry) => typeof entry !== "string")
|
|
112
|
-
) {
|
|
109
|
+
if (!Array.isArray(value) || value.some(entry => typeof entry !== "string")) {
|
|
113
110
|
issues.push(`${label}: paths must be a list of strings`);
|
|
114
111
|
return undefined;
|
|
115
112
|
}
|
|
116
|
-
const paths = value
|
|
117
|
-
.map((entry) => entry.trim())
|
|
118
|
-
.filter((entry) => entry !== "");
|
|
113
|
+
const paths = value.map(entry => entry.trim()).filter(entry => entry !== "");
|
|
119
114
|
if (paths.length === 0) {
|
|
120
115
|
issues.push(`${label}: paths must not be empty`);
|
|
121
116
|
return undefined;
|
|
@@ -286,7 +281,7 @@ function parseOwnerList({
|
|
|
286
281
|
if (plural !== undefined) {
|
|
287
282
|
if (
|
|
288
283
|
!Array.isArray(plural) ||
|
|
289
|
-
plural.some(
|
|
284
|
+
plural.some(entry => typeof entry !== "string")
|
|
290
285
|
) {
|
|
291
286
|
issues.push(`${label}.${field}: ${field} must be a list of strings`);
|
|
292
287
|
} else {
|
|
@@ -352,7 +347,7 @@ function scopeDepthForConfigPath(configPath: string): number {
|
|
|
352
347
|
if (prefix === "") {
|
|
353
348
|
return 0;
|
|
354
349
|
}
|
|
355
|
-
return prefix.split("/").filter(
|
|
350
|
+
return prefix.split("/").filter(segment => segment !== "").length;
|
|
356
351
|
}
|
|
357
352
|
|
|
358
353
|
function validatePathsStayWithinRepository({
|
|
@@ -36,7 +36,7 @@ export function composeReviewPrompt(args: {
|
|
|
36
36
|
rulePrompts: readonly string[];
|
|
37
37
|
}): string {
|
|
38
38
|
const parts = [args.basePrompt, ...args.rulePrompts].filter(
|
|
39
|
-
|
|
39
|
+
part => part !== ""
|
|
40
40
|
);
|
|
41
41
|
const composed = parts.join("\n\n");
|
|
42
42
|
if (composed.length > AGENTIC_OWNERS_MAX_COMPOSED_PROMPT_CHARS) {
|
|
@@ -42,9 +42,7 @@ export interface ReviewVerdict {
|
|
|
42
42
|
recommendedReviewers?: readonly string[];
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export type ResolvedReview =
|
|
46
|
-
| { enrolled: false; reason: string }
|
|
47
|
-
| ReviewState;
|
|
45
|
+
export type ResolvedReview = { enrolled: false; reason: string } | ReviewState;
|
|
48
46
|
|
|
49
47
|
export interface ReviewState {
|
|
50
48
|
enrolled: true;
|
|
@@ -137,8 +135,8 @@ function buildDiff(files: readonly ChangedFile[]): {
|
|
|
137
135
|
} {
|
|
138
136
|
const usablePatch = (file: ChangedFile): boolean =>
|
|
139
137
|
file.patch !== undefined && file.patch.trim() !== "";
|
|
140
|
-
const noPatches = files.every(
|
|
141
|
-
const anyMissingPatch = files.some(
|
|
138
|
+
const noPatches = files.every(file => !usablePatch(file));
|
|
139
|
+
const anyMissingPatch = files.some(file => !usablePatch(file));
|
|
142
140
|
const parts: string[] = [];
|
|
143
141
|
let used = 0;
|
|
144
142
|
for (const file of files) {
|
|
@@ -179,17 +177,17 @@ export async function loadReviewState(
|
|
|
179
177
|
// Renames count both sides for matching; runtime-generated
|
|
180
178
|
// `.agentic-owners/generated/` paths never participate.
|
|
181
179
|
const reviewable = changed.filter(
|
|
182
|
-
|
|
180
|
+
file => !isGeneratedAgenticOwnersPath(file.filename)
|
|
183
181
|
);
|
|
184
182
|
const names = [
|
|
185
183
|
...new Set(
|
|
186
|
-
reviewable.flatMap(
|
|
184
|
+
reviewable.flatMap(file =>
|
|
187
185
|
file.previousFilename === undefined
|
|
188
186
|
? [file.filename]
|
|
189
187
|
: [file.filename, file.previousFilename]
|
|
190
188
|
)
|
|
191
189
|
),
|
|
192
|
-
].filter(
|
|
190
|
+
].filter(path => !isGeneratedAgenticOwnersPath(path));
|
|
193
191
|
if (names.length === 0 && !filesTruncated) {
|
|
194
192
|
return { enrolled: false, reason: "no reviewable files" };
|
|
195
193
|
}
|
|
@@ -207,7 +205,10 @@ export async function loadReviewState(
|
|
|
207
205
|
!filesTruncated &&
|
|
208
206
|
everyChangedFileGloballyExcluded({ changedFiles: names, rules })
|
|
209
207
|
) {
|
|
210
|
-
return {
|
|
208
|
+
return {
|
|
209
|
+
enrolled: false,
|
|
210
|
+
reason: "every changed file is globally excluded",
|
|
211
|
+
};
|
|
211
212
|
}
|
|
212
213
|
|
|
213
214
|
const matched = matchRepoConfigForChangedFiles({
|
|
@@ -254,9 +255,7 @@ export async function loadReviewState(
|
|
|
254
255
|
return directory === "" ? rule.prompt : `${directory}/${rule.prompt}`;
|
|
255
256
|
};
|
|
256
257
|
const promptPaths = [
|
|
257
|
-
...new Set(
|
|
258
|
-
committed.flatMap((rule) => rulePromptPath(rule) ?? [])
|
|
259
|
-
),
|
|
258
|
+
...new Set(committed.flatMap(rule => rulePromptPath(rule) ?? [])),
|
|
260
259
|
];
|
|
261
260
|
const promptContents =
|
|
262
261
|
promptPaths.length > 0
|
|
@@ -272,7 +271,9 @@ export async function loadReviewState(
|
|
|
272
271
|
composedPaths.add(promptPath);
|
|
273
272
|
const contents = promptContents.get(promptPath)?.trim();
|
|
274
273
|
if (contents === undefined || contents === "") {
|
|
275
|
-
log(
|
|
274
|
+
log(
|
|
275
|
+
`prompt file missing at base ref: ${promptPath} (from ${rule.sourcePath})`
|
|
276
|
+
);
|
|
276
277
|
continue;
|
|
277
278
|
}
|
|
278
279
|
rulePrompts.push(contents);
|
|
@@ -307,12 +308,12 @@ export function renderReviewWake(state: ReviewState): string {
|
|
|
307
308
|
const rulesBlock =
|
|
308
309
|
state.matchedRules.length > 0
|
|
309
310
|
? state.matchedRules
|
|
310
|
-
.map(
|
|
311
|
+
.map(rule => `- ${describeRuleForContext(rule)}`)
|
|
311
312
|
.join("\n")
|
|
312
313
|
: "- (none — default risk review applies)";
|
|
313
314
|
const candidatesBlock =
|
|
314
315
|
state.candidates.length > 0
|
|
315
|
-
? state.candidates.map(
|
|
316
|
+
? state.candidates.map(handle => `- ${handle}`).join("\n")
|
|
316
317
|
: "- (none — recommend no reviewers rather than guessing handles)";
|
|
317
318
|
const existing =
|
|
318
319
|
state.pr.requestedReviewers.length > 0
|
|
@@ -324,7 +325,7 @@ export function renderReviewWake(state: ReviewState): string {
|
|
|
324
325
|
const fence = "`".repeat(
|
|
325
326
|
Math.max(
|
|
326
327
|
4,
|
|
327
|
-
...[...state.diff.matchAll(/`+/g)].map(
|
|
328
|
+
...[...state.diff.matchAll(/`+/g)].map(run => run[0].length + 1)
|
|
328
329
|
)
|
|
329
330
|
);
|
|
330
331
|
|
|
@@ -344,7 +345,7 @@ it.
|
|
|
344
345
|
${state.pr.baseRef}
|
|
345
346
|
|
|
346
347
|
## Changed files (${state.reviewableFiles.length})
|
|
347
|
-
${state.reviewableFiles.map(
|
|
348
|
+
${state.reviewableFiles.map(file => `- ${displayPath(file)}`).join("\n")}
|
|
348
349
|
|
|
349
350
|
## Matched policy rules
|
|
350
351
|
${rulesBlock}
|
|
@@ -483,7 +484,9 @@ function commentBody(input: {
|
|
|
483
484
|
}): string {
|
|
484
485
|
const policies =
|
|
485
486
|
input.matchedRules.length > 0
|
|
486
|
-
? [
|
|
487
|
+
? [
|
|
488
|
+
...new Set(input.matchedRules.map(rule => `\`${rule.sourcePath}\``)),
|
|
489
|
+
].join(", ")
|
|
487
490
|
: "none — default risk review";
|
|
488
491
|
const reviewers =
|
|
489
492
|
input.requested.length > 0
|
|
@@ -532,7 +535,7 @@ async function upsertMarkerComment(
|
|
|
532
535
|
body: string,
|
|
533
536
|
createIfMissing: boolean
|
|
534
537
|
): Promise<void> {
|
|
535
|
-
const existing = (await forge.listComments()).find(
|
|
538
|
+
const existing = (await forge.listComments()).find(comment =>
|
|
536
539
|
comment.body.startsWith(REVIEW_MARKER)
|
|
537
540
|
);
|
|
538
541
|
if (existing !== undefined) {
|
|
@@ -555,7 +558,7 @@ export async function dismissStaleApprovals(
|
|
|
555
558
|
message: string
|
|
556
559
|
): Promise<void> {
|
|
557
560
|
const stale = (await forge.listReviews()).filter(
|
|
558
|
-
|
|
561
|
+
review =>
|
|
559
562
|
review.state === "APPROVED" &&
|
|
560
563
|
review.body.includes(APPROVED_HEAD_MARKER_PREFIX)
|
|
561
564
|
);
|
|
@@ -573,7 +576,7 @@ export async function reportPolicyError(
|
|
|
573
576
|
REVIEW_MARKER,
|
|
574
577
|
"**Agentic Owners** — policy validation failed; not reviewing until it parses.",
|
|
575
578
|
"",
|
|
576
|
-
...error.issues.map(
|
|
579
|
+
...error.issues.map(issue => `- ${issue}`),
|
|
577
580
|
].join("\n");
|
|
578
581
|
await upsertMarkerComment(forge, body, true);
|
|
579
582
|
await dismissStaleApprovals(
|
|
@@ -627,7 +630,8 @@ export async function actuateReview(input: {
|
|
|
627
630
|
if (input.assessedHeadSha !== pr.headSha) {
|
|
628
631
|
return {
|
|
629
632
|
status: "skipped",
|
|
630
|
-
reason:
|
|
633
|
+
reason:
|
|
634
|
+
"the head moved since the assessment; the new head gets its own review",
|
|
631
635
|
};
|
|
632
636
|
}
|
|
633
637
|
|
|
@@ -637,7 +641,7 @@ export async function actuateReview(input: {
|
|
|
637
641
|
recommended: verdict.recommendedReviewers ?? [],
|
|
638
642
|
candidates: state.candidates,
|
|
639
643
|
}).filter(
|
|
640
|
-
|
|
644
|
+
handle => normalizeHandle(handle) !== normalizeHandle(pr.authorLogin ?? "")
|
|
641
645
|
);
|
|
642
646
|
const decision = decideApproval({
|
|
643
647
|
matchedRules: state.matchedRules,
|
|
@@ -645,7 +649,8 @@ export async function actuateReview(input: {
|
|
|
645
649
|
author: { handle: pr.authorLogin },
|
|
646
650
|
// Owners gate deterministically: when the model recommends nobody
|
|
647
651
|
// usable, fall back to the policy-derived candidates.
|
|
648
|
-
recommendedReviewers:
|
|
652
|
+
recommendedReviewers:
|
|
653
|
+
recommended.length > 0 ? recommended : state.candidates,
|
|
649
654
|
evidence: {
|
|
650
655
|
diffEmpty: state.diffEmpty,
|
|
651
656
|
diffTruncated: state.diffTruncated,
|
|
@@ -656,7 +661,7 @@ export async function actuateReview(input: {
|
|
|
656
661
|
|
|
657
662
|
if (decision.approve) {
|
|
658
663
|
const alreadyApproved = (await forge.listReviews()).some(
|
|
659
|
-
|
|
664
|
+
review =>
|
|
660
665
|
review.state === "APPROVED" &&
|
|
661
666
|
review.body.includes(approvedHeadMarker(pr.headSha))
|
|
662
667
|
);
|
|
@@ -665,7 +670,11 @@ export async function actuateReview(input: {
|
|
|
665
670
|
// Pin the review to the assessed head: a push racing this write gets
|
|
666
671
|
// a stale approval on the old commit, never a fresh one on unseen code.
|
|
667
672
|
await forge.submitApproval({
|
|
668
|
-
body: reviewBody({
|
|
673
|
+
body: reviewBody({
|
|
674
|
+
verdict,
|
|
675
|
+
reason: decision.reason,
|
|
676
|
+
headSha: pr.headSha,
|
|
677
|
+
}),
|
|
669
678
|
commitId: pr.headSha,
|
|
670
679
|
});
|
|
671
680
|
} catch (error) {
|
|
@@ -727,11 +736,9 @@ export async function actuateReview(input: {
|
|
|
727
736
|
`Superseded by a fresh Agentic Owners decision: ${decision.reason}.`
|
|
728
737
|
);
|
|
729
738
|
|
|
730
|
-
const alreadyRequested = new Set(
|
|
731
|
-
pr.requestedReviewers.map(normalizeHandle)
|
|
732
|
-
);
|
|
739
|
+
const alreadyRequested = new Set(pr.requestedReviewers.map(normalizeHandle));
|
|
733
740
|
const newReviewers = decision.requestReviewers
|
|
734
|
-
.filter(
|
|
741
|
+
.filter(handle => !alreadyRequested.has(normalizeHandle(handle)))
|
|
735
742
|
.slice(
|
|
736
743
|
0,
|
|
737
744
|
Math.max(0, MAX_REQUESTED_REVIEWERS - pr.requestedReviewers.length)
|
|
@@ -31,7 +31,7 @@ function wake(input: {
|
|
|
31
31
|
changedFilesCount: input.files.length,
|
|
32
32
|
requestedReviewers: [],
|
|
33
33
|
},
|
|
34
|
-
reviewableFiles: input.files.map(
|
|
34
|
+
reviewableFiles: input.files.map(file => file.filename),
|
|
35
35
|
matchedRules: rules,
|
|
36
36
|
composedPrompt: composeReviewPrompt({
|
|
37
37
|
basePrompt: readBaseReviewPrompt(),
|
|
@@ -39,7 +39,7 @@ function wake(input: {
|
|
|
39
39
|
}),
|
|
40
40
|
candidates: input.candidates ?? [],
|
|
41
41
|
diff: input.files
|
|
42
|
-
.map(
|
|
42
|
+
.map(file => `--- ${file.filename} (modified)\n${file.patch}`)
|
|
43
43
|
.join("\n\n"),
|
|
44
44
|
diffTruncated: false,
|
|
45
45
|
diffEmpty: false,
|